Skip to content
This repository has been archived by the owner on Jun 23, 2024. It is now read-only.

Commit

Permalink
Reimplemented multilingual support
Browse files Browse the repository at this point in the history
  • Loading branch information
xv1rcn committed Mar 20, 2022
1 parent 2126530 commit b9b358c
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 10 deletions.
11 changes: 11 additions & 0 deletions lang/en_us.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
leader_reforged:
usage:
mark: "{} is now a leader."
unmark: "{} is now no longer a leader."
being_marked: "You are now a leader."
being_unmarked: "You are now no longer a leader."
error:
usage: "Unknown usage."
player_not_found: "Player not found."
plugin:
help_message: "Marks a leader."
11 changes: 11 additions & 0 deletions lang/zh_cn.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
leader_reforged:
usage:
mark: "{} 成为导游了。"
unmark: "{} 不再是导游了。"
being_marked: "你成为导游了。"
being_unmarked: "你不再是导游了。"
error:
usage: "未知用法。"
player_not_found: "未找到玩家。"
plugin:
help_message: "选择是否成为导游。"
23 changes: 14 additions & 9 deletions leader_reforged/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from mcdreforged.api.all import *

'''
LANGUAGE = {
"en_us": {
"mark": "{} is now a leader.",
Expand All @@ -20,39 +21,43 @@
"help_message": "选择是否成为导游。"
}
}
'''

leaders = []
players = []

'''
try:
lang = LANGUAGE[ServerInterface.get_instance().get_mcdr_language()]
except Exception:
lang = LANGUAGE["en_us"]
'''

def leader(server: ServerInterface, info: Info, player: str = None):
global leaders, players, lang
global leaders, players
# global lang
controlled = False
if player is None:
player = info.player
else:
if player not in players:
server.reply(info, RText(lang["player_not_found_error"], RColor.red))
server.reply(info, RText(server.rtr("leader_reforged.error.player_not_found"), RColor.red))
return
controlled = True
if info.player == player:
controlled = False
if player not in leaders:
leaders.append(player)
server.execute(f"/effect give {player} minecraft:glowing 86400 0 true")
server.tell(player, RText(lang["being_marked"], RColor.green, RStyle.italic))
server.tell(player, RText(server.rtr("leader_reforged.usage.being_marked"), RColor.green, RStyle.italic))
if controlled:
server.reply(info, RText(lang["mark"].format(player), RColor.green, RStyle.italic))
server.reply(info, RText(server.rtr("leader_reforged.usage.mark", player), RColor.green, RStyle.italic))
else:
leaders.remove(player)
server.execute(f"/effect clear {player} minecraft:glowing")
server.tell(player, RText(lang["being_unmarked"], RColor.green, RStyle.italic))
server.tell(player, RText(server.rtr("leader_reforged.usage.being_unmarked"), RColor.green, RStyle.italic))
if controlled:
server.reply(info, RText(lang["unmark"].format(player), RColor.green, RStyle.italic))
server.reply(info, RText(server.rtr("leader_reforged.usage.unmark", player), RColor.green, RStyle.italic))

def on_user_info(server: PluginServerInterface, info: Info):
raw_command = info.content.split()
Expand All @@ -62,11 +67,11 @@ def on_user_info(server: PluginServerInterface, info: Info):
elif len(raw_command) == 2:
leader(server, info, raw_command[1])
else:
server.reply(info, RText(lang["command_error"], RColor.red))
server.reply(info, RText(server.rtr("leader_reforged.error.usage"), RColor.red))

def on_load(server: PluginServerInterface, old):
global lang
server.register_help_message("!!leader", lang["help_message"])
# global lang
server.register_help_message("!!leader", server.rtr("leader_reforged.plugin.help_message"))

def on_player_joined(server: PluginServerInterface, player: str, info: Info):
global players
Expand Down
2 changes: 1 addition & 1 deletion mcdreforged.plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "leader_reforged",
"version": "1.0.0",
"version": "1.0.1",
"name": "Leader Reforged",
"description": {
"en_us": "This is a simplified and reforged version for Leader, allowing to mark a leader.",
Expand Down

0 comments on commit b9b358c

Please sign in to comment.