Skip to content

Commit

Permalink
Finished i18n update.
Browse files Browse the repository at this point in the history
  • Loading branch information
wtbdev committed Feb 5, 2022
1 parent f616aea commit 5b8225d
Show file tree
Hide file tree
Showing 12 changed files with 535 additions and 109 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,8 @@ lint/tmp/
maps/
mods/
plugins/

rukkit.yml
round.yml
server.properties
.idea
7 changes: 7 additions & 0 deletions src/main/java/cn/rukkit/Rukkit.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,17 @@
import cn.rukkit.config.*;
import cn.rukkit.network.*;
import java.io.*;

import cn.rukkit.util.LangUtil;
import org.slf4j.*;
import org.yaml.snakeyaml.*;
import cn.rukkit.plugin.*;
import cn.rukkit.game.mod.*;
import cn.rukkit.plugin.internal.*;
import cn.rukkit.service.*;
import cn.rukkit.game.SaveManager;

import java.util.Locale;
import java.util.UUID;

public class Rukkit {
Expand Down Expand Up @@ -186,6 +190,9 @@ public static final void startServer() throws IOException, InterruptedException
loadRukkitConfig();
log.info("Loading default round config...");
loadRoundConfig();
log.info("setting up language...");
LangUtil.lc = new Locale(getConfig().lang);
log.info("Current Language: {}", LangUtil.lc);
log.info("init::ThreadManager");
threadManager = new ThreadManager(config.threadPoolCount);
log.info("init::ModManager");
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/cn/rukkit/config/RukkitConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

package cn.rukkit.config;

import java.util.Locale;

public class RukkitConfig extends BaseConfig
{
public String serverUser = "RUKKIT";
Expand All @@ -30,6 +32,7 @@ public class RukkitConfig extends BaseConfig
public String UUID = "00000000-0000-0000-0000-000000000000";
public String nonStopDefaultMap = "";
public int nonStopDefaultMapType = 0;
public String lang = Locale.getDefault().toString();
//private String configName = "rukkit.yml";
//max threads in manager.Default = 8;
public int threadPoolCount = 8;
Expand Down
19 changes: 11 additions & 8 deletions src/main/java/cn/rukkit/network/ConnectionHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import cn.rukkit.game.unit.*;
import cn.rukkit.network.command.*;
import cn.rukkit.network.packet.*;
import cn.rukkit.util.LangUtil;
import io.netty.channel.*;
import java.util.concurrent.*;
import org.slf4j.*;
Expand Down Expand Up @@ -74,7 +75,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
case Packet.PACKET_PREREGISTER_CONNECTION:
log.info(String.format("New connection established:%s", ctx.channel().remoteAddress()));
ctx.write(p.preRegister());
ctx.writeAndFlush(p.chat("SERVER", "You are logging to Rukkit.", -1));
ctx.writeAndFlush(p.chat("SERVER", LangUtil.getString("rukkit.playerRegister"), -1));
break;
case Packet.PACKET_PLAYER_INFO:
ctx.writeAndFlush(p.serverInfo());
Expand All @@ -92,7 +93,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
packageName, gameVersionCode, playerName, uuid, verifyResult));
//Check avaliable
if (Rukkit.getConnectionManager().size() > Rukkit.getConfig().maxPlayer) {
ctx.writeAndFlush(p.kick("Game is full!"));
ctx.writeAndFlush(p.kick(LangUtil.getString("rukkit.gameFull")));
return;
}
//Init connection.
Expand All @@ -103,7 +104,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
conn.player = player;
//Check admin.
if (Rukkit.getConnectionManager().size() <= 0 && !Rukkit.getConfig().nonStopMode) {
conn.sendServerMessage("You are the ADMIN of this server!");
conn.sendServerMessage(LangUtil.getString("rukkit.playerGotAdmin"));
conn.player.isAdmin = true;
ctx.writeAndFlush(Packet.serverInfo(true));
} else {
Expand All @@ -122,40 +123,40 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
stopTimeout();
conn.startPingTask();
conn.updateTeamList(false);
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
// Start game.
conn.handler.ctx.writeAndFlush(Packet.startGame());
// Send save
conn.handler.ctx.writeAndFlush(Packet.sendSave(Rukkit.getGameServer().lastNoStopSave.arr, false));
conn.startTeamTask();
Rukkit.getGameServer().notifyGameTask();
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
return;
} else {
Rukkit.getConnectionManager().add(conn);
stopTimeout();
conn.startPingTask();
conn.updateTeamList(false);
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
// New Round!Start game.
conn.handler.ctx.writeAndFlush(Packet.startGame());
// Have a sync.
Rukkit.getGameServer().syncGame();
conn.startTeamTask();
Rukkit.getGameServer().notifyGameTask();
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
return;
}
} else {
Rukkit.getConnectionManager().add(conn);
stopTimeout();
conn.startPingTask();
conn.updateTeamList(false);
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
// New Round!Start game.
conn.handler.ctx.writeAndFlush(Packet.startGame());
// Have a sync.
Rukkit.getGameServer().syncGame();
conn.startTeamTask();
Rukkit.getGameServer().notifyGameTask();
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
return;
}
} else if (Rukkit.getConfig().syncEnabled) {
Expand All @@ -174,14 +175,16 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
//conn.handler.ctx.writeAndFlush(Packet.sendSave(Rukkit.getGameServer().lastSave.arr, false));
Rukkit.getGameServer().syncGame();
conn.startTeamTask();
PlayerJoinEvent.getListenerList().callListeners(new PlayerJoinEvent(conn.player));
PlayerReconnectEvent.getListenerList().callListeners(new PlayerReconnectEvent(conn.player));
} else {
// kick
ctx.writeAndFlush(p.kick("Game is started!"));
ctx.writeAndFlush(p.kick(LangUtil.getString("rukkit.gameStarted")));
}
return;
} else {
// kick
ctx.writeAndFlush(p.kick("Game is started!"));
ctx.writeAndFlush(p.kick(LangUtil.getString("rukkit.gameStarted")));
return;
}
}
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/cn/rukkit/plugin/internal/BasePlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,20 @@
import cn.rukkit.event.player.PlayerJoinEvent;
import cn.rukkit.event.player.PlayerLeftEvent;
import cn.rukkit.plugin.PluginConfig;
import cn.rukkit.util.LangUtil;

