diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAll.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAll.java index 4d52ef79ab8ff8b2fa5ed4a052ba6aeebf60fa8c..75519e52adaa33f34fce48eb3a0c30f1eae252ec 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAll.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAll.java @@ -104,7 +104,7 @@ public class ChatAll implements IChatHandler } else { - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getAppearance().getVisibleName(), ChatTranslationTool.traslate(text)); Collection<L2PcInstance> plrs = activeChar.getKnownList().getKnownPlayers().values(); for (L2PcInstance player : plrs) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java index 02199326afb78193f134d827015670eab6f3e223..c6acf9e27c8841afa97b5f0bca710d4731065b7e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatAlliance.java @@ -46,7 +46,7 @@ public class ChatAlliance implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); activeChar.getClan().broadcastToOnlineAllyMembers(cs); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java index 2f99e8db07bcbe07fe4306d1dc116a3d009a941d..bc89861e4d30138fc017fe0b05fdee591f41e1c3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatBattlefield.java @@ -52,7 +52,7 @@ public class ChatBattlefield implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); for (L2PcInstance player : L2World.getInstance().getAllPlayersArray()) { if (player.getSiegeSide() == activeChar.getSiegeSide()) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatClan.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatClan.java index 21b01fd52fe504949759df1aeb4f1566664bce87..5bfebecb25ed76f59324ab9a856d2a512e901c1e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatClan.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatClan.java @@ -50,7 +50,7 @@ public class ChatClan implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); activeChar.getClan().broadcastCSToOnlineMembers(cs, activeChar); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java index 625f5ca0995bf3f32b8a87c9d52bb9d0a45981f1..e6b7c9c63f1984e58f1e276b6baaf9b6f4f779db 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatHeroVoice.java @@ -58,8 +58,8 @@ public class ChatHeroVoice implements IChatHandler activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds."); return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); for (L2PcInstance player : L2World.getInstance().getAllPlayersArray()) { if ((player != null) && !BlockList.isBlocked(player, activeChar)) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatParty.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatParty.java index 269f67eae672a29b58e9ff77758f00704d5f775e..210df190dd059437b508329e6f8c330f087123cc 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatParty.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatParty.java @@ -50,7 +50,7 @@ public class ChatParty implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); activeChar.getParty().broadcastCreatureSay(cs, activeChar); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java index 272da61c22698b8270ef88da8a9be38a92db4984..fd810dc8fd1eb2d3ddb3aca78fec370c689e8353 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyMatchRoom.java @@ -55,7 +55,7 @@ public class ChatPartyMatchRoom implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); for (L2PcInstance _member : _room.getPartyMembers()) { _member.sendPacket(cs); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java index d8dcf5eb9d0a970a76764b205f17fda7cea255d4..e0b891b274039cf9fc7d806e007a95abaf120917 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomAll.java @@ -52,7 +52,7 @@ public class ChatPartyRoomAll implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); activeChar.getParty().getCommandChannel().broadcastCreatureSay(cs, activeChar); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java index 955bf826e091e0201b40f3e6c2c35c84ae606583..87477370d7aa23753873cc8c246e50098b845082 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPartyRoomCommander.java @@ -52,7 +52,7 @@ public class ChatPartyRoomCommander implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); activeChar.getParty().getCommandChannel().broadcastCreatureSay(cs, activeChar); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java index 7e3d0f1166c6b8acd0855e87f41886c27cbe4050..3dd64c0ef8b7cb8ce1d51f58e5150a7b023205db 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatPetition.java @@ -55,7 +55,7 @@ public class ChatPetition implements IChatHandler return; } - PetitionManager.getInstance().sendActivePetitionMessage(activeChar, text); + PetitionManager.getInstance().sendActivePetitionMessage(activeChar, ChatTranslationTool.traslate(text)); } /** diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java index 62c0aeb6a3fefdfbcb130929b4e2ff31fbc73d8f..7a3746c4053c69b2346182930a141293c468dcc8 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatShout.java @@ -52,7 +52,7 @@ public class ChatShout implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray(); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java index 023442f6e6d1892113fe5b7c5a258a38f441aaf4..7c5d8d678a4193cc6015a60db4505c9d5ee8190c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTell.java @@ -63,7 +63,7 @@ public class ChatTell implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); L2PcInstance receiver = null; receiver = L2World.getInstance().getPlayer(target); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java index 1a30ca11d71f39080025ce216ec83c9539d83bee..59dbc2f7e87584f5864e682dd42d591a1cf4513e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTrade.java @@ -52,7 +52,7 @@ public class ChatTrade implements IChatHandler return; } - CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), text); + CreatureSay cs = new CreatureSay(activeChar.getObjectId(), type, activeChar.getName(), ChatTranslationTool.traslate(text)); L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray(); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTranslationTool.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTranslationTool.java new file mode 100644 index 0000000000000000000000000000000000000000..96fde80d5006d2f0ec70a03c6e1377f08eb75a8e --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/chathandlers/ChatTranslationTool.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2004-2013 L2J DataPack + * + * This file is part of L2J DataPack. + * + * L2J DataPack is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * L2J DataPack 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package handlers.chathandlers; + +import java.util.Arrays; +import java.util.List; + +import com.l2jserver.util.Rnd; + +/** + * Translation tool. + * @author Zoey76 + */ +public class ChatTranslationTool +{ + private static final List<Character> TRANSLATION_TABLE = Arrays.asList('@', '8', '(', '9', '3', 'F', '6', 'h', '|', 'j', 'k', 'L', 'm', 'n', '0', 'p', 'q', 'R', '$', '7', 'u', 'v', 'W', '%', 'y', 'z'); + + protected static String traslate(String text) + { + final StringBuilder result = new StringBuilder(text.length() + 10); + Character x; + for (char c : text.toCharArray()) + { + x = getChar(c); + if (Character.isLetter(x) && Rnd.nextBoolean()) + { + x = Character.isUpperCase(x) ? Character.toLowerCase(x) : Character.toUpperCase(x); + } + result.append(x); + } + return result.toString(); + } + + private static final Character getChar(char c) + { + int index = -1; + if ((c > 96) && (c < 123)) + { + index = c - 97; + } + else if ((c > 64) && (c < 91)) + { + index = c - 65; + } + return index < 0 ? c : TRANSLATION_TABLE.get(index); + } +} \ No newline at end of file