Add VelocityCore Module

This commit is contained in:
2024-08-04 21:05:46 +02:00
parent 3e6f8c9b91
commit 28d4886584
145 changed files with 15181 additions and 0 deletions
@@ -0,0 +1,730 @@
COMMAND_SYSTEM_ERROR = §cError executing the command!
COMMAND_HELP_HEAD=§7---=== (§e{0}§7) ===---
PREFIX=§eSteam§8War»
SPACER=
TIMEFORMAT=dd.MM.yyyy HH:mm
PLAIN_STRING={0}
UNKNOWN_COMMAND=§cUnknown command.
UNKNOWN_PLAYER=§cUnknown player.
UNKNOWN_TEAM=§cUnknown team.
UNKNOWN_EVENT=$cUnknown event.
INVALID_TIME=§cInvalid time.
STEAMWAR_BRAND=§eSteam§8War.de §7({0}) §r<- §e{1} §7({2})§r
DEV_NO_SERVER=§cThe server is currently not available.
DEV_UNKNOWN_SERVER=§cPlease specify a dev server.
DISABLED=§cCurrently disabled.
SERVER_START_OVERLOAD=§cServer start cancelled due to overload. Please try again later.
UPDATE_INTERRUPTION=§cPlease try again. A software update has interrupted this action.
#Help command
HELP_LOBBY=§7Return from anywhere to the lobby using §8/§el§7!
HELP_LOBBY_HOVER=§eBack to the lobby
HELP_BAU=§7Join your build server using §8/§ebuild§7!
HELP_BAU_HOVER=§eTo your build server
HELP_BAUSERVER=§7Get help regarding the build server with §8/§ehelp build§7!
HELP_BAUSERVER_HOVER=§eHelp for the build server
HELP_FIGHT=§7Start a new fight using §8/§efight§7!
HELP_FIGHT_HOVER=§eTo the fighting system
HELP_CHALLENGE=§7Challenge someone directly using §8/§echallenge§7!
HELP_CHALLENGE_HOVER=§eChallenge
HELP_HISTORIC=§7Start a historic fight using §8/§ehistoric§7!
HELP_HISTORIC_HOVER=§eHistoric fights
HELP_TEAM=§8/§eteam§7 for the team system!
HELP_TEAM_HOVER=§eTeam management
HELP_JOIN=§7Join a fight using §8/§ejoin §8[§eplayer§8]§7!
HELP_JOIN_HOVER=§eSJoin a player
HELP_LOCAL=§7Send chat messages only on your current server using §8/§elocal§7!
HELP_LOCAL_HOVER=§eLocal chat
HELP_TNT=§8/§7tnt §8- §7(de)activates explosion damage
HELP_FIRE=§8/§7fire §8- §7(de)activates fire damage
HELP_TESTBLOCK=§8/§7testblock §8- §7Resets the dummy
HELP_RESET=§8/§7reset §8- §7Resets the current region
HELP_SPEED=§8/§7speed §8- §7Changes flight and walking speed
HELP_NV=§8/§7nv §8- §7(de)activates night vision
HELP_TRACE=§8/§7trace §8- §7Gives help regarding the tnt tracer
HELP_TPSLIMIT=§8/§7tpslimit §8- §7Gives help regarding the TPS limiter
HELP_LOADER=§8/§7loader §8- §7Use the automatic cannon loader
HELP_PROTECT=§8/§7protect §8- §7Protects the floor of the (M)WG region
HELP_FREEZE=§8/§7freeze §8- §7Stops block updates
HELP_SKULL=§8/§7skull §8- §7Gives you a player head
HELP_DEBUGSTICK=§8/§7debugstick §8- §7Gives you a debugstick
HELP_BAUINFO=§8/§7buildinfo §8- §7Information about the current build server
HELP_SCHEMSUBMIT=§7For a Tutorial about submitting your AirShip§8/§7MiniWarGear§8/§7WarGear§8/§7WarShip click §ehere§8!
HELP_SCHEMSUBMIT_HOVER=§ehttps://www.youtube.com/watch?v=9QrQ3UBWveE
HELP_WE_POS1=§8//§71 §7» §8//§7pos1
HELP_WE_POS2=§8//§72 §7» §8//§7pos2
HELP_WE_COPY=§8//§7c §7» §8//§7copy
HELP_WE_PASTE=§8//§7p §7» §8//§7paste
HELP_WE_FLOPY=§8//§7flopy §7» §8//§7copy §7& §8//§7flip
HELP_WE_FLOPYP=§8//§7flopyp §7» §8//§7copy §7& §8//§7flip §7& §8//§7paste
HELP_WE_ROTATE_90=§8//§790 §7» §8//§7rotate §e90
HELP_WE_ROTATE_180=§8//§7180 §7» §8//§7rotate §e180
HELP_WE_ROTATE_N90=§8//§7-90 §7» §8//§7rotate §e-90
HELP_BAU_GROUP_ADMIN=§7Build server management commands
HELP_BAU_GROUP_ADMIN_HOVER=§eAll management commands
HELP_BAU_GROUP_ADMIN_TITLE=§7All management commands§8:
HELP_BAU_GROUP_OTHER=§7Additional management commands
HELP_BAU_GROUP_OTHER_HOVER=§eAdditional build server commands
HELP_BAU_GROUP_OTHER_TITLE=§7Additional build server commands§8:
HELP_BAU_GROUP_WE=§7WorldEdit shortcuts
HELP_BAU_GROUP_WE_HOVER=§eWorldEdit shortcuts
HELP_BAU_GROUP_WE_TITLE=§7WorldEdit shortcuts§8:
HELP_BAU_GROUP_PLAYER=§7Player commands
HELP_BAU_GROUP_PLAYER_HOVER=§ePlayer commands
HELP_BAU_GROUP_PLAYER_TITLE=§7Player commands§8:
HELP_BAU_GROUP_WORLD=§7World changing build server commands
HELP_BAU_GROUP_WORLD_HOVER=§eWorld changing build server commands
HELP_BAU_GROUP_WORLD_TITLE=§7World changing build server commands§8:
HELP_BAU_TP=§8/§ebuild tp §8- §7Join the build server of friends!
HELP_BAU_TP_HOVER=§eto another build server
HELP_BAU_ADDMEMBER=§8/§ebuild addmember §8- §7Allows a friend on your build server
HELP_BAU_ADDMEMBER_HOVER=§eAdd a friend
HELP_BAU_DELMEMBER=§8/§ebuild delmember §8- §7Removes a player
HELP_BAU_DELMEMBER_HOVER=§eRemoves a player
HELP_BAU_SET_SPECTATOR=§8/§ebuild setspectator §8- §7Spectate build server
HELP_BAU_SET_SPECTATOR_HOVER=§eSets the Role to Spectator
HELP_BAU_SET_BUILDER=§8/§ebuild setbuilder §8- §7Building, WorldEdit, BauSystem features
HELP_BAU_SET_BUILDER_HOVER=§eSets the Role to Builder
HELP_BAU_SET_SUPERVISOR=§8/§ebuild supervisor §8- §7Starting build server. Saving schematics
HELP_BAU_SET_SUPERVISOR_HOVER=§eSets the Role to Supervisor
HELP_BAU_DELETE=§8/§ebuild delete §8- §7Reset your entire build server
HELP_BAU_DELETE_HOVER=§eReset build server
HELP_BAU_TESTARENA=§8/§ebuild testarena §8- §7Start a test arena
HELP_BAU_TESTARENA_HOVER=§eStart test arena
HELP_BAU_LOCK=§8/§ebuild lock §8- §7Locks the build server for a specified group of players
HELP_BAU_LOCK_HOVER=§eLock your build server
HELP_BAU_UNLOCK=§8/§ebuild unlock §8- §7Unlocks the buildserver for added users
HELP_BAU_UNLOCK_HOVER=§eUnlock your build server
#Usage description of various commands
USAGE_ALERT=§8/§7alert §8[§emessage§8]
USAGE_IGNORE=§8/§7ignore §8[§eplayer§8]
#ModListener
MOD_RED_SING=Attempted use of mod {0}
MOD_RED_PLUR=Attempted use of mods:\n{0}
MOD_YELLOW_SING=§7Deactivate the mod §e{0}§7 to continue playing on §eSteam§8War§7.
MOD_YELLOW_PLUR=§7Deactivate the mods\n§e{0}\n§7to continue playing on §eSteam§8War§7.
MODS_CHECKED=§7Your Mods have been checked.\n§aYou can join §eSteam§8War §anow§8.
#Various commands
ALERT=§f{0}
STAT_SERVER=§7Server §e{0}§8: §7Below limit §e{1} §7Server count §e{2}
#Ban&Mute-Command
PUNISHMENT_USAGE=§8/§7{0} §8[§eplayer§8] [§edd§8.§emm§8.§eyyyy §7or §edd§8.§emm§8.§eyyyy§8_§ehh§8:§emm §7or §enumber§8[§eh§7our|§ed§7ay|§ew§7eek|§em§7onth|§ey§7ear§8] §7or §eperma§8] [§ereason§8]
PUNISHMENT_USAGE_REASON=§cPlease enter a reason.
UNPUNISHMENT_USAGE=§8/§7{0} §8[§eplayer§8]
PUNISHMENT_UNTIL=until {0}
PUNISHMENT_PERMA=permanent
BAN_TEAM={0} §e{1} §7was §e§lbanned§7 by §e{2} {3}§8: §f{4}
BAN_PERMA=§7You are §e§lbanned §epermanently§8: §e{0}
BAN_UNTIL=§7You are §e§lbanned §euntil {0}§8: §e{1}
UNBAN_ERROR=§cThe player isn't banned.
UNBAN=§7You have §e§lunbanned §e{0}.
BAN_AVOIDING_ALERT=§cPotential ban bypass by §r{0}§c: {1}
BAN_AVOIDING_LIST=§c{0} §e{1}
BAN_AVOIDING_BAN_HOVER=§cBan player because of bann bypass.
MUTE_TEAM={0} §e{1} §7was §e§lmuted§7 by §e{2} {3}§8: §f{4}
MUTE_PERMA=§7You are §epermanently §e§lmuted§8: §e{0}
MUTE_UNTIL=§7You are §e§lmuted §euntil {0}§8: §e{1}
UNMUTE_ERROR=§cThe player isn't muted.
UNMUTE=§7You have §e§lunmuted §e{0}.
NOSCHEMRECEIVING_TEAM={0} §e{1} §7was excluded from §e{2} {3} §7from §e§lrecieving schematics§8: §f{4}
NOSCHEMRECEIVING_PERMA=§7You are §epermanently§7 excluded from receiving §e§lschematics§8: §e{0}
NOSCHEMRECEIVING_UNTIL=§7You are excluded from receiving §e§lschematics §euntil {0}§8: §e{1}
UNNOSCHEMRECEIVING_ERROR=§cThe player is not excluded from receiving schematics.
UNNOSCHEMRECEIVING=§e{0} §7may now receive §e§lschematics§7 again§8.
NOSCHEMSHARING_TEAM={0} §e{1} §7was excluded from §e{2} {3} §7from §e§lsharing schematics§8: §f{4}
NOSCHEMSHARING_PERMA=§7You are §epermanently§7 excluded from sharing §e§lschematics§8: §e{0}
NOSCHEMSHARING_UNTIL=§7You are excluded from sharing §e§lschematics §euntil {0}§8: §e{1}
UNNOSCHEMSHARING_ERROR=§cThe player is not excluded from sharing schematics.
UNNOSCHEMSHARING=§e{0} §7may now share §e§lschematics§7 again§8.
NOSCHEMSUBMITTING_TEAM={0} §e{1} §7was excluded from §e{2} {3} §7from §e§lsubmitting schematics§8: §f{4}
NOSCHEMSUBMITTING_PERMA=§7You are §epermanently§7 excluded from submitting §e§lschematics§8: §e{0}
NOSCHEMSUBMITTING_UNTIL=§7You are excluded from submitting §e§lschematics §euntil {0}§8: §e{1}
UNNOSCHEMSUBMITTING_ERROR=§cThe player is not excluded from submitting schematics.
UNNOSCHEMSUBMITTING=§e{0} §7may now submit §e§lschematics§7 again§8.
NODEVSERVER_TEAM={0} §e{1} §7has annoyed §e{2} §7with reason §f{4}§7 and therefore has received §e§ldev server prohibition§7§8, §f{3}
NODEVSERVER_PERMA=§7You are §epermanently§7 excluded from §e§ldev servers§8: §e{0}
NODEVSERVER_UNTIL=§7You are excluded from §e§ldev servers§7 §euntil {0}§8: §e{1}
UNNODEVSERVER_ERROR=§cThe player is not excluded from dev servers.
UNNODEVSERVER=§e{0} §7may now join §e§ldev servers§7 again§8.
NOFIGHTSERVER_TEAM={0} §e{1} §7was excluded from §e{2} {3} §7from §e§lfighting§8: §f{4}
NOFIGHTSERVER_PERMA=§7You are §epermanently§7 excluded from §e§lfighting§8: §e{0}
NOFIGHTSERVER_UNTIL=§7You are excluded from §e§lfighting§7 §euntil {0}§8: §e{1}
UNNOFIGHTSERVER_ERROR=§cThe player is not excluded from fighting.
UNNOFIGHTSERVER=§e{0} §7may now join §e§lfights§7 again§8.
NOTEAMSERVER_TEAM={0} §e{1} §7was excluded from §e{2} {3} §7from §e§lteam servers§8: §f{4}
NOTEAMSERVER_PERMA=§7You are §epermanently§7 excluded from §e§lteam servers§8: §e{0}
NOTEAMSERVER_UNTIL=§7You are excluded from §e§lteam servers§7 §euntil {0}§8: §e{1}
UNNOTEAMSERVER_ERROR=§cThe player is not excluded from team servers.
UNNOTEAMSERVER=§e{0} §7may now set §e§lteam servers§7 again§8.
NOTE_TEAM={0} §e{1} §7received a §e§lnote§7 from §e{2} {3}: §f{4}
#BugCommand
BUG_MESSAGE=§7Please describe the issue in a Discord ticket with the bug ID §e{0} §7further§8.
#IgnoreCommand
IGNORE_YOURSELF=§cHow are you going to ignore yourself?
IGNORE_ALREADY=§cYou are already ignoring this player.
IGNORE_MESSAGE=§7You are now ignoring §e{0}§8.
#PollresultCommand
POLLRESULT_NOPOLL=§cThere is currently no ongoing poll.
POLLRESULT_HEADER=§e{0} players have voted on the question: §7{1}
POLLRESULT_LIST=§e{0}§8: §7{1}
#BauCommand
BAU_ADDMEMBER_USAGE=§8/§7build addmember §8[§eplayer§8]
BAU_ADDMEMBER_SELFADD=§cYou don't have to add yourself!
BAU_ADDMEMBER_ISADDED=§cThis player is already a member of your world.
BAU_ADDMEMBER_ADDED=§aThe player was added to your world.
BAU_ADDMEMBER_ADDED_TARGET=§aYou have been added to the world of §e{0}§a.
BAU_TP_USAGE=§8/§7build tp §8[§eplayer§8]
BAU_TP_NOALLOWED=§cYou are not allowed to teleport to this player's world.
BAU_LOCKED_NOALLOWED=§cThe build server is currently locked.
BAU_LOCK_BLOCKED=§cYour build lock has prevented §e{0} §cfrom joining.
BAU_LOCKED_OPTIONS=§7Build server lock options§8: §cnobody§8, §eserverteam§8, §eteam_and_serverteam§8, §eteam§8, §aopen
BAU_LOCKED_NOBODY=§7You have locked your build server for all players.
BAU_LOCKED_SERVERTEAM=§7You have locked your build server for all players except added server team members.
BAU_LOCKED_TEAM_AND_SERVERTEAM=§7You have locked your build server for all players except added team members and server team members.
BAU_LOCKED_TEAM=§7You have locked your build server for all players except added team members.
BAU_LOCKED_OPEN=§7You have opened your build server for all added players.
BAU_DELMEMBER_USAGE=§8/§7build delmember §8[§eplayer§8]
BAU_DELMEMBER_SELFDEL=§cYou cannot remove yourself!
BAU_DELMEMBER_DELETED=§cPlayer was removed.
BAU_DELMEMBER_DELETED_TARGET=§cYou were removed from the world of §e{0}.
BAU_DELETE_DELETED=§aYour world is being reset.
BAU_DELETE_GUI_NAME=§eDo you really want to delete the world?
BAU_DELETE_GUI_CANCEL=§cCancel
BAU_DELETE_GUI_DELETE=§aDelete
BAU_START_ALREADY=§cThis server is already starting.
BAU_MEMBER_NOMEMBER=§cThis player is no member of your world!
BAU_MEMBER_SET_USAGE=§8/§7build {0} §8[§eplayer§8]
BAU_MEMBER_SET_TARGET=§7You are now a §e{1}§7 on the world of §e{0}§7.
BAU_MEMBER_SET=§7The player is now a §e{0}§7.
BAU_MEMBER_SET_SPECTATOR = spectator
BAU_MEMBER_SET_BUILDER = builder
BAU_MEMBER_SET_SUPERVISOR = supervisor
BAU_START_NOT_ALLOWED = §cYou are not allowed to start this build server.
#ChallengeCommand
CHALLENGE_USAGE=§8/§7challenge §8[§eplayer§8]
CHALLENGE_OFFLINE=§cThe challenged player isn\'t online.
CHALLENGE_SELF=§cSchizophrenia?
CHALLENGE_IGNORED=§cThe challenged player has blocked you.
CHALLENGE_INARENA=§cThe challenged player is already in an arena.
CHALLENGE_BROADCAST=§e{0} duel§7: §e{1} §7vs §e{2}
CHALLENGE_BROADCAST_HOVER=§aWatch
CHALLENGE_CHALLENGED=§7You have challenged §e{0} §7to a §e{1} fight§7!
CHALLENGE_CHALLENGED_TARGET=§e{0} §7 has challenged you to a §e{1} fight §7{2}!
CHALLENGE_CHALLENGED_MAP=on §e{0} §7
CHALLENGE_ACCEPT=§7Click §ehere§7 to accept
CHALLENGE_ACCEPT_HOVER=§aAccept challenge
#EventCommand
EVENT_TIME_FORMAT=HH:mm
EVENT_DATE_FORMAT=dd.MM.
EVENT_USAGE=§8/§7event §8[§eTeam§8] - §7To teleport to a fight
EVENT_NO_TEAM=§cThis team does not exist
EVENT_NO_FIGHT_TEAM=§cThis team has no current fight
EVENT_NO_CURRENT=§cThere is no event taking place currently
EVENT_COMING=§eUpcoming events§8:
EVENT_COMING_EVENT=§7{0}§8-§7{1}§8: §e{2}
EVENT_COMING_DEADLINE=§7 Registration deadline§8: §7{0}
EVENT_COMING_SCHEM_DEADLINE=§7 Submission deadline§8: §7{0}
EVENT_COMING_TEAMS=§7 With§8: {0}
EVENT_COMING_TEAM= §{0}{1}
EVENT_CURRENT_EVENT=§e§l{0}
EVENT_CURRENT_FIGHT=§7{0} §{1}{2}§8 vs §{3}{4}
EVENT_CURRENT_FIGHT_WIN=§8: §7Victory §{0}{1}
EVENT_CURRENT_FIGHT_DRAW=§8: §7Draw
#EventRescheduleCommand
EVENTRESCHEDULE_USAGE=§8/§7eventreschedule §8[§eTeam1§8] [§eTeam2§8]
EVENTRESCHEDULE_UNKNOWN_TEAM=§cA team is unknown / No current event
EVENTRESCHEDULE_NO_FIGHT="§cNo fight found between the teams"
EVENTRESCHEDULE_STARTING=§aFight starts in 30s
#FightCommand
FIGHT_UNKNOWN_GAMEMODE=§cUnknown gamemode: {0}
FIGHT_UNKNOWN_ARENA=§cThe desired arena does not exist.
FIGHT_IN_ARENA=§cYou are already in an arena.
FIGHT_BROADCAST=§7Click §ehere§7 to fight §e{0} §7against §e{1}!
FIGHT_BROADCAST_HOVER=§aFight §eagainst §7{1}
#CheckCommand
CHECK_REMINDER=§7There are §e{0} §7schematics left for review§8!
CHECK_REMINDER_HOVER=§eSchematics to review
CHECK_NOT_CHECKING=§cYou are currently not reviewing any schematic.
CHECK_HELP_LIST=§8/§7check list §8- §7Shows the list of unreviewed schematics
CHECK_HELP_NEXT=§8/§7check next §8- §7Next review question§8/§7accept
CHECK_HELP_DECLINE=§8/§7check decline §8[§ereason§8] - §7Decline schematic
CHECK_HELP_CANCEL=§8/§7check cancel §8- §7Cancels reviewing process
CHECK_LIST_HEADER=§e§l{0} schematics are left to review
CHECK_LIST_TO_CHECK={0} §8{1} §7{2} §e{3}
CHECK_LIST_WAIT=§{0}{1}:{2}
CHECK_LIST_TO_CHECK_HOVER=§eCheck schematic
CHECK_LIST_CHECKING={0} §8{1} §7{2} §e{3} §7is being reviewed by §e{4}
CHECK_LIST_CHECKING_HOVER=§eTo the reviewer
CHECK_SCHEMATIC_ALREADY_CHECKING=§cYou are already reviewing a schematic!
CHECK_SCHEMATIC_OWN=§cYou cannot review your own schematics.
CHECK_SCHEMATIC_OWN_TEAM=§cYou cannot review your team schematics.
CHECK_SCHEMATIC_PREVIOUS=§7{0} from {1}§8: §e{2}
CHECK_INVALID_RANK=§cUnknown schematic rank.
CHECK_ABORT=§aThe test operation was canceled!
CHECK_NEXT=Next question
CHECK_ACCEPT=Accept
CHECK_DECLINE=Decline
CHECK_RANK=§aRank {0}: {1}
CHECK_RANK_HOVER=§aAccept with given rank
CHECK_ACCEPTED=§aYour §e{0} {1} §ewas accepted§8!
CHECK_ACCEPTED_TEAM=§7The schematic §e{0} §7from §e{1} §7is now approved!
CHECK_DECLINED=§cYour §e{0} {1} §cwas declined§8: §c{2}
CHECK_DECLINED_TEAM=§7The schematic §e{0} §7from §e{1} §7is now declined because §e{2}§7!
#HistoricCommand
HISTORIC_BROADCAST=§7Historic §e{0} §7fight by §e{1}§8!
HISTORIC_BROADCAST_HOVER=§afight against §7{1}
#JoinCommand
JOIN_PLAYER_BLOCK=§cYou currently cannot follow this player.
#JoinmeCommand
JOINME_USAGE=§8/§7join §8[§eplayer§8].
JOINME_BROADCAST=§7Click §ehere§8 §7to join §e{0} §7on §e{1}§8!
JOINME_BROADCAST_HOVER=§aJoin player
JOINME_PLAYER_OFFLINE=§cThis player is offline.
JOINME_PLAYER_SELF=§cBe one with yourself!
#KickCommand
KICK_USAGE=§8/§7kick §8[§ePlayer§8] [§eMessage§8]
KICK_OFFLINE=§cThis player is currently not online!
KICK_CONFIRM=The player {0} was kicked.
KICK_NORMAL=§cYou were kicked.
KICK_CUSTOM=§c{0}
#MsgCommand
MSG_USAGE=§8/§7msg §8[§euser§8] [§emessage§8]
MSG_OFFLINE=§cPlayer is offline!
MSG_IGNORED=§cThis player has blocked you!
#PingCommand
PING_RESPONSE=§7Your ping is §c{0}§7 ms!
#PollCommand
POLL_NO_POLL=§cThere is no ongoing poll.
POLL_NO_ANSWER=§cThis is not an option
POLL_ANSWER_REFRESH=§aYour answer was updated.
POLL_ANSWER_NEW=§aYour answer was registered.
#RCommand
R_USAGE=§8/§7r §8[§eanswer§8]
#RegelnCommand
REGELN_RULES=§7§lRules
REGELN_AS=§eAirShip §7Rules
REGELN_AS_HOVER=§7https://steamwar.de/spielmodi/airship-regelwerk/
REGELN_AS_URL=https://steamwar.de/spielmodi/airship-regelwerk/
REGELN_MWG=§eMiniWarGear §7Rules
REGELN_MWG_HOVER=§7https://steamwar.de/spielmodi/miniwargear-regelwerk/
REGELN_MWG_URL=https://steamwar.de/spielmodi/miniwargear-regelwerk/
REGELN_WG=§eWarGear §7Rules
REGELN_WG_HOVER=§7https://steamwar.de/spielmodi/wargear-regelwerk/
REGELN_WG_URL=https://steamwar.de/spielmodi/wargear-regelwerk/
REGELN_WS=§eWarShip §7Rules
REGELN_WS_HOVER=§7https://steamwar.de/spielmodi/warship-regelwerk/
REGELN_WS_URL=https://steamwar.de/spielmodi/warship-regelwerk/
REGELN_QG=§eQuickGear §7Rules
REGELN_QG_HOVER=§7https://steamwar.de/spielmodi/quickgear-regelwerk/
REGELN_QG_URL=https://steamwar.de/spielmodi/quickgear-regelwerk/
REGELN_CONDUCT=§eCode of conduct
REGELN_CONDUCT_HOVER=§7https://steamwar.de/verhaltensrichtlinien/
REGELN_CONDUCT_URL=https://steamwar.de/verhaltensrichtlinien/
#ReplayCommand
REPLAY_TITLE=Most recent fights
REPLAY_UNAVAILABLE=§cReplay unavailable
REPLAY_SOLO_WINNER=§e§l{0}
REPLAY_WINNER=§e§l{0} §7+§e{1}
REPLAY_SOLO_LOSER=§e{0}
REPLAY_LOSER=§e{0} §7+§e{1}
REPLAY_TIME=§7{0}
REPLAY_SERVER=§7{0}
#TutorialCommand
TUTORIAL_TITLE=Tutorials
TUTORIAL_NAME=§e{0}
TUTORIAL_BY=§8von §7{0}
TUTORIAL_STARS=§e{0} §7Stars
TUTORIAL_RATE_TITLE=Rate tutorial
TUTORIAL_RATE=§e{0} §7Star(s)
TUTORIAL_DELETE=§cDelete with Shift+Right-Click
TUTORIAL_CREATE_HELP=§8/§7tutorial create §8[§ematerial§8] §8[§ename§8]
TUTORIAL_CREATE_MISSING=§cA tutorial can only be created on a tutorial server!
TUTORIAL_CREATED=§7Tutorial created§8.
TUTORIAL_OWN_HELP=§8/§7tutorial own §8- §7List your own tutorials
#ServerTeamchatCommand
STC_USAGE=§8/§7stc §8[§emessage to team§8]
#TeamchatCommand
TC_USAGE=§8/§7tc §8[§eMessage to the team§8]
TC_NO_TEAM=§cYou are currently in no team.
#TeamCommand
TEAM_IN_TEAM=§cYou are already in a team.
TEAM_NOT_IN_TEAM=§cYou are currently in no team.
TEAM_NOT_LEADER=§cYou are not a leader of your team.
TEAM_NOT_IN_EVENT=§cThis is not possible during an event.
TEAM_HELP_HEADER=§7Manage your team with §e/team.
TEAM_HELP_LIST=§8/§7team list §8- §7List all teams.
TEAM_HELP_INFO=§8/§7team info §8- §7Get information on a team.
TEAM_HELP_TP=§8/§7team tp §8(§7Team§8) §8- §7Teleport to a team server.
TEAM_HELP_CREATE=§8/§7team create §8- §7Create your own team.
TEAM_HELP_JOIN=§8/§7team join §8- §7Join a team.
TEAM_HELP_CHAT=§8/§7teamchat §8- §7Send messages to your team.
TEAM_HELP_EVENT=§8/§7team event §8- §7Take part in an event.
TEAM_HELP_LEAVE=§8/§7team leave §8- §7Leave your team.
TEAM_HELP_INVITE=§8/§7team invite §8- §7Invite someone to join your team.
TEAM_HELP_REMOVE=§8/§7team remove §8- §7Remove somebody out of your team.
TEAM_HELP_KUERZEL=§8/§7team changekuerzel §8- §7Change your team shortcut.
TEAM_HELP_NAME=§8/§7team changename §8- §7Change your team name.
TEAM_HELP_COLOR=§8/§7team changecolor §8- §7Change your team color.
TEAM_HELP_LEADER=§8/§7team promote §8- §7Promote someone to leader.
TEAM_HELP_STEP_BACK=§8/§7team stepback §8- §7Demote yourself from leader.
TEAM_HELP_SERVER=§8/§7team server §8[§eIP/address§8] §8(§7port§8) §8- §7Set the address for your teamserver.
#Team Create
TEAM_CREATE_USAGE=§8/§7team create §8[§eteam shortcut§8] §8[§eteam name§8]
TEAM_CREATE_CREATED=§7You have created the team §e{0}§7!
#Team Join
TEAM_JOIN_NO_INVITE=§7You have no pending invitation.
TEAM_JOIN_USAGE=§8/§7team join §8[§eteam§8]
TEAM_JOIN_INVITED=§7You were invited by the following teams§8: §e{0}
TEAM_JOIN_NOT_BY_TEAM=§cYou have no pending invitation from this team.
TEAM_JOIN_JOINED=§7You joined the team §e{0}§7!
#Team Leave
TEAM_OTHER_LEADER_REQUIRED=§cPlease appoint another leader first!
TEAM_LEAVE_LEFT=§7You left the team!
#Team Step Back
TEAM_STEP_BACK=§7You have stepped back from your position as leader§8!
#Team Invite
TEAM_INVITE_USAGE=§8/§7team invite §8[§eplayer§8]
TEAM_INVITE_NO_PLAYER=§cThis player is unknown.
TEAM_INVITE_IN_TEAM=§cThis player is already in a team.
TEAM_INVITE_ALREADY_INVITED=§cAn invitation is already pending.
TEAM_INVITE_INVITED=§7You have invited §e{0} §7in your team!
TEAM_INVITE_INVITED_TARGET=§7You were invited into the team §{0}{1}§7!
#Team Remove
TEAM_REMOVE_USAGE=§8/§7team remove §8[§eplayer§8]
TEAM_REMOVE_NOT_PLAYER=§cThis player does not exist.
TEAM_REMOVE_NOT_LEADER=§cA leader can not be kicked.
TEAM_REMOVE_INVITE=§7The invitation was retracted.
TEAM_REMOVE_NO_INVITE=§cNo pending invitation is due for this player.
TEAM_REMOVE_NOT_IN_TEAM=§cThis player is not in your team.
TEAM_REMOVE_REMOVED=§7You removed this player from the team.
TEAM_REMOVE_REMOVED_TARGET=§cYou were removed from the team.
#Team Kuerzel
TEAM_KUERZEL_USAGE=§8/§7team changekuerzel §8[§eshortcut§8]
TEAM_KUERZEL_CHANGED=§7You changed your teams shortcut!
TEAM_KUERZEL_LENGTH=§cA team shortcut has to consist of 2 to 4 characters.
TEAM_KUERZEL_TAKEN=§cThere is already a team with that shortcut.
#Team Name
TEAM_NAME_USAGE=§8/§7team changename §8[§eteam name§8]
TEAM_NAME_CHANGED=§7You have renamed your team!
TEAM_NAME_LENGTH=§cA team name has to consist of 4 to 15 characters.
TEAM_NAME_TAKEN=§cThere is already a team with that name.
#Team Leader
TEAM_LEADER_USAGE=§8/§7team promote §8[§emember§8]
TEAM_LEADER_NOT_USER=§cUnknown player.
TEAM_LEADER_NOT_MEMBER=§cThis player is not in your team.
TEAM_LEADER_PROMOTED=§7You made §e{0} §7a leader!
#Team Info
TEAM_INFO_USAGE=§8/§7team info §8[§eTeamname§8]
TEAM_INFO_TEAM=§7Team §e{0} §8[§{1}{2}§8]
TEAM_INFO_LEADER=§7Leader ({0})§8: {1}
TEAM_INFO_MEMBER=§7Member ({0})§8: {1}
TEAM_INFO_EVENTS=§7Events§8: §e{0}
#Team List
TEAM_LIST_NOT_PAGE=§cNo page number entered
TEAM_LIST_UNKNOWN_PAGE=§cInvalid page entered
TEAM_LIST_HEADER=§7§lTeam list §7{0}§8/§7{1}
TEAM_LIST_TEAM=§{0}{1} §e{2}
TEAM_LIST_TEAM_HOVER=§7Team info
TEAM_LIST_PAGE=Page »»
TEAM_LIST_NEXT=§eNext page
TEAM_LIST_PREV=§ePrevious page
#Team Event
TEAM_EVENT_USAGE=§8/§7team event §8[§eEvent§8] - §7to take part
TEAM_EVENT_HEADER=§7Your team takes part in the following events§8:
TEAM_EVENT_EVENT=§7{0}§8: §e{1}
TEAM_EVENT_NO_EVENT=§cThis event does not exist
TEAM_EVENT_OVER=§cThe registration period for this event is already over
TEAM_EVENT_LEFT=§7Your team no longer takes part in this event
TEAM_EVENT_JOINED=§7Your team now takes part in the event §e{0}§7!
TEAM_EVENT_HOW_TO_LEAVE=§7To cancel the participation repeat the command.
#Team Color
TEAM_COLOR_TITLE=Choose color
#Team Server
TEAM_SERVER_USAGE=§8/§7team server §8[§eIP/address§8] §8(§7port§8) §8- §7Sets the address of the team server.
TEAM_SERVER_SET=§7You changed the team server address§8!
TEAM_SERVER_PORT_INVALID=§cInvalid port number.
TEAM_SERVER_ADDRESS_INVALID=§cInvalid address.
TEAM_NO_ADDRESS=§cNo team server address set.
TEAM_OFFLINE=§cTeam server may be offline.
TEAM_TP_NO_TEAM=§cUnknown team.
#TpCommand
TP_USAGE=§8/§7tp §8[§eplayer§8]
TP_USAGE_EVENT=§8/§7tp §8[§ePlayer §7or §eteam§8]
#UnignoreCommand
UNIGNORE_USAGE=§8/§7unignore §8[§eplayer§8]
UNIGNORE_NOT_PLAYER=§cThis player does not exist!
UNIGNORE_NOT_IGNORED=§cYou are not ignoring this player.
UNIGNORE_UNIGNORED=§7You ignored §e{0}§8.
#WebregisterCommand
WEB_USAGE=§8/§7webpassword §8[§epassword§8]
WEB_UPDATED=§7Your password was updated.
WEB_CREATED=§7Your webaccount was created.
WEB_PASSWORD_LENGTH=§cYour password is shorter than 8 characters.
#ChatListener
CHAT_LIXFEL_ACTION_BAR=§4§lTechnical problems?
CHAT_LIXFEL_1=You called me!
CHAT_LIXFEL_2=Unfortunately I am only human and do not hear everything.
CHAT_LIXFEL_3=Therefore I ask you to deposit the problem or the error in the forum in the category §eReport error §7with a sufficient description
CHAT_LIXFEL_4=Thank you.
CHAT_LIXFEL_5=I wish you still a smooth gaming experience.
CHAT_YOYONOW_1=You called me!
CHAT_YOYONOW_2=I would like to recommend you the command "/bug <MESSAGE>"..
CHAT_YOYONOW_3=Thank you.
CHAT_YOYONOW_4=I wish you still a smooth gaming experience.
CHAT_CHAOSCAOT_1=You called me!
CHAT_CHAOSCAOT_2=If something is broken, just say it\'s a feature.
CHAT_CHAOSCAOT_3=And if it is a feature, just then it can\'t be broken.
CHAT_CHAOSCAOT_4=Broken is just a definition. So if you define it as a feature, it\'s not broken.
CHAT_CHAOSCAOT_5=And if you define it as broken, then tell us using the command "/bug <MESSAGE>".
CHAT_CHAOSCAOT_6=Thank you and goodbye.
CHAT_RECEIVE=§cTo be able to send chat messages, you must also receive them!
CHAT_NO_LINKS=§cYou may not send links.
CHAT_BC_USAGE=§8/§7bc §8[§emessage§8]
CHAT_NO_RECEIVER=§cNobody receives your message
CHAT_EMPTY=§cDon\'t write meaningless empty messages.
CHAT_SERVERTEAM=§8STC §e{0}§8» §f{2}
CHAT_GLOBAL={3}{4}{5}{6}{0}§8» {7}{2}
CHAT_DISCORD_GLOBAL=§8Dc {5}{6}{0}§8» {7}{2}
CHAT_TEAM=§8TC §e{0}§8» §f{2}
CHAT_MSG=§e{0}§8»§e{1} §7{2}
#CheckListner
CHECK_UNCHECKED=§7You still have §e{0} §7unchecked schematic§8(§7s§8)!
CHECK_CHECKING=§cYou are checking a Schematic!
#ConnectionListener
JOIN_ARENA=§7Click §ehere§7 to join §e{0}
JOIN_ARENA_HOVER=§eJoin Arena
JOIN_FIRST=§7Please greet §e{0}§7 on the server§8!
#EventModeListener
EVENTMODE_KICK=§cYou are not an event participant.
#PollSystem
POLL_HEADER=§e§lPoll
POLL_HEADER2=§7Click the answer you like!
POLL_QUESTION=§e{0}
POLL_ANSWER=§7{0}
POLL_ANSWER_HOVER=§eChoose {0}
#TablistManager
TABLIST_PHASE_WEBSITE=§8Website: https://§eSteam§8War.de
TABLIST_PHASE_DISCORD=§8Discord: https://§eSteam§8War.de/discord
TABLIST_FOOTER=§e{0} {1}§8ms §ePlayers§8: §7{2}
TABLIST_BAU=§7§lBuild
LIST_COMMAND=§e{0}§8: §7{1}
#EventStarter
EVENT_FIGHT_BROADCAST=§eClick here §7for the fight §{0}{1} §8vs §{2}{3}
EVENT_FIGHT_BROADCAST_HOVER=§eJoin Event
#SubserverSystem
SERVER_IGNORED=§cThis player has blocked you!
SERVER_ADD_MEMBER=§e{0} §7wants to join your Build server.
SERVER_ADD_MESSAGE=§7Click §ehere §7if you want to allow this.
SERVER_ADD_MESSAGE_HOVER=§8/§7build addmember §e{0}
SERVER_WORLD_ERROR=§cCreating the world failed.
#WhoisCommand
WHOIS_USAGE=§c/whois [player/ID] [-a/-m]
WHOIS_USERNAME=§7Username§8: §e{0}
WHOIS_PREFIX=§7Chat-Prefix§8: {0}
WHOIS_UUID=§7UUID§8: §e{0}
WHOIS_UUID_HOVER=§eCopy UUID
WHOIS_ID=§7ID§8: §e{0}
WHOIS_PERMS=§7Perms§8: §7{0}
WHOIS_DISCORD_ID=§7Discord-ID§8: §e{0}
WHOIS_JOINED_FIRST=§7Joined on§8: §e{0}
WHOIS_HOURS_PLAYED=§7Online Time§8: §e{0}h
WHOIS_CURRENT_PLAYED=§7Current Online Time§8: §e{0}m
WHOIS_CURRENT_SERVER=§7Current Server§8: §e{0}
WHOIS_CURRENT_PROTOCOL=§7Current Protocol§8: §e{0}
WHOIS_TEAM=§7Team§8: §e[§{0}{1}§e] {2}
WHOIS_TEAM_HOVER=§eShow {0}
WHOIS_PUNISHMENTS=§7Punishments:
WHOIS_PUNISHMENT=§7{0}§8» §f§l{1}: §e{2} - {3} §f{4}
WHOIS_NO_PUNISHMENT=§a✓ §7This player has no active punishment.
WHOIS_NO_ALL_PUNISHMENT=§a✓ §7The player has not done anything yet.
WHOIS_ACTIVE_MODS=§7Active Mods ({0}): {1}
WHOIS_NO_ACTIVE_MODS=§7This player has no active mods.
WHOIS_PLATFORM=§7Modloader: §e{0}
#VerifyCommand
VERIFY_USAGE=§c/verify [Code]
VERIFY_INVALID=§cInvalid Code
VERIFY_SUCCESS=§7Successfully linked to the Discord account §e{0}
#Discord
DISCORD_TICKET_HOVER=§eTo the message
DISCORD_TICKET_MESSAGE=§7Ticket §e{0}§7» §f§l{1}: §7{2}
DISCORD_TICKET_NEW=§7Ticket §e{0}§7» §aTicket was created!
DISCORD_TICKET_CLOSED=§7Ticket §e{0}§7» §cTicket was closed!
#GDPR Query
GDPR_STATUS_WEBSITE=§7Website cannot be packed automatically and therefore must be added manually.
GDPR_STATUS_WORLD=§7Packing Build worlds...
GDPR_STATUS_INVENTORIES=§7Searching and packing inventories...
GDPR_STATUS_DATABASE=§7Packing database contents...
GDPR_STATUS_LOGS=§7Searching and packing logs...
GDPR_STATUS_FINISHED=§7Packing complete
#Playtime Command
HOURS_PLAYED=§7Your playtime is§8: §e{0}h
#Arena command
ARENA_NOT_FOUND=§cThe specified arena could not be found
#Rank
RANK_PLAYER_NOT_FOUND=§cPlayer not found
RANK_PLAYER_FOUND=§eRank §7of §e{0}
RANK_HEADER=§e{0} {1}
RANK_UNPLACED=§7unranked
RANK_PLACED=§e{0}§8. §7with §e{1} §7Elo§8.
RANK_EMBLEM=§7Emblem§8: {0}
#Fabric Mod Sender
MODIFICATION_BAN_MESSAGE=You tried to bypass / modify the FabricModSender!
MODIFICATION_BAN_LOG={0} has tried to edit / bypass the FabricModSender! Reason: {1}
#Arena Merging
FIGHT_MERGE_TITLE=Equal fight found!
FIGHT_MERGE_DECLINE=§cLaunch new arena
FIGHT_MERGE_ACCEPT=§aJoin fight
FIGHT_MERGE_INFO_LORE_1=§8By: §e{0}
FIGHT_MERGE_OFFLINE=§7The proposed arena has been terminated in the meantime, a new arena will be started.
FIGHT_MERGE_INFO=§e{0}§8: §e{1}
#Locale Locking
LOCK_LOCALE_CHANGED=§aLanguage saved
#Builder Cloud
BUILDERCLOUD_USAGE=§8/§7buildercloud §8[§eversion§8] §8[§emap§8]
BUILDERCLOUD_CREATE_USAGE=§8/§7buildercloud create §8[§eversion§8] §8[§emap§8] §8<§7generator§8>
BUILDERCLOUD_RENAME_USAGE=§8/§7buildercloud rename §8[§eversion§8] §8[§emap§8] §8[§enew name§8]
BUILDERCLOUD_DEPLOY_USAGE=§8/§7deployarena §8[§egamemode§8] §8[§eversion§8] §8[§emap§8]
BUILDERCLOUD_DEPLOY_FINISHED=§7Map deployment finished.
BUILDERCLOUD_VERSION=§cUnknown version.
BUILDERCLOUD_EXISTING_MAP=§cMap already exists.
BUILDERCLOUD_UNKNOWN_MAP=§cUnknown map.
BUILDERCLOUD_RENAMED=§7Map rename successful.
# Advent Calendar
ADVENT_CALENDAR_TITLE=§eAdvent Calendar
ADVENT_CALENDAR_DAY=§7Day§8: §e{0}
ADVENT_CALENDAR_MESSAGE=§eDid you already open your advent calendar?
ADVENT_CALENDAR_MESSAGE_HOVER=§eClick to open!
ADVENT_CALENDAR_OPEN=§7You got §e{0} §7from the advent calendar!
#Mod Command
MOD_COMMAND_SET_USAGE=§7/mod set [mod name] [platform] [ModType 1-4]
MOD_COMMAND_GET_USAGE=§7/mod get [mod name] [platform]
MOD_CHANGED_TYPE=§7Successfully reclassified mod {0} on platform {1} to type {2}!
MOD_NO_MORE_UNCLASSIFIED_MODS=§7No more unclassified mods found in databank!
MOD_FOUND_NEXT_MOD=§7Next unclassified mod is {0} on platform {1}!
MOD_COMMAND_NOT_FOUND_IN_DATABASE=§7The Mod {0} on platform {1} was§c not §7found in the database!
MOD_COMMAND_INFO=§7The mod {0} on platform {1} is of the type {2}.
MOD_COMMAND_GUI_TITLE=Unclassified Mods
MOD_COMMAND_CLASSICIATION_GUI=Mod Type Changer
MOD_OPEN_GUI=§7Open Gui
MOD_TITLE_FILTER=Filter
MOD_UNCLASSIFIED=§7Unclassified
MOD_ALLOWED=§aAllowed
MOD_FORBIDDEN=§eForbidden
MOD_AUTOBAN=§cAutoban
MOD_YT=§5YT Only
MOD_ITEM_BACK=§7Back
#StreamInv
INV_PAGE_BACK=§{0}Seite zurück
INV_PAGE_NEXT=§{0}Seite vor
#Discord
DC_UNLINKED=For this action your Discord account has to be linked to your Minecraft account. To link your accounts go onto the SteamWar Discord to the `regeln-infos` Channel and click on `Minecraft Verknüpfen`.
DC_TITLE_SCHEMINFO=Schematic Info
DC_SCHEM_ACCEPT=Your schematic **{0}** has been accepted.
DC_SCHEM_DECLINE=Your schematic **{0}** has been declined.\n**Reason:**{1}
DC_AUTH_SUCCESS=:white_check_mark: You\'re Discord account has been linked with **{0}**.
DC_ROLE_ADDED=:tada: Your getting {0} now.
DC_ROLE_REMOVED=Your not getting {0} anymore.
DC_TICKET_CREATED=Your Ticket {0} has been created.
DC_TICKET_TITLE=SteamWar Ticket
DC_TICKETINTRO_REPORT=Please answer for the punishment of the misconduct the following questions as accurately as possible and attach evidence whenever possible:\n - Which player(s)?\n - On which Server?\n - At what time?\n - Type and nature of the misconduct?
DC_TICKETINTRO_IDEA=Describe your idea as detailed as possible. Hereto belongs: What, Why, How, Where?
DC_TICKETINTRO_BUG=Please describe the observed unexpected or incorrect behaviour of our software. If necessary describe steps to reproduce the error.
DC_TICKETINTRO_QUESTION=Please ask your question. A staff member will address the question soon.
DC_TICKETINTRO_APPEAL=Asking creates wonders.
DC_TICKET_CLOSE=Close
DC_SCHEMUPLOAD_NOPERM=You\'re not allowed to upload schematics.
DC_SCHEMUPLOAD_IGNORED=Skipping `{0}`, not a schematic file.
DC_SCHEMUPLOAD_INVCHAR=`{0}` has invalid characters in its name.
DC_SCHEMUPLOAD_SUCCESS=`{0}` was uploaded successfully.
DC_SCHEMUPLOAD_ERROR=An error has occured during the upload of `{0}`. For more information ask a Developer.
@@ -0,0 +1,683 @@
COMMAND_SYSTEM_ERROR = §cFehler beim Ausführen des Befehls!
PREFIX=§eSteam§8War»
SPACER=
TIMEFORMAT=dd.MM.yyyy HH:mm
UNKNOWN_COMMAND=§cUnbekannter Befehl.
UNKNOWN_PLAYER=§cDiesen Spieler gibt es nicht.
UNKNOWN_TEAM=§cDieses Team gibt es nicht.
UNKNOWN_EVENT=$cDieses Event gibt es nicht.
INVALID_TIME=§cUngültige Zeitangabe.
DEV_NO_SERVER=§cDer Server ist derzeit nicht erreichbar.
DEV_UNKNOWN_SERVER=§cBitte gib einen DevServer an.
DISABLED=§cDerzeit deaktiviert.
SERVER_START_OVERLOAD=§cDer Serverstart wurde aufgrund von Überlastung abgebrochen. Versuche es später erneut.
UPDATE_INTERRUPTION=§cBitte erneut versuchen. Ein Softwareupdate hat die Aktion unterbrochen.
#Help command
HELP_LOBBY=§7Kehre von überall mit §8/§el §7zur Lobby zurück!
HELP_LOBBY_HOVER=§eZurück zur Lobby
HELP_BAU=§7Komme mit §8/§ebau §7auf den Bauserver!
HELP_BAU_HOVER=§eZum Bauserver
HELP_BAUSERVER=§7Erhalte mit §8/§ehelp bau §7Hilfe zum Bauserver!
HELP_BAUSERVER_HOVER=§eHilfe zum Bauserver
HELP_FIGHT=§7Starte mit §8/§efight §7einen neuen Kampf!
HELP_FIGHT_HOVER=§eZum Kampfsystem
HELP_CHALLENGE=§7Tippe §8/§echallenge§7, um jemanden herauszufordern!
HELP_CHALLENGE_HOVER=§eHerausfordern
HELP_HISTORIC=§7Starte mit §8/§ehistoric §7einen historischen Kampf!
HELP_HISTORIC_HOVER=§eHistorische Kämpfe
HELP_TEAM=§8/§eteam§7 für das Teamsystem!
HELP_TEAM_HOVER=§eTeamverwaltung
HELP_JOIN=§7Trete mit §8/§ejoin §8[§eSpieler§8] §7einem Kampf bei!
HELP_JOIN_HOVER=§eSpieler beitreten
HELP_LOCAL=§7Schreibe mit §8/§elocal §7nur auf dem lokalen Server!
HELP_LOCAL_HOVER=§eLokaler Chat
HELP_TNT=§8/§7tnt §8- §7(de)aktiviert Explosionsschaden
HELP_FIRE=§8/§7fire §8- §7(de)aktiviert Feuerschaden
HELP_TESTBLOCK=§8/§7testblock §8- §7Erneuert den nächsten Testblock
HELP_RESET=§8/§7reset §8- §7Setzt die derzeitige Region zurück
HELP_SPEED=§8/§7speed §8- §7Ändert deine Fluggeschwindigkeit
HELP_NV=§8/§7nv §8- §7(de)aktiviert Nachtsicht
HELP_TRACE=§8/§7trace §8- §7Gibt einen Überblick über den TNT-Tracer
HELP_TPSLIMIT=§8/§7tpslimit §8- §7Gibt einen Überblick über den TPS-Limiter
HELP_LOADER=§8/§7loader §8- §7Nutze den automatischen Kanonenlader
HELP_PROTECT=§8/§7protect §8- §7Schützt den Boden der (M)WG-Region
HELP_FREEZE=§8/§7freeze §8- §7Unterbindet Blockupdates
HELP_SKULL=§8/§7skull §8- §7Gibt dir den Kopf eines Spielers
HELP_DEBUGSTICK=§8/§7debugstick §8- §7Gibt dir einen Debugstick (1.15+)
HELP_BAUINFO=§8/§7bauinfo §8- §7Gibt dir Informationen über den Bauserver
HELP_SCHEMSUBMIT=§7Für ein Tutorial über das Freischalten deines AirShips§8/§7MiniWarGear§8/§7WarGear§8/§7WarShips klicke §ehier§8!
HELP_BAU_GROUP_ADMIN=§7Bauserver-Verwaltungsbefehle
HELP_BAU_GROUP_ADMIN_HOVER=§eAlle Verwaltungsbefehle
HELP_BAU_GROUP_ADMIN_TITLE=§7Alle Verwaltungsbefehle§8:
HELP_BAU_GROUP_OTHER=§7Weitere Bauserverbefehle
HELP_BAU_GROUP_OTHER_HOVER=§eWeitere Bauserverbefehle
HELP_BAU_GROUP_OTHER_TITLE=§7Weitere Bauserverbefehle§8:
HELP_BAU_GROUP_WE=§7WorldEdit-Abkürzungen
HELP_BAU_GROUP_WE_HOVER=§eWorldEdit-Abkürzungen
HELP_BAU_GROUP_WE_TITLE=§7WorldEdit-Abkürzungen§8:
HELP_BAU_GROUP_PLAYER=§7Spielerbefehle
HELP_BAU_GROUP_PLAYER_HOVER=§eSpielerbefehle
HELP_BAU_GROUP_PLAYER_TITLE=§7Spielerbefehle§8:
HELP_BAU_GROUP_WORLD=§7Weltverändernde Bauserverbefehle
HELP_BAU_GROUP_WORLD_HOVER=§eWeltverändernde Bauserverbefehle
HELP_BAU_GROUP_WORLD_TITLE=§7Weltverändernde Bauserverbefehle§8:
HELP_BAU_TP=§8/§ebau tp §8- §7Gehe auf Bauserver von Freunden!
HELP_BAU_TP_HOVER=§eZu einem anderen Bauserver
HELP_BAU_ADDMEMBER=§8/§ebau addmember §8- §7Fügt einen Freund hinzu
HELP_BAU_ADDMEMBER_HOVER=§eFüge einen Freund hinzu
HELP_BAU_DELMEMBER=§8/§ebau delmember §8- §7Entfernt einen Spieler
HELP_BAU_DELMEMBER_HOVER=§eEntfernt einen Spieler
HELP_BAU_SET_SPECTATOR=§8/§ebau setspectator §8- §7Zuschauen auf dem Bauserver
HELP_BAU_SET_SPECTATOR_HOVER=§eSetzt die Rolle Spectator
HELP_BAU_SET_BUILDER=§8/§ebau setbuilder §8- §7Bauen, WorldEdit, BauSystem Features
HELP_BAU_SET_BUILDER_HOVER=§eSetzt die Rolle Builder
HELP_BAU_SET_SUPERVISOR=§8/§ebuild setsupervisor §8- §7Starten des Baus. Schematics erstellen
HELP_BAU_SET_SUPERVISOR_HOVER=§eSetzt die Rolle Supervisor
HELP_BAU_DELETE=§8/§ebau delete §8- §7Setzt deine Bauwelt zurück
HELP_BAU_DELETE_HOVER=§eBauwelt zurücksetzen
HELP_BAU_TESTARENA=§8/§ebau testarena §8- §7Starte eine Testarena
HELP_BAU_TESTARENA_HOVER=§eTestarena starten
HELP_BAU_LOCK=§8/§ebau lock §8- §7Sperre deinen Bauserver für bestimmte Spielergruppen
HELP_BAU_LOCK_HOVER=§eSperre deinen Bau
HELP_BAU_UNLOCK=§8/§ebau unlock §8- §7Öffne deinen Bauserver für alle hinzugefügten Spieler
HELP_BAU_UNLOCK_HOVER=§eÖffne deinen Bau
#Usage description of various commands
USAGE_ALERT=§8/§7alert §8[§eNachricht§8]
USAGE_IGNORE=§8/§7ignore §8[§eSpieler§8]
#ModListener
MOD_RED_SING=Versuchte Benutzung des Mods {0}
MOD_RED_PLUR=Versuchte Benutzung der Mods:\n{0}
MOD_YELLOW_SING=§7Deaktiviere den Mod §e{0}§7, um weiter auf §eSteam§8War §7spielen zu können.
MOD_YELLOW_PLUR=§7Deaktiviere die Mods\n§e{0}\n§7um weiter auf §eSteam§8War §7spielen zu können.
MODS_CHECKED=§7Deine installierten Mods wurden überprüft.\n§aDu kannst nun §eSteam§8War §abetreten§8.
#Various commands
STAT_SERVER=§7Server §e{0}§8: §7Startfähig §e{1} §7Serveranzahl §e{2}
#Ban&Mute-Command
PUNISHMENT_USAGE=§8/§7{0} §8[§eSpieler§8] [§edd§8.§emm§8.§eyyyy §7oder §edd§8.§emm§8.§eyyyy§8_§ehh§8:§emm §7oder §ezahl§8[§eh§7our|§ed§7ay|§ew§7eek|§em§7onth|§ey§7ear§8] §7oder §eperma§8] [§eGrund§8]
PUNISHMENT_USAGE_REASON=§cBitte gib einen Grund an.
UNPUNISHMENT_USAGE=§8/§7{0} §8[§eSpieler§8]
PUNISHMENT_UNTIL=bis zum {0}
PUNISHMENT_PERMA=permanent
BAN_TEAM={0} §e{1} §7wurde von §e{2} {3} §e§lgebannt§8. §7Grund§8: §f{4}
BAN_PERMA=§7Du bist §epermanent §e§lgebannt§8. §7Grund§8: §e{0}
BAN_UNTIL=§7Du bist §ebis zum {0} §e§lgebannt§8. §7Grund§8: §e{1}
UNBAN_ERROR=§cDer Spieler ist nicht gebannt.
UNBAN=§7Du hast §e{0} §e§lentbannt.
BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: {1}
BAN_AVOIDING_LIST=§c{0} §e{1}
BAN_AVOIDING_BAN_HOVER=§cBanne Spieler wegen Bannumgehung
MUTE_TEAM={0} §e{1} §7wurde von §e{2} {3} §e§lgemuted§8. §7Grund§8: §f{4}
MUTE_PERMA=§7Du bist §epermanent §e§lgemuted§8. §7Grund§8: §e{0}
MUTE_UNTIL=§7Du bist §ebis zum {0} §e§lgemuted§8. §7Grund§8: §e{1}
UNMUTE_ERROR=§cDer Spieler ist nicht gemuted.
UNMUTE=§7Du hast §e{0} §e§lentmuted.
NOSCHEMRECEIVING_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lSchematicerhalten§7 ausgeschlossen§8: §f{4}
NOSCHEMRECEIVING_PERMA=§7Du bist §epermanent §7vom Erhalten von §e§lSchematics§7 ausgeschlossen§8: §e{0}
NOSCHEMRECEIVING_UNTIL=§7Du bist §ebis zum {0} §7vom Erhalten von §e§lSchematics§7 ausgeschlossen§8: §e{1}
UNNOSCHEMRECEIVING_ERROR=§cDer Spieler ist nicht vom Erhalten von Schematics ausgeschlossen.
UNNOSCHEMRECEIVING=§e{0} §7darf nun wieder §e§lSchematics§7 erhalten§8.
NOSCHEMSHARING_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lSchematicverteilen§7 ausgeschlossen§8: §f{4}
NOSCHEMSHARING_PERMA=§7Du bist §epermanent §7vom §e§lVerteilen von Schematics§7 ausgeschlossen§8: §e{0}
NOSCHEMSHARING_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lVerteilen von Schematics§7 ausgeschlossen§8: §e{1}
UNNOSCHEMSHARING_ERROR=§cDer Spieler ist nicht vom Verteilen von Schematics ausgeschlossen.
UNNOSCHEMSHARING=§e{0} §7darf nun wieder §e§lSchematics§7 verteilen§8.
NOSCHEMSUBMITTING_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lSchematiceinsenden§7 ausgeschlossen§8: §f{4}
NOSCHEMSUBMITTING_PERMA=§7Du bist §epermanent §7vom §e§lEinsenden von Schematics§7 ausgeschlossen§8: §e{0}
NOSCHEMSUBMITTING_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lEinsenden von Schematics§7 ausgeschlossen§8: §e{1}
UNNOSCHEMSUBMITTING_ERROR=§cDer Spieler ist nicht vom Einsenden von Schematics ausgeschlossen.
UNNOSCHEMSUBMITTING=§e{0} §7darf nun wieder §e§lSchematis§7 einsenden§8.
NODEVSERVER_TEAM={0} §e{1} §7hat §e{2} §7mit Grund §f{4}§7 zu genervt und hat daher §e§lDevserververbot§7 erhalten§8, §f{3}
NODEVSERVER_PERMA=§7Du bist §epermanent §7vom §e§lDevserver§7 ausgeschlossen§8: §e{0}
NODEVSERVER_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lDevserver§7 ausgeschlossen§8: §e{1}
UNNODEVSERVER_ERROR=§cDer Spieler ist nicht vom Devserver ausgeschlossen.
UNNODEVSERVER=§e{0} §7darf nun wieder dem §e§lDevserver§7 beitreten§8.
NOFIGHTSERVER_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lKämpfen§7 ausgeschlossen§8: §f{4}
NOFIGHTSERVER_PERMA=§7Du bist §epermanent §7vom §e§lKämpfen§7 ausgeschlossen§8: §e{0}
NOFIGHTSERVER_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lKämpfen§7 ausgeschlossen§8: §e{1}
UNNOFIGHTSERVER_ERROR=§cDer Spieler ist nicht vom Kämpfen ausgeschlossen.
UNNOFIGHTSERVER=§e{0} §7darf nun wieder §e§lKämpfen§7 beitreten§8.
NOTEAMSERVER_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lTeamserver§7 setzen ausgeschlossen§8: §f{4}
NOTEAMSERVER_PERMA=§7Du bist §epermanent §7vom §e§lTeamserver§7 setzen ausgeschlossen§8: §e{0}
NOTEAMSERVER_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lTeamserver§7 setzen ausgeschlossen§8: §e{1}
UNNOTEAMSERVER_ERROR=§cDer Spieler ist nicht vom Teamserver setzten ausgeschlossen.
UNNOTEAMSERVER=§e{0} §7darf nun wieder §e§lTeamserver§7 setzen§8.
NOTE_TEAM={0} §e{1} §7erhielt von §e{2} {3} §7die §e§lNotiz§7§8: §f{4}
#BugCommand
BUG_MESSAGE=§7Bitte beschreibe das Problem in einem Discordticket genauer und gebe dabei die Bug-ID §e{0} §7an§8.
#IgnoreCommand
IGNORE_YOURSELF=§cWie willst du dich selber ignorieren?
IGNORE_ALREADY=§cDu ignorierst diesen Spieler bereits.
IGNORE_MESSAGE=§7Du ignorierst nun §e{0}§8.
#PollresultCommand
POLLRESULT_NOPOLL=§cDerzeit läuft keine Umfrage.
POLLRESULT_HEADER=§eEs haben {0} abgestimmt auf die Frage: §7{1}
#BauCommand
BAU_ADDMEMBER_USAGE=§8/§7bau addmember §8[§eSpieler§8]
BAU_ADDMEMBER_SELFADD=§cDu brauchst dich nicht selbst hinzufügen!
BAU_ADDMEMBER_ISADDED=§cDieser Spieler ist bereits Mitglied auf deiner Welt.
BAU_ADDMEMBER_ADDED=§aDer Spieler wurde zu deiner Welt hinzugefügt.
BAU_ADDMEMBER_ADDED_TARGET=§aDu wurdest zu der Welt von §e{0} §ahinzugefügt.
BAU_TP_USAGE=§8/§7bau tp §8[§eSpieler§8]
BAU_TP_NOALLOWED=§cDu darfst dich nicht auf diese Welt teleportieren.
BAU_LOCKED_NOALLOWED=§cDer Bauserver ist momentan gesperrt.
BAU_LOCK_BLOCKED=§cDeine Bausperre hat den Beitritt von §e{0} §cverhindert.
BAU_LOCKED_OPTIONS=§7Bauserver-Sperroptionen§8: §cnobody§8, §eserverteam§8, §eteam_and_serverteam§8, §eteam§8, §aopen
BAU_LOCKED_NOBODY=§7Du hast deinen Bau für alle Spieler geschlossen.
BAU_LOCKED_SERVERTEAM=§7Du hast deinen Bau für alle außer hinzugefügte Serverteammitglieder gesperrt.
BAU_LOCKED_TEAM_AND_SERVERTEAM=§7Du hast deinen Bau für alle außer hinzugefügte Teammitglieder und Serverteammitglieder gesperrt.
BAU_LOCKED_TEAM=§7Du hast deinen Bau für alle außer hinzugefügte Teammitglieder gesperrt.
BAU_LOCKED_OPEN=§7Du hast deinen Bau für alle hinzugefügten Spieler geöffnet.
BAU_DELMEMBER_USAGE=§8/§7bau delmember §8[§eSpieler§8]
BAU_DELMEMBER_SELFDEL=§cDu kannst dich nicht selbst entfernen!
BAU_DELMEMBER_DELETED=§cDer Spieler wurde entfernt.
BAU_DELMEMBER_DELETED_TARGET=§cDu wurdest von der Welt von §e{0} §centfernt.
BAU_DELETE_DELETED=§aDeine Welt wird zurückgesetzt.
BAU_DELETE_GUI_NAME=§eWirklich Welt löschen?
BAU_DELETE_GUI_CANCEL=§cAbbrechen
BAU_DELETE_GUI_DELETE=§aLöschen
BAU_START_ALREADY=§cDer Server startet bereits.
BAU_MEMBER_NOMEMBER=§cDer Spieler ist kein Mitglied deiner Welt!
BAU_MEMBER_SET_USAGE=§8/§7bau {0} §8[§eSpieler§8]
BAU_MEMBER_SET_TARGET=§7Du bist nun ein §e{1}§7 auf der Welt von §e{0}§7.
BAU_MEMBER_SET=§7Der Spieler ist nun §e{0}§7.
BAU_MEMBER_SET_SPECTATOR = Zuschauer
BAU_MEMBER_SET_BUILDER = Builder
BAU_MEMBER_SET_SUPERVISOR = Supervisor
BAU_START_NOT_ALLOWED = §cDu darfst diesen Bauserver nicht starten.
#ChallengeCommand
CHALLENGE_USAGE=§8/§7challenge §8[§eSpieler§8]
CHALLENGE_OFFLINE=§cDer Herausgeforderte ist nicht online.
CHALLENGE_SELF=§cSchizophren?
CHALLENGE_IGNORED=§cDer Herausgeforderte hat dich geblockt.
CHALLENGE_INARENA=§cDer Herausgeforderte ist bereits in einer Arena.
CHALLENGE_BROADCAST=§e{0}§7-§eDuell§7: §e{1} §7vs §e{2}
CHALLENGE_BROADCAST_HOVER=§aZuschauen
CHALLENGE_CHALLENGED=§7Du hast §e{0} §7zu einem §e{1}-Kampf §7herausgefordert!
CHALLENGE_CHALLENGED_TARGET=§e{0} §7 hat dich zu einem §e{1}-Kampf §7{2}herausgefordert!
CHALLENGE_CHALLENGED_MAP=auf §e{0} §7
CHALLENGE_ACCEPT=§7Klicke §ehier§7, um die Herausforderung anzunehmen
CHALLENGE_ACCEPT_HOVER=§aHerausforderung annehmen
#EventCommand
EVENT_TIME_FORMAT=HH:mm
EVENT_DATE_FORMAT=dd.MM.
EVENT_USAGE=§8/§7event §8[§eTeam§8] - §7Um dich zum Kampf zu teleportieren
EVENT_NO_TEAM=§cDieses Team gibt es nicht
EVENT_NO_FIGHT_TEAM=§cDas Team kämpft derzeit nicht
EVENT_NO_CURRENT=§cDerzeit findet kein Event statt
EVENT_COMING=§eKommende Events§8:
EVENT_COMING_EVENT=§7{0}§8-§7{1}§8: §e{2}
EVENT_COMING_DEADLINE=§7 Anmeldeschluss§8: §7{0}
EVENT_COMING_SCHEM_DEADLINE=§7 Einsendeschluss§8: §7{0}
EVENT_COMING_TEAMS=§7 Mit§8: {0}
EVENT_COMING_TEAM= §{0}{1}
EVENT_CURRENT_EVENT=§e§l{0}
EVENT_CURRENT_FIGHT=§7{0} §{1}{2}§8 vs §{3}{4}
EVENT_CURRENT_FIGHT_WIN=§8: §7Sieg §{0}{1}
EVENT_CURRENT_FIGHT_DRAW=§8: §7Unentschieden
#EventRescheduleCommand
EVENTRESCHEDULE_USAGE=§8/§7eventreschedule §8[§eTeam1§8] [§eTeam2§8]
EVENTRESCHEDULE_UNKNOWN_TEAM=§cEin Team ist unbekannt / Derzeit kein Event
EVENTRESCHEDULE_NO_FIGHT="§cKein Kampf zwischen den Teams gefunden"
EVENTRESCHEDULE_STARTING=§aKampf startet in 30s
#FightCommand
FIGHT_UNKNOWN_GAMEMODE=§cUnbekannter Spielmodus: {0}
FIGHT_UNKNOWN_ARENA=§cDie gewünschte Arena gibt es nicht.
FIGHT_IN_ARENA=§cDu befindest dich bereits in einer Arena.
FIGHT_BROADCAST=§7Klicke §ehier§7, um §e{0} §7gegen §e{1} §7zu §7kämpfen!
FIGHT_BROADCAST_HOVER=§aGegen §7{1} §ekämpfen
#CheckCommand
CHECK_REMINDER=§7Es sind §e{0} §7Schematics zu prüfen§8!
CHECK_REMINDER_HOVER=§eZu prüfende Schematics
CHECK_NOT_CHECKING=§cDu prüfst derzeit nicht.
CHECK_HELP_LIST=§8/§7check list §8- §7Zeigt die Liste der ungeprüften Schematics
CHECK_HELP_NEXT=§8/§7check next §8- §7Nächste Prüffrage§8/§7freigeben
CHECK_HELP_DECLINE=§8/§7check decline §8[§eGrund§8] - §7Schematic ablehnen
CHECK_HELP_CANCEL=§8/§7check cancel §8- §7Bricht den Prüfvorgang ab
CHECK_LIST_HEADER=§e§lZu prüfen sind {0} Schematics
CHECK_LIST_TO_CHECK={0} §8{1} §7{2} §e{3}
CHECK_LIST_TO_CHECK_HOVER=§eSchematic prüfen
CHECK_LIST_CHECKING={0} §8{1} §7{2} §e{3} §7wird geprüft von §e{4}
CHECK_LIST_CHECKING_HOVER=§eZum Prüfer
CHECK_SCHEMATIC_ALREADY_CHECKING=§cDu prüfst schon eine Schematic!
CHECK_SCHEMATIC_OWN=§cDu kannst nicht deine eigenen Schematics prüfen.
CHECK_SCHEMATIC_OWN_TEAM=§cDu kannst nicht Schematics deines Teams prüfen.
CHECK_SCHEMATIC_PREVIOUS=§7{0} von {1}§8: §e{2}
CHECK_INVALID_RANK=§cUnbekannter Schematicrang.
CHECK_ABORT=§aDer Prüfvorgang wurde abgebrochen!
CHECK_NEXT=Nächste Frage
CHECK_ACCEPT=Annehmen
CHECK_DECLINE=Ablehnen
CHECK_RANK=§aRang {0}: {1}
CHECK_RANK_HOVER=§aMit diesem Rang freigeben
CHECK_ACCEPTED=§aDein §e{0} {1} §ewurde freigegeben§8!
CHECK_ACCEPTED_TEAM=§7Die Schematic §e{0} §7von §e{1} §7ist nun freigegeben!
CHECK_DECLINED=§cDein §e{0} {1} §cwurde abgelehnt§8: §c{2}
CHECK_DECLINED_TEAM=§7Die Schematic §e{0} §7von §e{1} §7wurde aufgrund von §e{2} §7abgelehnt!
#HistoricCommand
HISTORIC_BROADCAST=§7Historischer §e{0}§8-§7Kampf von §e{1}§8!
HISTORIC_BROADCAST_HOVER=§aGegen §7{1} §ekämpfen
#JoinCommand
JOIN_PLAYER_BLOCK=§cDu kannst diesem Spieler derzeit nicht folgen.
#JoinmeCommand
JOINME_USAGE=§8/§7join §8[§eSpieler§8].
JOINME_BROADCAST=§7Klicke §ehier§8, §7um zu §e{0} §7auf §e{1} §7zu kommen§8!
JOINME_BROADCAST_HOVER=§aSpieler folgen
JOINME_PLAYER_OFFLINE=§cDieser Spieler ist offline.
JOINME_PLAYER_SELF=§cSei eins mit dir selbst!
#KickCommand
KICK_USAGE=§8/§7kick §8[§eSpieler§8] [§eNachricht§8]
KICK_OFFLINE=§cDieser Spieler ist derzeit nicht online!
KICK_CONFIRM=Der Spieler {0} wurde gekickt.
KICK_NORMAL=§cDu wurdest gekickt.
#MsgCommand
MSG_USAGE=§8/§7msg §8[§eBenutzer§8] [§eNachricht§8]
MSG_OFFLINE=§cKein Gesprächspartner verfügbar!
MSG_IGNORED=§cDieser Spieler hat dich geblockt!
#PingCommand
PING_RESPONSE=§7Dein Ping beträgt §c{0}§7 ms!
#PollCommand
POLL_NO_POLL=§cDerzeit läuft keine Umfrage.
POLL_NO_ANSWER=§cDas ist keine Antwortmöglichkeit!
POLL_ANSWER_REFRESH=§aDeine Antwort wurde aktualisiert.
POLL_ANSWER_NEW=§aDeine Antwort wurde registriert.
#RCommand
R_USAGE=§8/§7r §8[§eAntwort§8]
#RegelnCommand
REGELN_RULES=§7§lRegelwerke
REGELN_AS=§eAirShip§8-§7Regelwerk
REGELN_AS_HOVER=§7https://steamwar.de/spielmodi/airship-regelwerk/
REGELN_AS_URL=https://steamwar.de/spielmodi/airship-regelwerk/
REGELN_MWG=§eMiniWarGear§8-§7Regelwerk
REGELN_MWG_HOVER=§7https://steamwar.de/spielmodi/miniwargear-regelwerk/
REGELN_MWG_URL=https://steamwar.de/spielmodi/miniwargear-regelwerk/
REGELN_WG=§eWarGear§8-§7Regelwerk
REGELN_WG_HOVER=§7https://steamwar.de/spielmodi/wargear-regelwerk/
REGELN_WG_URL=https://steamwar.de/spielmodi/wargear-regelwerk/
REGELN_WS=§eWarShip§8-§7Regelwerk
REGELN_WS_HOVER=§7https://steamwar.de/spielmodi/warship-regelwerk/
REGELN_WS_URL=https://steamwar.de/spielmodi/warship-regelwerk/
REGELN_QG=§eQuickGear§8-§7Regelwerk
REGELN_QG_HOVER=§7https://steamwar.de/spielmodi/quickgear-regelwerk/
REGELN_QG_URL=https://steamwar.de/spielmodi/quickgear-regelwerk/
REGELN_CONDUCT=§eVerhaltensrichtlinien
REGELN_CONDUCT_HOVER=§7https://steamwar.de/verhaltensrichtlinien/
REGELN_CONDUCT_URL=https://steamwar.de/verhaltensrichtlinien/
#ReplayCommand
REPLAY_TITLE=Letzte Kämpfe
REPLAY_UNAVAILABLE=§cReplay nicht möglich
#TutorialCommand
TUTORIAL_TITLE=Tutorials
TUTORIAL_NAME=§e{0}
TUTORIAL_BY=§8von §7{0}
TUTORIAL_STARS=§e{0} §7Sterne
TUTORIAL_RATE_TITLE=Tutorial bewerten
TUTORIAL_RATE=§e{0} §7Stern(e)
TUTORIAL_DELETE=§cMit Shift+Rechtsklick löschen
TUTORIAL_CREATE_HELP=§8/§7tutorial create §8[§eMaterial§8] §8[§eName§8]
TUTORIAL_CREATE_MISSING=§cEin Tutorial kann nur von einem Tutorialserver aus erstellt werden!
TUTORIAL_CREATED=§7Das Tutorial wurde erstellt§8.
TUTORIAL_OWN_HELP=§8/§7tutorial own §8- §7Liste der eigenen Tutorials
#ServerTeamchatCommand
STC_USAGE=§8/§7stc §8[§eNachricht an das Team§8]
#TeamchatCommand
TC_USAGE=§8/§7tc §8[§eNachricht an das Team§8]
TC_NO_TEAM=§cDu bist in keinem Team.
#TeamCommand
TEAM_IN_TEAM=§cDu bist bereits in einem Team.
TEAM_NOT_IN_TEAM=§cDu bist in keinem Team.
TEAM_NOT_LEADER=§cDu bist nicht der Teamleader.
TEAM_NOT_IN_EVENT=§cDies ist während eines Events nicht möglich.
TEAM_HELP_HEADER=§7Mit §e/team §7verwaltest du dein Team.
TEAM_HELP_LIST=§8/§7team list §8- §7Liste alle Teams auf.
TEAM_HELP_INFO=§8/§7team info §8- §7Informiere dich über ein Team.
TEAM_HELP_TP=§8/§7team tp §8(§7Team§8) §8- §7Teleportiert zum Teamserver.
TEAM_HELP_CREATE=§8/§7team create §8- §7Erstelle dein eigenes Team.
TEAM_HELP_JOIN=§8/§7team join §8- §7Trete einem Team bei.
TEAM_HELP_CHAT=§8/§7teamchat §8- §7Sende Nachrichten an dein Team.
TEAM_HELP_EVENT=§8/§7team event §8- §7Nehme an Events teil.
TEAM_HELP_LEAVE=§8/§7team leave §8- §7Verlasse dein Team.
TEAM_HELP_INVITE=§8/§7team invite §8- §7Lade jemanden in dein Team ein.
TEAM_HELP_REMOVE=§8/§7team remove §8- §7Entferne jemanden aus deinem Team.
TEAM_HELP_KUERZEL=§8/§7team changekuerzel §8- §7Ändere dein Teamkürzel.
TEAM_HELP_NAME=§8/§7team changename §8- §7Ändere deinen Teamnamen.
TEAM_HELP_COLOR=§8/§7team changecolor §8- §7Ändere deine Teamfarbe.
TEAM_HELP_LEADER=§8/§7team promote §8- §7Ernenne jemanden zum Teamleader.
TEAM_HELP_STEP_BACK=§8/§7team stepback §8- §7Tritt als Leader zurück.
TEAM_HELP_SERVER=§8/§7team server §8[§eIP/Adresse§8] §8(§7Port§8) §8- §7Setzt Adresse des Teamservers.
#Team Create
TEAM_CREATE_USAGE=§8/§7team create §8[§eTeamkürzel§8] §8[§eTeamname§8]
TEAM_CREATE_CREATED=§7Du hast das Team §e{0} §7gegründet!
#Team Join
TEAM_JOIN_NO_INVITE=§7Du hast keine Einladungen erhalten.
TEAM_JOIN_USAGE=§8/§7team join §8[§eTeam§8]
TEAM_JOIN_INVITED=§7Du wurdest von diesen Teams eingeladen§8: §e{0}
TEAM_JOIN_NOT_BY_TEAM=§cVon diesem Team wurdest du nicht eingeladen.
TEAM_JOIN_JOINED=§7Du bist dem Team §e{0} §7beigetreten!
#Team Leave
TEAM_OTHER_LEADER_REQUIRED=§cBitte ernenne zunächst ein anderes Teammitglied zum Leader!
TEAM_LEAVE_LEFT=§7Du hast dein Team verlassen!
#Team Step Back
TEAM_STEP_BACK=§7Du hast deinen Posten als Teamleader abgegeben§8!
#Team Invite
TEAM_INVITE_USAGE=§8/§7team invite §8[§eSpieler§8]
TEAM_INVITE_NO_PLAYER=§cDiesen Spieler gibt es nicht.
TEAM_INVITE_IN_TEAM=§cDieser Spieler ist bereits in einem Team.
TEAM_INVITE_ALREADY_INVITED=§cDu hast diesen Spieler bereits eingeladen.
TEAM_INVITE_INVITED=§7Du hast §e{0} §7in das Team eingeladen!
TEAM_INVITE_INVITED_TARGET=§7Du wurdest in das Team §{0}{1} §7eingeladen!
#Team Remove
TEAM_REMOVE_USAGE=§8/§7team remove §8[§eSpieler§8]
TEAM_REMOVE_NOT_PLAYER=§cDiesen Spieler gibt es nicht.
TEAM_REMOVE_NOT_LEADER=§cLeader können nicht rausgeworfen werden.
TEAM_REMOVE_INVITE=§7Die Einladung wurde zurückgezogen.
TEAM_REMOVE_NO_INVITE=§cDieser Spieler hat keine Einladung erhalten.
TEAM_REMOVE_NOT_IN_TEAM=§cDieser Spieler ist nicht in deinem Team.
TEAM_REMOVE_REMOVED=§7Der Spieler wurde aus dem Team entfernt.
TEAM_REMOVE_REMOVED_TARGET=§cDu wurdest aus dem Team entfernt.
#Team Kuerzel
TEAM_KUERZEL_USAGE=§8/§7team changekuerzel §8[§eTeamkürzel§8]
TEAM_KUERZEL_CHANGED=§7Du hast das Kürzel des Teams geändert!
TEAM_KUERZEL_LENGTH=§cEin Teamkürzel muss aus 2 bis 4 Buchstaben bestehen.
TEAM_KUERZEL_TAKEN=§cEs gibt bereits ein Team mit diesem Namen.
#Team Name
TEAM_NAME_USAGE=§8/§7team changename §8[§eTeamname§8]
TEAM_NAME_CHANGED=§7Du hast das Team umbenannt!
TEAM_NAME_LENGTH=§cEin Teamname muss aus 4 bis 15 Buchstaben bestehen.
TEAM_NAME_TAKEN=§cEs gibt bereits ein Team mit diesem Namen.
#Team Leader
TEAM_LEADER_USAGE=§8/§7team promote §8[§eMember§8]
TEAM_LEADER_NOT_USER=§cUnbekannter Spieler.
TEAM_LEADER_NOT_MEMBER=§cDer Spieler ist nicht in deinem Team.
TEAM_LEADER_PROMOTED=§7Du hast den Spieler §e{0} §7zum Leader gemacht!
#Team Info
TEAM_INFO_USAGE=§8/§7team info §8[§eTeamname§8]
TEAM_INFO_TEAM=§7Team §e{0} §8[§{1}{2}§8]
TEAM_INFO_LEADER=§7Leader ({0})§8: {1}
TEAM_INFO_MEMBER=§7Member ({0})§8: {1}
TEAM_INFO_EVENTS=§7Events§8: §e{0}
#Team List
TEAM_LIST_NOT_PAGE=§cKeine Seitenzahl angegeben
TEAM_LIST_UNKNOWN_PAGE=§cUngültige Seitenzahl angegeben
TEAM_LIST_HEADER=§7§lTeamliste §7{0}§8/§7{1}
TEAM_LIST_TEAM=§{0}{1} §e{2}
TEAM_LIST_TEAM_HOVER=§7Teaminfo
TEAM_LIST_PAGE=Seite »»
TEAM_LIST_NEXT=§eNächste Seite
TEAM_LIST_PREV=§eVorherige Seite
#Team Event
TEAM_EVENT_USAGE=§8/§7team event §8[§eEvent§8] - §7um daran teilzunehmen
TEAM_EVENT_HEADER=§7Dein Team nimmt an folgenden Events teil§8:
TEAM_EVENT_EVENT=§7{0}§8: §e{1}
TEAM_EVENT_NO_EVENT=§cDieses Event gibt es nicht
TEAM_EVENT_OVER=§cDie Anmeldephase für dieses Event ist bereits vorbei
TEAM_EVENT_LEFT=§7Dein Team nimmt nicht mehr am Event teil
TEAM_EVENT_JOINED=§7Dein Team nimmt nun am Event §e{0} §7 teil!
TEAM_EVENT_HOW_TO_LEAVE=§7Um die Teilnahme abzusagen, wiederhole den Befehl.
#Team Color
TEAM_COLOR_TITLE=Farbe wählen
#Team Server
TEAM_SERVER_USAGE=§8/§7team server §8[§eIP/Adresse§8] §8(§7Port§8) §8- §7Setzt Adresse des Teamservers.
TEAM_SERVER_SET=§7Du hast die Teamserveradresse geändert§8!
TEAM_SERVER_PORT_INVALID=§cUnmögliche Portnummer.
TEAM_SERVER_ADDRESS_INVALID=§cUngültige Adresse.
TEAM_NO_ADDRESS=§cTeamserveradresse nicht gesetzt.
TEAM_OFFLINE=§cTeamserver scheint offline zu sein.
TEAM_UNKNOWN=§cEin unwerwarteter Fehler ist aufgetreten beim verbinden zum Teamserver.
TEAM_TP_NO_TEAM=§cUnbekanntes Team.
#TpCommand
TP_USAGE=§8/§7tp §8[§eSpieler§8]
TP_USAGE_EVENT=§8/§7tp §8[§eSpieler §7oder §eTeam§8]
#UnignoreCommand
UNIGNORE_USAGE=§8/§7unignore §8[§eSpieler§8]
UNIGNORE_NOT_PLAYER=§cDiesen Spieler gibt es nicht!
UNIGNORE_NOT_IGNORED=§cDu ignorierst diesen Spieler nicht.
UNIGNORE_UNIGNORED=§7Du empfängst nun wieder Nachrichten von §e{0}§8.
#WebregisterCommand
WEB_USAGE=§8/§7webpassword §8[§ePasswort§8]
WEB_UPDATED=§7Dein Passwort wurde aktualisiert.
WEB_CREATED=§7Dein Webaccount wurde erstellt.
WEB_PASSWORD_LENGTH=§cDein Passwort ist kürzer als 8 Zeichen.
#ChatListener
CHAT_LIXFEL_ACTION_BAR=§4§lTechnische Probleme?
CHAT_LIXFEL_1=Du hast mich gerufen!
CHAT_LIXFEL_2=Leider bin ich nur ein Mensch und höre nicht alles.
CHAT_LIXFEL_3=Daher bitte ich dich, das Problem bzw. den Fehler im Forum in der Kategorie §eFehler melden §7mit einer ausreichenden Beschreibung zu hinterlegen.
CHAT_LIXFEL_4=Vielen Dank.
CHAT_LIXFEL_5=Ich wünsche dir noch weiterhin ein reibungsloses Spielerlebnis.
CHAT_YOYONOW_1=Du hast mich gerufen!
CHAT_YOYONOW_2=Ich würde dir gerne den Befehl "/bug <MESSAGE>" ans Herz legen.
CHAT_YOYONOW_3=Vielen Dank.
CHAT_YOYONOW_4=Ich wünsche dir noch weiterhin ein reibungsloses Spielerlebnis.
CHAT_CHAOSCAOT_1=Du hast mich gerufen!
CHAT_CHAOSCAOT_2=Wenn etwas nicht funktioniert, dann nen es einfach ein Feature.
CHAT_CHAOSCAOT_3=Und wenn es ein Feature ist, dann kann es nicht kaputt.
CHAT_CHAOSCAOT_4=Kaputt ist nur eine Definition. Wenn du es als Feature definiert, dann kann es nicht kaputt sein.
CHAT_CHAOSCAOT_5=Und wenn du es als kaputt definiert, dann sag uns bescheid mit dem Befehl "/bug <MESSAGE>".
CHAT_CHAOSCAOT_6=Vielen Dank.
CHAT_RECEIVE=§cUm Chatnachrichten versenden zu können, musst du auch welche empfangen!
CHAT_NO_LINKS=§cDu darfst keine Links versenden.
CHAT_BC_USAGE=§8/§7bc §8[§eNachricht§8]
CHAT_NO_RECEIVER=§cNiemand empfängt deine Nachricht
CHAT_EMPTY=§cSchreibe keine inhaltslosen Nachrichten.
CHAT_SERVERTEAM=§8STC §e{0}§8» §f{2}
CHAT_GLOBAL={3}{4}{5}{6}{0}§8» {7}{2}
CHAT_DISCORD_GLOBAL=§8Dc {5}{6}{0}§8» {7}{2}
CHAT_TEAM=§8TC §e{0}§8» §f{2}
CHAT_MSG=§e{0}§8»§e{1} §7{2}
#CheckListner
CHECK_UNCHECKED=§7Du hast noch §e{0} §7ungeprüfte Schematic§8(§7s§8)!
CHECK_CHECKING=§cDu prüfst gerade eine Schematic!
#ConnectionListener
JOIN_ARENA=§7Klicke §ehier§7, um §e{0} §7beizutreten
JOIN_ARENA_HOVER=§eArena beitreten
JOIN_FIRST=§7Begrüßt alle mal §e{0} §7auf dem Server§8!
#EventModeListener
EVENTMODE_KICK=§cDu bist kein Eventteilnehmer.
#PollSystem
POLL_HEADER=§e§lUmfrage
POLL_HEADER2=§7Klicke die Antwort an, die dir gefällt!
POLL_QUESTION=§e{0}
POLL_ANSWER=§7{0}
POLL_ANSWER_HOVER=§e{0} §ewählen
#TablistManager
TABLIST_PHASE_WEBSITE=§8Website: https://§eSteam§8War.de
TABLIST_PHASE_DISCORD=§8Discord: https://§eSteam§8War.de/discord
TABLIST_FOOTER=§e{0} {1}§8ms §eSpieler§8: §7{2}
TABLIST_BAU=§7§lBau
LIST_COMMAND=§e{0}§8: §7{1}
#EventStarter
EVENT_FIGHT_BROADCAST=§7Hier §eklicken §7für den Kampf §{0}{1} §8vs §{2}{3}
EVENT_FIGHT_BROADCAST_HOVER=§eEvent beitreten
#SubserverSystem
SERVER_IGNORED=§cDieser Spieler hat dich geblockt!
SERVER_ADD_MEMBER=§e{0} §7möchte auf deine Bauwelt.
SERVER_ADD_MESSAGE=§7Klicke §ehier§7, wenn du das erlauben möchtest.
SERVER_ADD_MESSAGE_HOVER=§8/§7bau addmember §e{0}
SERVER_WORLD_ERROR=§cDas Erstellen der Welt ist fehlgeschlagen.
#WhoisCommand
WHOIS_USAGE=§c/whois [Spieler/ID] [-a/-m]
WHOIS_USERNAME=§7Username§8: §e{0}
WHOIS_PREFIX=§7Chat-Präfix§8: {0}
WHOIS_PERMS=§7Rechte§8: §7{0}
WHOIS_UUID=§7UUID§8: §e{0}
WHOIS_UUID_HOVER=§eUUID Kopieren
WHOIS_ID=§7ID§8: §e{0}
WHOIS_DISCORD_ID=§7Discord-ID§8: §e{0}
WHOIS_JOINED_FIRST=§7Beigetreten am§8: §e{0}
WHOIS_HOURS_PLAYED=§7Spielzeit§8: §e{0}h
WHOIS_CURRENT_PLAYED=§7Aktuell online§8: §e{0}m
WHOIS_CURRENT_SERVER=§7Aktueller Server§8: §e{0}
WHOIS_CURRENT_PROTOCOL=§7Aktuelle Version§8: §e{0}
WHOIS_TEAM=§7Team§8: §e[§{0}{1}§e] {2}
WHOIS_TEAM_HOVER=§e{0} anzeigen
WHOIS_PUNISHMENTS=§7Strafen:
WHOIS_PUNISHMENT=§7{0}§8» §f§l{1}: §e{2} - {3} §f{4}
WHOIS_NO_PUNISHMENT=§a✓ §7Der Spieler hat keine aktiven Strafen.
WHOIS_NO_ALL_PUNISHMENT=§a✓ §7Der Spieler hat noch nichts getan.
WHOIS_ACTIVE_MODS=§7Aktive Mods ({0}): {1}
WHOIS_NO_ACTIVE_MODS=§7Der Spieler hat keine aktiven Mods.
#VerifyCommand
VERIFY_USAGE=§c/verify [Code]
VERIFY_INVALID=§cInvalider Code
VERIFY_SUCCESS=§7Erfolgreich mit dem Discord Account §e{0} §7verknüpft
#Discord
DISCORD_TICKET_HOVER=§eZur Nachricht
DISCORD_TICKET_MESSAGE=§7Ticket §e{0}§7» §f§l{1}: §7{2}
DISCORD_TICKET_NEW=§7Ticket §e{0}§7» §aTicket wurde geöffnet!
DISCORD_TICKET_CLOSED=§7Ticket §e{0}§7» §cTicket wurde geschlossen!
#GDPR Query
GDPR_STATUS_WEBSITE=§7Website kann nicht automatisiert gepackt werden und muss daher manuell hinzugefügt werden.
GDPR_STATUS_WORLD=§7Packe Bauwelten...
GDPR_STATUS_INVENTORIES=§7Suche und packe Inventare...
GDPR_STATUS_DATABASE=§7Packe Datenbankinhalte...
GDPR_STATUS_LOGS=§7Suche und packe logs...
GDPR_STATUS_FINISHED=§7Packen abgeschlossen
#Playtime Command
HOURS_PLAYED=§7Deine Spielzeit beträgt§8: §e{0}h
#Arena command
ARENA_NOT_FOUND=§cDie angegebene Arena konnte nicht gefunden werden
#Rank
RANK_PLAYER_NOT_FOUND=§cSpieler nicht gefunden
RANK_PLAYER_FOUND=§eRang §7von §e{0}
RANK_HEADER=§e{0} {1}
RANK_UNPLACED=§7unplatziert
RANK_PLACED=§e{0}§8. §7mit §e{1} §7Elo§8.
RANK_EMBLEM=§7Emblem§8: {0}
#Fabric Mod Sender
MODIFICATION_BAN_MESSAGE=Du hast probiert den FabricModSender zu umgehen / zu modifizieren!
MODIFICATION_BAN_LOG={0} hat probiert den Fabric Mod Sender zu editieren / umzugehen! Grund: {1}
#Arena Merging
FIGHT_MERGE_TITLE=Gleicher Kampf gefunden!
FIGHT_MERGE_DECLINE=§cNeue Arena starten
FIGHT_MERGE_ACCEPT=§aKampf beitreten
FIGHT_MERGE_INFO_LORE_1=§8Von: §e{0}
FIGHT_MERGE_OFFLINE=§7Die vorgeschlagene Arena wurde in der Zwischenzeit beendet, es wird eine neue Arena gestartet.
#Locale Locking
LOCK_LOCALE_CHANGED=§aSprache gespeichert
#Builder Cloud
BUILDERCLOUD_USAGE=§8/§7buildercloud §8[§eVersion§8] §8[§eWelt§8]
BUILDERCLOUD_CREATE_USAGE=§8/§7buildercloud create §8[§eVersion§8] §8[§eWelt§8] §8<§7Generator§8>
BUILDERCLOUD_RENAME_USAGE=§8/§7buildercloud rename §8[§eVersion§8] §8[§eWElt§8] §8[§eNeuer Name§8]
BUILDERCLOUD_VERSION=§cUnbekannte Version.
BUILDERCLOUD_EXISTING_MAP=§cWelt existiert bereits.
BUILDERCLOUD_UNKNOWN_MAP=§cUnbekannte Welt.
BUILDERCLOUD_RENAMED=§7Umbenennung erfolgreich.
# Advent Calendar
ADVENT_CALENDAR_TITLE=§eAdventskalender
ADVENT_CALENDAR_DAY=§7Tag§8: §e{0}
ADVENT_CALENDAR_MESSAGE=§eHast du heute schon dein Geschenk geholt?
ADVENT_CALENDAR_MESSAGE_HOVER=§eKlicken zum öffnen!
ADVENT_CALENDAR_OPEN=§7Du hast §e{0}§7 aus dem Adventskalender erhalten!
#StreamInv
INV_PAGE_BACK=§{0}Page back
INV_PAGE_NEXT=§{0}Next page
#Discord
DC_UNLINKED=Für diese Aktion muss dein Minecraftaccount mit deinem Discordaccount verknüpft sein, gehe dazu auf dem SteamWar-Discord in den `regeln-infos` Channel und Klicke auf `Minecraft Verknüpfen`.
DC_TITLE_SCHEMINFO=Schematicinfo
DC_SCHEM_ACCEPT=Deine Schematic **{0}** wurde angenommen.
DC_SCHEM_DECLINE=Deine Schematic **{0}** wurde abgelehnt. **Grund:** \n{1}
DC_AUTH_SUCCESS=:white_check_mark: Dein Discordaccount wurde mit **{0}** verknüpft.
DC_ROLE_ADDED=:tada: Du bekommst nun {0}.
DC_ROLE_REMOVED=Du bekommst nun keine {0} mehr.
DC_TICKET_CREATED=Dein Ticket {0} wurde erstellt.
DC_TICKETINTRO_REPORT=Bitte beantworte für die Ahndung des Fehlverhaltens möglichst genau folgende Fragen und füge nach Möglichkeit Beweismaterial hinzu:\n - Welche(r) Spieler?\n - Auf welchem Server?\n - Zu welchem Zeitpunkt?\n - Art und Natur des Fehlverhaltens?
DC_TICKETINTRO_IDEA=Beschreibe deine Idee möglichst detailiert. Hierzu gehört: Was, Warum, Wie, Wo?
DC_TICKETINTRO_BUG=Bitte beschreibe das beobachtete unerwartete bzw. inkorrekte Verhalten der Serversoftware. Falls notwendig, beschreibe die Schritte, mit denen der Fehler reproduziert werden kann.
DC_TICKETINTRO_QUESTION=Bitte stelle deine Frage, ein Serverteammitglied wird sich dieser zeitnah annehmen.
DC_TICKETINTRO_APPEAL=Fragen wirkt Wunder!
DC_TICKET_CLOSE=Schließen
DC_SCHEMUPLOAD_NOPERM=Du darfst keine Schematics hochladen.
DC_SCHEMUPLOAD_IGNORED=`{0}` wird ignoriert, da die Datei keine Schematic ist.
DC_SCHEMUPLOAD_INVCHAR=`{0}` hat unzulässige Buchstaben im Namen.
DC_SCHEMUPLOAD_SUCCESS=`{0}` wurde erfolgreich hochgeladen.
DC_SCHEMUPLOAD_ERROR=Ein Fehler ist beim Hochladen von `{0}` aufgetreten. Für nähere Informationen wende dich an einen Developer.
@@ -0,0 +1,276 @@
/*
This file is a part of the SteamWar software.
Copyright (C) 2022 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.messages;
import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.event.ResultedEvent;
import com.velocitypowered.api.event.connection.LoginEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ServerConnection;
import de.steamwar.persistent.Servertype;
import de.steamwar.persistent.Subserver;
import de.steamwar.velocitycore.VelocityCore;
import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserPerm;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.UUID;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Stream;
public interface Chatter {
static Stream<Player> allPlayers() {
return VelocityCore.getProxy().getAllPlayers().stream();
}
static Stream<Chatter> allStream() {
return Stream.concat(Stream.of(Chatter.console()), allPlayers().map(Chatter::of));
}
static ChatterGroup broadcast() {
return new ChatterGroup(allStream());
}
static ChatterGroup globalChat() {
return new ChatterGroup(Stream.concat(Stream.of(Chatter.console()), allPlayers().filter(player -> {
Subserver subserver = Subserver.getSubserver(player);
return subserver == null || !(subserver.getType() == Servertype.ARENA && subserver.getServer() == player.getCurrentServer().map(ServerConnection::getServerInfo).orElse(null));
}).map(Chatter::of)));
}
static ChatterGroup serverteam() {
return new ChatterGroup(allStream().filter(player -> player.user().hasPerm(UserPerm.TEAM)));
}
SteamwarUser user();
Locale getLocale();
boolean chatShown();
void sendMessage(Component msg);
Player getPlayer();
default <T> T withPlayerOrOffline(Function<Player, T> withPlayer, Supplier<T> withOffline) {
Player player = getPlayer();
if(player == null)
return withOffline.get();
else
return withPlayer.apply(player);
}
default void withPlayerOrOffline(Consumer<Player> withPlayer, Runnable withOffline) {
Player player = getPlayer();
if(player == null)
withOffline.run();
else
withPlayer.accept(player);
}
default void withPlayer(Consumer<Player> function) {
withPlayerOrOffline(function, () -> {});
}
default void system(String format, Object... params) {
system(new Message(format, params));
}
default void system(Message message) {
send(true, null, null, message);
}
default void system(String format, Message onHover, ClickEvent onClick, Object... params) {
send(true, onHover, onClick, new Message(format, params));
}
default void prefixless(String format, Object... params) {
prefixless(format, null, null, params);
}
default void prefixless(String format, Message onHover, ClickEvent onClick, Object... params) {
send(false, onHover, onClick, new Message(format, params));
}
default void send(boolean prefixed, Message onHover, ClickEvent onClick, Message message) {
Component msg = parse(prefixed, message);
if(onHover != null)
msg = msg.hoverEvent(HoverEvent.showText(parse(false, onHover)));
if(onClick != null)
msg = msg.clickEvent(onClick);
sendMessage(msg);
}
default String parseToPlain(String format, Object... params) {
return parseToPlain(new Message(format, params));
}
default String parseToPlain(Message message) {
return PlainTextComponentSerializer.plainText().serialize(parse(message));
}
default String parseToLegacy(String format, Object... params) {
return parseToLegacy(new Message(format, params));
}
default String parseToLegacy(Message message) {
return LegacyComponentSerializer.legacySection().serialize(parse(message));
}
default Component parse(String format, Object... params) {
return parse(false, new Message(format, params));
}
default Component parse(Message message) {
return parse(false, message);
}
default Component parse(boolean prefixed, String format, Object... params) {
return parse(prefixed, new Message(format, params));
}
default Component parse(boolean prefixed, Message message) {
Locale locale = getLocale();
ResourceBundle resourceBundle = SteamwarResourceBundle.getResourceBundle(locale);
String pattern = "";
if(prefixed)
pattern = resourceBundle.getObject("PREFIX") + " ";
pattern += (String)resourceBundle.getObject(message.format());
MessageFormat format = new MessageFormat(pattern, locale);
Object[] params = message.params();
for (int i = 0; i < params.length; i++) {
if(params[i] instanceof Message msg) {
params[i] = parseToLegacy(msg);
} else if(params[i] instanceof Date date) {
params[i] = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale).format(date);
} else if(params[i] instanceof SteamwarUser user) {
params[i] = user.getUserName();
} else if(params[i] instanceof Player player) {
params[i] = player.getUsername();
} else if(params[i] instanceof Chatter chatter) {
params[i] = chatter.user().getUserName();
} else if(params[i] instanceof Function func) {
params[i] = func.apply(this);
}
}
return LegacyComponentSerializer.legacySection().deserialize(format.format(params));
}
static PlayerChatter of(Player player) {
return new PlayerChatter(player, player::sendMessage);
}
static PlayerChatter disconnect(Player player) {
return new PlayerChatter(player, player::disconnect);
}
static Chatter of(CommandSource sender) {
if(sender instanceof Player player)
return of(player);
//Console
return new PlayerlessChatter() {
@Override
public SteamwarUser user() {
return SteamwarUser.get(-1);
}
@Override
public boolean chatShown() {
return true;
}
@Override
public void sendMessage(Component msg) {
sender.sendMessage(msg);
}
};
}
static Chatter of(SteamwarUser user) {
return of(user.getUUID());
}
static Chatter of(UUID uuid) {
Player player = VelocityCore.getProxy().getPlayer(uuid).orElse(null);
if(player != null)
return Chatter.of(player);
return new PlayerlessChatter() {
@Override
public SteamwarUser user() {
return SteamwarUser.get(uuid);
}
@Override
public boolean chatShown() {
return false;
}
@Override
public void sendMessage(Component msg) {
// Nowhere to send
}
};
}
static Chatter console() {
return of(VelocityCore.getProxy().getConsoleCommandSource());
}
static Chatter of(LoginEvent event) {
return new PlayerlessChatter() {
@Override
public SteamwarUser user() {
return SteamwarUser.get(event.getPlayer().getUniqueId());
}
@Override
public boolean chatShown() {
return false;
}
@Override
public void sendMessage(Component msg) {
event.setResult(ResultedEvent.ComponentResult.denied(msg));
}
};
}
abstract class PlayerlessChatter implements Chatter {
@Override
public Locale getLocale() {
return user().getLocale();
}
@Override
public Player getPlayer() {
return VelocityCore.getProxy().getPlayer(user().getUUID()).orElse(null);
}
}
}
@@ -0,0 +1,63 @@
/*
* 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.messages;
import de.steamwar.sql.SteamwarUser;
import lombok.Getter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import java.util.Arrays;
import java.util.stream.Stream;
@Getter
public class ChatterGroup extends Chatter.PlayerlessChatter {
final Chatter[] chatters;
public ChatterGroup(Stream<Chatter> stream) {
chatters = stream.toArray(Chatter[]::new);
}
public ChatterGroup(Chatter... chatters) {
this.chatters = chatters;
}
@Override
public boolean chatShown() {
return Arrays.stream(chatters).allMatch(Chatter::chatShown);
}
@Override
public void send(boolean prefixed, Message onHover, ClickEvent onClick, Message message) {
for(Chatter sender : chatters)
sender.send(prefixed, onHover, onClick, message);
}
@Override
public SteamwarUser user() {
throw new UnsupportedOperationException();
}
@Override
public void sendMessage(Component msg) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,22 @@
/*
* 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.messages;
public record Message(String format, Object... params) { }
@@ -0,0 +1,64 @@
/*
* 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.messages;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.player.PlayerSettings;
import de.steamwar.sql.SteamwarUser;
import lombok.AllArgsConstructor;
import net.kyori.adventure.text.Component;
import java.util.Locale;
import java.util.function.Consumer;
@AllArgsConstructor
public class PlayerChatter implements Chatter {
private final Player player;
private final Consumer<Component> sendMessage;
@Override
public SteamwarUser user() {
return SteamwarUser.get(player.getUniqueId());
}
@Override
public Locale getLocale() {
return user().getLocale();
}
@Override
public boolean chatShown() {
if(!player.hasSentPlayerSettings())
return false;
return player.getPlayerSettings().getChatMode() == PlayerSettings.ChatMode.SHOWN;
}
@Override
public void sendMessage(Component msg) {
sendMessage.accept(msg);
}
@Override
public Player getPlayer() {
return player;
}
}
@@ -0,0 +1,53 @@
/*
This file is a part of the SteamWar software.
Copyright (C) 2022 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.messages;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
public class SteamwarResourceBundle extends PropertyResourceBundle {
private static final String BASE_PATH = "/" + "de.steamwar.messages.BungeeCore".replace('.', '/');
private static final Map<String, ResourceBundle> bundles = new HashMap<>();
public static ResourceBundle getResourceBundle(Locale locale) {
return getResourceBundle(locale.toString(), getResourceBundle(locale.getLanguage(), getResourceBundle( "", null)));
}
private static synchronized ResourceBundle getResourceBundle(String locale, ResourceBundle parent) {
return bundles.computeIfAbsent(locale, locale1 -> {
InputStream inputStream = Message.class.getResourceAsStream(BASE_PATH + ("".equals(locale) ? "" : "_" + locale) + ".properties");
if(inputStream == null)
return parent;
try {
return new SteamwarResourceBundle(inputStream, parent);
} catch (IOException e) {
return parent;
}
});
}
private SteamwarResourceBundle(InputStream stream, ResourceBundle parent) throws IOException {
super(stream);
setParent(parent);
}
}