import java.text.MessageFormat;

public class BasePlugin extends InternalRukkitPlugin implements EventListener {

@EventHandler
public void onPlayerJoinTip(PlayerJoinEvent event) {
Rukkit.getConnectionManager().broadcastServerMessage(event.getPlayer().name + " joined the server!");
Rukkit.getConnectionManager().broadcastServerMessage(MessageFormat.format(LangUtil.getString("rukkit.playerJoin"), event.getPlayer().name));
}

@EventHandler
public void onPlayerLeaveTip(PlayerLeftEvent event) {
Rukkit.getConnectionManager().broadcastServerMessage(event.getPlayer().name + " left the server!");
Rukkit.getConnectionManager().broadcastServerMessage(MessageFormat.format(LangUtil.getString("rukkit.playerLeft"), event.getPlayer().name));
}

@Override
Expand Down
71 changes: 36 additions & 35 deletions src/main/java/cn/rukkit/plugin/internal/CommandPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import cn.rukkit.plugin.PluginConfig;
import cn.rukkit.util.LangUtil;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -66,7 +67,7 @@ public boolean onSend(Connection con, String[] args) {
NetworkPlayer player = Rukkit.getConnectionManager().getPlayerManager().get(id);
try {
player.isNull();
player.getConnection().kick(LangUtil.getString("chat.kick"));
player.getConnection().kick(LangUtil.getString("chat.kicked"));
} catch (ArrayIndexOutOfBoundsException e) {
con.sendServerMessage(LangUtil.getString("chat.playerEmpty"));
}
Expand Down Expand Up @@ -126,7 +127,7 @@ public boolean onSend(Connection con, String[] args) {
Rukkit.getRoundConfig().mapType = 0;
try {
Rukkit.getConnectionManager().broadcast(Packet.serverInfo());
con.handler.ctx.writeAndFlush(new Packet().serverInfo(true));
con.handler.ctx.writeAndFlush(Packet.serverInfo(true));
} catch (IOException ignored) {}
break;
}
Expand All @@ -143,8 +144,8 @@ public boolean onSend(Connection con, String[] args) {
}
}

public class CustomMapsCallback implements ChatCommandListener {
private int type;
public static class CustomMapsCallback implements ChatCommandListener {
private final int type;
public CustomMapsCallback(int type) {
this.type = type;
}
Expand Down Expand Up @@ -204,7 +205,7 @@ public boolean onSend(Connection con, String[] cmd) {
NetworkPlayer targetPlayer = playerGroup.get(Integer.parseInt(cmd[1]) - 1);
try {
if (fromPlayer.movePlayer(Integer.parseInt(cmd[1]) - 1)) {
con.sendServerMessage(LangUtil.getString("chat.moveComplte"));
con.sendServerMessage(LangUtil.getString("chat.moveComplete"));
} else {
int fromslot, toslot;
fromslot = fromPlayer.playerIndex;
Expand All @@ -226,9 +227,9 @@ public boolean onSend(Connection con, String[] cmd) {
} else {
try {
if (con.player.movePlayer(Integer.parseInt(cmd[0]) - 1)) {
con.sendServerMessage("Move complete!");
con.sendServerMessage(LangUtil.getString("chat.moveComplete"));
} else {
con.sendServerMessage("Fail: already have a player in that slot");
con.sendServerMessage(LangUtil.getString("chat.playerExist"));
}
} catch (Exception e) {
e.printStackTrace();
Expand Down Expand Up @@ -323,7 +324,7 @@ public boolean onSend(Connection con, String[] args) {
// Do nothing.
} else {
if (Rukkit.getConnectionManager().size() < Rukkit.getConfig().minStartPlayer) {
Rukkit.getConnectionManager().broadcastServerMessage("min start player is" + Rukkit.getConfig().minStartPlayer);
Rukkit.getConnectionManager().broadcastServerMessage(MessageFormat.format(LangUtil.getString("chat.minStartPlayer"), Rukkit.getConfig().minStartPlayer));
} else {
Rukkit.getGameServer().startGame();
}
Expand Down Expand Up @@ -574,34 +575,34 @@ public void onLoad() {
// TODO: Implement this method
getLogger().info("CommandPlugin::onLoad()");
CommandManager mgr = Rukkit.getCommandManager();
mgr.registerCommand(new ChatCommand("help", "Show help.", 1, new HelpCallback(), this));
mgr.registerCommand(new ChatCommand("state", "Show Server State.", 0, new StateCallback(), this));
mgr.registerCommand(new ChatCommand("version", "Show Rukkit Version.", 0, this, this));
mgr.registerCommand(new ChatCommand("help", LangUtil.getString("chat.help"), 1, new HelpCallback(), this));
mgr.registerCommand(new ChatCommand("state", LangUtil.getString("chat.state"), 0, new StateCallback(), this));
mgr.registerCommand(new ChatCommand("version", LangUtil.getString("chat.version"), 0, this, this));
//mgr.registerCommand(new ChatCommand("team", "Send a team message.", 1, new TeamChatCallback(), this));
mgr.registerCommand(new ChatCommand("t", "Send a team message.", 1, new TeamChatCallback(), this));
mgr.registerCommand(new ChatCommand("maps", "Get official maps list.", 1, new MapsCallback(0), this));
mgr.registerCommand(new ChatCommand("map", "Change map to map with id in map list.", 1, new MapsCallback(1), this));
mgr.registerCommand(new ChatCommand("cmaps", "Get custom maps list.", 1, new CustomMapsCallback(0), this));
mgr.registerCommand(new ChatCommand("cmap", "Change custom map to map with id in map list.", 1, new CustomMapsCallback(1), this));
mgr.registerCommand(new ChatCommand("kick", "Kick a player.", 1, new KickCallBack(), this));
mgr.registerCommand(new ChatCommand("team", "Change a player's ally.", 2, new TeamCallback(0), this));
mgr.registerCommand(new ChatCommand("self_team", "Change yourself ally.", 1, new TeamCallback(1), this));
mgr.registerCommand(new ChatCommand("move", "Move a player.", 2, new MoveCallback(0), this));
mgr.registerCommand(new ChatCommand("self_move", "Move yourself.", 2, new MoveCallback(1), this));
mgr.registerCommand(new ChatCommand("qc", "Execute a command silently.", 1, new QcCallback(), this));
mgr.registerCommand(new ChatCommand("fog", "Set fog type in game.", 1, new SetFogCallback(), this));
mgr.registerCommand(new ChatCommand("nukes", "Set nukes enabled in game.", 1, new NukeCallback(), this));
mgr.registerCommand(new ChatCommand("startingunits", "Set starting units in game.", 1, new StartingUnitCallback(), this));
mgr.registerCommand(new ChatCommand("income", "Set income in game(1x-100x).", 1, new IncomeCallback(), this));
mgr.registerCommand(new ChatCommand("share", "Set your share state in game.(on/off)", 1, new ShareCallback(), this));
mgr.registerCommand(new ChatCommand("credits", "Set default credits in game.", 1, new CreditsCallback(), this));
mgr.registerCommand(new ChatCommand("start", "Start a game.", 1, new StartCallback(), this));
mgr.registerCommand(new ChatCommand("sync", "Sync a game(admin only.)", 0, new SyncCallback(), this));
mgr.registerCommand(new ChatCommand("i", "Submit a info message to server.", 1, new InfoCallback(), this));
mgr.registerCommand(new ChatCommand("chksum", "Send a Chksum to client.", 0, new ChksumCallback(), this));
mgr.registerCommand(new ChatCommand("maping", "Ping map.", 2, new PingCallBack(), this));
mgr.registerCommand(new ChatCommand("list", "Show player list.", 0, new PlayerListCallback(), this));
mgr.registerCommand(new ChatCommand("surrender", "surrender.", 0, new SurrenderCallback(), this));
mgr.registerCommand(new ChatCommand("t", LangUtil.getString("chat.t"), 1, new TeamChatCallback(), this));
mgr.registerCommand(new ChatCommand("maps", LangUtil.getString("chat.maps"), 1, new MapsCallback(0), this));
mgr.registerCommand(new ChatCommand("map", LangUtil.getString("chat.map"), 1, new MapsCallback(1), this));
mgr.registerCommand(new ChatCommand("cmaps", LangUtil.getString("chat.cmaps"), 1, new CustomMapsCallback(0), this));
mgr.registerCommand(new ChatCommand("cmap", LangUtil.getString("chat.cmap"), 1, new CustomMapsCallback(1), this));
mgr.registerCommand(new ChatCommand("kick", LangUtil.getString("chat.kick"), 1, new KickCallBack(), this));
mgr.registerCommand(new ChatCommand("team", LangUtil.getString("chat.team"), 2, new TeamCallback(0), this));
mgr.registerCommand(new ChatCommand("self_team", LangUtil.getString("chat.self_team"), 1, new TeamCallback(1), this));
mgr.registerCommand(new ChatCommand("move", LangUtil.getString("chat.move"), 2, new MoveCallback(0), this));
mgr.registerCommand(new ChatCommand("self_move", LangUtil.getString("chat.self_move"), 2, new MoveCallback(1), this));
mgr.registerCommand(new ChatCommand("qc", LangUtil.getString("chat.qc"), 1, new QcCallback(), this));
mgr.registerCommand(new ChatCommand("fog", LangUtil.getString("chat.fog"), 1, new SetFogCallback(), this));
mgr.registerCommand(new ChatCommand("nukes", LangUtil.getString("chat.nukes"), 1, new NukeCallback(), this));
mgr.registerCommand(new ChatCommand("startingunits", LangUtil.getString("chat.startingunits"), 1, new StartingUnitCallback(), this));
mgr.registerCommand(new ChatCommand("income", LangUtil.getString("chat.income"), 1, new IncomeCallback(), this));
mgr.registerCommand(new ChatCommand("share", LangUtil.getString("chat.share"), 1, new ShareCallback(), this));
mgr.registerCommand(new ChatCommand("credits", LangUtil.getString("chat.credits"), 1, new CreditsCallback(), this));
mgr.registerCommand(new ChatCommand("start", LangUtil.getString("chat.start"), 1, new StartCallback(), this));
mgr.registerCommand(new ChatCommand("sync", LangUtil.getString("chat.sync"), 0, new SyncCallback(), this));
mgr.registerCommand(new ChatCommand("i", LangUtil.getString("chat.i"), 1, new InfoCallback(), this));
mgr.registerCommand(new ChatCommand("chksum", LangUtil.getString("chat.chksum"), 0, new ChksumCallback(), this));
mgr.registerCommand(new ChatCommand("maping", LangUtil.getString("chat.maping"), 2, new PingCallBack(), this));
mgr.registerCommand(new ChatCommand("list", LangUtil.getString("chat.list"), 0, new PlayerListCallback(), this));
mgr.registerCommand(new ChatCommand("surrender", LangUtil.getString("chat.surrender"), 0, new SurrenderCallback(), this));
}

@Override
Expand Down
Loading

0 comments on commit 5b8225d

Please sign in to comment.