Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
ziqian zhang
Grasscutter
Commits
fe4e5990
Commit
fe4e5990
authored
May 18, 2022
by
Melledy
Browse files
Merge branch 'development' into dev-world-scripts
parents
3cffdd97
e3ed3968
Changes
58
Show whitespace changes
Inline
Side-by-side
data/GameAnnouncement.json
→
src/main/resources/defaults/
data/GameAnnouncement.json
View file @
fe4e5990
File moved
data/GameAnnouncementList.json
→
src/main/resources/defaults/
data/GameAnnouncementList.json
View file @
fe4e5990
File moved
data/Shop.json
→
src/main/resources/defaults/
data/Shop.json
View file @
fe4e5990
File moved
data/ShopChest.json
→
src/main/resources/defaults/
data/ShopChest.json
View file @
fe4e5990
File moved
data/ShopChestBatchUse.json
→
src/main/resources/defaults/
data/ShopChestBatchUse.json
View file @
fe4e5990
File moved
data/Spawns.json
→
src/main/resources/defaults/
data/Spawns.json
View file @
fe4e5990
File moved
data/TowerSchedule.json
→
src/main/resources/defaults/
data/TowerSchedule.json
View file @
fe4e5990
File moved
data/gacha/details.html
→
src/main/resources/defaults/
data/gacha/details.html
View file @
fe4e5990
File moved
data/gacha/records.html
→
src/main/resources/defaults/
data/gacha/records.html
View file @
fe4e5990
File moved
keys/dispatchKey.bin
→
src/main/resources/
keys/dispatchKey.bin
View file @
fe4e5990
File moved
keys/dispatchSeed.bin
→
src/main/resources/
keys/dispatchSeed.bin
View file @
fe4e5990
File moved
keys/secretKey.bin
→
src/main/resources/
keys/secretKey.bin
View file @
fe4e5990
File moved
keys/secretKeyBuffer.bin
→
src/main/resources/
keys/secretKeyBuffer.bin
View file @
fe4e5990
File moved
src/main/resources/languages/en-US.json
View file @
fe4e5990
...
...
@@ -17,22 +17,22 @@
"default_password"
:
"[Dispatch] The default keystore password was loaded successfully. Please consider setting the password to 123456 in config.json."
},
"authentication"
:
{
"default_unable_to_verify"
:
"[Authentication] Something called the verifyUser method which is unavailable in the default authentication handler"
"default_unable_to_verify"
:
"[Authentication] Something called the verifyUser method which is unavailable in the default authentication handler
.
"
},
"no_commands_error"
:
"Commands are not supported in dispatch only mode."
,
"unhandled_request_error"
:
"[Dispatch] Potential unhandled %s request: %s"
,
"unhandled_request_error"
:
"[Dispatch] Potential unhandled %s request: %s
.
"
,
"account"
:
{
"login_attempt"
:
"[Dispatch] Client %s is trying to log in"
,
"login_success"
:
"[Dispatch] Client %s logged in as %s"
,
"login_token_attempt"
:
"[Dispatch] Client %s is trying to log in via token"
,
"login_token_error"
:
"[Dispatch] Client %s failed to log in via token"
,
"login_token_success"
:
"[Dispatch] Client %s logged in via token as %s"
,
"combo_token_success"
:
"[Dispatch] Client %s succeed to exchange combo token"
,
"combo_token_error"
:
"[Dispatch] Client %s failed to exchange combo token"
,
"account_login_create_success"
:
"[Dispatch] Client %s failed to log in: Account %s created"
,
"account_login_create_error"
:
"[Dispatch] Client %s failed to log in: Account create failed"
,
"account_login_exist_error"
:
"[Dispatch] Client %s failed to log in: Account no found"
,
"account_cache_error"
:
"Game account cache information error"
,
"login_attempt"
:
"[Dispatch] Client %s is trying to log in
.
"
,
"login_success"
:
"[Dispatch] Client %s logged in as %s
.
"
,
"login_token_attempt"
:
"[Dispatch] Client %s is trying to log in via token
.
"
,
"login_token_error"
:
"[Dispatch] Client %s failed to log in via token
.
"
,
"login_token_success"
:
"[Dispatch] Client %s logged in via token as %s
.
"
,
"combo_token_success"
:
"[Dispatch] Client %s succeed to exchange combo token
.
"
,
"combo_token_error"
:
"[Dispatch] Client %s failed to exchange combo token
.
"
,
"account_login_create_success"
:
"[Dispatch] Client %s failed to log in: Account %s created
.
"
,
"account_login_create_error"
:
"[Dispatch] Client %s failed to log in: Account create failed
.
"
,
"account_login_exist_error"
:
"[Dispatch] Client %s failed to log in: Account no
t
found
.
"
,
"account_cache_error"
:
"Game account cache information error
.
"
,
"session_key_error"
:
"Wrong session key."
,
"username_error"
:
"Username not found."
,
"username_create_error"
:
"Username not found, create failed."
...
...
@@ -45,7 +45,7 @@
"shutdown"
:
"Shutting down..."
,
"done"
:
"Done! For help, type
\"
help
\"
"
,
"error"
:
"An error occurred."
,
"welcome"
:
"Welcome to Grasscutter"
,
"welcome"
:
"Welcome to Grasscutter
!
"
,
"run_mode_error"
:
"Invalid server run mode: %s."
,
"run_mode_help"
:
"Server run mode must be 'HYBRID', 'DISPATCH_ONLY', or 'GAME_ONLY'. Unable to start Grasscutter..."
,
"create_resources"
:
"Creating resources folder..."
,
...
...
@@ -61,17 +61,17 @@
"console_execute_error"
:
"This command can only be run from the console."
,
"player_execute_error"
:
"Run this command in-game."
,
"command_exist_error"
:
"No command found."
,
"no_description_specified"
:
"No description specified"
,
"no_description_specified"
:
"No description specified
.
"
,
"invalid"
:
{
"amount"
:
"Invalid amount."
,
"artifactId"
:
"Invalid artifact
Id
."
,
"avatarId"
:
"Invalid avatar
Id
."
,
"artifactId"
:
"Invalid artifact
ID
."
,
"avatarId"
:
"Invalid avatar
ID
."
,
"avatarLevel"
:
"Invalid avatarLevel."
,
"entityId"
:
"Invalid entity
Id
."
,
"itemId"
:
"Invalid item
Id
."
,
"entityId"
:
"Invalid entity
ID
."
,
"itemId"
:
"Invalid item
ID
."
,
"itemLevel"
:
"Invalid itemLevel."
,
"itemRefinement"
:
"Invalid itemRefinement."
,
"playerId"
:
"Invalid player
Id
."
,
"playerId"
:
"Invalid player
ID
."
,
"uid"
:
"Invalid UID."
}
},
...
...
@@ -101,7 +101,7 @@
"create"
:
"Account created with UID %s."
,
"delete"
:
"Account deleted."
,
"no_account"
:
"Account not found."
,
"command_usage"
:
"Usage: account <create|delete> <username> [
uid
]"
,
"command_usage"
:
"Usage: account <create|delete> <username> [
UID
]"
,
"description"
:
"Modify user accounts"
},
"broadcast"
:
{
...
...
@@ -110,7 +110,7 @@
"description"
:
"Sends a message to all the players"
},
"changescene"
:
{
"usage"
:
"Usage: changescene <sceneI
d
>"
,
"usage"
:
"Usage: changescene <sceneI
D
>"
,
"already_in_scene"
:
"You are already in that scene."
,
"success"
:
"Changed to scene %s."
,
"exists_error"
:
"The specified scene does not exist."
,
...
...
@@ -128,15 +128,15 @@
"description"
:
"Deletes unequipped unlocked items, including yellow rarity ones from your inventory"
},
"coop"
:
{
"usage"
:
"Usage: coop <playerI
d
> <target playerI
d
>"
,
"usage"
:
"Usage: coop <playerI
D
> <target playerI
D
>"
,
"success"
:
"Summoned %s to %s's world."
,
"description"
:
"Forces someone to join the world of others"
},
"enter_dungeon"
:
{
"usage"
:
"Usage: enterdungeon <dungeon
id
>"
,
"changed"
:
"Changed to dungeon %s"
,
"not_found_error"
:
"Dungeon does not exist"
,
"in_dungeon_error"
:
"You are already in that dungeon"
,
"usage"
:
"Usage: enterdungeon <dungeon
ID
>"
,
"changed"
:
"Changed to dungeon %s
.
"
,
"not_found_error"
:
"Dungeon does not exist
.
"
,
"in_dungeon_error"
:
"You are already in that dungeon
.
"
,
"description"
:
"Enter a dungeon"
},
"giveAll"
:
{
...
...
@@ -147,26 +147,26 @@
"description"
:
"Gives all items"
},
"giveArtifact"
:
{
"usage"
:
"Usage: giveart|gart [player] <artifactI
d
> <mainPropI
d
> [<appendPropI
d
>[,<times>]]... [level]"
,
"usage"
:
"Usage: giveart|gart [player] <artifactI
D
> <mainPropI
D
> [<appendPropI
D
>[,<times>]]... [level]"
,
"id_error"
:
"Invalid artifact ID."
,
"success"
:
"Given %s to %s."
,
"description"
:
"Gives the player a specified artifact"
},
"giveChar"
:
{
"usage"
:
"Usage: givechar <player> <itemI
d
|itemName> [amount]"
,
"usage"
:
"Usage: givechar <player> <itemI
D
|itemName> [amount]"
,
"given"
:
"Given %s with level %s to %s."
,
"invalid_avatar_id"
:
"Invalid avatar
id
."
,
"invalid_avatar_id"
:
"Invalid avatar
ID
."
,
"invalid_avatar_level"
:
"Invalid avatar level."
,
"invalid_avatar_or_player_id"
:
"Invalid avatar or player ID."
,
"description"
:
"Gives the player a specified character"
},
"give"
:
{
"usage"
:
"Usage: give <player> <itemI
d
|itemName> [amount] [level]"
,
"usage"
:
"Usage: give <player> <itemI
D
|itemName> [amount] [level]"
,
"refinement_only_applicable_weapons"
:
"Refinement is only applicable to weapons."
,
"refinement_must_between_1_and_5"
:
"Refinement must be between 1 and 5."
,
"given"
:
"Given %s of %s to %s."
,
"given_with_level_and_refinement"
:
"Given %s with level %s, refinement %s %s times to %s"
,
"given_level"
:
"Given %s with level %s %s times to %s"
,
"given_with_level_and_refinement"
:
"Given %s with level %s, refinement %s %s times to %s
.
"
,
"given_level"
:
"Given %s with level %s %s times to %s
.
"
,
"description"
:
"Gives an item to you or the specified player"
},
"godmode"
:
{
...
...
@@ -183,25 +183,25 @@
},
"kick"
:
{
"player_kick_player"
:
"Player [%s:%s] has kicked player [%s:%s]"
,
"server_kick_player"
:
"Kicking player [%s:%s]"
,
"server_kick_player"
:
"Kicking player [%s:%s]
...
"
,
"description"
:
"Kicks the specified player from the server (WIP)"
},
"kill"
:
{
"usage"
:
"Usage: killall [playerU
id
] [sceneI
d
]"
,
"scene_not_found_in_player_world"
:
"Scene not found in player world"
,
"kill_monsters_in_scene"
:
"Killing %s monsters in scene %s"
,
"usage"
:
"Usage: killall [playerU
ID
] [sceneI
D
]"
,
"scene_not_found_in_player_world"
:
"Scene not found in player world
.
"
,
"kill_monsters_in_scene"
:
"Killing %s monsters in scene %s
.
"
,
"description"
:
"Kill all entities"
},
"killCharacter"
:
{
"usage"
:
"Usage: /killcharacter [playerI
d
]"
,
"usage"
:
"Usage: /killcharacter [playerI
D
]"
,
"success"
:
"Killed %s's current character."
,
"description"
:
"Kills the players current character"
},
"language"
:
{
"current_language"
:
"
c
urrent language is %s"
,
"language_changed"
:
"
l
anguage changed to %s"
,
"language_not_found"
:
"
c
urrently, server does not have that language
: %s
"
,
"description"
:
"
d
isplay or change current language"
"current_language"
:
"
C
urrent language is %s
.
"
,
"language_changed"
:
"
L
anguage changed to %s
.
"
,
"language_not_found"
:
"
C
urrently,
the
server does not have that language
.
"
,
"description"
:
"
D
isplay or change current language"
},
"list"
:
{
"success"
:
"There are %s player(s) online:"
,
...
...
@@ -217,16 +217,16 @@
"description"
:
"Grants or removes a permission for a user"
},
"position"
:
{
"success"
:
"Coordinates: %s, %s, %s
\n
Scene
id
: %s"
,
"description"
:
"Get coordinates
."
"success"
:
"Coordinates: %s, %s, %s
\n
Scene
ID
: %s"
,
"description"
:
"Get coordinates
"
},
"quest"
:
{
"
description"
:
"Add or
finish
quest
s
"
,
"
usage
"
:
"
q
uest
<add|finish> [quest id]
"
,
"
added"
:
"Q
uest %s
added
"
,
"
finished"
:
"Finished quest %s
"
,
"
not_found"
:
"Quest not found
"
,
"
invalid_id"
:
"Invalid
quest
id"
"
usage"
:
"quest <add|
finish
> [
quest
ID]
"
,
"
added
"
:
"
Q
uest
%s added.
"
,
"
finished"
:
"Finished q
uest %s
.
"
,
"
not_found"
:
"Quest not found.
"
,
"
invalid_id"
:
"Invalid quest ID.
"
,
"
description"
:
"Add or finish
quest
s"
},
"reload"
:
{
"reload_start"
:
"Reloading config."
,
...
...
@@ -236,34 +236,34 @@
"resetConst"
:
{
"reset_all"
:
"Reset all avatars' constellations."
,
"success"
:
"Constellations for %s have been reset. Please relog to see changes."
,
"description"
:
"Resets the constellation level on your current active character, will need to relog after using the command to see any changes
."
"description"
:
"Resets the constellation level on your current active character,
you
will need to relog after using the command to see any changes
"
},
"resetShopLimit"
:
{
"usage"
:
"Usage: /resetshop <player
id
>"
,
"description"
:
"Reset target player's shop refresh time
."
"usage"
:
"Usage: /resetshop <player
ID
>"
,
"description"
:
"Reset target player's shop refresh time
"
},
"sendMail"
:
{
"usage"
:
"Usage: give [player] <itemI
d
|itemName> [amount]"
,
"user_not_exist"
:
"The user with an
id
of '%s' does not exist"
,
"start_composition"
:
"Starting composition of message.
\n
Please use `/sendmail <title>` to continue.
\n
You can use `/sendmail stop` at any time"
,
"usage"
:
"Usage: give [player] <itemI
D
|itemName> [amount]"
,
"user_not_exist"
:
"The user with an
ID
of '%s' does not exist
.
"
,
"start_composition"
:
"Starting composition of message.
\n
Please use `/sendmail <title>` to continue.
\n
You can use `/sendmail stop` at any time
.
"
,
"templates"
:
"Mail templates coming soon implemented..."
,
"invalid_arguments"
:
"Invalid arguments.
\n
Usage `/sendmail <userI
d
|all|help> [templateI
d
]`"
,
"send_cancel"
:
"Message sending cancelled"
,
"invalid_arguments"
:
"Invalid arguments.
\n
Usage `/sendmail <userI
D
|all|help> [templateI
D
]`"
,
"send_cancel"
:
"Message sending cancelled
.
"
,
"send_done"
:
"Message sent to user %s!"
,
"send_all_done"
:
"Message sent to all users!"
,
"not_composition_end"
:
"Message composition not at final stage.
\n
Please use `/sendmail %s` or `/sendmail stop` to cancel"
,
"please_use"
:
"Please use `/sendmail %s`"
,
"set_title"
:
"Message title set as '%s'.
\n
Use '/sendmail <content>' to continue."
,
"set_contents"
:
"Message contents set as '%s'.
\n
Use '/sendmail <sender>' to continue."
,
"set_message_sender"
:
"Message sender set as '%s'.
\n
Use '/sendmail <itemI
d
|itemName|finish> [amount] [level]' to continue."
,
"set_message_sender"
:
"Message sender set as '%s'.
\n
Use '/sendmail <itemI
D
|itemName|finish> [amount] [level]' to continue."
,
"send"
:
"Attached %s of %s (level %s) to the message.
\n
Continue adding more items or use `/sendmail finish` to send the message."
,
"invalid_arguments_please_use"
:
"Invalid arguments
\n
Please use `/sendmail %s`"
,
"title"
:
"<title>"
,
"message"
:
"<message>"
,
"sender"
:
"<sender>"
,
"arguments"
:
"<itemI
d
|itemName|finish> [amount] [level]"
,
"error"
:
"ERROR:
i
nvalid construction stage %s. Check console for stacktrace."
,
"description"
:
"Sends mail to the specified user. The usage of this command changes based on it
'
s composition state
."
"arguments"
:
"<itemI
D
|itemName|finish> [amount] [level]"
,
"error"
:
"ERROR:
I
nvalid construction stage %s. Check console for stacktrace."
,
"description"
:
"Sends mail to the specified user. The usage of this command changes based on its composition state
"
},
"sendMessage"
:
{
"usage"
:
"Usage: sendmessage <player> <message>"
,
...
...
@@ -273,7 +273,7 @@
"setFetterLevel"
:
{
"usage"
:
"Usage: setfetterlevel <level>"
,
"range_error"
:
"Fetter level must be between 0 and 10."
,
"success"
:
"Fetter level set to %s"
,
"success"
:
"Fetter level set to %s
.
"
,
"level_error"
:
"Invalid fetter level."
,
"description"
:
"Sets your fetter level for your current active character"
},
...
...
@@ -287,17 +287,17 @@
"set_self"
:
"%s set to %s."
,
"set_for_uid"
:
"%s for %s set to %s."
,
"set_max_hp"
:
"MAX HP set to %s."
,
"description"
:
"Set fight property for your current active character"
"description"
:
"Set
s
fight property for your current active character"
},
"setWorldLevel"
:
{
"usage"
:
"Usage: setworldlevel <level>"
,
"value_error"
:
"World level must be between 0-8"
,
"value_error"
:
"World level must be between 0-8
.
"
,
"success"
:
"World level set to %s."
,
"invalid_world_level"
:
"Invalid world level."
,
"description"
:
"Sets your world level (Relog to see proper effects)"
},
"spawn"
:
{
"usage"
:
"Usage: spawn <entityI
d
> [amount] [level(monster only)]"
,
"usage"
:
"Usage: spawn <entityI
D
> [amount] [level(monster only)]"
,
"success"
:
"Spawned %s of %s."
,
"description"
:
"Spawns an entity near you"
},
...
...
@@ -309,7 +309,7 @@
"usage_1"
:
"To set talent level: /talent set <talentID> <value>"
,
"usage_2"
:
"Another way to set talent level: /talent <n or e or q> <value>"
,
"usage_3"
:
"To get talent ID: /talent getid"
,
"lower_16"
:
"Invalid talent level. Level should be lower than 16"
,
"lower_16"
:
"Invalid talent level. Level should be lower than 16
.
"
,
"set_id"
:
"Set talent to %s."
,
"set_atk"
:
"Set talent Normal ATK to %s."
,
"set_e"
:
"Set talent E to %s."
,
...
...
@@ -323,47 +323,44 @@
"description"
:
"Set talent level for your current active character"
},
"team"
:
{
"usage"
:
"Usage: team <add|remove|set> [avatarI
d
,...] [index|first|last|index-index,...]"
,
"invalid_usage"
:
"
i
nvalid usage"
,
"add_usage"
:
"
u
sage(add): team add <avatarI
d
,...> [index]"
,
"invalid_index"
:
"
i
ndex is invalid"
,
"add_too_much"
:
"server
is
only allow you to have at most %d avatar(s) in your team"
,
"failed_to_add_avatar"
:
"
f
ailed to add avatar
by id:
%s"
,
"remove_usage"
:
"
u
sage(remove): team remove <index|first|last|index-index,...>"
,
"failed_parse_index"
:
"
f
ailed to parse index: %s"
,
"remove_too_much"
:
"
y
ou can't remove
so many avatars, your team list will be empty for this
"
,
"ignore_index"
:
"
i
gnored index(es): %s"
,
"set_usage"
:
"
u
sage(set): team set <index> <avatarI
d
>"
,
"index_out_of_range"
:
"index you
r
specified is out of range"
,
"failed_parse_avatar_id"
:
"
f
ailed to parse avatar
id
: %s"
,
"avatar_already_in_team"
:
"
a
vatar is already in team"
,
"avatar_not_found"
:
"
a
vatar not found
: %d
"
,
"description"
:
"
m
odify your team manually"
"usage"
:
"Usage: team <add|remove|set> [avatarI
D
,...] [index|first|last|index-index,...]"
,
"invalid_usage"
:
"
I
nvalid usage
.
"
,
"add_usage"
:
"
U
sage
(add): team add <avatarI
D
,...> [index]"
,
"invalid_index"
:
"
I
ndex is invalid
.
"
,
"add_too_much"
:
"
The
server only allow
s
you to have at most %d avatar(s) in your team
.
"
,
"failed_to_add_avatar"
:
"
F
ailed to add avatar
ID
%s
.
"
,
"remove_usage"
:
"
U
sage
(remove): team remove <index|first|last|index-index,...>"
,
"failed_
to_
parse_index"
:
"
F
ailed to parse index: %s"
,
"remove_too_much"
:
"
Y
ou can't remove
all your avatars.
"
,
"ignore_index"
:
"
I
gnored index(es): %s"
,
"set_usage"
:
"
U
sage
(set): team set <index> <avatarI
D
>"
,
"index_out_of_range"
:
"
The
index you specified is out of range
.
"
,
"failed_parse_avatar_id"
:
"
F
ailed to parse avatar
ID
: %s"
,
"avatar_already_in_team"
:
"
A
vatar is already in team
.
"
,
"avatar_not_found"
:
"
A
vatar
%d
not found
.
"
,
"description"
:
"
M
odify your team manually
.
"
},
"teleportAll"
:
{
"success"
:
"Summoned all players to your location."
,
"error"
:
"You only
can
use this command in MP mode."
,
"error"
:
"You
can
only use this command in MP mode."
,
"description"
:
"Teleports all players in your world to your position"
},
"teleport"
:
{
"usage_server"
:
"Usage: /tp @<player
id
> <x> <y> <z> [scene
id
]"
,
"usage"
:
"Usage: /tp [@<player
id
>] <x> <y> <z> [scene
id
]"
,
"specify_player_id"
:
"You must specify a player
id
."
,
"usage_server"
:
"Usage: /tp @<player
ID
> <x> <y> <z> [scene
ID
]"
,
"usage"
:
"Usage: /tp [@<player
ID
>] <x> <y> <z> [scene
ID
]"
,
"specify_player_id"
:
"You must specify a player
ID
."
,
"invalid_position"
:
"Invalid position."
,
"success"
:
"Teleported %s to %s, %s, %s in scene %s"
,
"description"
:
"Change the player's position."
},
"tower"
:
{
"unlock_done"
:
"Abyss Corridor's Floors are all unlocked now."
"success"
:
"Teleported %s to %s, %s, %s in scene %s."
,
"description"
:
"Change the player's position"
},
"weather"
:
{
"usage"
:
"Usage: weather <weatherI
d
> [climateI
d
]"
,
"success"
:
"Changed weather to %s with climate %s"
,
"usage"
:
"Usage: weather <weatherI
D
> [climateI
D
]"
,
"success"
:
"Changed weather to %s with climate %s
.
"
,
"invalid_id"
:
"Invalid ID."
,
"description"
:
"Changes the weather
."
"description"
:
"Changes the weather
"
},
"drop"
:
{
"command_usage"
:
"Usage: drop <itemI
d
|itemName> [amount]"
,
"command_usage"
:
"Usage: drop <itemI
D
|itemName> [amount]"
,
"success"
:
"Dropped %s of %s."
,
"description"
:
"Drops an item near you"
},
...
...
@@ -377,11 +374,8 @@
"description"
:
"Restarts the current session"
},
"unlocktower"
:
{
"success"
:
"
u
nlock done"
,
"success"
:
"
U
nlock done
.
"
,
"description"
:
"Unlock all levels of tower"
},
"resetshop"
:
{
"description"
:
"reset shop"
}
},
"gacha"
:
{
...
...
@@ -392,5 +386,27 @@
"available_three_stars"
:
"Available 3-star Items"
,
"template_missing"
:
"data/gacha_details.html is missing."
}
},
"documentation"
:
{
"handbook"
:
{
"title"
:
"GM Handbook"
,
"title_commands"
:
"Commands"
,
"title_avatars"
:
"Avatars"
,
"title_items"
:
"Items"
,
"title_scenes"
:
"Scenes"
,
"title_monsters"
:
"Monsters"
,
"header_id"
:
"Id"
,
"header_command"
:
"Command"
,
"header_description"
:
"Description"
,
"header_avatar"
:
"Avatar"
,
"header_item"
:
"Item"
,
"header_scene"
:
"Scene"
,
"header_monster"
:
"Monster"
},
"index"
:
{
"title"
:
"Documentation"
,
"handbook"
:
"GM Handbook"
,
"gacha_mapping"
:
"Gacha mapping JSON"
}
}
}
src/main/resources/languages/pl-PL.json
View file @
fe4e5990
...
...
@@ -298,9 +298,6 @@
"unlocktower"
:
{
"success"
:
"odblokować gotowe"
,
"description"
:
"Odblokuj głęboką spiralę"
},
"resetshop"
:
{
"description"
:
"zresetuj sklep"
}
},
"gacha"
:
{
...
...
src/main/resources/languages/zh-CN.json
View file @
fe4e5990
...
...
@@ -29,14 +29,15 @@
"login_token_success"
:
"[Dispatch] 客户端 %s 已通过 token 登录,UID 为 %s"
,
"combo_token_success"
:
"[Dispatch] 客户端 %s 交换 token 成功"
,
"combo_token_error"
:
"[Dispatch] 客户端 %s 交换 token 失败"
,
"account_login_create_success"
:
"[Dispatch] 客户端 %s 登录失败
:
已注册 UID 为 %s 的账号"
,
"account_login_create_error"
:
"[Dispatch] 客户端 %s 登录失败:账号创建失败
。
"
,
"account_login_create_success"
:
"[Dispatch] 客户端 %s 登录失败
:
已注册 UID 为 %s 的账号"
,
"account_login_create_error"
:
"[Dispatch] 客户端 %s 登录失败:账号创建失败"
,
"account_login_exist_error"
:
"[Dispatch] 客户端 %s 登录失败:账号不存在"
,
"account_cache_error"
:
"游戏账号缓存信息错误"
,
"session_key_error"
:
"会话密钥错误。"
,
"username_error"
:
"未找到此用户名。"
,
"username_create_error"
:
"未找到用户名,建立连接失败。"
}
"session_key_error"
:
"会话密钥错误"
,
"username_error"
:
"未找到此用户名"
,
"username_create_error"
:
"未找到用户名,建立连接失败"
},
"router_error"
:
"[Dispatch] 无法连接路由"
},
"status"
:
{
"free_software"
:
"Grasscutter 是免费开源软件,遵循 AGPL-3.0 license。如果你是付费购买的,那你已经被骗了。项目地址:https://github.com/Grasscutters/Grasscutter"
,
...
...
@@ -49,7 +50,7 @@
"run_mode_help"
:
"服务器运行模式必须为 HYBRID、DISPATCH_ONLY 或 GAME_ONLY。Grasscutter 启动失败..."
,
"create_resources"
:
"正在创建 resources 目录..."
,
"resources_error"
:
"请将 BinOutput 和 ExcelBinOutput 复制到 resources 目录。"
,
"version"
:
"Grasscutter 版本
:
%s-%s"
"version"
:
"Grasscutter 版本
:
%s-%s"
}
},
"commands"
:
{
...
...
@@ -60,7 +61,7 @@
"console_execute_error"
:
"此命令只能在服务器控制台执行呐~"
,
"player_execute_error"
:
"此命令只能在游戏内执行哦~"
,
"command_exist_error"
:
"这条命令...好像找不到呢?"
,
"no_description_specified"
:
"没有指定说明"
,
"no_description_specified"
:
"没有指定说明
。
"
,
"invalid"
:
{
"amount"
:
"无效的数量。"
,
"artifactId"
:
"无效的圣遗物ID。"
,
...
...
@@ -146,8 +147,8 @@
"description"
:
"给予所有物品"
},
"nostamina"
:
{
"success"
:
"NoStamina
%s 对于
%s
.
"
,
"description"
:
"保持你的体力处于最高状态
。"
"success"
:
"NoStamina
已设为 %s。[用户:
%s
]
"
,
"description"
:
"保持你的体力处于最高状态
"
},
"giveArtifact"
:
{
"usage"
:
"用法:giveart|gart [玩家] <圣遗物ID> <主词条ID> [<副词条ID>[,<强化次数>]]... [等级]"
,
...
...
@@ -166,7 +167,7 @@
"give"
:
{
"usage"
:
"用法:give <玩家> <物品ID|物品名> [数量] [等级] [精炼等级]"
,
"refinement_only_applicable_weapons"
:
"只有武器可以设置精炼等级。"
,
"refinement_must_between_1_and_5"
:
"精炼等级必须在 1
到
5 之间。"
,
"refinement_must_between_1_and_5"
:
"精炼等级必须在 1
-
5 之间。"
,
"given"
:
"已将 %s 个 %s 给予 %s。"
,
"given_with_level_and_refinement"
:
"已将 %s [等级 %s, 精炼 %s] %s 个给予 %s。"
,
"given_level"
:
"已将 %s [等级 %s] %s 个给予 %s。"
,
...
...
@@ -192,14 +193,14 @@
"description"
:
"杀死所有怪物"
},
"killCharacter"
:
{
"usage"
:
"用法:
/
killcharacter [玩家ID]"
,
"usage"
:
"用法:killcharacter [玩家ID]"
,
"success"
:
"已杀死 %s 当前角色。"
,
"description"
:
"杀死当前角色"
},
"language"
:
{
"current_language"
:
"当前语言是
:
%s"
,
"language_changed"
:
"语言切换至
:
%s"
,
"language_not_found"
:
"目前服务端没有这种语言
:
%s"
,
"current_language"
:
"当前语言是
:
%s"
,
"language_changed"
:
"语言切换至
:
%s"
,
"language_not_found"
:
"目前服务端没有这种语言
:
%s"
,
"description"
:
"显示或切换当前语言"
},
"list"
:
{
...
...
@@ -220,12 +221,12 @@
"description"
:
"获取所在位置"
},
"quest"
:
{
"description"
:
"添加或完成任务"
,
"usage"
:
"quest <add|finish> [任务ID]"
,
"added"
:
"已添加任务 %s"
,
"finished"
:
"已完成任务 %s"
,
"not_found"
:
"未找到任务"
,
"invalid_id"
:
"无效的任务ID"
"added"
:
"已添加任务 %s。"
,
"finished"
:
"已完成任务 %s。"
,
"not_found"
:
"此任务不存在。"
,
"invalid_id"
:
"无效的任务ID。"
,
"description"
:
"添加或完成任务"
},
"reload"
:
{
"reload_start"
:
"正在重载配置文件和数据。"
,
...
...
@@ -238,7 +239,7 @@
"description"
:
"重置当前角色的命之座,执行命令后需重新登录以生效"
},
"resetShopLimit"
:
{
"usage"
:
"用法:
/
resetshop <玩家ID>"
,
"usage"
:
"用法:resetshop <玩家ID>"
,
"description"
:
"重置所选玩家的商店刷新时间"
},
"sendMail"
:
{
...
...
@@ -255,7 +256,7 @@
"set_title"
:
"成功将邮件标题设置为 '%s'。
\n
使用 '/sendmail <正文>' 来设置邮件内容。"
,
"set_contents"
:
"成功将邮件内容设置为 '%s'。
\n
使用 '/sendmail <发件人>' 来设置发件人。"
,
"set_message_sender"
:
"发件人已设置为 '%s'。
\n
使用 '/sendmail <物品ID|物品名称|finish> [数量] [等级]' 来添加附件。"
,
"send"
:
"已添加 %s 个 %s
(
等级 %s
)
邮件附件。
\n
如果没有要继续添加的附件请使用 `/sendmail finish` 来发送邮件。"
,
"send"
:
"已添加 %s 个 %s
[
等级 %s
]
邮件附件。
\n
如果没有要继续添加的附件请使用 `/sendmail finish` 来发送邮件。"
,
"invalid_arguments_please_use"
:
"错误的参数
\n
请使用 `/sendmail %s`"
,
"title"
:
"<标题>"
,
"message"
:
"<正文>"
,
...
...
@@ -271,7 +272,7 @@
},
"setFetterLevel"
:
{
"usage"
:
"用法:setfetterlevel <好感度等级>"
,
"range_error"
:
"好感度等级必须在 0
到
10 之间。"
,
"range_error"
:
"好感度等级必须在 0
-
10 之间。"
,
"success"
:
"好感度已设为 %s 级。"
,
"level_error"
:
"无效的好感度等级。"
,
"description"
:
"设置当前角色的好感度等级"
...
...
@@ -279,7 +280,7 @@
"setStats"
:
{
"usage_console"
:
"用法:setstats|stats @<UID> <属性> <数值>"
,
"usage_ingame"
:
"用法:setstats|stats [@UID] <属性> <数值>"
,
"help_message"
:
"
\n
可更改的属性列表:hp (生命值)| maxhp (最大生命值) | def(防御力) | atk (攻击力)| em (元素精通) | er (元素充能效率) | crate(暴击率) | cdmg (暴击伤害)| cdr (冷却缩减) | heal(治疗加成)| heali (受治疗加成)| shield (护盾强效)| defi (无视防御)
\n
(续) 元素增伤:epyro (火) | ecryo (冰) | ehydro (水) | egeo (岩) | edendro (草) | eelectro (雷) | ephys (物理)
\n
(续) 元素抗性:respyro (火) | rescryo (冰) | reshydro (水) | resgeo (岩) | resdendro (草) | reselectro (雷) | resphys (物理)
\n
"
,
"help_message"
:
"
\n
可更改的属性列表:hp (生命值)| maxhp (最大生命值) | def
(防御力) | atk (攻击力)| em (元素精通) | er (元素充能效率) | crate
(暴击率) | cdmg (暴击伤害)| cdr (冷却缩减) | heal
(治疗加成)| heali (受治疗加成)| shield (护盾强效)| defi (无视防御)
\n
(续) 元素增伤:epyro (火) | ecryo (冰) | ehydro (水) | egeo (岩) | edendro (草) | eelectro (雷) | ephys (物理)
\n
(续) 元素抗性:respyro (火) | rescryo (冰) | reshydro (水) | resgeo (岩) | resdendro (草) | reselectro (雷) | resphys (物理)
\n
"
,
"value_error"
:
"无效的属性值。"
,
"uid_error"
:
"无效的UID。"
,
"player_error"
:
"玩家不存在或已离线。"
,
...
...
@@ -290,7 +291,7 @@
},
"setWorldLevel"
:
{
"usage"
:
"用法:setworldlevel <等级>"
,
"value_error"
:
"世界等级必须
设置
在0-8之间。"
,
"value_error"
:
"世界等级必须在
0-8
之间。"
,
"success"
:
"世界等级已设为 %s。"
,
"invalid_world_level"
:
"无效的世界等级。"
,
"description"
:
"设置世界等级,执行命令后需重新登录以生效"
...
...
@@ -306,7 +307,7 @@
},
"talent"
:
{
"usage_1"
:
"设置天赋等级:/talent set <天赋ID> <数值>"
,
"usage_2"
:
"另一种设置天赋等级的方法:/talent <n
(普通攻击) | e (元素战技) | q (元素爆发)> <数值>
"
,
"usage_2"
:
"另一种设置天赋等级的方法:/talent <n
|e|q> <数值>
\n
n: 普通攻击, e: 元素战技, q: 元素爆发
"
,
"usage_3"
:
"获取天赋ID:/talent getid"
,
"lower_16"
:
"无效的天赋等级,天赋等级应小于等于15。"
,
"set_id"
:
"将天赋等级设为 %s。"
,
...
...
@@ -322,21 +323,21 @@
"description"
:
"设置当前角色的天赋等级"
},
"team"
:
{
"usage"
:
"用法
:
team <add|remove|set> [
avatarId
,...] [
index
|first|last|
index-index
,...]"
,
"invalid_usage"
:
"无效用法"
,
"add_usage"
:
"用法(add)
:
team add <
avatarId
,...> [
index
]"
,
"invalid_index"
:
"无效索引"
,
"add_too_much"
:
"服务端仅允许你队伍里至多有%d名角色"
,
"failed_to_add_avatar"
:
"无法根据
id
%s 添加角色"
,
"remove_usage"
:
"用法(remove)
:
team remove <
index
|first|last|
index-index
,...>"
,
"failed_parse_index"
:
"无法解析索引
:
%s"
,
"remove_too_much"
:
"你不能删除那么多角色,你的队伍列表将会变空"
,
"ignore_index"
:
"忽略的索引列表
:
%s"
,
"set_usage"
:
"用法(set)
:
team set <
index> <avatarId
>"
,
"index_out_of_range"
:
"你指定的索引超出了范围"
,
"failed_parse_avatar_id"
:
"无法解析的角色
id:
%s"
,
"avatar_already_in_team"
:
"角色已经在你的队伍中了"
,
"avatar_not_found"
:
"无法找到该角色
:
%d"
,
"usage"
:
"用法
:
team <add|remove|set> [
角色ID
,...] [
索引
|first|last|
索引-索引
,...]"
,
"invalid_usage"
:
"无效用法
。
"
,
"add_usage"
:
"用法
(add)
:
team add <
角色ID
,...> [
索引
]"
,
"invalid_index"
:
"无效索引
。
"
,
"add_too_much"
:
"服务端仅允许你队伍里至多有
%d
名角色
。
"
,
"failed_to_add_avatar"
:
"无法根据
ID
%s 添加角色
。
"
,
"remove_usage"
:
"用法
(remove)
:
team remove <
索引
|first|last|
索引-索引
,...>"
,
"failed_
to_
parse_index"
:
"无法解析索引
:
%s"
,
"remove_too_much"
:
"你不能删除那么多角色,你的队伍列表将会变空
。
"
,
"ignore_index"
:
"忽略的索引列表
:
%s"
,
"set_usage"
:
"用法
(set)
:
team set <
索引> <角色ID
>"
,
"index_out_of_range"
:
"你指定的索引超出了范围
。
"
,
"failed_parse_avatar_id"
:
"无法解析的角色
ID:
%s"
,
"avatar_already_in_team"
:
"角色已经在你的队伍中了
。
"
,
"avatar_not_found"
:
"无法找到该角色
:
%d"
,
"description"
:
"手动修改你的队伍"
},
"teleportAll"
:
{
...
...
@@ -345,16 +346,13 @@
"description"
:
"将你世界中的所有玩家传送到你所在的位置"
},
"teleport"
:
{
"usage_server"
:
"用法:
/
tp @<玩家ID> <x> <y> <z> [场景ID]"
,
"usage"
:
"用法:
/
tp [@<玩家ID>] <x> <y> <z> [场景ID]"
,
"usage_server"
:
"用法:tp @<玩家ID> <x> <y> <z> [场景ID]"
,
"usage"
:
"用法:tp [@<玩家ID>] <x> <y> <z> [场景ID]"
,
"specify_player_id"
:
"你必须指定一个玩家ID。"
,
"invalid_position"
:
"无效的位置。"
,
"success"
:
"传送 %s 到坐标 %s,%s,%s,场景为 %s。"
,
"success"
:
"传送 %s 到坐标 %s,
%s,
%s,场景为 %s。"
,
"description"
:
"改变指定玩家的位置"
},
"tower"
:
{
"unlock_done"
:
"深境回廊的所有层已全部解锁。"
},
"weather"
:
{
"usage"
:
"用法:weather <天气ID> [气候ID]"
,
"success"
:
"已更改天气为 %s,气候为 %s。"
,
...
...
@@ -378,9 +376,6 @@
"unlocktower"
:
{
"success"
:
"解锁完成。"
,
"description"
:
"解锁深境螺旋的所有层"
},
"resetshop"
:
{
"description"
:
"重置商店刷新时间"
}
},
"gacha"
:
{
...
...
src/main/resources/languages/zh-TW.json
View file @
fe4e5990
...
...
@@ -335,9 +335,6 @@
"success"
:
"傳送 %s 到座標 %s,%s,%s ,場景為 %s 。"
,
"description"
:
"將玩家的位置傳送到你所指定的座標。"
},
"tower"
:
{
"unlock_done"
:
"解鎖所有級別的深境螺旋已全部解鎖。"
},
"weather"
:
{
"usage"
:
"用法:weather <weatherId> [climateId]"
,
"success"
:
"已將當前天氣設定為 %s ,氣候則為 %s 。"
,
...
...
@@ -361,9 +358,6 @@
"unlocktower"
:
{
"success"
:
"解鎖完成。"
,
"description"
:
"解鎖所有級別的深境螺旋。"
},
"resetshop"
:
{
"description"
:
"重置商店刷新時間。"
}
},
"gacha"
:
{
...
...
src/main/resources/logback.xml
View file @
fe4e5990
...
...
@@ -9,7 +9,7 @@
<appender
name=
"FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
logs/latest.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
logs/log.%d{yyyy-MM-dd}_%d{HH}.log.
tar.
gz
</fileNamePattern>
<fileNamePattern>
logs/log.%d{yyyy-MM-dd}_%d{HH}.log.gz
</fileNamePattern>
<maxHistory>
24
</maxHistory>
</rollingPolicy>
<encoder>
...
...
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment