HomeJavaModsDefendLuetzerath
DefendLuetzerath
ModsJava

DefendLuetzerath

A little Minecraft Minigame about defending Lützerath

⬇ Download on HangarOpen in MCModsHubGet it on Google Play →
# DefendLützerath ### A minigame based on a true story It has many unique features and can be customized in lots of different ways: ingame, in configs or even by coding your own parts! Take a look at out [documentation](https://dwarslooper.com/documentation/defend-luetzerath) for installation guide and consider joining my [Discord](https://dwarslooper.com/discord) (german) if you have any further questions, or just ask them below! I will help if i can! ### **About DefendLützerath** DefendLützerath is a minecraft-minigame based on true events which happened in germany 2022 & 2023. Some day i was bored and wanted to make new, so i started making this minigame. ### **Commands** * /dl - Main Command for the plugin * /dl edit - Edit an existing arena * /dl create - Create a new arena * /dl lang - Change the language * /dl game - Manage a running game * /dl debug - Debug command for development * /dl assets Manage assets for an arena ### **⚠ Dependencies ⚠** This plugin can be used on any server and does now have any known incompatibilities. However to run this plugin you **need to** have [FastAsyncWorldedit](https://ci.athion.net/job/fastasyncworldedit/) installed. It is also compatible MultiverseCore. ### **Config** The plugin creates 2 main config-files: One for the plugin config and the other one where arena data is stored. Inside the "lang" folder are more files for the translations. default config ```yaml # ===================================================================================================== # _____ __ _ _ _ _ _ # | __ \ / _| | | | / /| | | | | | # | | | | ___| |_ ___ _ __ __| | | _ _| |_ _______ _ __ __ _| |_| |__ # | | | |/ _ \ _/ _ \ '_ \ / _` | | | | | | __|_ / _ \ '__/ _` | __| '_ \ # | |__| | __/ || __/ | | | (_| | |___| |_| | |_ / / __/ | | (_| | |_| | | | # |_____/ \___|_| \___|_| |_|\__,_|______\__,_|\__/___\___|_| \__,_|\__|_| |_| # # ===================================================================================================== # © Dwarslooper 2023 # ===================================================================================================== # The language the plugin, default "en_us". Can be configured in-game as well. language: de_de # Minimum amount of spawns that have to be set to register an arena min_enemy_spawns: 10 # Game-Difficulty. This feature is experimental and may cause bugs when modifying! difficulty: 4 # Ticks between specific actions to prevent lag ratelimit: 40 # If the player(s) should be notified when a protester dies notify-death: false # If short-commands like /start, /join or /leave should be enabled short-commands: false # If the players inventory should be saved. Useful when having items in your inventory inventory-manager: true # Commands which should be blocked ingame (without "/"); leave empty to disable blocked-commands: - ec - enderchest # How many points to add to the balance when killing an enemy points-on-kill: 2 # How many points to lose when a protester dies points-on-death: 4 # If picking up mud should be enabled pickup-mud: true # How many points assets should generate (set to 0 to disable) points-from-assets: 1 # The delay in which assets should generate points in ticks (points have to be greater than 0) asset-generate-points-delay: 160 # Delay in which enemies should spawn (in ticks!) spawn-delay: 80 # ================================================ # Used by the plugin internally. Do not modify! # ================================================ has-init: false version: 8 # That's it! You've reached the end! But.. Where's the dragon? ``` example arena file ```yaml arenas: luetzi: id: luetzi name: '''§c§lLuetzi''' isfinished: true assets: treehouse: id: treehouse name: Treehouse file: treehouse1.schem cost: 30 location: ==: org.bukkit.Location world: world x: -544.4577684784463 y: 116.0 z: 455.4672715416385 pitch: -0.30034935 yaw: -56.118652 ignoreair: false frontbarrier: id: frontbarrier name: Brandbarriere file: barrier5.schem cost: 41 location: ==: org.bukkit.Location world: world x: -550.4193944364503 y: 116.0 z: 432.4292367045594 pitch: 90.0 yaw: -154.96768 ignoreair: false smallbarrier: id: smallbarrier name: Feuerbarriere file: barrier4.schem cost: 10 location: ==: org.bukkit.Location world: world x: -544.4729272755648 y: 116.0 z: 529.6612069986382 pitch: 55.800106 yaw: -5.1205444 ignoreair: false signs: - ==: org.bukkit.Location world: lol x: 129.0 y: 64.0 z: -57.0 pitch: 0.0 yaw: 0.0 - ==: org.bukkit.Location world: world x: -752.0 y: 132.0 z: 137.0 pitch: 0.0 yaw: 0.0 - ==: org.bukkit.Location world: world x: 94.0 y: 85.0 z: 61.0 pitch: 0.0 yaw: 0.0 - ==: org.bukkit.Location world: world x: -782.0 y: 131.0 z: 443.0 pitch: 0.0 yaw: 0.0 - ==: org.bukkit.Location world: world x: -546.0 y: 114.0 z: 395.0 pitch: 0.0 yaw: 0.0 status: 0 center: ==: org.bukkit.Location world: world x: -549.4382898088267 y: 116.0 z: 420.4892420672443 pitch: -1.4996707 yaw: -0.7746582 spawns: - ==: org.bukkit.Location world: world x: -568.4180708900261 y: 116.0 z: 428.66656336795467 pitch: 13.650265 yaw: 31.947683 - ==: org.bukkit.Location world: world x: -575.3882121174585 y: 116.0 z: 471.21587760161333 pitch: 17.70028 yaw: -76.50238 - ==: org.bukkit.Location world: world x: -568.3898707696181 y: 117.0 z: 514.0536217773682 pitch: 11.700293 yaw: -68.70241 - ==: org.bukkit.Location world: world x: -548.4258699549844 y: 116.0 z: 576.7393530921174 pitch: 16.200287 yaw: -82.20242 - ==: org.bukkit.Location world: world x: -521.972086904113 y: 117.0 z: 487.93211980196315 pitch: 4.0503006 yaw: -124.95223 - ==: org.bukkit.Location world: world x: -536.1700286668336 y: 117.0 z: 471.3450436331918 pitch: 4.950537 yaw: 133.19684 - ==: org.bukkit.Location world: world x: -560.7126628340282 y: 116.0 z: 421.8546409102836 pitch: 0.45054305 yaw: -65.70247 - ==: org.bukkit.Location world: world x: -574.7040278549426 y: 116.0 z: 435.2174005303472 pitch: 14.550531 yaw: 43.34753 - ==: org.bukkit.Location world: world x: -533.8639264290802 y: 116.0 z: 423.2572814119909 pitch: 0.30068368 yaw: 140.69826 - ==: org.bukkit.Location world: world x: -558.2731270686152 y: 116.0 z: 431.5572706003032 pitch: 4.8006935 yaw: 74.54809 ``` [/LEFT] en_us.yml ```yaml activist.monk: Dark Monk activist.aggressive: The Aggressive activist.protester: Protester activist.chemist: Chemist enemy.rweworker: RWE Worker enemy.police: Policeman gui.main: Main Menu gui.characters: §2Charakters gui.shop: §2Shop gui.skills: §2Skills gui.settings: §2Settings gui.editarena: Edit Arena gui.close: §cClose gui.back: §cBack gui.description.characters: §aGet more Protesters gui.description.skills: §aLearn new Skills gui.description.shop: §aBuy special Items gui.description.settings: §aConfigure the game gui.confirm: Aktion bestätigen gui.action.confirm: §a§lConfirm gui.action.cancel: §c§lCancel mapsetting.center.title: §eCenter mapsetting.center.desc: §aWhere the map is loaded from mapsetting.schem.title: §eSchematic mapsetting.schem.desc: §aMap-Schematic File mapsetting.schem.expl: '§eThe schematic file has to be located in the folder of the arena and has to be named "arena.schem".' mapsetting.spawn.title: §eAdd spawn mapsetting.spawn.desc: §aManage spawnpoint for enemys mapsetting.spawn.right: '§e§o(Add: Right-Click)' mapsetting.spawn.left: '§e§o(Delete all: Left-Click)' mapsetting.delete.title: §4Delete mapsetting.delete.desc: §aPermanently delete this arena mapsetting.assets.title: §eAssets mapsetting.assets.desc: §aEdit assets for this arena mapsetting.assets.expl: '§eTo edit the assets, use §6/dl assets %s%§e!' mapsetting.status.set: '§a✔ Set' mapsetting.status.unset: '§c❌ Unset' mapsetting.status.numset: '§a✔ (%s% / %s%)' mapsetting.status.numunset: '§c❌ (%s% / %s%)' mapsetting.helper.change: ' §e§o(Click to change)' mapsetting.signs.title: §eSigns mapsetting.signs.desc: §aSigns for joining a game mapsetting.signs.right: '§e§o(Add: Right-Click)' mapsetting.signs.left: '§e§o(Delete: Left-Click)' mapsetting.signs.added: '§aSign added!' mapsetting.signs.removed: '§aSign removed!' mapsetting.signs.not_existing: '§cThis is not a sign of this arena!' mapsetting.signs.already_existing: '§cThis sign is already registered!' mapsetting.signs.look_at: '§cYou have to look at a sign!' mapsetting.signs.must_be_registered: '§cThe arena has to be registered to edit the signs!' mapsetting.finish.title: §eRegister arena mapsetting.finish.desc0: §aIf everything is ready, you mapsetting.finish.desc1: §acan register the arena here mapsetting.finish.task0: §cYou have one or more features not configured! mapsetting.finish.task1: §c- Center point mapsetting.finish.task2: §c- Schematic mapsetting.finish.task3: §c- %s%+ spawns mapsetting.finish.success: §aArena §6%s% §aregistered successfully! mapsetting.finish.already_done: §cThe arena §6%s% §cis already registered! game.create.already_existing: §cThere already is a running game in §6%s%§c! game.create.success: §aThe game in arena §6%s% §cwas started successfully! game.reset.success: §aThe game in arena §6%s% §cwas ended successfully! game.spawn.error: §cYou have to specify a valid asset! game.spawn.not_existing: §cAn asset with name §6%s% §cdoes not exist! game.setbal.must_be_integer: §cIngame points have to be a number! game.start.error: §cThere is currently no game running in §6%s%§c! game.kick.specify_player: §cYou have to specify a game! game.kick.no_such_player: §cThe player §6%s% §cis not in this game! game.kick.success: §cThe player §6%s% §cwas kicked from the game! game.kick.message: §cYou have been kicked from §6%s%§c! game.message.already_in_game: §cYou are already in this game! game.message.already_started: §cThis game has already started! game.message.not_in_game: §cYou are not in a game! game.message.joined: §aYou have joined %s%§a! game.message.left: §aYou left %s%§a! game.message.ratelimited: §cPlease wait a bit! game.status.inactive: §7§lINACTIVE game.status.waiting: §e§lSTARTING game.status.running: §a§lRUNNING game.status.resetting: §c§lRESETTING game.status.unknown: §d§lUNKNOWN ingame.blocked_command: "§cThis command can't be used ingame" ingame.protester_death: "§eA protester has died!" ingame.asset.buy: §e§o(Click to buy §8§o| §6§o%s%◎§e§o) ingame.asset.too_expensive: §cYou dont have enough ◎ for §6%s%§c! ingame.asset.already_bought: §cYou already bought §6%s%§c! ingame.lost.title: "§c§lVILLAGE EVACUATED!" ingame.lost.subtitle: "§eVillage saved for §6%s%d§e, §6%s%h§e, §6%s%m§e, §6%s%s§e!" ingame.lost.chat: "§cOh no! The village has been evacuated! But not bad! §4The arena will be resetted in §620 §4seconds!" ingame.welcome.chat: "§aWelcome to the village §6%s%§a! Help the activist protect the village from RWE, through building assets, leveling skills and getting more activists!" ingame.welcome.title: §a§lWelcome! ingame.welcome.subtitle: §eNice to see you, §6%s%§e! ingame.talk.water: §c§oHey! ingame.talk.enemy: - I have no time to talk - Just get out. - I have work to do - The village will be evacuated ingame.talk.fellow: - Do everything you can - We have to stop them! - F*ck them - The village stays! - EVACUATION? Not with us! ingame.gui.shop.tnt.title: §cTNT ingame.gui.shop.molotow.title: §cMolotow ingame.gui.shop.water.title: §cWater ingame.gui.shop.buff.title: §cBuff. ingame.gui.shop.sword.title: §cSword ingame.gui.shop.mud.title: §cMud ingame.gui.skills.pe.title: §cMaterial Arts ingame.gui.skills.pe.desc: §aDo more damage against enemys ingame.gui.skills.points.title: §cPoints ingame.gui.skills.points.desc: §aGet more points for specific actions ingame.gui.skills.speed.title: §cSpeed ingame.gui.skills.speed.desc: §aIncrease your speed ingame.gui.skills.throw.title: §cThrowing ingame.gui.skills.throw.desc: §aThrow things further ingame.hud.start: §a§lStart game ingame.hud.leave: §c§lLeave game confirm.delete_arena.prompt: §cDelete arena §6§o%s% §cpermanently? confirm.delete_arena.success: §aArena §6%s% §ahas been deleted successfully! confirm.delete_spawns.prompt: §cDelete all spawns in §6%s% §c? confirm.delete_spawns.success: §aAll spawns deleted in §6%s%§a! text.cost: '§aCost§8: §6%s%◎' text.skills: '§aSkills§8: §e§o(Right-Click)' text.no_permission: '§cYou are lacking the permission node: §6%s%§c!' command.short.only_ingame: §cYou have to play to execute this command! command.lang.error: §cYou have to specify a language! command.lang.success: §aThe language has been set to §6%s%§a! command.reload.success: §aConfig files reloaded! You might have to restart the server to apply all changes! command.translate.error: §cYou have to specify a text to be translated! command.create.error: §cYou have to specify a valid arena name! command.create.already_exists: §cAn arena with this name already exists! command.create.banned_chars: §cThe name of your arena must not only contain special characters! command.create.success: §aYour arena §6%s% §ahas been created successfully! Edit it with §e/dl edit §6%s%§a! command.edit.error: §cYou have to specify a valid arena! command.edit.not_existing: §cThe arena §6%s% §cdoes not exist! command.asset.error: §cYou have to specify an arena as well as an action! command.asset.not_existing: §cThe asset §6%s% §cdoes not exist! command.game.usage: '§cUse: §6%s%' setup.asset.exit: §aAsset setup cancelled! setup.asset.invalid_params: §cYou have to specify a valid parameter! (§6%s%§c) setup.asset.prompt: §cCreate new asset? setup.asset.delete.prompt: §cDelete asset §6%s% §cpermanently? setup.asset.delete.success: §cAsset §6%s% §cdeleted successfully! setup.asset.success: §aA new asset with ID §6%s% §ahas been created successfully! setup.asset.step0: §aEnter the ID of the asset in chat. §e(EXIT to cancel) setup.asset.step1: §aEnter the display name of the asset in chat. §e(EXIT to cancel) setup.asset.step2: §aEnter the file name of the schematic in chat. §e(EXIT to cancel) setup.asset.step3: §aEnter the price of the asset in chat §e(EXIT to cancel) setup.asset.step4: '§aBitte stelle dich an den Punkt von wo aus die Schematic platziert werden soll und wo auch im Spiel das Asset angezeigt wird und gebe §6confirm §aein. §e(EXIT to cancel)' system.exception: §cOoops.. An unknown error has occured! Please contact the developer and open an issue on github containing the exception printed in the console! ``` ### **I found a bug or want to suggest something!** If you have a suggestion on how to improve the plugin, ideas for new features or found a bug, [create an issue](https://github.com/dwarslooper/defend-luetzerath/issues) on GitHub. ### **Can i add my language?** If you want to create a new language, create a new file inside the "lang" folder of the plugin with the name of your country code. Now you can use the command /dl lang to select your language. If you want to contribute to the plugin you can submit your language on GitHub by [creating an issue](https://github.com/dwarslooper/defend-luetzerath/issues). You will get credited if you do. We're open-source! This project's code is available on [Github](https://github.com/dwarslooper)!

DefendLuetzerath is a free Minecraft Java mod. Compatible with Minecraft 1.19, 1.19.1, 1.19.2, 1.19.3 and newer. Downloaded 7 times (via Hangar). Download it and open it directly in the game.

Explore more