Commits vergleichen

...

3 Commits

Autor SHA1 Nachricht Datum
yoyosource
6bd8350fa5 Fix things!
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
2024-04-21 16:15:32 +02:00
yoyosource
11a0bdbe8d Add FixedRegionSystem and ModularRegionSystem 2024-04-21 16:13:39 +02:00
yoyosource
5c48983375 TYPEREPLACE_HELPAdd initial modular bau impl 2024-04-21 16:13:33 +02:00
17 geänderte Dateien mit 2315 neuen und 982 gelöschten Zeilen

Datei anzeigen

@ -16,17 +16,21 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PREFIX = §eBau§8System§8»
TIME = HH:mm:ss
DATE=........
COMMAND_HELP_HEAD=§7---=== (§e{0}§7) ===---
ONLY_SCHEMS=§cFolders are unselectable
PAGE_LIST=§e Page ({0}/{1}) »»
LIST_PREVIOUS_PAGE=§ePrevious page
LIST_NEXT_PAGE=§eNext page
# Permissions
NO_PERMISSION = You are not allowed to use that here
SPECTATOR = §fSpectator
# Scoreboard
SCOREBOARD_TIME = Time
SCOREBOARD_REGION = Region
@ -34,13 +38,17 @@ SCOREBOARD_TRACE=Trace
SCOREBOARD_LOADER = Loader
SCOREBOARD_TPS = TPS
SCOREBOARD_TPS_FROZEN = §eFrozen
SCOREBOARD_TRACE_TICKS = Ticks
SCOREBOARD_TECHHIDER = TechHider§8: §aOn
SCOREBOARD_XRAY = XRay§8: §aOn
SCOREBOARD_LOCK_TEAM = Bau Lock§8: §eTeam
SCOREBOARD_LOCK_TEAM_AND_SERVERTEAM = Bau Lock§8: §e(Server) Team
SCOREBOARD_LOCK_SERVERTEAM = Bau Lock§8: §eServer Team
SCOREBOARD_LOCK_NOBODY = Bau Lock§8: §cNobody
# Flags
FLAG_COLOR = Color
FLAG_TNT = TNT
@ -48,18 +56,26 @@ FLAG_FIRE=Fire
FLAG_FREEZE = Freeze
FLAG_PROTECT = Protect
FLAG_ITEMS = Items
FLAG_TESTBLOCK = Testblock
FLAG_CHANGED = Changed
FLAG_FIRE_ALLOW = §con
FLAG_FIRE_DENY = §aoff
FLAG_FREEZE_ACTIVE = §aon
FLAG_FREEZE_INACTIVE = §coff
FLAG_PROTECT_ACTIVE = §aon
FLAG_PROTECT_INACTIVE = §coff
FLAG_TNT_ALLOW = §aon
FLAG_TNT_DENY = §coff
FLAG_TNT_ONLY_TB = §7no §ebuild area
FLAG_TNT_ONLY_BUILD = §7no §etestblock area
FLAG_ITEMS_ACTIVE = §aon
FLAG_ITEMS_INACTIVE = §coff
FLAG_COLOR_WHITE = §fWhite
FLAG_COLOR_ORANGE = §6Orange
FLAG_COLOR_MAGENTA = §dMagenta
@ -78,18 +94,29 @@ FLAG_COLOR_BROWN=§eBrown
FLAG_COLOR_GREEN = §2Green
FLAG_COLOR_RED = §cRed
FLAG_COLOR_BLACK = §0Black
FLAG_TESTBLOCK_NO_VALUE = §eNo Value
FLAG_TESTBLOCK_NORTH = §eNorth
FLAG_TESTBLOCK_SOUTH = §eSouth
FLAG_CHANGED_NO_CHANGE = §cNo
FLAG_CHANGED_HAS_CHANGE = §aYes
# Region
REGION_TYPE_NORMAL = Normal
REGION_TYPE_BUILD = Build area
REGION_TYPE_ONLY_TB = Dummy
# AttributesCopy
ATTRIBUTES_CANT_COPY = §cYou need to hold the same item type and hover over the same block to copy.
ATTRIBUTES_NO_COPY = §cNo attributes to copy.
ATTRIBUTES_COPIED = §eAttributes copied.
ATTRIBUTE_REMOVE_COMMAND_HELP = §8/§eattributeremove §8[§eattribute§8|§7all§8|§7*§8]
ATTRIBUTE_REMOVE_ALL = §eAll attributes removed.
ATTRIBUTE_REMOVE_SINGLE = §eAttribute §7{0}§e removed.
ATTRIBUTE_REMOVE_NOT_FOUND = §cAttribute not found
# AutoStart
AUTOSTART_COMMAND_HELP = §8/§etimer §8- §7Retrieve AutostartTimer Tool
AUTOSTART_ITEM_NAME = §eAutostartTimer
@ -100,6 +127,7 @@ AUTOSTART_MESSAGE_START=§eAutostartTimer started
AUTOSTART_MESSAGE_RESULT1 = §eTime §7until §eexplosion §7at enemy§8:§e {0}§7 game ticks
AUTOSTART_MESSAGE_RESULT2 = §7Time difference in §egame-ticks §7until {0} seconds§8:§e {1}
AUTOSTART_MESSAGE_RESULT3 = §7positive, if too few, negative if too many
# Backup
BACKUP_HELP_CREATE=§8/§ebackup create §8- §7Create a region backup
BACKUP_HELP_LOAD=§8/§ebackup load §8[§7BackupName§8] §8- §7Load a region backup
@ -116,8 +144,10 @@ BACKUP_LOAD=§7Backup loaded
BACKUP_INV_NAME=§eBackup
BACKUP_ITEM_NAME=§eBackup §7from §e{0}
BACKUP_LORE=§eClick to load
# Bau
BAU_COMMAND_HELP_INFO = §8/§ebau info §8- §7Alias for §8/§ebauinfo
BAU_INFO_ITEM_NAME = §eBau-Management
## This is used in BauInfoBauGuiItem.java
BAU_INFO_ITEM_LORE_TNT = §7TNT§8: §e{0}
@ -126,11 +156,13 @@ BAU_INFO_ITEM_LORE_FIRE=§7Fire§8: §e{0}
BAU_INFO_ITEM_LORE_COLOR = §7Color§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0}
BAU_INFO_ITEM_LORE_ITEMS = §7Items§8: §e{0}
BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Information regarding this build server
BAU_INFO_COMMAND_OWNER = §7Owner§8: §e{0}
BAU_INFO_COMMAND_MEMBER=§7{0} §8[§7{1}§8]§8: §e{2}
BAU_INFO_COMMAND_MEMBER = §7Member §8[§7{0}§8]§8: §e
BAU_INFO_COMMAND_FLAG = §7{0}§8: §7{1}
BAU_INFO_COMMAND_TPS = §7TPS§8:§e
# Countingwand
COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Receive a CountingWand
COUNTINGWAND_ITEM_NAME = §eMeterstick
@ -140,11 +172,13 @@ COUNTINGWAND_MESSAGE_RCLICK=§7First position at: §8[§7{0}§8, §7{1}§8, §7{
COUNTINGWAND_MESSAGE_LCLICK = §7Second position at: §8[§7{0}§8, §7{1}§8, §7{2}§8] ({3}§8) ({4}§8)
COUNTINGWAND_MESSAGE_VOLUME = §e{0}
COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2}
# Design Endstone
DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesignendstone §8- §7Highlight endstone in design
DESIGN_ENDSTONE_REGION_ERROR = §cThis region has no build area
DESIGN_ENDSTONE_ENABLE = §aEndstone is highlighted
DESIGN_ENDSTONE_DISABLE = §cEndstone is no longer hightlighted
# Detonator
DETONATOR_LOC_REMOVE = §e{0} removed
DETONATOR_LOC_ADD = §e{0} added
@ -194,16 +228,19 @@ GUI_EDITOR_ITEM_TRASH_LORE=§7Drop item here
GUI_EDITOR_ITEM_MORE=§eMore items
GUI_EDITOR_ITEM_CLOSE=§eClose
GUI_EDITOR_TITLE_MORE=Select item
# Script
## Errors
SCRIPT_ERROR_GUI=§cError in parsing script: Line {0}
SCRIPT_ERROR_GLOBAL=§cError in global script: Line {0}
SCRIPT_ERROR_CLICK=§cError in script: Line {0}
SCRIPT_ERROR_ONLY_IN_GLOBAL=§cThis function is only available in global scripts
## CustomScript
SCRIPT_HOTKEY_ITEM_NAME = §7Hotkey§8: §e{0}
SCRIPT_EVENT_ITEM_NAME = §7Event§8: §e{0}
SCRIPT_COMMAND_ITEM_NAME = §7Command§8: §e/{0}
## Script Menu GUI
SCRIPT_MENU_GUI_ITEM_LORE_1 = §7Click to retrieve
SCRIPT_MENU_GUI_ITEM_LORE_2 = §7Shift-Click to copy
@ -212,8 +249,10 @@ SCRIPT_MENU_GUI_ITEM_LORE_4=§7Middle-Click to preview
SCRIPT_MENU_GUI_NAME = §eScript-Menu
SCRIPT_MENU_GUI_ITEM_ADD_NAME = §eInsert
SCRIPT_MENU_GUI_ITEM_ADD_LORE = §7Click with a book to insert
SCRIPT_MENU_GUI_ENTER_NAME = §eEnter a name
SCRIPT_DEPRECATED=§cThe function §8\'§e{0}§8\'§c is deprecated and will be removed in the future. Please use §8\'§e{1}§8\'§c instead.
# Shield Printing
SHIELD_PRINTING_HELP_START = §8/§eshieldprinting start §8- §7Starts the shield printing
SHIELD_PRINTING_HELP_COPY = §8/§eshieldprinting copy §8- §7Copies the shield configuration
@ -226,10 +265,12 @@ SHIELD_PRINTING_HELP_STEP_4=§84. §7Edit the shields if necessary
SHIELD_PRINTING_HELP_STEP_5 = §85. §7Copy the shields printing with §8/§eshieldprinting copy
SHIELD_PRINTING_HELP_STEP_6 = §86. §7Paste the original schematic
SHIELD_PRINTING_HELP_STEP_7 = §87. §7Apply the shield printing with §8/§eshieldprinting apply
SHIELD_PRINTING_NO_REGION = §cYou are not in a region.
SHIELD_PRINTING_NOT_RUNNING = §cThe shield printing is not running.
SHIELD_PRINTING_BOSSBAR = §fMovements: {0}
SHIELD_PRINTING_BOSSBAR_COPIED = §fMovements: {0} Copied: {1}
SHIELD_PRINTING_GUI_NAME = §7Shield Printing
SHIELD_PRINTING_GUI_APPLY = §aApply
SHIELD_PRINTING_GUI_STATE_PREVIOUS = §7R-Click§8: §7Previous
@ -247,12 +288,15 @@ SHIELD_PRINTING_GUI_STATE_OPENABLE=§7{0} §fOpened
SHIELD_PRINTING_GUI_STATE_PISTON = §7{0} §fExtended
SHIELD_PRINTING_GUI_STATE_POWERABLE = §7{0} §fPowered
SHIELD_PRINTING_GUI_STATE_WALL = §7{0} §fWall Connections
SHIELD_PRINTING_START = §aThe shield printing has been started.
SHIELD_PRINTING_COPY = §aThe shield has been copied.
SHIELD_PRINTING_APPLY = §aThe shield has been applied.
SHIELD_PRINTING_STOP = §aThe shield printing has been stopped.
# Unsign Book
UNSIGN_HELP=§8/§eunsign §8- §7Make a signed book writable again
# Simulator
SIMULATOR_HELP = §8/§esimulator §8-§7 Gives you the simulator wand
SIMULATOR_CREATE_HELP = §8/§esimulator create §8[§7name§8] §8-§7 Create a new simulator
@ -260,7 +304,9 @@ SIMULATOR_CHANGE_HELP=§8/§esimulator change §8-§7 Change your simulator wand
SIMULATOR_DELETE_HELP = §8/§esimulator delete §8[§7name§8] §8-§7 Deletes the simulator
SIMULATOR_START_HELP = §8/§esimulator start §8[§7name§8] §8-§7 Starts the simulator
SIMULATOR_COPY_HELP = §8/§esimulator copy §8[§7to-copy§8] §8[§7name§8] §8-§7 Copy the simulator
SIMULATOR_GUI_ITEM_NAME = §eTNT Simulator
SIMULATOR_NO_SIM_IN_HAND = §cNo simulator item selected
SIMULATOR_GUI_SELECT_SIM = Simulator selection
SIMULATOR_GUI_CREATE_SIM = §eCreate simulator
@ -274,7 +320,9 @@ SIMULATOR_EDIT_LOCATION=§7Edit position
SIMULATOR_EDIT_PROPERTIES = §7Edit properties
SIMULATOR_EDIT_OTHER = §7Edit other
SIMULATOR_EDIT_GROUP = §7Edit group
SIMULATOR_EDIT_GROUP_MENU = §eEdit group
SIMULATOR_WAND_NAME = §eSimulator
SIMULATOR_WAND_NAME_SELECTED = §7Simulator §8- §e{0}
SIMULATOR_WAND_LORE_1 = §eRight click §8- §7Adds a position
@ -282,7 +330,9 @@ SIMULATOR_WAND_LORE_2=§eSneaking §8- §7Free movement
SIMULATOR_WAND_LORE_3 = §eLeft click §8- §7Start the simulation
SIMULATOR_WAND_LORE_4 = §eRight click in air §8- §7Opens the gui
SIMULATOR_WAND_LORE_5 = §eDouble Sneak §8- §7Swap between TNT and Redstone Block
SIMULATOR_REGION_FROZEN = §cSimulator cannot be used inside frozen regions
## Other
SIMULATOR_PLUS_ONE = §7+1
SIMULATOR_PLUS_PIXEL_SHIFT = §eShift §7Click for §e+0,0625
@ -294,8 +344,11 @@ SIMULATOR_POSITION_X=§7x-Position
SIMULATOR_POSITION_Y = §7y-Position
SIMULATOR_POSITION_Z = §7z-Position
SIMULATOR_BACK = §eBack
SIMULATOR_GUI_TOTAL_TNT = §7Total TNT§8: §e{0}
SIMULATOR_DELETED = §cSimulator deleted
## GUI
SIMULATOR_POSITION_EDIT = §eEdit position
SIMULATOR_POSITION_ADD = §eSet position
@ -319,12 +372,15 @@ SIMULATOR_GUI_NAME=Simulator
SIMULATOR_GUI_DELETE = §cDelete TNT
SIMULATOR_GUI_AUTO_TRACE = §eAutoTrace§8: §7{0}
SIMULATOR_GUI_MOVE_ALL = §eMove all
SIMULATOR_ALIGNMENT_CENTER = §7Alignment§8: §eCenter
SIMULATOR_ALIGNMENT_POSITIVE_X = §7Alignment§8: §ePositive X
SIMULATOR_ALIGNMENT_NEGATIVE_X = §7Alignment§8: §eNegative X
SIMULATOR_ALIGNMENT_POSITIVE_Z = §7Alignment§8: §ePositive Z
SIMULATOR_ALIGNMENT_NEGATIVE_Z = §7Alignment§8: §eNegative Z
SIMULATOR_MOVE_ALL_GUI_NAME = Move TNT
SIMULATOR_TNT_SPAWN_GUI_NAME = Configure TNT {0}
SIMULATOR_TNT_SPAWN_EDIT_LOCATION = - Location
SIMULATOR_TNT_SPAWN_EDIT_PROPERTIES = - Properties
@ -366,16 +422,19 @@ SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE=§eAdd prime phase
SIMULATOR_TNT_SPAWN_ADD_TNT = §eAdd TNT
SIMULATOR_TNT_SPAWN_REMOVE_TNT = §cRemove
SIMULATOR_TNT_SPAWN_POSITION_ANVIL_GUI_NAME = Position
# SmartPlace
SMART_PLACE_HELP = §8/§esmartplace §8-§7 Toggles SmartPlace
SMART_PLACE_INFO = §7Places rotatable blocks §eaway§7 from you when §esneaking§7.
SMART_PLACE_ENABLE = §aSmartPlace activated
SMART_PLACE_DISABLE = §cSmartPlace deactivated
# InventoryFiller
INVENTORY_FILL_HELP = §8/§einventoryfill §8- §7Toggles InventoryFill
INVENTORY_FILL_INFO = §7Helps you fill containers by looking at them while sneaking and dropping the item. Or just scroll on a container to change the amount of the item inside.
INVENTORY_FILL_ENABLE = §aInventoryFiller activated
INVENTORY_FILL_DISABLE = §cInventoryFiller deactivated
# Killchecker
KILLCHECKER_HELP_ENABLE = §8/§ekillchecker enable §8- §7Enables Killchecker / Recalculates kills
KILLCHECKER_HELP_DISABLE = §8/§ekillchecker disable §8- §7Disables Killchecker
@ -384,6 +443,7 @@ KILLCHECKER_INFO2=§7Only colorable blocks like Wool, Terractotta, Stained Glass
KILLCHECKER_ENABLE = §aKillchecker activated
KILLCHECKER_DISABLE = §cKillchecker deactivated
KILLCHECKER_BOSSBAR = §e§l{0} §7(§e{1}%§7) §e§l{2}§7 cannons
# BlockCounter
BLOCK_COUNTER_HELP_TOGGLE = §8/§eblockcounter §8- §7Toggle on/off
BLOCK_COUNTER_HELP_ENABLE = §8/§eblockcounter enable §8- §7Toggles BlockCounter on
@ -392,17 +452,20 @@ BLOCK_COUNTER_MESSAGE=§7Damage §8> §e{0} §7Blocks §e{1} §7TNT §e{2} §7
BLOCK_COUNTER_MESSAGE_SECOND = §7Damage §8> §e{0} §7Blocks §e{1} §7TNT §e{2} §7Blocks/TNT §e{3} §7Blocks/s
BLOCK_COUNTER_ENABLE = §7BlockCounter activated
BLOCK_COUNTER_DISABLE = §7BlockCounter deactivated
# DepthCounter
DEPTH_COUNTER_MESSAGE = §7Depth §8> §7
DEPTH_COUNTER_COUNT = {0}{1}§8×{2}{3}§8×{4}{5}
DEPTH_COUNTER_HOVER = §7X§8ק7Y§8ק7Z
DEPTH_COUNTER_TNT = §7 TNT§8: §e{0}
# TPSLimit
TPSLIMIT_FREEZE_HELP = §8/§etpslimit 0 §8-§7 Freeze TPS
TPSLIMIT_LIMIT_HELP = §8/§etpslimit §8[§720>x>0.5§8] §8-§7 Slow TPS down
TPSLIMIT_WARP_HELP = §8/§etpslimit §8[§7x>20§8] §8-§7 Speed TPS up
TPSLIMIT_DEFAULT_HELP = §8/§etpslimit default §8-§7 Set TPS to 20
TPSLIMIT_HELP = §8/§etpslimit §8-§7 Show current TPS
TICK_FREEZE_HELP = §8/§etick rate 0 §8-§7 Freeze TPS
TICK_FREEZE_HELP_2 = §8/§etick freeze §8-§7 Freeze TPS
TICK_UNFREEZE_HELP = §8/§etick unfreeze §8-§7 Set TPS to 20
@ -410,8 +473,10 @@ TICK_LIMIT_HELP=§8/§etick rate §8[§720>x>0.5§8] §8-§7 Slow TPS down
TICK_WARP_HELP = §8/§etick rate §8[§7x>20§8] §8-§7 Speed TPS up
TICK_DEFAULT_HELP = §8/§etick rate default §8-§7 Set TPS to 20
TICK_HELP = §8/§etick rate §8-§7 Show current TPS
TICK_STEPPING_HELP = §8/§etick step §8<§7Ticks§8> §8-§7 Step n ticks or 1 forward
TICK_WARPING_HELP = §8/§etick warp §8<§7Ticks§8> §8<§7TPS§8> §8-§7 Warp n ticks or 1 forward
TICK_BOSSBAR = §7Skipped §e{0}§8/§7{1}
TPSLIMIT_GUI_ITEM_NAME = §eTPS limiter
TPSLIMIT_GUI_ITEM_LORE = §7Currently: §e{0}
@ -419,6 +484,7 @@ TPSLIMIT_ANVIL_GUI=New TPS limit
TPSLIMIT_CURRENT = §7Current TPS limit§8: §e{0}
TPSLIMIT_SET = §eSet TPS limit to {0}
TPSLIMIT_FROZEN = §eTPS frozen
# Trace
TRACE_RECORD=§aon
TRACE_HAS_TRACES=§ehas Traces
@ -442,6 +508,7 @@ TRACE_MESSAGE_SHARE_HOVER=§eClick to view
TRACE_MESSAGE_FOLLOW=§aYou are now following {0} Trace show state
TRACE_MESSAGE_FOLLOW_SELF=§cYou cannot follow yourself!
TRACE_MESSAGE_UNFOLLOW=§cYou are no longer following a Trace show state
TRACE_COMMAND_HELP_START=§8/§etrace start §8- §7Starts recording of all TNT-positions
TRACE_COMMAND_HELP_STOP=§8/§etrace stop §8- §7Stops the TNT-Tracer
TRACE_COMMAND_HELP_AUTO=§8/§etrace toggleauto §8- §7Automatic start of recording
@ -458,6 +525,7 @@ TRACE_COMMAND_HELP_ISOLATE=§8/§etrace isolate §8[§eTrace§8] §8[§eTNT§8]
TRACE_COMMAND_HELP_SHARE=§8/§etrace share §8- §7Share your current Trace show state with others
TRACE_COMMAND_HELP_FOLLOW=§8/§etrace follow §8[§ePlayer§8] §8- §7Follow a players Trace show state
TRACE_COMMAND_HELP_UNFOLLOW=§8/§etrace unfollow §8- §7Unfollow the Trace show state
TRACE_GUI_ITEM_NAME = §eTracer
TRACE_GUI_ITEM_LORE = §7Status§8: {0}
TRACE_GUI_NAME = Trace Gui
@ -467,12 +535,14 @@ TRACE_GUI_TRACE_ACTIVE_AUTO=§eAuto-Trace is active
TRACE_GUI_AUTO_TRACE_INACTIVE = §eacitvate Auto-Tracer
TRACE_GUI_AUTO_TRACE_ACTIVE = §edeactivate Auto-Tracer
TRACE_GUI_DELETE = §eDelete trace
# Loader
LOADER_SETUP = §eSetup
LOADER_RUNNING = §aRunning
LOADER_PAUSE = §7Pause
LOADER_END = §8Finished
LOADER_SINGLE=§aSingle
LOADER_MESSAGE_INTERACT=§e{0} added {1}
LOADER_MESSAGE_UNINTERACT=§eRemoved Element
LOADER_BUTTON_TNT=TNT
@ -490,6 +560,7 @@ LOADER_BUTTON_LECTERN=Lectern
LOADER_BUTTON_TRAPDOOR=Trapdoor
LOADER_BUTTON_DOOR=Door
LOADER_BUTTON_FENCEGATE=Fencegate
LOADER_HELP_SETUP=§8/§eloader setup §8- §7Starts recording actions
LOADER_SETUP_STOP_FIRST=§cPlease stop the current loader first!
LOADER_HELP_START=§8/§eloader start §8- §7Playback of previously recorded actions
@ -525,6 +596,7 @@ LOADER_GUI_SETTINGS_COPY=§7Copy
LOADER_GUI_SETTINGS_DELETE=§cDelete
LOADER_GUI_WAIT_TITLE=Settings
LOADER_GUI_WAIT_BACK=§8Back
LOADER_GUI_CLICK_TO_EDIT=§7Click to edit
LOADER_GUI_ITEM_NAME=§7{0}§8: §e{1}
LOADER_SETTING_NAME=§7{0}
@ -559,6 +631,7 @@ LOADER_INTERACTION_OPEN=Open
LOADER_INTERACTION_CLOSED=Closed
LOADER_INTERACTION_COMPARE=Compare
LOADER_INTERACTION_SUBTRACT=Subtract
# Loadtimer
LOADTIMER_HELP_OVERVIEW=§7Compete with your friends loading your cannon and get information about the cannon
LOADTIMER_HELP_START_1=§8/§eloadtimer start §8-§7 Starts the simple Loadtimer
@ -588,6 +661,7 @@ LOADTIMER_SUMARY_TIMES_LAST=§7\\/
LOADTIMER_SUMARY_STATS_HEAD=§7Cannon-Stats§8:
LOADTIMER_SUMARY_STATS_TNT=§7TNT: §e{0}
LOADTIMER_SUMARY_STATS_FREQ=§7Loading frequency: §e{0}/m§8, §7Shot frequency: §e{1}/m
# Observer
OBSERVER_HELP = §7Right-Click an Observer to get the Trace. Flame particles have to be enabled. The Particles will be shown in the block.
OBSERVER_HELP_ENABLE = §8/§eobserver enable §8-§7 Activates the Observer-Tracer
@ -599,6 +673,7 @@ OBSERVER_DISABLE=§7Observer trace stopped
OBSERVER_DELETE = §7Observer trace deleted
OBSERVER_RETRACE_DONE = §7Observer trace retraced
OBSERVER_RETRACE_NO_TRACE = §7No Observer trace to retrace
# Other
OTHER_ITEMS_TELEPORT_NAME=§eTeleporter
OTHER_ITEMS_TELEPORT_GUI_NAME=Teleport
@ -666,6 +741,7 @@ NIGHT_VISION_OFF=§eNightvision deactivated
NIGHT_VISION_ON=§eNightvision activated
NIGHT_VISION_ITEM_ON = §7Nightvision: §eActivated
NIGHT_VISION_ITEM_OFF = §7Nightvision: §eDeactivated
#Navigation Wand
NAVIGATION_WAND=§eNavigation Wand
NAVIGATION_WAND_LEFT_CLICK=§eLeft click: jump to location
@ -795,13 +871,16 @@ REGION_TNT_TB=§aTNT-Damage activated outside the building area
REGION_TNT_BUILD=§aTNT-Damage activated outside the testblok area
REGION_TNT_BUILD_DESTROY=§cAn explosion would have destroyed blocks in the building area
REGION_TNT_TB_DESTROY=§cAn explosion would have destroyed blocks in the testblock area
AFK_KICK_MESSAGE=§cNothing happened on this server for 15 minutes.
AFK_WARNING_MESSAGE=§cThis server will stop in one minute if you remain inactive
SKIN_HELP = §8/§eskin §8[§7Shortform§8] §8[§7Creator§8|§epublic§8] §8[§7Name...§8] §8- §7Creates the skin schematic. Use 'public' as creator to have no creator, then copy the message to YoyoNow by clicking
SKIN_NO_REGION=§7You are not in a region with a changealbe skin
SKIN_ALREADY_EXISTS=§cThis skin already exists like this
SKIN_MESSAGE=§7Skin created
SKIN_MESSAGE_HOVER=§eClick to copy for YoyoNow and send
# Panzern
PANZERN_HELP = §8/§epanzern §8[§7Block§8] §8[§7Slab§8] §8- §7Armor your WorldEdit selection
PANZERN_PREPARE1 = §71. Check, if barrels reach until border of armor.
@ -811,6 +890,7 @@ PANZERN_PREPARE4=§74. Standing in the region that is being armored can improve
PANZERN_NO_WORLDEDIT = §cYou have no WorldEdit selcetion
PANZERN_PROGRESS = §e{0} §7Blocks left, §e{1} §7Blocks per second, §e{2} §7block delta
PANZERN_DONE = §aDone
# Laufbau
LAUFBAU_HELP = §8/§elaufbau §8[§7smallest§8|§7blastresistant§8] §8- §7Build a barrel in your WorldEdit selection using the traces
LAUFBAU_HELP_SETTINGS = §8/§elaufbau settings §8- §7Opens the settings GUI
@ -822,13 +902,16 @@ LAUFBAU_STATE_PROCESSING_TRACES=Connnecting traces
LAUFBAU_STATE_CREATE_LAUF = Create Barrel
LAUFBAU_SIMPLE_PROGRESS = §e{0}§8: §e{1}§8/§e{2} §7Time left§8: §e{3}
LAUFBAU_DONE = §aDone
LAUFBAU_SETTINGS_GUI_NAME = §eLaufbau
LAUFBAU_SETTINGS_ACTIVE = §aActive
LAUFBAU_SETTINGS_INACTIVE = §cInactive
LAUFBAU_SETTINGS_MIXED = §e{0}§8/§e{1} §aActive
LAUFBAU_SETTINGS_GUI_BACK = §eBack
LAUFBAU_SETTINGS_TOGGLE = §eClick §8-§7 Toggle
LAUFBAU_SETTINGS_ADVANCED = §eMiddle-Click §8-§7 Advanced settings
LAUFBAU_BLOCK_COBWEB = §eCobweb
LAUFBAU_BLOCK_GRASS_PATH = §eGrass Path
LAUFBAU_BLOCK_SOUL_SAND = §eSoul Sand
@ -871,31 +954,39 @@ LAUFBAU_BLOCK_AZALEA=§eAzalea
LAUFBAU_BLOCK_CANDLE = §eCandle
LAUFBAU_BLOCK_CANDLE_CAKE = §eCake with Candle
LAUFBAU_BLOCK_LECTERN = §eLectern
LAUFBAU_FACING_NORTH = §8-§7 Facing North
LAUFBAU_FACING_SOUTH = §8-§7 Facing South
LAUFBAU_FACING_WEST = §8-§7 Facing West
LAUFBAU_FACING_EAST = §8-§7 Facing East
LAUFBAU_FACING_UP = §8-§7 Facing Up
LAUFBAU_FACING_DOWN = §8-§7 Facing Down
LAUFBAU_COUNT_1 = §8-§7 Count 1
LAUFBAU_COUNT_2 = §8-§7 Count 2
LAUFBAU_COUNT_3 = §8-§7 Count 3
LAUFBAU_COUNT_4 = §8-§7 Count 4
LAUFBAU_LAYERS_8 = §8-§7 Layers 8
LAUFBAU_LAYERS_7 = §8-§7 Layers 7
LAUFBAU_LAYERS_6 = §8-§7 Layers 6
LAUFBAU_LAYERS_3 = §8-§7 Layers 3
LAUFBAU_LAYERS_2 = §8-§7 Layers 2
LAUFBAU_TYPE_BOTTOM = §8-§7 Type bottom
LAUFBAU_TYPE_TOP = §8-§7 Type top
LAUFBAU_HALF_BOTTOM = §8-§7 Half bottom
LAUFBAU_HALF_TOP = §8-§7 Half top
LAUFBAU_OPEN = §8-§7 Opened
LAUFBAU_ATTACHMENT_CEILING = §8-§7 Attachment Ceiling
LAUFBAU_ATTACHMENT_FLOOR = §8-§7 Attachment Floor
LAUFBAU_ATTACHMENT_DOUBLE_WALL = §8-§7 Attachment double Wall
LAUFBAU_ATTACHMENT_SINGLE_WALL = §8-§7 Attachment single Wall
LAUFBAU_ATTACHMENT_WALL = §8-§7 Attachment Wall
LAUFBAU_CONNECTION_FLOOR = §8-§7 Connection Floor
LAUFBAU_CONNECTION_NORTH = §8-§7 Connection North
LAUFBAU_CONNECTION_SOUTH = §8-§7 Connection South
@ -903,12 +994,16 @@ LAUFBAU_CONNECTION_EAST=§8-§7 Connection East
LAUFBAU_CONNECTION_WEST = §8-§7 Connection West
LAUFBAU_CONNECTION_DOWN = §8-§7 Connection Bottom
LAUFBAU_CONNECTION_UP = §8-§7 Connection Top
LAUFBAU_HANGING = §8-§7 hanging
LAUFBAU_SHAPE_STRAIGHT = §8-§7 Shape straight
LAUFBAU_SHAPE_OUTER_LEFT = §8-§7 Shape outer links
LAUFBAU_SHAPE_INNER_LEFT = §8-§7 Shape inner left
LAUFBAU_TILT_NONE = §8-§7 Tilt none
LAUFBAU_TILT_PARTIAL = §8-§7 Tilt partial
# UTILS
SELECT_HELP = §8/§eselect §8[§7RegionsTyp§8] §8- §7Select a region type
SELECT_EXTENSION_HELP = §8/§eselect §8[§7RegionsTyp§8] §8[§7Extension§8] §8- §7Select a region type with or without extension
@ -916,9 +1011,11 @@ SELECT_GLOBAL_REGION=§cThe global region cannot be selected
SELECT_NO_TYPE = §cThis region has no {0}
SELECT_NO_EXTENSION = §cThis region has no extension
SELECT_MESSAGE = §7WorldEdit selection set to {0}, {1}, {2} and {3}, {4}, {5}
SKULL_HELP = §8/§eskull §8[§eplayer§8] §8-§7 Receive a player head
SKULL_INVALID = §cInvalid player name
SKULL_ITEM = §e{0}§8s Head
SPEED_HELP = §8/§espeed §8[§71§8-§710§8|§edefault§8] §8-§7 Set your flight and walking speed.
SPEED_CURRENT = §7Current speed§8: §e{0}
SPEED_TOO_SMALL = §c{0} is too small
@ -926,9 +1023,11 @@ SPEED_TOO_HIGH=§c{0} is too big
SPEED_ITEM = §eSpeed
SPEED_ITEM_LORE = §7Currently: §e
SPEED_TAB_NAME = Input speed
WORLDEDIT_WAND = WorldEdit Wand
WORLDEDIT_LEFTCLICK = Left click: select pos #1
WORLDEDIT_RIGHTCLICK = Right click: select pos #2
TNT_CLICK_HEADER = §8---=== §eTNT §8===---
TNT_CLICK_ORDER = §eEntity Order§8: §e{0}
TNT_CLICK_FUSE_TIME = §eFuseTime§8: §e{0}
@ -940,6 +1039,7 @@ TNT_CLICK_VELOCITY_Y=§7Velocity §eY§8: §e{0}
TNT_CLICK_VELOCITY_Z = §7Velocity §eZ§8: §e{0}
TNT_CLICK_COUNT = §7Count §8: §e{0}
TNT_CLICK_ISOLATE = §eIsolate
SELECT_ITEM_CHOOSE_EXTENSION = Choose extension
SELECT_ITEM_CHOOSE_SELECTION = Choose selection
SELECT_ITEM_NORMAL_EXTENSION = §eNormal
@ -950,12 +1050,15 @@ SELECT_ITEM_RIGHT_CLICK=§7Right-Click to change
SELECT_ITEM_BAURAHMEN=§eBuild area
SELECT_ITEM_BAUPLATTFORM=§eBuild platform
SELECT_ITEM_TESTBLOCK=§eDummy
CHESTFILLER_FILLED = §eChest filled
CHESTFILLER_COUNT = §7{0}§8: §e§l{1}
PISTON_HELP_1 = §7Right click on piston with a slime ball to calculate the moved blocks.
PISTON_HELP_2 = §7Count is red, if one unmoveable block is present.
PISTON_HELP_3 = §7Count is yellow, if too many blocks are present.
PISTON_INFO = §7Moved Blocks {0}{1}§8/§712
# Warp
WARP_LOC_X = §7X§8: §e{0}
WARP_LOC_Y = §7Y§8: §e{0}
@ -979,22 +1082,30 @@ WARP_HELP_INFO=§8/§ewarp info §8[§7name§8] §8- §7Information regarding on
WARP_HELP_DELETE=§8/§ewarp delete §8[§7name§8] §8- §7Delete a warp
WARP_HELP_GUI=§8/§ewarp gui §8- §7Open the Warp-GUI
WARP_HELP_LIST=§8/§ewarp list §8- §7List all warps
# WORLD
STOP_HELP = §8/§estop §8- §7Stops the server
STOP_MESSAGE = §eServer is stopping
KICKALL_HELP = §8/§ekickall §8- §7Kick all players from the server except the owner
# Techhider
TECHHIDER_HELP = §8/§etechhider §8- §7Toggle Techhider
TECHHIDER_GLOBAL = §cNo techhider in global region
TECHHIDER_ON = §aTechhider activated
TECHHIDER_OFF = §cTechhider deactivated
# XRAY
XRAY_HELP = §8/§exray §8- §7Toggle Xray
XRAY_GLOBAL = §cNo xray in global region
XRAY_ON = §aXray activated
XRAY_OFF = §cXray deactivated
# WorldEdit
COLORREPLACE_HELP = §8//§ecolorreplace §8[§7color§8] §8[§7color§8] §8- §7Replace all blocks of one color with another
TYPEREPLACE_HELP=§8//§etyreplace §8[§7type§8] §8[§7type§8] §8- §7Replace all blocks of one type with another
TYPEREPLACE_HELP = §8//§etypereplace §8[§7type§8] §8[§7type§8] §8- §7Replace all blocks of one type with another
# Schematic
SCHEMATIC_GUI_ITEM=§eSchematics

Datei anzeigen

@ -16,17 +16,21 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PREFIX = §eBau§8System§8»
TIME = HH:mm:ss
DATE=........
COMMAND_HELP_HEAD=§7---=== (§e{0}§7) ===---
ONLY_SCHEMS=§cDu kannst hier keinen Ordner angeben
PAGE_LIST=§e Seite ({0}/{1}) »»
LIST_PREVIOUS_PAGE=§eVorherige Seite
LIST_NEXT_PAGE=§eNächste Seite
# Permission
NO_PERMISSION = Du darfst dies hier nicht nutzen
SPECTATOR = §fZuschauer
# Scoreboard
SCOREBOARD_TIME = Uhrzeit
SCOREBOARD_REGION = Region
@ -34,13 +38,17 @@ SCOREBOARD_TRACE=Trace
SCOREBOARD_LOADER = Loader
SCOREBOARD_TPS = TPS
SCOREBOARD_TPS_FROZEN = §eEingefroren
SCOREBOARD_TRACE_TICKS = Ticks
SCOREBOARD_TECHHIDER = TechHider§8: §aAn
SCOREBOARD_XRAY = XRay§8: §aAn
SCOREBOARD_LOCK_TEAM = Bau Lock§8: §eTeam
SCOREBOARD_LOCK_TEAM_AND_SERVERTEAM = Bau Lock§8: §e(Server-) Team
SCOREBOARD_LOCK_SERVERTEAM = Bau Lock§8: §eServerteam
SCOREBOARD_LOCK_NOBODY = Bau Lock§8: §cNiemand
# Flags
FLAG_COLOR = Color
FLAG_TNT = TNT
@ -48,18 +56,26 @@ FLAG_FIRE=Fire
FLAG_FREEZE = Freeze
FLAG_PROTECT = Protect
FLAG_ITEMS = Items
FLAG_TESTBLOCK = Testblock
FLAG_CHANGED = Verändert
FLAG_FIRE_ALLOW = §can
FLAG_FIRE_DENY = §aaus
FLAG_FREEZE_ACTIVE = §aan
FLAG_FREEZE_INACTIVE = §caus
FLAG_PROTECT_ACTIVE = §aan
FLAG_PROTECT_INACTIVE = §caus
FLAG_TNT_ALLOW = §aan
FLAG_TNT_DENY = §caus
FLAG_TNT_ONLY_TB = §7Kein §eBaurahmen
FLAG_TNT_ONLY_BUILD = §7Kein §eTestblock
FLAG_ITEMS_ACTIVE = §aan
FLAG_ITEMS_INACTIVE = §caus
FLAG_COLOR_WHITE = §fWeiß
FLAG_COLOR_ORANGE = §6Orange
FLAG_COLOR_MAGENTA = §dMagenta
@ -78,17 +94,28 @@ FLAG_COLOR_BROWN=§eBraun
FLAG_COLOR_GREEN = §2Grün
FLAG_COLOR_RED = §cRot
FLAG_COLOR_BLACK = §0Schwarz
FLAG_TESTBLOCK_NO_VALUE = §eKein Wert
FLAG_TESTBLOCK_NORTH = §eNorden
FLAG_TESTBLOCK_SOUTH = §eSüden
FLAG_CHANGED_NO_CHANGE = §cNein
FLAG_CHANGED_HAS_CHANGE = §aJa
# Region
REGION_TYPE_NORMAL = Normal
REGION_TYPE_BUILD = Baubereich
REGION_TYPE_ONLY_TB = Testblock
# AttributesCopy
ATTRIBUTES_CANT_COPY = §cDu musst den Item Type in der Hand halten wo du auch drauf guckst.
ATTRIBUTES_NO_COPY = §cKeine Attribute kopiert.
ATTRIBUTES_COPIED = §eAttribute kopiert.
ATTRIBUTE_REMOVE_ALL = §eAlle Attribute entfernt.
ATTRIBUTE_REMOVE_SINGLE = §eAttribut §7{0}§e entfernt.
ATTRIBUTE_REMOVE_NOT_FOUND = §cAttribut nicht gefunden
# AutoStart
AUTOSTART_COMMAND_HELP = §8/§etimer §8- §7Legt den AutostartTimer ins Inventar
AUTOSTART_ITEM_NAME = §eAutostartTimer
@ -99,6 +126,7 @@ AUTOSTART_MESSAGE_START=§eAutostartTimer gestartet
AUTOSTART_MESSAGE_RESULT1 = §eZeit §7bis zur §eExplosion §7am Gegner§8:§e {0}§7 in game ticks
AUTOSTART_MESSAGE_RESULT2 = §7Zeitdifferenz in §egame ticks §7bis {0} Sekunden§8:§e {1}
AUTOSTART_MESSAGE_RESULT3 = §7Positiv, wenn zu wenig, negativ wenn zu viel
# Backup
BACKUP_HELP_CREATE=§8/§ebackup create §8- §7Erstelle ein Backup der Region
BACKUP_HELP_LOAD=§8/§ebackup load §8[§7BackupName§8] §8- §7 Lade ein Backup
@ -115,8 +143,10 @@ BACKUP_LOAD=§7Backup geladen
BACKUP_INV_NAME=§eBackup
BACKUP_ITEM_NAME=§eBackup §7von §e{0}
BACKUP_LORE=§eKlicken zum Laden
# Bau
BAU_COMMAND_HELP_INFO = §8/§ebau info §8- §7Alias für §8/§ebauinfo
BAU_INFO_ITEM_NAME = §eBau-Management
## This is used in BauInfoBauGuiItem.java
BAU_INFO_ITEM_LORE_TNT = §7TNT§8: §e{0}
@ -125,11 +155,13 @@ BAU_INFO_ITEM_LORE_DAMAGE=§7Damage§8: §e{0}
BAU_INFO_ITEM_LORE_FIRE = §7Feuer§8: §e{0}
BAU_INFO_ITEM_LORE_COLOR = §7Farbe§8: §e{0}
BAU_INFO_ITEM_LORE_PROTECT = §7Protect§8: §e{0}
BAU_INFO_COMMAND_HELP = §8/§ebauinfo §8- §7Gibt Informationen über den Bau
BAU_INFO_COMMAND_OWNER = §7Besitzer§8: §e{0}
BAU_INFO_COMMAND_MEMBER=§7{0} §8[§7{1}§8]§8: §e{2}
BAU_INFO_COMMAND_MEMBER = §7Mitglieder §8[§7{0}§8]§8: §e
BAU_INFO_COMMAND_FLAG = §7{0}§8: §7{1}
BAU_INFO_COMMAND_TPS = §7TPS§8:§e
# Countingwand
COUNTINGWAND_COMMAND_HELP = §8/§ecountingwand §8- §7Gibt dir ein CountingWand
COUNTINGWAND_ITEM_NAME = §eZollstock
@ -139,11 +171,13 @@ COUNTINGWAND_MESSAGE_RCLICK=§7Erste Position bei: §8[§7{0}§8, §7{1}§8, §7
COUNTINGWAND_MESSAGE_LCLICK = §7Zweite Position bei: §8[§7{0}§8, §7{1}§8, §7{2}§8] ({3}§8) ({4}§8)
COUNTINGWAND_MESSAGE_VOLUME = §e{0}
COUNTINGWAND_MESSAGE_DIMENSION = §e{0}§8, §e{1}§8, §e{2}
# Design Endstone
DESIGN_ENDSTONE_COMMAND_HELP = §8/§edesign endstone §8- §7Zeige End Stone im Design
DESIGN_ENDSTONE_REGION_ERROR = §cDiese Region hat keinen Baubereich
DESIGN_ENDSTONE_ENABLE = §aEndstone im Design ist angezeigt
DESIGN_ENDSTONE_DISABLE = §cEndstone im Design ist versteckt
# Detonator
DETONATOR_LOC_REMOVE = §e{0} entfernt
DETONATOR_LOC_ADD = §e{0} hinzugefügt
@ -193,12 +227,14 @@ GUI_EDITOR_ITEM_TRASH_LORE=§7Item hier rein Legen
GUI_EDITOR_ITEM_MORE=§eMehr Items
GUI_EDITOR_ITEM_CLOSE=§eSchließen
GUI_EDITOR_TITLE_MORE=Item auswählen
# Script
## CustomScript
SCRIPT_HOTKEY_ITEM_NAME = §7Hotkey§8: §e{0}
SCRIPT_EVENT_ITEM_NAME = §7Event§8: §e{0}
SCRIPT_COMMAND_ITEM_NAME = §7Befehl§8: §e/{0}
SCRIPT_ERROR_ONLY_IN_GLOBAL=§cDieses Skript kann nur als globales Skript ausgeführt werden
## Script Menu GUI
SCRIPT_MENU_GUI_ITEM_LORE_1 = §7Klicke zum rausnehmen
SCRIPT_MENU_GUI_ITEM_LORE_2 = §7Shiftklick zum kopieren
@ -208,6 +244,7 @@ SCRIPT_MENU_GUI_NAME=§eSkript-Menü
SCRIPT_MENU_GUI_ITEM_ADD_NAME = §eHinzufügen
SCRIPT_MENU_GUI_ITEM_ADD_LORE = §7Klicke mit einem Buch zum hinzufügen
SCRIPT_DEPRECATED=§cDie Funktion §e{0}§c ist veraltet und wird demnächst entfernt. Bitte benutze §e{1}§c.
# Shield Printing
SHIELD_PRINTING_HELP_START = §8/§eshieldprinting start §8- §7Starte das Schild drucken
SHIELD_PRINTING_HELP_COPY = §8/§eshieldprinting copy §8- §7Kopiert die Schilder
@ -220,10 +257,12 @@ SHIELD_PRINTING_HELP_STEP_4=§84. §7Editiere die Schilde wenn nötig
SHIELD_PRINTING_HELP_STEP_5 = §85. §7Kopiere das gedruckte mit §8/§eshieldprinting copy
SHIELD_PRINTING_HELP_STEP_6 = §86. §7Füge die originale Schematic wieder ein
SHIELD_PRINTING_HELP_STEP_7 = §87. §7Wende das gedruckte mit §8/§eshieldprinting apply§7 an
SHIELD_PRINTING_NO_REGION = §cDu bist in keiner Region.
SHIELD_PRINTING_NOT_RUNNING = §cShield printing ist nicht aktiv.
SHIELD_PRINTING_BOSSBAR = §fBewegungen: {0}
SHIELD_PRINTING_BOSSBAR_COPIED = §fBewegungen: {0} Kopiert: {1}
SHIELD_PRINTING_GUI_NAME = §7Schild Drucken
SHIELD_PRINTING_GUI_APPLY = §aAnwenden
SHIELD_PRINTING_GUI_STATE_PREVIOUS = §7R-Click§8: §7Vorherige
@ -241,12 +280,15 @@ SHIELD_PRINTING_GUI_STATE_OPENABLE=§7{0} §fGeöffnet
SHIELD_PRINTING_GUI_STATE_PISTON = §7{0} §fAusgefahren
SHIELD_PRINTING_GUI_STATE_POWERABLE = §7{0} §fAktiviert
SHIELD_PRINTING_GUI_STATE_WALL = §7{0} §fWand Verbindungen
SHIELD_PRINTING_START = §aShield printing wurde gestartet.
SHIELD_PRINTING_COPY = §aSchilde wurden kopiert.
SHIELD_PRINTING_APPLY = §aSchilde wurden angewendet.
SHIELD_PRINTING_STOP = §aShield printing wurde gestoppt.
# Unsign Book
UNSIGN_HELP=§8/§eunsign §8- §7Mache ein Buch beschreibbar
# Simulator
SIMULATOR_HELP = §8/§esimulator §8-§7 Legt dir den Simulatorstab ins Inventar
SIMULATOR_CREATE_HELP = §8/§esimulator create §8[§7name§8] §8-§7 Erstelle einen neuen Simulator
@ -254,7 +296,9 @@ SIMULATOR_CHANGE_HELP=§8/§esimulator change §8-§7 Wechsel zu einem anderen S
SIMULATOR_DELETE_HELP = §8/§esimulator delete §8[§7name§8] §8-§7 Löscht den Simulator
SIMULATOR_START_HELP = §8/§esimulator start §8[§7name§8] §8-§7 Startet die Simulation
SIMULATOR_COPY_HELP = §8/§esimulator copy §8[§7to-copy§8] §8[§7name§8] §8-§7 Kopiert einen Simulator
SIMULATOR_GUI_ITEM_NAME = §eTNT Simulator
SIMULATOR_NO_SIM_IN_HAND = §cKein Simulator Item gewählt
SIMULATOR_GUI_SELECT_SIM = Simulator wählen
SIMULATOR_GUI_CREATE_SIM = §eSimulator erstellen
@ -268,7 +312,9 @@ SIMULATOR_EDIT_LOCATION=§7Editiere Positionen
SIMULATOR_EDIT_PROPERTIES = §7Editiere Eigenschaften
SIMULATOR_EDIT_OTHER = §7Editiere Andere
SIMULATOR_EDIT_GROUP = §7Editiere Gruppe
SIMULATOR_EDIT_GROUP_MENU = §eEditiere Gruppe
SIMULATOR_WAND_NAME = §eKanonensimulator
SIMULATOR_WAND_NAME_SELECTED = §7Kanonensimulator §8- §e{0}
SIMULATOR_WAND_LORE_1 = §eRechtsklick §8- §7Füge eine Position hinzu
@ -276,7 +322,9 @@ SIMULATOR_WAND_LORE_2=§eSneaken §8- §7Freie Bewegung
SIMULATOR_WAND_LORE_3 = §eLinksklick §8- §7Starte die Simulation
SIMULATOR_WAND_LORE_4 = §eRechtsklick Luft §8- §7Öffne die GUI
SIMULATOR_WAND_LORE_5 = §eDoppel Shift §8- §7Wechsel zwischen TNT und Redstone Block
SIMULATOR_REGION_FROZEN = §cSimulator kann nicht in eingefrorenen Regionen genutzt werden
## Other
SIMULATOR_PLUS_ONE = §7+1
SIMULATOR_PLUS_PIXEL_SHIFT = §eShift §7Click für §e+0,0625
@ -288,8 +336,11 @@ SIMULATOR_POSITION_X=§7x-Position
SIMULATOR_POSITION_Y = §7y-Position
SIMULATOR_POSITION_Z = §7z-Position
SIMULATOR_BACK = §eZurück
SIMULATOR_GUI_TOTAL_TNT = §7Gesamt TNT§8: §e{0}
SIMULATOR_DELETED = §cSimulator gelöscht
## GUI
SIMULATOR_POSITION_EDIT = §ePosition bearbeiten
SIMULATOR_POSITION_ADD = §ePosition setzen
@ -303,12 +354,15 @@ SIMULATOR_GUI_NAME=Kanonensimulator
SIMULATOR_GUI_DELETE = §cTNT löschen
SIMULATOR_GUI_AUTO_TRACE = §eAutoTrace§8: §7{0}
SIMULATOR_GUI_MOVE_ALL = §eAlle Verschieben
SIMULATOR_ALIGNMENT_CENTER = §7Verschiebung§8: §eMitte
SIMULATOR_ALIGNMENT_POSITIVE_X = §7Verschiebung§8: §ePositive X
SIMULATOR_ALIGNMENT_NEGATIVE_X = §7Verschiebung§8: §eNegative X
SIMULATOR_ALIGNMENT_POSITIVE_Z = §7Verschiebung§8: §ePositive Z
SIMULATOR_ALIGNMENT_NEGATIVE_Z = §7Verschiebung§8: §eNegative Z
SIMULATOR_MOVE_ALL_GUI_NAME = TNT Verschieben
SIMULATOR_TNT_SPAWN_GUI_NAME = TNT konfigurieren {0}
SIMULATOR_TNT_SPAWN_LORE = §eZum Ändern klicken
SIMULATOR_TNT_SPAWN_COUNT = §7TNT-Anzahl §8- §e{0}
@ -340,16 +394,19 @@ SIMULATOR_TNT_SPAWN_ADD_IGNITION_PHASE=§eZündphase hinzufügen
SIMULATOR_TNT_SPAWN_ADD_TNT = §eTNT hinzufügen
SIMULATOR_TNT_SPAWN_REMOVE_TNT = §cEntfernen
SIMULATOR_TNT_SPAWN_POSITION_ANVIL_GUI_NAME = Position
# SmartPlace
SMART_PLACE_HELP = §8/§esmartplace §8-§7 Toggled SmartPlace
SMART_PLACE_INFO = §7Plaziert rotierbare Blöcke beim §esneaken§7 von dir §eweg§7.
SMART_PLACE_ENABLE = §aSmartPlace aktiviert
SMART_PLACE_DISABLE = §cSmartPlace deaktiviert
# InventoryFiller
INVENTORY_FILL_HELP = §8/§einventoryfill §8- §7Toggled InventoryFill
INVENTORY_FILL_INFO = §7Hilft dir, Behälter zu füllen, indem du sie beim sneaken ansiehst und den Gegenstand fallen lässt. Oder scrolle einfach auf einen Behälter, um die Menge des gehaltenen Gegenstandes darin zu ändern.
INVENTORY_FILL_ENABLE = §aInventoryFiller activated
INVENTORY_FILL_DISABLE = §cInventoryFiller deactivated
# Killchecker
KILLCHECKER_HELP_ENABLE = §8/§ekillchecker enable §8- §7Aktiviert Killchecker / Berechnet kills neu
KILLCHECKER_HELP_DISABLE = §8/§ekillchecker disable §8- §7Deaktiviert Killchecker
@ -358,6 +415,7 @@ KILLCHECKER_INFO2=§7Nur farbige Blöcke wie Wolle, Terracotta, Stained Glass un
KILLCHECKER_ENABLE = §aKillchecker aktiviert
KILLCHECKER_DISABLE = §cKillchecker deaktiviert
KILLCHECKER_BOSSBAR = §e§l{0} §7(§e{1}%§7) §e§l{2}§7 Kanonnen
# BlockCounter
BLOCK_COUNTER_HELP_TOGGLE = §8/§eblockcounter §8- §7Wechsel zwischen an und aus
BLOCK_COUNTER_HELP_ENABLE = §8/§eblockcounter enable §8- §7Schalte den BlockCounter an
@ -366,14 +424,17 @@ BLOCK_COUNTER_MESSAGE=§7Schaden §8> §e{0} §7Blöcke §e{1} §7TNT §e{2}
BLOCK_COUNTER_MESSAGE_SECOND = §7Schaden §8> §e{0} §7Blöcke §e{1} §7TNT §e{2} §7Blöcke/TNT §e{3} §7Blöcke/s
BLOCK_COUNTER_ENABLE = §7BlockCounter angemacht
BLOCK_COUNTER_DISABLE = §7BlockCounter ausgemacht
# DepthCounter
DEPTH_COUNTER_MESSAGE = §7Tiefe §8> §7
# TPSLimit
TPSLIMIT_FREEZE_HELP = §8/§etpslimit 0 §8-§7 Friere TPS ein
TPSLIMIT_LIMIT_HELP = §8/§etpslimit §8[§720>x>0.5§8] §8-§7 Verlangsame die TPS
TPSLIMIT_WARP_HELP = §8/§etpslimit §8[§7x>20§8] §8-§7 Beschleunige die TPS
TPSLIMIT_DEFAULT_HELP = §8/§etpslimit default §8-§7 Setze die TPS auf 20
TPSLIMIT_HELP = §8/§etpslimit §8-§7 Zeige die jetzige TPS
TICK_FREEZE_HELP = §8/§etick rate 0 §8-§7 Friere TPS ein
TICK_FREEZE_HELP_2 = §8/§etick freeze §8-§7 Friere TPS ein
TICK_UNFREEZE_HELP = §8/§etick unfreeze §8-§7 Setze die TPS auf 20
@ -381,8 +442,10 @@ TICK_LIMIT_HELP=§8/§etick rate §8[§720>x>0.5§8] §8-§7 Verlangsame die TPS
TICK_WARP_HELP = §8/§etick rate §8[§7x>20§8] §8-§7 Beschleunige die TPS
TICK_DEFAULT_HELP = §8/§etick rate default §8-§7 Setze die TPS auf 20
TICK_HELP = §8/§etick rate §8-§7 Zeige die jetzige TPS
TICK_STEPPING_HELP = §8/§etick step §8<§7Ticks§8> §8-§7 Spule n ticks oder 1 vor
TICK_WARPING_HELP = §8/§etick warp §8<§7Ticks§8> §8<§7TPS§8> §8-§7 Warpe n ticks oder 1 vor
TICK_BOSSBAR = §e{0}§8/§7{1} gesprungen
TPSLIMIT_GUI_ITEM_NAME = §eTPS Limiter
TPSLIMIT_GUI_ITEM_LORE = §7Aktuell: §e{0}
@ -390,6 +453,7 @@ TPSLIMIT_ANVIL_GUI=Neues TPS Limit
TPSLIMIT_CURRENT = §7Jetziges TPS limit§8: §e{0}
TPSLIMIT_SET = §eTPS limit auf {0} gesetzt.
TPSLIMIT_FROZEN = §eTPS eingefroren.
# Trace
TRACE_RECORD=§aan
TRACE_HAS_TRACES=§ehat Traces
@ -409,6 +473,7 @@ TRACE_MESSAGE_FOLLOW_SELF=§cSie können sich selbst nicht folgen!
TRACE_MESSAGE_UNFOLLOW=§cSie folgen nicht mehr dem Status einer Trace-Show
TRACE_MESSAGE_SHOW_TO_SMALLER=§cBis muss größer als von sein
TRACE_MESSAGE_ISOLATE=§eTNT Positionen wurden isoliert
TRACE_COMMAND_HELP_SHARE=§8/§etrace share §8- §7Teilt den aktuellen Trace-Show-Status mit anderen
TRACE_COMMAND_HELP_FOLLOW=§8/§etrace follow §8[§ePlayer§8] §8- §7Verfolgen eines Spielers Status anzeigen
TRACE_COMMAND_HELP_UNFOLLOW=§8/§etrace unfollow §8- §7Den Status der Trace-Anzeige aufheben
@ -422,6 +487,7 @@ TRACE_COMMAND_HELP_SHOW_FROM_TO=§8/§etrace show §8(§etime§8|§7fuse§8) §7
TRACE_COMMAND_HELP_HIDE=§8/§etrace hide §8- §7Versteckt alle TNT-Positionen
TRACE_COMMAND_HELP_DELETE=§8/§etrace delete §8- §7Löscht alle TNT-Positionen
TRACE_COMMAND_HELP_ISOLATE=§8/§etrace isolate §8[§eTrace§8] §8[§eTNT§8] §8- §7Isoliert spezifische TNTs des Traces
TRACE_GUI_ITEM_NAME = §eTracer
TRACE_GUI_ITEM_LORE = §7Status§8: {0}
TRACE_GUI_NAME = Tracer Gui
@ -431,12 +497,14 @@ TRACE_GUI_TRACE_ACTIVE_AUTO=§eAuto-Trace ist Aktiv
TRACE_GUI_AUTO_TRACE_INACTIVE = §eAuto-Tracer Aktivieren
TRACE_GUI_AUTO_TRACE_ACTIVE = §eAuto-Tracer Deaktivieren
TRACE_GUI_DELETE = §eTrace Löschen
# Loader
LOADER_SETUP = §eEinrichtung
LOADER_RUNNING = §aLaufend
LOADER_PAUSE = §7Pausiert
LOADER_END = §8Beendet
LOADER_SINGLE=§aEinmal
LOADER_MESSAGE_INTERACT = §e{0} hinzugefügt {1}
LOADER_BUTTON_TNT = TNT
LOADER_BUTTON_SWITCH=Hebel
@ -452,12 +520,13 @@ LOADER_BUTTON_REPEATER=Repeater
LOADER_BUTTON_LECTERN=Lectern
LOADER_BUTTON_TRAPDOOR=Trapdoor
LOADER_BUTTON_DOOR=Door
LOADER_BUTTON_FENCEGATE=Fencegate
LOADER_BUTTON_FENCEGATE=Fencegatea
LOADER_HELP_SETUP=§8/§eloader setup §8- §7Startet die Aufnahme der Aktionen
LOADER_SETUP_STOP_FIRST=§cBitte stoppe zuerst den Loader
LOADER_HELP_START=§8/§eloader start §8- §7Spielt die zuvor aufgenommenen Aktionen ab
LOADER_HELP_SINGLE=§8/§eloader single §8- §7Spielt die zuvor aufgenommenen Aktionen einmal ab
LOADER_HELP_PAUSE=§8/§7loader pause §8- §7Pausiert das Abspielen
LOADER_HELP_SINGLE=§8/§7loader single - §7Einzelnes Abspielen von zuvor aufgezeichneten Aktionen
LOADER_HELP_GUI=§8/§7loader settings §8- §7Zeigt die Einstellungen an
LOADER_HELP_STOP=§8/§eloader stop §8- §7Stoppt die Aufnahme bzw. das Abspielen
LOADER_HELP_WAIT=§8/§7loader wait §8[§7Ticks§8] - §7Setzt die Wartezeit zwischen Schüssen
@ -467,11 +536,11 @@ LOADER_NEW=§7Belade und feuer einmal die Kanone ab, um den Loader zu initialisi
LOADER_HOW_TO_START=§7Führe dann /§eloader start§7 um den Loader zu starten
LOADER_ACTIVE=§7Der Loader ist nun aktiviert.
LOADER_STOP=§7Der Loader ist nun gestoppt.
LOADER_SINGLE_CMD=§7Der Loader spielt nun einmal ab.
LOADER_PAUSED=§7Der Loader ist nun pausiert.
LOADER_SMALL_TIME=§cDie Wartezeit ist zu klein
LOADER_NEW_TIME=§7Die Schusswartezeit ist nun: {0}
LOADER_NEW_LOAD_TIME=§7Die Setzwartezeit ist nun: {0}
LOADER_NOTHING_RECORDED=§cEs wurden keine Elemente aufgenommen!
LOADER_GUI_TITLE=Loader Einstellungen
LOADER_GUI_SHOW_ALL=Zeige alles
@ -488,6 +557,7 @@ LOADER_GUI_SETTINGS_COPY=§7Kopieren
LOADER_GUI_SETTINGS_DELETE=§cLöschen
LOADER_GUI_WAIT_TITLE=Wartezeit
LOADER_GUI_WAIT_BACK=§8Zurück
LOADER_GUI_CLICK_TO_EDIT=§7Klicke zum editieren
LOADER_GUI_ITEM_NAME=§7{0}§8: §e{1}
LOADER_SETTING_NAME=§7{0}
@ -522,6 +592,7 @@ LOADER_INTERACTION_OPEN=Geöffnet
LOADER_INTERACTION_CLOSED=Geschlossen
LOADER_INTERACTION_COMPARE=Vergleichen
LOADER_INTERACTION_SUBTRACT=Subtrahieren
# Loadtimer
LOADTIMER_HELP_OVERVIEW=§7Messe dich und deine Freunde beim Beladen einer Kanone und bekomme informationen über die Kanone
LOADTIMER_HELP_START_1=§8/§eloadtimer start §8-§7 Startet den einfachen Loadtimer
@ -551,6 +622,7 @@ LOADTIMER_SUMARY_TIMES_LAST=§7\\/
LOADTIMER_SUMARY_STATS_HEAD=§7Kanonen-Stats§8:
LOADTIMER_SUMARY_STATS_TNT=§7TNT: §e{0}
LOADTIMER_SUMARY_STATS_FREQ=§7Belade Frequenz: §e{0}/m§8, §7Schuss Frequenz: §e{1}/m
# Observer
OBSERVER_HELP = §7Rechts-Klicke einen Observer um den Trace zu bekommen. Hierfür müssen Flammenpartikel an sein. Die Partikel werden im Block angezeigt.
OBSERVER_HELP_ENABLE = §8/§eobserver enable §8-§7 Aktiviere den Observer Tracer
@ -562,6 +634,7 @@ OBSERVER_DISABLE=§7Observer Trace gestoppt
OBSERVER_DELETE = §7Observer Trace gelöscht
OBSERVER_RETRACE_DONE = §7Observer Trace neu berechnet
OBSERVER_RETRACE_NO_TRACE = §7Kein Observer Trace zum neu berechnen
# Other
OTHER_ITEMS_TELEPORT_NAME=§eTeleporter
OTHER_ITEMS_TELEPORT_GUI_NAME=Teleportieren
@ -626,6 +699,7 @@ NIGHT_VISION_OFF=§eNightvision deaktiviert
NIGHT_VISION_ON=§eNightvision aktiviert
NIGHT_VISION_ITEM_ON = §7Nightvision: §eAktiviert
NIGHT_VISION_ITEM_OFF = §7Nightvision: §eDeaktiviert
#Navigation Wand
NAVIGATION_WAND=§eNavigation Wand
NAVIGATION_WAND_LEFT_CLICK=§eLeft click: jump to location
@ -754,11 +828,13 @@ REGION_TNT_BUILD_DESTROY=§cEine Explosion hätte Blöcke im Baubereich zerstör
REGION_TNT_TB_DESTROY=§cEine Explosion hätte Blöcke im Testblockbereich zerstört
AFK_KICK_MESSAGE=§cAuf diesem Server ist seit 15 Minuten nichts passiert.
AFK_WARNING_MESSAGE=§cDieser Server wird bei weiterer Inaktivität in einer Minute gestoppt
SKIN_HELP = §8/§eskin §8[§7Kuerzel§8] §8[§7Creator§8|§epublic§8] §8[§7Name...§8] §8- §7Erstellt die Skin Schematics. 'public' als Creator nutzen für keinen Creator, danach die nachricht an YoyoNow kopieren (mit Click kopieren)
SKIN_NO_REGION=§7Du steht in keiner Region, welche mit einem Skin versehen werden kann
SKIN_ALREADY_EXISTS=§cDieser Skin existiert in der Form bereits
SKIN_MESSAGE=§7Skin erstellt
SKIN_MESSAGE_HOVER=§eKlicken zum kopieren für YoyoNow und an diesen senden
# Panzern
PANZERN_HELP = §8/§epanzern §8[§7Block§8] §8[§7Slab§8] §8- §7Panzer deine WorldEdit Auswahl
PANZERN_PREPARE1 = §71. Gucke nochmal nach, ob Läufe auch bis zur Panzergrenze führen.
@ -768,6 +844,7 @@ PANZERN_PREPARE4=§74. Innerhalb der zu panzernden Region zu stehen, beim Befehl
PANZERN_NO_WORLDEDIT = §cDu hast keine WorldEdit Selection
PANZERN_PROGRESS = §e{0} §7Blöcke übrig, §e{1} §7Blöcke pro Sekunde, §e{2} §7Block Delta
PANZERN_DONE = §aZuende gepanzert
# Laufbau
LAUFBAU_HELP = §8/§elaufbau §8[§7smallest§8|§7blastresistant§8] §8- §7Baue einen Lauf in deiner WorldEdit Auswahl mit den Traces
LAUFBAU_HELP_SETTINGS = §8/§elaufbau settings §8- §7Öffnet die Settings GUI
@ -779,13 +856,16 @@ LAUFBAU_STATE_PROCESSING_TRACES=Traces verbinden
LAUFBAU_STATE_CREATE_LAUF = Lauf erstellen
LAUFBAU_SIMPLE_PROGRESS = §e{0}§8: §e{1}§8/§e{2} §7Übrige Zeit §8: §e{3}
LAUFBAU_DONE = §aZuende gebaut
LAUFBAU_SETTINGS_GUI_NAME = §eLaufbau
LAUFBAU_SETTINGS_ACTIVE = §aAktiv
LAUFBAU_SETTINGS_INACTIVE = §cInaktiv
LAUFBAU_SETTINGS_MIXED = §e{0}§8/§e{1} §aAktiv
LAUFBAU_SETTINGS_GUI_BACK = §eBack
LAUFBAU_SETTINGS_TOGGLE = §eClick §8-§7 Toggle
LAUFBAU_SETTINGS_ADVANCED = §eMiddle-Click §8-§7 Erweiterte Einstellung
LAUFBAU_BLOCK_COBWEB = §eCobweb
LAUFBAU_BLOCK_GRASS_PATH = §eGrass Path
LAUFBAU_BLOCK_SOUL_SAND = §eSoul Sand
@ -824,31 +904,39 @@ LAUFBAU_BLOCK_AZALEA=§eAzalea
LAUFBAU_BLOCK_CANDLE = §eKerze
LAUFBAU_BLOCK_CANDLE_CAKE = §eKuchen mit Kerze
LAUFBAU_BLOCK_LECTERN = §eLectern
LAUFBAU_FACING_NORTH = §8-§7 Richtung Norden
LAUFBAU_FACING_SOUTH = §8-§7 Richtung Süden
LAUFBAU_FACING_WEST = §8-§7 Richtung Westen
LAUFBAU_FACING_EAST = §8-§7 Richtung Osten
LAUFBAU_FACING_UP = §8-§7 Richtung Oben
LAUFBAU_FACING_DOWN = §8-§7 Richtung Unten
LAUFBAU_COUNT_1 = §8-§7 Anzahl 1
LAUFBAU_COUNT_2 = §8-§7 Anzahl 2
LAUFBAU_COUNT_3 = §8-§7 Anzahl 3
LAUFBAU_COUNT_4 = §8-§7 Anzahl 4
LAUFBAU_LAYERS_8 = §8-§7 Ebenen 8
LAUFBAU_LAYERS_7 = §8-§7 Ebenen 7
LAUFBAU_LAYERS_6 = §8-§7 Ebenen 6
LAUFBAU_LAYERS_3 = §8-§7 Ebenen 3
LAUFBAU_LAYERS_2 = §8-§7 Ebenen 2
LAUFBAU_TYPE_BOTTOM = §8-§7 Type Unten
LAUFBAU_TYPE_TOP = §8-§7 Type Oben
LAUFBAU_HALF_BOTTOM = §8-§7 Hälfte Unten
LAUFBAU_HALF_TOP = §8-§7 Hälfte Oben
LAUFBAU_OPEN = §8-§7 Geöffnet
LAUFBAU_ATTACHMENT_CEILING = §8-§7 Befestigung Decke
LAUFBAU_ATTACHMENT_FLOOR = §8-§7 Befestigung Boden
LAUFBAU_ATTACHMENT_DOUBLE_WALL = §8-§7 Befestigung beidseitige Wand
LAUFBAU_ATTACHMENT_SINGLE_WALL = §8-§7 Befestigung einseitige Wand
LAUFBAU_ATTACHMENT_WALL = §8-§7 Befestigung Wand
LAUFBAU_CONNECTION_FLOOR = §8-§7 Verbindung Boden
LAUFBAU_CONNECTION_NORTH = §8-§7 Verbindung Norden
LAUFBAU_CONNECTION_SOUTH = §8-§7 Verbindung Süden
@ -856,12 +944,16 @@ LAUFBAU_CONNECTION_EAST=§8-§7 Verbindung Osten
LAUFBAU_CONNECTION_WEST = §8-§7 Verbindung Westen
LAUFBAU_CONNECTION_DOWN = §8-§7 Verbindung Unten
LAUFBAU_CONNECTION_UP = §8-§7 Verbindung Oben
LAUFBAU_HANGING = §8-§7 hängend
LAUFBAU_SHAPE_STRAIGHT = §8-§7 Form gerade
LAUFBAU_SHAPE_OUTER_LEFT = §8-§7 Form äußere links
LAUFBAU_SHAPE_INNER_LEFT = §8-§7 Form innere links
LAUFBAU_TILT_NONE = §8-§7 Neigung keine
LAUFBAU_TILT_PARTIAL = §8-§7 Neigung teilweise
# UTILS
SELECT_HELP = §8/§eselect §8[§7RegionsTyp§8] §8- §7Wähle einen RegionsTyp aus
SELECT_EXTENSION_HELP = §8/§eselect §8[§7RegionsTyp§8] §8[§7Extension§8] §8- §7Wähle einen RegionsTyp aus mit oder ohne Extension
@ -869,9 +961,11 @@ SELECT_GLOBAL_REGION=§cDie globale Region kannst du nicht auswählen
SELECT_NO_TYPE = §cDiese Region hat keinen {0}
SELECT_NO_EXTENSION = §cDiese Region hat keine Ausfahrmaße
SELECT_MESSAGE = §7WorldEdit auswahl auf {0}, {1}, {2} und {3}, {4}, {5} gesetzt
SKULL_HELP = §8/§eskull §8[§eSpieler§8] §8-§7 Gibt einen SpielerKopf
SKULL_INVALID = §cUngültiger Spieler
SKULL_ITEM = §e{0}§8s Kopf
SPEED_HELP = §8/§espeed §8[§71§8-§710§8|§edefault§8] §8-§7 Setzte deine Flug- und Laufgeschindigkeit.
SPEED_CURRENT = §7Aktuelle geschwindigkeit§8: §e{0}
SPEED_TOO_SMALL = §c{0} ist zu klein
@ -879,9 +973,11 @@ SPEED_TOO_HIGH=§c{0} ist zu hoch
SPEED_ITEM = §eGeschwindigkeit
SPEED_ITEM_LORE = §7Aktuell: §e
SPEED_TAB_NAME = Geschwindigkeit eingeben
WORLDEDIT_WAND = WorldEdit Wand
WORLDEDIT_LEFTCLICK = Left click: select pos #1
WORLDEDIT_RIGHTCLICK = Right click: select pos #2
TNT_CLICK_HEADER = §8---=== §eTNT §8===---
TNT_CLICK_ORDER = §eEntity Order§8: §e{0}
TNT_CLICK_FUSE_TIME = §eFuseTime§8: §e{0}
@ -903,11 +999,14 @@ SELECT_ITEM_RIGHT_CLICK=§7Rechtklick zum ändern
SELECT_ITEM_BAURAHMEN=§eBaurahmen
SELECT_ITEM_BAUPLATTFORM=§eBauplattform
SELECT_ITEM_TESTBLOCK=§eTestblock
CHESTFILLER_FILLED = §eKiste gefüllt
PISTON_HELP_1 = §7Rechts Klick auf Piston mit einem Slime Ball berechnet dir die bewegten Blöcke.
PISTON_HELP_2 = §7Die Anzahl ist Rot, wenn ein unmovable Block vorhanden ist.
PISTON_HELP_3 = §7Die Anzahl ist Gelb, wenn zu viele Blöcke vorhanden sind.
PISTON_INFO = §7Bewegte Blöcke {0}{1}§8/§712
# Warp
WARP_LOC_X = §7X§8: §e{0}
WARP_LOC_Y = §7Y§8: §e{0}
@ -931,22 +1030,29 @@ WARP_HELP_INFO=§8/§ewarp info §8[§7Name§8] §8- §7Infos zu einem Punkt
WARP_HELP_DELETE=§8/§ewarp delete §8[§7Name§8] §8- §7Lösche einen Warp
WARP_HELP_GUI=§8/§ewarp gui §8- §7Öffne die Warp-GUI
WARP_HELP_LIST=§8/§ewarp list §8- §7Liste alle Warp-Punkt auf
# WORLD
STOP_HELP = §8/§estop §8- §7Stoppt den Server
STOP_MESSAGE = §eDer Server wird gestoppt
KICKALL_HELP = §8/§ekickall §8- §7Kickt alle Spieler vom Server außer den Owner
# Techhider
TECHHIDER_HELP = §8/§etechhider §8- §7Techhider umschalten
TECHHIDER_GLOBAL = §cKein Techhider in der globalen region
TECHHIDER_ON = §aTechhider aktiviert
TECHHIDER_OFF = §cTechHider deaktiviert
# XRAY
XRAY_HELP = §8/§exray §8- §7Xray umschalten
XRAY_GLOBAL = §cKein Xray in der globalen region
XRAY_ON = §aXray aktiviert
XRAY_OFF = §cXray deaktiviert
# WorldEdit
COLORREPLACE_HELP = §8//§ecolorreplace §8[§7color§8] §8[§7color§8] §8- §7Ersetzt eine Farbe mit einer anderen
TYPEREPLACE_HELP=§8//§etyreplace §8[§7type§8] §8[§7type§8] §8- §7Ersetzt einen Blockgruppe mit einer anderen
TYPEREPLACE_HELP=§8//§etypereplace §8[§7type§8] §8[§7type§8] §8- §7Ersetzt einen Blockgruppe mit einer anderen
# Schematics
SCHEMATIC_GUI_ITEM=§eSchematics

Datei anzeigen

@ -23,9 +23,12 @@ import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.bausystem.configplayer.Config;
import de.steamwar.bausystem.features.tpslimit.TPSFreezeUtils;
import de.steamwar.bausystem.linkage.LinkageUtils;
import de.steamwar.bausystem.region.FlagStorage;
import de.steamwar.bausystem.region.GlobalRegion;
import de.steamwar.bausystem.region.loader.PrototypeLoader;
import de.steamwar.bausystem.region.loader.RegionLoader;
import de.steamwar.bausystem.region.loader.Updater;
import de.steamwar.bausystem.regionnew.Region;
import de.steamwar.bausystem.utils.TickListener;
import de.steamwar.bausystem.worlddata.WorldData;
import de.steamwar.command.AbstractValidator;
@ -33,6 +36,7 @@ import de.steamwar.command.SWCommandUtils;
import de.steamwar.message.Message;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
@ -40,6 +44,7 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import yapion.hierarchy.types.YAPIONObject;
import java.io.IOException;
import java.io.OutputStream;
@ -66,6 +71,8 @@ public class BauSystem extends JavaPlugin implements Listener {
instance = this;
SWUtils.setBausystem(instance);
new GlobalRegion(new FlagStorage(), new YAPIONObject());
/*
try {
PrototypeLoader.load();
RegionLoader.load();
@ -77,6 +84,11 @@ public class BauSystem extends JavaPlugin implements Listener {
new Updater(PrototypeLoader.file, PrototypeLoader::load);
new Updater(RegionLoader.file, RegionLoader::load);
*/
Bukkit.getScheduler().runTaskLater(BauSystem.getInstance(), () -> {
Region.get(new Location(Bukkit.getWorlds().get(0), 0, 0, 0));
}, 10);
SWCommandUtils.addValidator(Player.class, validator(Permission.BUILD));
SWCommandUtils.addValidator(CommandSender.class, validator(Permission.BUILD));

Datei anzeigen

@ -46,6 +46,7 @@ import java.io.File;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.BiConsumer;
import java.util.function.ObjIntConsumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;

Datei anzeigen

@ -35,6 +35,8 @@ public enum Flag implements EnumDisplay {
FREEZE("FLAG_FREEZE", FreezeMode.class, FreezeMode.INACTIVE),
PROTECT("FLAG_PROTECT", ProtectMode.class, ProtectMode.ACTIVE),
ITEMS("FLAG_ITEMS", ItemMode.class, ItemMode.INACTIVE),
TESTBLOCK("FLAG_TESTBLOCK", TestblockMode.class, TestblockMode.NO_VALUE),
CHANGED("FLAG_CHANGED", ChangedMode.class, ChangedMode.NO_CHANGE),
;
@Getter

Datei anzeigen

@ -0,0 +1,58 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region.flags.flagvalues;
import de.steamwar.bausystem.region.flags.Flag;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ChangedMode implements Flag.Value<ChangedMode> {
NO_CHANGE("FLAG_CHANGED_NO_CHANGE", false),
HAS_CHANGE("FLAG_CHANGED_HAS_CHANGE", true);
private static ChangedMode[] values;
private final String chatValue;
private final Boolean changed;
@Override
public ChangedMode[] getValues() {
if (ChangedMode.values == null) {
ChangedMode.values = ChangedMode.values(); //NOSONAR
}
return ChangedMode.values;
}
@Override
public ChangedMode getValue() {
return this;
}
@Override
public ChangedMode getValueOf(final String name) {
try {
return ChangedMode.valueOf(name.toUpperCase());
} catch (IllegalArgumentException e) {
return null;
}
}
}

Datei anzeigen

@ -0,0 +1,62 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region.flags.flagvalues;
import de.steamwar.bausystem.region.flags.Flag;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum TestblockMode implements Flag.Value<TestblockMode> {
NO_VALUE("FLAG_TESTBLOCK_NO_VALUE", false, false),
NORTH("FLAG_TESTBLOCK_NORTH", false, true),
SOUTH("FLAG_TESTBLOCK_SOUTH", false, false),
FIXED_NORTH("FLAG_TESTBLOCK_NORTH", true, true),
FIXED_SOUTH("FLAG_TESTBLOCK_SOUTH", true, false);
private static TestblockMode[] values;
private final String chatValue;
private final boolean fixed;
private final boolean north;
@Override
public TestblockMode[] getValues() {
if (TestblockMode.values == null) {
TestblockMode.values = TestblockMode.values(); //NOSONAR
}
return TestblockMode.values;
}
@Override
public TestblockMode getValue() {
return this;
}
@Override
public TestblockMode getValueOf(final String name) {
try {
return TestblockMode.valueOf(name.toUpperCase());
} catch (IllegalArgumentException e) {
return null;
}
}
}

Datei anzeigen

@ -0,0 +1,176 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.region.Point;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.sql.SchematicNode;
import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Optional;
public class GlobalRegion implements Region {
public static final Region GLOBAL_REGION = new GlobalRegion();
private GlobalRegion() {
}
@Override
public RegionType getRegionType() {
return RegionType.GLOBAL;
}
@Override
public HasFlagResult hasFlag(Flag flag) {
return switch (flag) {
case TNT, FIRE, FREEZE, ITEMS -> HasFlagResult.WRITABLE;
default -> HasFlagResult.NOT_APPLICABLE;
};
}
@Override
public void setFlag(Flag flag, Flag.Value<?> value) {
}
@Override
public Flag.Value<?> getFlag(Flag flagType) {
return null;
}
@Override
public Point getMinPoint() {
return new Point(Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE);
}
@Override
public Point getMaxPoint() {
return new Point(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE);
}
@Override
public boolean inRegion(Location location) {
return true;
}
@Override
public Optional<Point> getBuildMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getBuildMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inBuildRegion(Location location, boolean extension) {
return false;
}
@Override
public Optional<Point> getTestblockMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getTestblockMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inTestblockRegion(Location location, boolean extension) {
return false;
}
@Override
public void forEachChunk(ChunkCoordinatesConsumer consumer) {
}
@Override
public ChunkCoordinatePredicate getChunkOutsidePredicate() {
return (chunkX, chunkZ) -> false;
}
@Override
public Optional<ChunkCoordinatePredicate> getBuildChunkOutsidePredicate(boolean extension) {
return Optional.empty();
}
@Override
public Optional<ChunkCoordinatePredicate> getTestblockChunkOutsidePredicate(boolean extension) {
return Optional.empty();
}
@Override
public Optional<File> getGameModeConfig() {
return Optional.empty();
}
@Override
public Optional<EditSession> copy() {
return Optional.empty();
}
@Override
public Optional<EditSession> copyBuild(boolean extension) {
return Optional.empty();
}
@Override
public Optional<EditSession> copyTestblock(boolean extension) {
return Optional.empty();
}
@Override
public void reset() {
}
@Override
public void resetBuild(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void resetBuildWireframe(boolean extension) {
}
@Override
public void resetTestblock(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void remember(EditSession editSession) {
}
@Override
public boolean undo() {
return false;
}
@Override
public boolean redo() {
return false;
}
}

Datei anzeigen

@ -0,0 +1,160 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.region.Point;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.sql.SchematicNode;
import lombok.RequiredArgsConstructor;
import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.Optional;
public interface Region {
RegionSystem regionSystem = load();
private static RegionSystem load() {
try {
return (RegionSystem) Class.forName("de.steamwar.bausystem.region.ModularRegionSystem").getConstructor().newInstance();
} catch (ClassNotFoundException | NoSuchMethodException | InvocationTargetException | InstantiationException |
IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
static Region get(Location location) {
return regionSystem.get(location);
}
enum HasFlagResult {
NOT_APPLICABLE,
READ_ONLY,
WRITABLE
}
@RequiredArgsConstructor
enum RegionType {
GLOBAL(false, false, false, true),
WATER(true, false, false, false),
WATER_CONNECTING(true, false, false, false),
LAND(false, true, false, false),
LAND_CONNECTING(false, true, false, false),
WALL(false, false, true, false),
OLD(false, false, false, false),
;
public final boolean water;
public final boolean land;
public final boolean wall;
public final boolean global;
}
interface ChunkCoordinatesConsumer {
void accept(int chunkX, int chunkZ);
}
interface ChunkCoordinatePredicate {
boolean test(int chunkX, int chunkZ);
}
RegionType getRegionType();
HasFlagResult hasFlag(Flag flag);
void setFlag(Flag flag, Flag.Value<?> value);
Flag.Value<?> getFlag(Flag flagType);
default <T extends Enum<T> & Flag.Value<T>> T getFlagValue(Flag flagType) {
Flag.Value<?> value = getFlag(flagType);
if (value == null) return null;
return (T) value.getValue();
}
default <T extends Enum<T> & Flag.Value<T>> T getFlagValue(Flag flagType, Class<T> type) {
return getFlagValue(flagType);
}
Point getMinPoint();
Point getMaxPoint();
boolean inRegion(Location location);
/**
* Can return {@link Optional#empty()} if {@link #hasFlag(Flag)} returns false for the TestblockFlag
*/
Optional<Point> getBuildMinPoint(boolean extension);
/**
* Can return {@link Optional#empty()} if {@link #hasFlag(Flag)} returns false for the TestblockFlag
*/
Optional<Point> getBuildMaxPoint(boolean extension);
boolean inBuildRegion(Location location, boolean extension);
/**
* Can return {@link Optional#empty()} if {@link #hasFlag(Flag)} returns false for the TestblockFlag
*/
Optional<Point> getTestblockMinPoint(boolean extension);
/**
* Can return {@link Optional#empty()} if {@link #hasFlag(Flag)} returns false for the TestblockFlag
*/
Optional<Point> getTestblockMaxPoint(boolean extension);
boolean inTestblockRegion(Location location, boolean extension);
void forEachChunk(ChunkCoordinatesConsumer consumer);
ChunkCoordinatePredicate getChunkOutsidePredicate();
Optional<ChunkCoordinatePredicate> getBuildChunkOutsidePredicate(boolean extension);
Optional<ChunkCoordinatePredicate> getTestblockChunkOutsidePredicate(boolean extension);
Optional<File> getGameModeConfig();
Optional<EditSession> copy();
Optional<EditSession> copyBuild(boolean extension);
Optional<EditSession> copyTestblock(boolean extension);
void reset();
void resetBuild(@Nullable SchematicNode schematicNode, boolean extension);
void resetBuildWireframe(boolean extension);
void resetTestblock(@Nullable SchematicNode schematicNode, boolean extension);
void remember(EditSession editSession);
boolean undo();
boolean redo();
}

Datei anzeigen

@ -0,0 +1,41 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.regionnew;
import org.bukkit.Location;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Stream;
public interface RegionSystem {
void load();
void save();
Region get(Location location);
Optional<Region> get(String name);
Stream<Region> getRegions();
boolean isModular();
// TODO: Add creating and removing of Regions as well as moving
}

Datei anzeigen

@ -0,0 +1,56 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2020 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
id 'base'
id 'java'
}
group 'steamwar'
version '1.0'
compileJava.options.encoding = 'UTF-8'
sourceCompatibility = 17
targetCompatibility = 17
sourceSets {
main {
java {
srcDirs = ['src/']
}
resources {
srcDirs = ['src/']
exclude '**/*.java', '**/*.kt'
}
}
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
testCompileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
implementation project(":BauSystem_Main")
compileOnly 'org.spigotmc:spigot-api:1.20-R0.1-SNAPSHOT'
compileOnly swdep('SpigotCore')
compileOnly swdep('FastAsyncWorldEdit-1.18')
}

Datei anzeigen

@ -0,0 +1,182 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region;
import com.sk89q.worldedit.EditSession;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.flagvalues.TestblockMode;
import de.steamwar.bausystem.regionnew.Region;
import de.steamwar.sql.SchematicNode;
import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Optional;
public class FixedRegionImpl implements Region { // TODO: Finalize this
@Override
public RegionType getRegionType() {
return RegionType.OLD;
}
@Override
public HasFlagResult hasFlag(Flag flag) {
return switch (flag) {
case TNT, FIRE, FREEZE, ITEMS, CHANGED -> HasFlagResult.WRITABLE;
case COLOR -> HasFlagResult.WRITABLE; // TODO Only for normal Regions not Spawn Region
case PROTECT -> HasFlagResult.WRITABLE; // TODO: Only for protectable Regions
case TESTBLOCK -> HasFlagResult.READ_ONLY; // TODO: Implement NOT_APPLICABLE for Special regions
};
}
@Override
public void setFlag(Flag flag, Flag.Value<?> value) {
}
@Override
public Flag.Value<?> getFlag(Flag flagType) {
if (flagType == Flag.TESTBLOCK) {
return TestblockMode.NO_VALUE; // TODO: This needs to change based on if the Region is a WarShip Region
}
return null;
}
@Override
public Point getMinPoint() {
return null;
}
@Override
public Point getMaxPoint() {
return null;
}
@Override
public boolean inRegion(Location location) {
return false;
}
@Override
public Optional<Point> getBuildMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getBuildMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inBuildRegion(Location location, boolean extension) {
return false;
}
@Override
public Optional<Point> getTestblockMinPoint(boolean extension) {
return Optional.empty();
}
@Override
public Optional<Point> getTestblockMaxPoint(boolean extension) {
return Optional.empty();
}
@Override
public boolean inTestblockRegion(Location location, boolean extension) {
return false;
}
@Override
public void forEachChunk(ChunkCoordinatesConsumer consumer) {
}
@Override
public ChunkCoordinatePredicate getChunkOutsidePredicate() {
return null;
}
@Override
public Optional<ChunkCoordinatePredicate> getBuildChunkOutsidePredicate(boolean extension) {
return Optional.empty();
}
@Override
public Optional<ChunkCoordinatePredicate> getTestblockChunkOutsidePredicate(boolean extension) {
return Optional.empty();
}
@Override
public Optional<File> getGameModeConfig() {
return Optional.empty();
}
@Override
public Optional<EditSession> copy() {
return Optional.empty();
}
@Override
public Optional<EditSession> copyBuild(boolean extension) {
return Optional.empty();
}
@Override
public Optional<EditSession> copyTestblock(boolean extension) {
return Optional.empty();
}
@Override
public void reset() {
}
@Override
public void resetBuild(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void resetBuildWireframe(boolean extension) {
}
@Override
public void resetTestblock(@Nullable SchematicNode schematicNode, boolean extension) {
}
@Override
public void remember(EditSession editSession) {
}
@Override
public boolean undo() {
return false;
}
@Override
public boolean redo() {
return false;
}
}

Datei anzeigen

@ -0,0 +1,76 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region;
import de.steamwar.bausystem.regionnew.GlobalRegion;
import de.steamwar.bausystem.regionnew.Region;
import de.steamwar.bausystem.regionnew.RegionSystem;
import lombok.Getter;
import org.bukkit.Location;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
public class FixedRegionSystem implements RegionSystem {
@Getter
private static FixedRegionSystem instance;
public FixedRegionSystem() {
instance = this;
}
private static final Map<String, Region> REGION_MAP = new HashMap<>();
@Override
public void load() {
// TODO: Add Load
}
@Override
public void save() {
// TODO: Add Save
}
@Override
public Region get(Location location) {
return REGION_MAP.values().stream()
.filter(region -> region.inRegion(location))
.findFirst()
.orElse(GlobalRegion.GLOBAL_REGION);
}
@Override
public Optional<Region> get(String name) {
return Optional.ofNullable(REGION_MAP.get(name));
}
@Override
public Stream<Region> getRegions() {
return REGION_MAP.values().stream();
}
@Override
public boolean isModular() {
return false;
}
}

Datei anzeigen

@ -0,0 +1,56 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2020 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
id 'base'
id 'java'
}
group 'steamwar'
version '1.0'
compileJava.options.encoding = 'UTF-8'
sourceCompatibility = 17
targetCompatibility = 17
sourceSets {
main {
java {
srcDirs = ['src/']
}
resources {
srcDirs = ['src/']
exclude '**/*.java', '**/*.kt'
}
}
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
testCompileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.22'
implementation project(":BauSystem_Main")
compileOnly 'org.spigotmc:spigot-api:1.20-R0.1-SNAPSHOT'
compileOnly swdep('SpigotCore')
compileOnly swdep('FastAsyncWorldEdit-1.18')
}

Datei anzeigen

@ -0,0 +1,88 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region;
import de.steamwar.bausystem.regionnew.GlobalRegion;
import de.steamwar.bausystem.regionnew.Region;
import de.steamwar.bausystem.regionnew.RegionSystem;
import lombok.Getter;
import org.bukkit.Location;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Stream;
public class ModularRegionSystem implements RegionSystem {
@Getter
private static ModularRegionSystem instance;
public ModularRegionSystem() {
instance = this;
new TileActionBar();
}
private Map<Tile, UUID> OCCUPIED_TILES = new HashMap<>();
private Map<UUID, Region> REGIONS = new HashMap<>();
private Map<String, Region> REGIONS_BY_NAME = new HashMap<>();
@Override
public void load() {
// TODO: Add Load
}
@Override
public void save() {
// TODO: Add Save
}
public Region get(Tile tile) {
if (tile == null) {
return GlobalRegion.GLOBAL_REGION;
}
UUID uuid = OCCUPIED_TILES.get(tile);
if (uuid == null) {
return GlobalRegion.GLOBAL_REGION;
}
return REGIONS.get(uuid);
}
@Override
public Region get(Location location) {
return get(Tile.of(location));
}
@Override
public Optional<Region> get(String name) {
return Optional.ofNullable(REGIONS_BY_NAME.get(name));
}
@Override
public Stream<Region> getRegions() {
return REGIONS.values().stream();
}
@Override
public boolean isModular() {
return true;
}
}

Datei anzeigen

@ -0,0 +1,101 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region;
import org.bukkit.Location;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
public class Tile {
private static final int MAX_X = 1024;
private static final int MAX_Z = 1024;
public static Tile of(Location location) {
int x = location.getBlockX() + 9;
int z = location.getBlockZ() + 9;
if (x < 0) x -= 19;
if (z < 0) z -= 19;
x /= 19;
z /= 19;
if (x < -MAX_X || x >= MAX_X || z < -MAX_Z || z >= MAX_Z) {
return null;
}
return new Tile(x, z);
}
private int tileX;
private int tileZ;
private Tile(int tileX, int tileZ) {
this.tileX = tileX;
this.tileZ = tileZ;
}
public Tile offset(int tileDx, int tileDz) {
int tileX = this.tileX + tileDx;
int tileZ = this.tileZ + tileDz;
if (tileX < -MAX_X || tileX >= MAX_X || tileZ < -MAX_Z || tileZ >= MAX_Z) {
return null;
}
return new Tile(tileX, tileZ);
}
public Set<Tile> surrounding() {
Set<Tile> tiles = new HashSet<>();
for (int dx = -1; dx <= 1; dx++) {
for (int dz = -1; dz <= 1; dz++) {
if (dx == 0 && dz == 0) continue;
tiles.add(offset(dx, dz));
}
}
tiles.remove(null);
return tiles;
}
public Set<Tile> adjacent() {
Set<Tile> tiles = new HashSet<>();
tiles.add(offset(-1, 0));
tiles.add(offset(1, 0));
tiles.add(offset(0, -1));
tiles.add(offset(0, 1));
tiles.remove(null);
return tiles;
}
@Override
public boolean equals(Object object) {
if (this == object) return true;
if (!(object instanceof Tile tile)) return false;
return tileX == tile.tileX && tileZ == tile.tileZ;
}
@Override
public int hashCode() {
return Objects.hash(tileX, tileZ);
}
@Override
public String toString() {
return tileX + "/" + tileZ;
}
}

Datei anzeigen

@ -0,0 +1,45 @@
/*
* This file is a part of the SteamWar software.
*
* Copyright (C) 2024 SteamWar.de-Serverteam
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package de.steamwar.bausystem.region;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.regionnew.Region;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class TileActionBar implements Listener {
public TileActionBar() {
Bukkit.getPluginManager().registerEvents(this, BauSystem.getInstance());
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
Tile tile = Tile.of(event.getTo());
Region region = Region.get(event.getTo());
event.getPlayer().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e" + tile + " §8- §e" + region.getClass().getSimpleName()));
}
}