Sync with L2JServer Jan 9th 2015.

This commit is contained in:
mobius
2015-01-09 19:55:02 +00:00
parent 9c9b0aaff7
commit 4c2db62a63
618 changed files with 19803 additions and 7853 deletions

View File

@@ -26,11 +26,17 @@ import javolution.text.TextBuilder;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Hero;
import com.l2jserver.gameserver.model.olympiad.Olympiad;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.util.Util;
/**
* This class handles following admin commands: - admin|admin1/admin2/admin3/admin4/admin5 = slots for the 5 starting admin menus - gmliston/gmlistoff = includes/excludes active character from /gmlist results - silence = toggles private messages acceptance mode - diet = toggles weight penalty mode -
@@ -64,7 +70,8 @@ public class AdminAdmin implements IAdminCommandHandler
"admin_endolympiad",
"admin_setconfig",
"admin_config_server",
"admin_gmon"
"admin_gmon",
"admin_worldchat",
};
@Override
@@ -288,6 +295,87 @@ public class AdminAdmin implements IAdminCommandHandler
{
// nothing
}
else if (command.startsWith("admin_worldchat"))
{
final StringTokenizer st = new StringTokenizer(command);
st.nextToken(); // admin_worldchat
final String subCmd = st.hasMoreTokens() ? st.nextToken() : "";
switch (subCmd)
{
case "shout":
{
final StringBuilder sb = new StringBuilder();
while (st.hasMoreTokens())
{
sb.append(st.nextToken());
sb.append(" ");
}
final CreatureSay cs = new CreatureSay(activeChar, Say2.GLOBAL, sb.toString());
L2World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
break;
}
case "see":
{
final L2Object target = activeChar.getTarget();
if ((target == null) || !target.isPlayer())
{
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
break;
}
final L2PcInstance targetPlayer = target.getActingPlayer();
if (targetPlayer.getLevel() < Config.WORLD_CHAT_MIN_LEVEL)
{
activeChar.sendMessage("Your target's level is below the minimum: " + Config.WORLD_CHAT_MIN_LEVEL);
break;
}
activeChar.sendMessage(targetPlayer.getName() + ": has " + targetPlayer.getWorldChatPoints() + " world chat points");
break;
}
case "set":
{
final L2Object target = activeChar.getTarget();
if ((target == null) || !target.isPlayer())
{
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
break;
}
final L2PcInstance targetPlayer = target.getActingPlayer();
if (targetPlayer.getLevel() < Config.WORLD_CHAT_MIN_LEVEL)
{
activeChar.sendMessage("Your target's level is below the minimum: " + Config.WORLD_CHAT_MIN_LEVEL);
break;
}
if (!st.hasMoreTokens())
{
activeChar.sendMessage("Incorrect syntax, use: //worldchat set <points>");
break;
}
final String valueToken = st.nextToken();
if (!Util.isDigit(valueToken))
{
activeChar.sendMessage("Incorrect syntax, use: //worldchat set <points>");
break;
}
activeChar.sendMessage(targetPlayer.getName() + ": points changed from " + targetPlayer.getWorldChatPoints() + " to " + valueToken);
targetPlayer.setWorldChatPoints(Integer.parseInt(valueToken));
targetPlayer.sendPacket(new ExWorldChatCnt(targetPlayer));
break;
}
default:
{
activeChar.sendMessage("Possible commands:");
activeChar.sendMessage(" - Send message: //worldchat shout <text>");
activeChar.sendMessage(" - See your target's points: //worldchat see");
activeChar.sendMessage(" - Change your target's points: //worldchat set <points>");
break;
}
}
}
return true;
}