diff --git a/config.yaml b/config.yaml
index 879d52280aa..846b21fb5ef 100644
--- a/config.yaml
+++ b/config.yaml
@@ -294,7 +294,7 @@ server:
#Miscellaneous Configuration
TIMEZONE: GMT
- CHARSET: US-ASCII # Is loaded first, so applies to the rest of this config. Defaults to US-ASCII if invalid or not set.
+
USE_DISPLAY_NUMBERS_WITH_COMMA: true #Enforce comma on displayed strings (use this when USE_UNITPRICE_WITH_COMMA is active and you still want to display comma-separated values).
USE_UNITPRICE_WITH_COMMA: true #Set this accordingly with the layout of the unitPrices on Item.wz XML's, whether it's using commas or dots to represent fractions.
MAX_MONITORED_BUFFSTATS: 5 #Limits accounting for "dormant" buff effects, that should take place when stronger stat buffs expires.
diff --git a/database/migration/V1__db_database.sql b/database/migration/V1__db_database.sql
index 2e8eb057d3e..44f2dbaf94e 100644
--- a/database/migration/V1__db_database.sql
+++ b/database/migration/V1__db_database.sql
@@ -32,7 +32,6 @@ CREATE TABLE IF NOT EXISTS `accounts` (
`rewardpoints` int(11) NOT NULL DEFAULT '0',
`votepoints` int(11) NOT NULL DEFAULT '0',
`hwid` varchar(12) NOT NULL DEFAULT '',
- `language` int(1) NOT NULL DEFAULT '2',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `ranking1` (`id`,`banned`),
diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java
index f26dcc924e6..6ff21167ff1 100644
--- a/src/main/java/client/Character.java
+++ b/src/main/java/client/Character.java
@@ -7070,7 +7070,7 @@ public static Character loadCharFromDB(final int charid, Client client, boolean
}
// Account info
- try (PreparedStatement ps = con.prepareStatement("SELECT name, characterslots, language FROM accounts WHERE id = ?", Statement.RETURN_GENERATED_KEYS)) {
+ try (PreparedStatement ps = con.prepareStatement("SELECT name, characterslots FROM accounts WHERE id = ?", Statement.RETURN_GENERATED_KEYS)) {
ps.setInt(1, ret.accountid);
try (ResultSet rs = ps.executeQuery()) {
@@ -7079,7 +7079,6 @@ public static Character loadCharFromDB(final int charid, Client client, boolean
retClient.setAccountName(rs.getString("name"));
retClient.setCharacterSlots(rs.getByte("characterslots"));
- retClient.setLanguage(rs.getInt("language")); // thanks Zein for noticing user language not overriding default once player is in-game
}
}
}
@@ -11120,24 +11119,7 @@ public void gainAriantPoints(int points) {
public int getAriantPoints() {
return this.ariantPoints;
}
-
- public void setLanguage(int num) {
- getClient().setLanguage(num);
-
- try (Connection con = DatabaseConnection.getConnection();
- PreparedStatement ps = con.prepareStatement("UPDATE accounts SET language = ? WHERE id = ?")) {
- ps.setInt(1, num);
- ps.setInt(2, getClient().getAccID());
- ps.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- public int getLanguage() {
- return getClient().getLanguage();
- }
-
+
public boolean isChasing() {
return chasing;
}
diff --git a/src/main/java/client/Client.java b/src/main/java/client/Client.java
index a7ebc2dcde0..7120bb1455d 100644
--- a/src/main/java/client/Client.java
+++ b/src/main/java/client/Client.java
@@ -481,7 +481,7 @@ public int login(String login, String pwd, Hwid hwid) {
}
try (Connection con = DatabaseConnection.getConnection();
- PreparedStatement ps = con.prepareStatement("SELECT id, password, gender, banned, pin, pic, characterslots, tos, language FROM accounts WHERE name = ?")) {
+ PreparedStatement ps = con.prepareStatement("SELECT id, password, gender, banned, pin, pic, characterslots, tos FROM accounts WHERE name = ?")) {
ps.setString(1, login);
try (ResultSet rs = ps.executeQuery()) {
@@ -499,7 +499,6 @@ public int login(String login, String pwd, Hwid hwid) {
pic = rs.getString("pic");
gender = rs.getByte("gender");
characterSlots = rs.getByte("characterslots");
- lang = rs.getInt("language");
String passhash = rs.getString("password");
byte tos = rs.getByte("tos");
@@ -1387,12 +1386,4 @@ public void resetCsCoupon() {
public void enableCSActions() {
sendPacket(PacketCreator.enableCSUse(player));
}
-
- public int getLanguage() {
- return lang;
- }
-
- public void setLanguage(int lingua) {
- this.lang = lingua;
- }
}
diff --git a/src/main/java/client/command/CommandsExecutor.java b/src/main/java/client/command/CommandsExecutor.java
index 247b979f2fe..164fb46ec02 100644
--- a/src/main/java/client/command/CommandsExecutor.java
+++ b/src/main/java/client/command/CommandsExecutor.java
@@ -24,7 +24,6 @@
package client.command;
import client.Client;
-import client.command.commands.gm0.ChangeLanguageCommand;
import client.command.commands.gm0.DisposeCommand;
import client.command.commands.gm0.DropLimitCommand;
import client.command.commands.gm0.EquipLvCommand;
@@ -346,7 +345,6 @@ private void registerLv0Commands() {
addCommand("uptime", UptimeCommand.class);
addCommand("gacha", GachaCommand.class);
addCommand("dispose", DisposeCommand.class);
- addCommand("changel", ChangeLanguageCommand.class);
addCommand("equiplv", EquipLvCommand.class);
addCommand("showrates", ShowRatesCommand.class);
addCommand("rates", RatesCommand.class);
diff --git a/src/main/java/client/command/commands/gm0/ChangeLanguageCommand.java b/src/main/java/client/command/commands/gm0/ChangeLanguageCommand.java
deleted file mode 100644
index d953d4c11ac..00000000000
--- a/src/main/java/client/command/commands/gm0/ChangeLanguageCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- This file is part of the HeavenMS MapleStory Server, commands OdinMS-based
- Copyleft (L) 2016 - 2019 RonanLana
-
- 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 version 3 as published by
- the Free Software Foundation. You may not use, modify or distribute
- this program under any other version of the GNU Affero General Public
- License.
-
- 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 .
-*/
-
-/*
- @Author: Arthur L - Refactored command content into modules
-*/
-package client.command.commands.gm0;
-
-import client.Client;
-import client.command.Command;
-
-public class ChangeLanguageCommand extends Command {
- {
- setDescription("Change language settings.");
- }
-
- @Override
- public void execute(Client c, String[] params) {
- if (params.length < 1) {
- c.getPlayer().yellowMessage("Syntax: !changel <0=ptb, 1=esp, 2=eng>");
- return;
- }
- c.setLanguage(Integer.parseInt(params[0]));
- }
-}
diff --git a/src/main/java/config/YamlConfig.java b/src/main/java/config/YamlConfig.java
index 2263eb664e7..afbec0429c6 100644
--- a/src/main/java/config/YamlConfig.java
+++ b/src/main/java/config/YamlConfig.java
@@ -1,10 +1,10 @@
package config;
import com.esotericsoftware.yamlbeans.YamlReader;
-import constants.string.CharsetConstants;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
@@ -19,7 +19,7 @@ public class YamlConfig {
private static YamlConfig loadConfig() {
try {
- YamlReader reader = new YamlReader(Files.newBufferedReader(Path.of(CONFIG_FILE_NAME), CharsetConstants.CHARSET));
+ YamlReader reader = new YamlReader(Files.newBufferedReader(Path.of(CONFIG_FILE_NAME), StandardCharsets.US_ASCII));
YamlConfig config = reader.read(YamlConfig.class);
reader.close();
return config;
diff --git a/src/main/java/constants/string/CharsetConstants.java b/src/main/java/constants/string/CharsetConstants.java
deleted file mode 100644
index 5a1243f29d2..00000000000
--- a/src/main/java/constants/string/CharsetConstants.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package constants.string;
-
-/*
- * Thanks to GabrielSin (EllinMS) - gabrielsin@playellin.net
- * Ellin
- * MapleStory Server
- * CharsetConstants
- */
-
-import com.esotericsoftware.yamlbeans.YamlReader;
-import config.YamlConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Optional;
-
-public class CharsetConstants {
- private static final Logger log = LoggerFactory.getLogger(CharsetConstants.class);
- public static final Charset CHARSET = loadCharset();
-
- private enum Language {
- LANGUAGE_US("US-ASCII"),
- LANGUAGE_PT_BR("ISO-8859-1"),
- LANGUAGE_THAI("TIS620"),
- LANGUAGE_KOREAN("MS949");
-
- private final String charset;
-
- Language(String charset) {
- this.charset = charset;
- }
-
- public String getCharset() {
- return charset;
- }
-
- public static Language fromCharset(String charset) {
- Optional language = Arrays.stream(values())
- .filter(l -> l.charset.equals(charset))
- .findAny();
- if (language.isEmpty()) {
- log.warn("Charset {} was not found, defaulting to US-ASCII", charset);
- return LANGUAGE_US;
- }
-
- return language.get();
- }
- }
-
- private static String loadCharsetFromConfig() {
- try {
- YamlReader reader = new YamlReader(Files.newBufferedReader(Path.of(YamlConfig.CONFIG_FILE_NAME), StandardCharsets.US_ASCII));
- reader.getConfig().readConfig.setIgnoreUnknownProperties(true);
- StrippedYamlConfig charsetConfig = reader.read(StrippedYamlConfig.class);
- reader.close();
- return charsetConfig.server.CHARSET;
- } catch (FileNotFoundException e) {
- throw new RuntimeException("Could not read config file " + YamlConfig.CONFIG_FILE_NAME + ": " + e.getMessage());
- } catch (IOException e) {
- throw new RuntimeException("Could not successfully parse charset from config file " + YamlConfig.CONFIG_FILE_NAME + ": " + e.getMessage());
- }
- }
-
- private static Charset loadCharset() {
- String configCharset = loadCharsetFromConfig();
- if (configCharset != null) {
- Language language = Language.fromCharset(configCharset);
- return Charset.forName(language.getCharset());
- }
-
- return StandardCharsets.US_ASCII;
- }
-
- private static class StrippedYamlConfig {
- public StrippedServerConfig server;
-
- private static class StrippedServerConfig {
- public String CHARSET;
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/constants/string/LanguageConstants.java b/src/main/java/constants/string/LanguageConstants.java
deleted file mode 100644
index 05854028edd..00000000000
--- a/src/main/java/constants/string/LanguageConstants.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package constants.string;
-
-import client.Character;
-
-/**
- * @author Drago (Dragohe4rt)
- */
-public class LanguageConstants {
-
- enum Language {
- LANG_PRT(0),
- LANG_ESP(1),
- LANG_ENG(2);
-
- int lang;
-
- Language(int lang) {
- this.lang = lang;
- }
-
- private int getValue() {
- return this.lang;
- }
-
- }
-
- public static String[] CPQBlue = new String[3];
- public static String[] CPQError = new String[3];
- public static String[] CPQEntry = new String[3];
- public static String[] CPQFindError = new String[3];
- public static String[] CPQRed = new String[3];
- public static String[] CPQPlayerExit = new String[3];
- public static String[] CPQEntryLobby = new String[3];
- public static String[] CPQPickRoom = new String[3];
- public static String[] CPQExtendTime = new String[3];
- public static String[] CPQLeaderNotFound = new String[3];
- public static String[] CPQChallengeRoomAnswer = new String[3];
- public static String[] CPQChallengeRoomSent = new String[3];
- public static String[] CPQChallengeRoomDenied = new String[3];
-
- static {
- int lang;
-
- lang = Language.LANG_PRT.getValue();
- LanguageConstants.CPQBlue[lang] = "Maple Azul";
- LanguageConstants.CPQRed[lang] = "Maple Vermelho";
- LanguageConstants.CPQExtendTime[lang] = "O tempo foi estendido.";
- LanguageConstants.CPQPlayerExit[lang] = " deixou o Carnaval de Monstros.";
- LanguageConstants.CPQError[lang] = "Ocorreu um problema. Favor recriar a sala.";
- LanguageConstants.CPQLeaderNotFound[lang] = "Nao foi possivel encontrar o Lider.";
- LanguageConstants.CPQPickRoom[lang] = "Inscreva-se no Festival de Monstros!\r\n";
- LanguageConstants.CPQChallengeRoomAnswer[lang] = "O grupo esta respondendo um desafio no momento.";
- LanguageConstants.CPQChallengeRoomSent[lang] = "Um desafio foi enviado para o grupo na sala. Aguarde um momento.";
- LanguageConstants.CPQChallengeRoomDenied[lang] = "O grupo na sala cancelou seu desafio.";
- LanguageConstants.CPQFindError[lang] = "Nao foi possivel encontrar um grupo nesta sala.\r\nProvavelmente o grupo foi desfeito dentro da sala!";
- LanguageConstants.CPQEntryLobby[lang] = "Agora voce ira receber desafios de outros grupos. Se voce nao aceitar um desafio em 3 minutos, voce sera levado para fora.";
- LanguageConstants.CPQEntry[lang] = "Voce pode selecionar \"Invocar Monstros\", \"Habilidade\", ou \"Protetor\" como sua tatica durante o Carnaval dos Monstros. Use Tab a F1~F12 para acesso rapido!";
-
- lang = Language.LANG_ESP.getValue();
- LanguageConstants.CPQBlue[lang] = "Maple Azul";
- LanguageConstants.CPQRed[lang] = "Maple Rojo";
- LanguageConstants.CPQExtendTime[lang] = "El tiempo se ha ampliado.";
- LanguageConstants.CPQPlayerExit[lang] = " ha dejado el Carnaval de Monstruos.";
- LanguageConstants.CPQLeaderNotFound[lang] = "No se pudo encontrar el Lider.";
- LanguageConstants.CPQPickRoom[lang] = "!Inscribete en el Festival de Monstruos!\r\n";
- LanguageConstants.CPQError[lang] = "Se ha producido un problema. Por favor, volver a crear una sala.";
- LanguageConstants.CPQChallengeRoomAnswer[lang] = "El grupo esta respondiendo un desafio en el momento.";
- LanguageConstants.CPQChallengeRoomSent[lang] = "Un desafio fue enviado al grupo en la sala. Espera un momento.";
- LanguageConstants.CPQChallengeRoomDenied[lang] = "El grupo en la sala cancelo su desafio.";
- LanguageConstants.CPQFindError[lang] = "No se pudo encontrar un grupo en esta sala.\r\nProbablemente el grupo fue deshecho dentro de la sala!";
- LanguageConstants.CPQEntryLobby[lang] = "Ahora usted recibira los retos de otros grupos. Si usted no acepta un desafio en 3 minutos, usted sera llevado hacia fuera.";
- LanguageConstants.CPQEntry[lang] = "Usted puede seleccionar \"Invocar Monstruos\", \"Habilidad\", o \"Protector\" como su tactica durante el Carnaval de los Monstruos. Utilice Tab y F1 ~ F12 para acceso rapido!";
-
- lang = Language.LANG_ENG.getValue();
- LanguageConstants.CPQBlue[lang] = "Maple Blue";
- LanguageConstants.CPQRed[lang] = "Maple Red";
- LanguageConstants.CPQPlayerExit[lang] = " left the Carnival of Monsters.";
- LanguageConstants.CPQExtendTime[lang] = "The time has been extended.";
- LanguageConstants.CPQLeaderNotFound[lang] = "Could not find the Leader.";
- LanguageConstants.CPQError[lang] = "There was a problem. Please re-create a room.";
- LanguageConstants.CPQPickRoom[lang] = "Sign up for the Monster Festival!\r\n";
- LanguageConstants.CPQChallengeRoomAnswer[lang] = "The group is currently facing a challenge.";
- LanguageConstants.CPQChallengeRoomSent[lang] = "A challenge has been sent to the group in the room. Please wait a while.";
- LanguageConstants.CPQChallengeRoomDenied[lang] = "The group in the room canceled your challenge.";
- LanguageConstants.CPQFindError[lang] = "We could not find a group in this room.\r\nProbably the group was scrapped inside the room!";
- LanguageConstants.CPQEntryLobby[lang] = "You will now receive challenges from other groups. If you do not accept a challenge within 3 minutes, you will be taken out.";
- LanguageConstants.CPQEntry[lang] = "You can select \"Summon Monsters\", \"Ability\", or \"Protector\" as your tactic during the Monster Carnival. Use Tab and F1 ~ F12 for quick access!";
-
-
- }
-
- public static String getMessage(Character chr, String[] message) {
- return message[chr.getLanguage()];
- }
-}
diff --git a/src/main/java/net/packet/ByteBufInPacket.java b/src/main/java/net/packet/ByteBufInPacket.java
index 25b139629c2..d870fceb881 100644
--- a/src/main/java/net/packet/ByteBufInPacket.java
+++ b/src/main/java/net/packet/ByteBufInPacket.java
@@ -1,10 +1,10 @@
package net.packet;
-import constants.string.CharsetConstants;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import java.awt.*;
+import java.nio.charset.StandardCharsets;
public class ByteBufInPacket implements InPacket {
private final ByteBuf byteBuf;
@@ -52,7 +52,7 @@ public String readString() {
short length = readShort();
byte[] stringBytes = new byte[length];
byteBuf.readBytes(stringBytes);
- return new String(stringBytes, CharsetConstants.CHARSET);
+ return new String(stringBytes, StandardCharsets.US_ASCII);
}
@Override
diff --git a/src/main/java/net/packet/ByteBufOutPacket.java b/src/main/java/net/packet/ByteBufOutPacket.java
index 376253d2806..f573dced33e 100644
--- a/src/main/java/net/packet/ByteBufOutPacket.java
+++ b/src/main/java/net/packet/ByteBufOutPacket.java
@@ -1,6 +1,5 @@
package net.packet;
-import constants.string.CharsetConstants;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
@@ -8,6 +7,7 @@
import net.opcodes.SendOpcode;
import java.awt.*;
+import java.nio.charset.StandardCharsets;
@NotThreadSafe
public class ByteBufOutPacket implements OutPacket {
@@ -71,14 +71,14 @@ public void writeBool(boolean value) {
@Override
public void writeString(String value) {
- byte[] bytes = value.getBytes(CharsetConstants.CHARSET);
+ byte[] bytes = value.getBytes(StandardCharsets.US_ASCII);
writeShort(bytes.length);
writeBytes(bytes);
}
@Override
public void writeFixedString(String value) {
- writeBytes(value.getBytes(CharsetConstants.CHARSET));
+ writeBytes(value.getBytes(StandardCharsets.US_ASCII));
}
@Override
diff --git a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java
index f888c6134cd..d5f2a6f892a 100644
--- a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java
+++ b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java
@@ -220,7 +220,6 @@ public final void handlePacket(InPacket p, Client c) {
}
if (!newcomer) {
- c.setLanguage(player.getClient().getLanguage());
c.setCharacterSlots((byte) player.getClient().getCharacterSlots());
player.newClient(c);
}
diff --git a/src/main/java/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java b/src/main/java/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
index 0e113eaa1e9..6dc4b4bc61b 100644
--- a/src/main/java/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
+++ b/src/main/java/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
@@ -20,7 +20,6 @@
package net.server.coordinator.matchchecker.listener;
import client.Character;
-import constants.string.LanguageConstants;
import net.server.coordinator.matchchecker.AbstractMatchCheckerListener;
import net.server.coordinator.matchchecker.MatchCheckerListenerRecipe;
import net.server.world.PartyCharacter;
@@ -82,7 +81,7 @@ public void onMatchCreated(Character leader, Set nonLeaderMatchPlayer
NPCScriptManager.getInstance().start("cpqchallenge2", ldr.getClient(), npcid, chrMembers);
}
- cm.sendOk(LanguageConstants.getMessage(chr, LanguageConstants.CPQChallengeRoomSent));
+ cm.sendOk("A challenge has been sent to the group in the room. Please wait a while.");
}
@Override
@@ -111,7 +110,7 @@ public void onMatchAccepted(int leaderid, Set matchPlayers, String me
@Override
public void onMatchDeclined(int leaderid, Set matchPlayers, String message) {
Character chr = getChallenger(leaderid, matchPlayers);
- chr.dropMessage(5, LanguageConstants.getMessage(chr, LanguageConstants.CPQChallengeRoomDenied));
+ chr.dropMessage(5, "The group in the room has canceled your challenge");
}
@Override
diff --git a/src/main/java/scripting/npc/NPCConversationManager.java b/src/main/java/scripting/npc/NPCConversationManager.java
index bec34cb9394..b6b74723a01 100644
--- a/src/main/java/scripting/npc/NPCConversationManager.java
+++ b/src/main/java/scripting/npc/NPCConversationManager.java
@@ -31,7 +31,6 @@
import constants.id.MapId;
import constants.id.NpcId;
import constants.inventory.ItemConstants;
-import constants.string.LanguageConstants;
import net.server.Server;
import net.server.channel.Channel;
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
@@ -622,7 +621,7 @@ public int cpqCalcAvgLvl(int map) {
}
public boolean sendCPQMapLists() {
- String msg = LanguageConstants.getMessage(getPlayer(), LanguageConstants.CPQPickRoom);
+ String msg = "Sign up for the Monster Festival!\r\n";
int msgLen = msg.length();
for (int i = 0; i < 6; i++) {
if (fieldTaken(i)) {
@@ -678,7 +677,7 @@ public void cpqLobby(int field) {
if (mc != null) {
mc.setChallenged(false);
mc.changeMap(map, map.getPortal(0));
- mc.sendPacket(PacketCreator.serverNotice(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntryLobby)));
+ mc.sendPacket(PacketCreator.serverNotice(6, "You will now receive challenges from other groups. If you do not accept a challenge within 3 minutes, you will be taken out."));
TimerManager tMan = TimerManager.getInstance();
tMan.schedule(() -> mapClock((int) MINUTES.toSeconds(3)), 1500);
@@ -865,7 +864,7 @@ public void startCPQ2(final Character challenger, final int field) {
}
public boolean sendCPQMapLists2() {
- String msg = LanguageConstants.getMessage(getPlayer(), LanguageConstants.CPQPickRoom);
+ String msg = "Sign up for the Monster Festival!\r\n";
int msgLen = msg.length();
for (int i = 0; i < 3; i++) {
if (fieldTaken2(i)) {
@@ -921,7 +920,7 @@ public void cpqLobby2(int field) {
if (mc != null) {
mc.setChallenged(false);
mc.changeMap(map, map.getPortal(0));
- mc.sendPacket(PacketCreator.serverNotice(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntryLobby)));
+ mc.sendPacket(PacketCreator.serverNotice(6, "You will now receive challenges from other groups. If you do not accept a challenge within 3 minutes, you will be taken out."));
TimerManager tMan = TimerManager.getInstance();
tMan.schedule(() -> mapClock((int) MINUTES.toSeconds(3)), 1500);
@@ -955,7 +954,7 @@ public void challengeParty2(int field) {
for (MapObject mmo : map.getAllPlayer()) {
Character mc = (Character) mmo;
if (mc.getParty() == null) {
- sendOk(LanguageConstants.getMessage(mc, LanguageConstants.CPQFindError));
+ sendOk("We could not find a group in this room.\r\nProbably the group was scrapped inside the room!");
return;
}
if (mc.getParty().getLeader().getId() == mc.getId()) {
@@ -966,13 +965,13 @@ public void challengeParty2(int field) {
if (leader != null) {
if (!leader.isChallenged()) {
if (!sendCPQChallenge("cpq2", leader.getId())) {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQChallengeRoomAnswer));
+ sendOk("The group is currently facing a challenge.");
}
} else {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQChallengeRoomAnswer));
+ sendOk("The group is currently facing a challenge.");
}
} else {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQLeaderNotFound));
+ sendOk("Could not find the leader.");
}
}
@@ -986,7 +985,7 @@ public void challengeParty(int field) {
for (MapObject mmo : map.getAllPlayer()) {
Character mc = (Character) mmo;
if (mc.getParty() == null) {
- sendOk(LanguageConstants.getMessage(mc, LanguageConstants.CPQFindError));
+ sendOk("We could not find a group in this room.\r\nProbably the group was scrapped inside the room!");
return;
}
if (mc.getParty().getLeader().getId() == mc.getId()) {
@@ -995,15 +994,16 @@ public void challengeParty(int field) {
}
}
if (leader != null) {
+ String CHALLENGE_MSG = "The group is currently facing a challenge.";
if (!leader.isChallenged()) {
if (!sendCPQChallenge("cpq1", leader.getId())) {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQChallengeRoomAnswer));
+ sendOk(CHALLENGE_MSG);
}
} else {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQChallengeRoomAnswer));
+ sendOk(CHALLENGE_MSG);
}
} else {
- sendOk(LanguageConstants.getMessage(leader, LanguageConstants.CPQLeaderNotFound));
+ sendOk("Could not find the leader.");
}
}
@@ -1099,4 +1099,4 @@ public boolean createMarriageWishlist() {
return false;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/server/partyquest/MonsterCarnival.java b/src/main/java/server/partyquest/MonsterCarnival.java
index c19fd4cde3a..59b2676ba4f 100644
--- a/src/main/java/server/partyquest/MonsterCarnival.java
+++ b/src/main/java/server/partyquest/MonsterCarnival.java
@@ -2,7 +2,6 @@
import client.Character;
import config.YamlConfig;
-import constants.string.LanguageConstants;
import net.server.Server;
import net.server.channel.Channel;
import net.server.world.Party;
@@ -49,51 +48,66 @@ public MonsterCarnival(Party p1, Party p2, int mapid, boolean cpq1, int room) {
startTime = System.currentTimeMillis() + MINUTES.toMillis(10);
int redPortal = 0;
int bluePortal = 0;
+
if (map.isPurpleCPQMap()) {
redPortal = 2;
bluePortal = 1;
}
+
+ String CPQ_ENTRY_MESSAGE = "You can select \"Summon Monseters\", \"Ability\", or \"Protector as your during the Monster Carnival. Use Tab and F1 ~ F12 for quick access!";
+
for (PartyCharacter mpc : p1.getMembers()) {
Character mc = mpc.getPlayer();
+
if (mc != null) {
mc.setMonsterCarnival(this);
mc.setTeam(0);
mc.setFestivalPoints(0);
mc.forceChangeMap(map, map.getPortal(redPortal));
- mc.dropMessage(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntry));
+ mc.dropMessage(6, CPQ_ENTRY_MESSAGE);
+
if (p1.getLeader().getId() == mc.getId()) {
leader1 = mc;
}
+
team1 = mc;
}
}
+
for (PartyCharacter mpc : p2.getMembers()) {
Character mc = mpc.getPlayer();
+
if (mc != null) {
mc.setMonsterCarnival(this);
mc.setTeam(1);
mc.setFestivalPoints(0);
mc.forceChangeMap(map, map.getPortal(bluePortal));
- mc.dropMessage(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntry));
+ mc.dropMessage(6, CPQ_ENTRY_MESSAGE);
if (p2.getLeader().getId() == mc.getId()) {
leader2 = mc;
}
team2 = mc;
}
}
+
+ String CPQ_ERROR_MESSAGE = "There was a problem. Please re-create a room.";
if (team1 == null || team2 == null) {
for (PartyCharacter mpc : p1.getMembers()) {
Character chr = mpc.getPlayer();
+
if (chr != null) {
- chr.dropMessage(5, LanguageConstants.getMessage(chr, LanguageConstants.CPQError));
+ chr.dropMessage(5, CPQ_ERROR_MESSAGE);
}
}
+
for (PartyCharacter mpc : p2.getMembers()) {
Character chr = mpc.getPlayer();
+
if (chr != null) {
- chr.dropMessage(5, LanguageConstants.getMessage(chr, LanguageConstants.CPQError));
+ chr.dropMessage(5, CPQ_ERROR_MESSAGE);
}
}
+
return;
}
@@ -132,13 +146,13 @@ public void playerDisconnected(int charid) {
String teamS = "";
switch (team) {
case 0:
- teamS = LanguageConstants.getMessage(chrMap, LanguageConstants.CPQRed);
+ teamS = "Maple Red";
break;
case 1:
- teamS = LanguageConstants.getMessage(chrMap, LanguageConstants.CPQBlue);
+ teamS = "Maple Blue";
break;
}
- chrMap.dropMessage(5, teamS + LanguageConstants.getMessage(chrMap, LanguageConstants.CPQPlayerExit));
+ chrMap.dropMessage(5, teamS + " left the Carnival of Monsters.");
}
earlyFinish();
}
@@ -345,7 +359,7 @@ public int getTimeLeftSeconds() {
private void extendTime() {
for (Character chrMap : map.getAllPlayers()) {
- chrMap.dropMessage(5, LanguageConstants.getMessage(chrMap, LanguageConstants.CPQExtendTime));
+ chrMap.dropMessage(5, "The time has been extended");
}
startTime = System.currentTimeMillis() + MINUTES.toMillis(3);
@@ -369,7 +383,7 @@ public void complete() {
int chnl = leader1.getClient().getChannel();
int chnl1 = leader2.getClient().getChannel();
if (chnl != chnl1) {
- throw new RuntimeException("Os lideres estao em canais diferentes.");
+ throw new RuntimeException("The leaders are on different channels.");
}
map.killAllMonsters();
@@ -483,7 +497,7 @@ public int getTotalCP(int team) {
} else if (team == 1) {
return blueTotalCP;
} else {
- throw new RuntimeException("Equipe desconhecida");
+ throw new RuntimeException("Unknown team");
}
}
@@ -501,7 +515,7 @@ public int getCP(int team) {
} else if (team == 1) {
return blueCP;
} else {
- throw new RuntimeException("Equipe desconhecida" + team);
+ throw new RuntimeException("Unknown team " + team);
}
}
diff --git a/src/main/java/tools/HexTool.java b/src/main/java/tools/HexTool.java
index 64b7959a0a3..db10e309f48 100644
--- a/src/main/java/tools/HexTool.java
+++ b/src/main/java/tools/HexTool.java
@@ -21,10 +21,10 @@
*/
package tools;
-import constants.string.CharsetConstants;
-
+import java.nio.charset.StandardCharsets;
import java.util.HexFormat;
+
/**
* Handles converting back and forth from byte arrays to hex strings.
*/
@@ -80,7 +80,7 @@ public static String toStringFromAscii(final byte[] bytes) {
}
}
- return new String(filteredBytes, CharsetConstants.CHARSET);
+ return new String(filteredBytes, StandardCharsets.US_ASCII);
}
private static boolean isSpecialCharacter(byte asciiCode) {
diff --git a/src/test/java/net/packet/ByteBufInPacketTest.java b/src/test/java/net/packet/ByteBufInPacketTest.java
index 34b87e89b8e..f05d069a4fe 100644
--- a/src/test/java/net/packet/ByteBufInPacketTest.java
+++ b/src/test/java/net/packet/ByteBufInPacketTest.java
@@ -1,6 +1,5 @@
package net.packet;
-import constants.string.CharsetConstants;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.opcodes.SendOpcode;
@@ -8,6 +7,7 @@
import org.junit.jupiter.api.Test;
import java.awt.*;
+import java.nio.charset.StandardCharsets;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -113,7 +113,7 @@ void readPoint() {
void readString() {
final String writtenString = "You have gained experience (+3200)";
byteBuf.writeShortLE(writtenString.length());
- byte[] writtenStringBytes = writtenString.getBytes(CharsetConstants.CHARSET);
+ byte[] writtenStringBytes = writtenString.getBytes(StandardCharsets.US_ASCII);
byteBuf.writeBytes(writtenStringBytes);
String readString = inPacket.readString();