Sync with L2JServer Jan 24th 2015.

This commit is contained in:
mobius
2015-01-24 20:02:32 +00:00
parent d349bd3924
commit 1c6301c46d
1012 changed files with 23069 additions and 6307 deletions

View File

@ -59,7 +59,6 @@ import handlers.admincommandhandlers.AdminEvents;
import handlers.admincommandhandlers.AdminExpSp;
import handlers.admincommandhandlers.AdminFightCalculator;
import handlers.admincommandhandlers.AdminFortSiege;
import handlers.admincommandhandlers.AdminGeoEditor;
import handlers.admincommandhandlers.AdminGeodata;
import handlers.admincommandhandlers.AdminGm;
import handlers.admincommandhandlers.AdminGmChat;
@ -210,6 +209,7 @@ import handlers.targethandlers.FrontAura;
import handlers.targethandlers.Ground;
import handlers.targethandlers.Holy;
import handlers.targethandlers.One;
import handlers.targethandlers.OneFriendly;
import handlers.targethandlers.OwnerPet;
import handlers.targethandlers.Party;
import handlers.targethandlers.PartyClan;
@ -353,7 +353,6 @@ public class MasterHandler
AdminFightCalculator.class,
AdminFortSiege.class,
AdminGeodata.class,
AdminGeoEditor.class,
AdminGm.class,
AdminGmChat.class,
AdminGraciaSeeds.class,
@ -553,6 +552,7 @@ public class MasterHandler
Ground.class,
Holy.class,
One.class,
OneFriendly.class,
OwnerPet.class,
Party.class,
PartyClan.class,

View File

@ -18,7 +18,6 @@
*/
package handlers.actionhandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.enums.InstanceType;
@ -101,15 +100,7 @@ public class L2PcInstanceAction implements IActionHandler
}
else
{
if (Config.GEODATA > 0)
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
}
}
else
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
@ -120,14 +111,7 @@ public class L2PcInstanceAction implements IActionHandler
{
// This Action Failed packet avoids activeChar getting stuck when clicking three or more times
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
if (Config.GEODATA > 0)
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, target);
}
}
else
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, target);
}

View File

@ -18,7 +18,6 @@
*/
package handlers.actionhandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.enums.InstanceType;
@ -61,32 +60,16 @@ public class L2PetInstanceAction implements IActionHandler
// Check if the pet is attackable (without a forced attack) and isn't dead
if (target.isAutoAttackable(activeChar) && !isOwner)
{
if (Config.GEODATA > 0)
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
// Set the L2PcInstance Intention to AI_INTENTION_ATTACK
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
}
}
else
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
// Set the L2PcInstance Intention to AI_INTENTION_ATTACK
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
}
}
else if (!((L2Character) target).isInsideRadius(activeChar, 150, false, false))
{
if (Config.GEODATA > 0)
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target);
activeChar.onActionRequest();
}
}
else
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target);
activeChar.onActionRequest();

View File

@ -18,7 +18,6 @@
*/
package handlers.actionhandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.enums.InstanceType;
@ -61,15 +60,7 @@ public class L2SummonAction implements IActionHandler
{
if (target.isAutoAttackable(activeChar))
{
if (Config.GEODATA > 0)
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
}
}
else
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
activeChar.onActionRequest();
@ -83,17 +74,13 @@ public class L2SummonAction implements IActionHandler
{
activeChar.updateNotMoveUntil();
}
else if (Config.GEODATA > 0)
else
{
if (GeoData.getInstance().canSeeTarget(activeChar, target))
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, target);
}
}
else
{
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, target);
}
}
}
return true;

View File

@ -18,6 +18,8 @@
*/
package handlers.actionshifthandlers;
import handlers.bypasshandlers.NpcViewMod;
import java.util.Set;
import com.l2jserver.Config;
@ -34,8 +36,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.util.Util;
import handlers.bypasshandlers.NpcViewMod;
public class L2NpcActionShift implements IActionShiftHandler
{
/**

View File

@ -24,7 +24,7 @@ import java.util.logging.Logger;
import javolution.text.TextBuilder;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
@ -87,13 +87,13 @@ public class AdminAdmin implements IAdminCommandHandler
}
else if (command.startsWith("admin_gmliston"))
{
AdminTable.getInstance().showGm(activeChar);
AdminData.getInstance().showGm(activeChar);
activeChar.sendMessage("Registered into gm list");
AdminHtml.showAdminHtml(activeChar, "gm_menu.htm");
}
else if (command.startsWith("admin_gmlistoff"))
{
AdminTable.getInstance().hideGm(activeChar);
AdminData.getInstance().hideGm(activeChar);
activeChar.sendMessage("Removed from gm list");
AdminHtml.showAdminHtml(activeChar, "gm_menu.htm");
}

View File

@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import com.l2jserver.Config;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.AnnouncementsTable;
import com.l2jserver.gameserver.data.sql.impl.AnnouncementsTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.PageResult;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

View File

@ -24,7 +24,7 @@ import java.util.List;
import java.util.StringTokenizer;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.SkillTreesData;
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -21,7 +21,7 @@ package handlers.admincommandhandlers;
import java.util.Calendar;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
import com.l2jserver.gameserver.model.L2Clan;

View File

@ -21,7 +21,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.enums.CastleSide;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.CastleManager;

View File

@ -24,7 +24,7 @@ import java.sql.SQLException;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2AccessLevel;
import com.l2jserver.gameserver.model.L2World;
@ -120,9 +120,9 @@ public final class AdminChangeAccessLevel implements IAdminCommandHandler
{
if (lvl >= 0)
{
if (AdminTable.getInstance().hasAccessLevel(lvl))
if (AdminData.getInstance().hasAccessLevel(lvl))
{
final L2AccessLevel acccessLevel = AdminTable.getInstance().getAccessLevel(lvl);
final L2AccessLevel acccessLevel = AdminData.getInstance().getAccessLevel(lvl);
player.setAccessLevel(lvl, true);
player.sendMessage("Your access level has been changed to " + acccessLevel.getName() + " (" + acccessLevel.getLevel() + ").");
activeChar.sendMessage(player.getName() + "'s access level has been changed to " + acccessLevel.getName() + " (" + acccessLevel.getLevel() + ").");

View File

@ -21,7 +21,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.instancemanager.ClanHallManager;

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;

View File

@ -18,7 +18,7 @@
*/
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.datatables.DoorTable;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.model.L2Object;
@ -33,7 +33,7 @@ import com.l2jserver.gameserver.model.entity.Castle;
*/
public class AdminDoorControl implements IAdminCommandHandler
{
private static DoorTable _doorTable = DoorTable.getInstance();
private static DoorData _doorTable = DoorData.getInstance();
private static final String[] ADMIN_COMMANDS =
{
"admin_open",

View File

@ -31,8 +31,8 @@ import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.datatables.ClassListData;
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
import com.l2jserver.gameserver.data.xml.impl.ClassListData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
@ -353,12 +353,17 @@ public class AdminEditChar implements IAdminCommandHandler
if ((ClassId.getClassId(classidval) != null) && (player.getClassId().getId() != classidval))
{
player.setClassId(classidval);
if (!player.isSubClassActive())
if (player.isSubClassActive())
{
player.setBaseClass(classidval);
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
}
else
{
player.setBaseClass(player.getActiveClass());
}
String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
player.storeMe();
player.sendMessage("A GM changed your class to " + newclass + ".");
player.broadcastUserInfo();

View File

@ -29,8 +29,8 @@ import java.io.PrintStream;
import java.util.StringTokenizer;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.datatables.TransformData;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.data.xml.impl.TransformData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -365,7 +365,7 @@ public class AdminEventEngine implements IAdminCommandHandler
int transId = transIds[Rnd.get(transIds.length)];
if (!TransformData.getInstance().transformPlayer(transId, player))
{
AdminTable.getInstance().broadcastMessageToGMs("EventEngine: Unknow transformation id: " + transId);
AdminData.getInstance().broadcastMessageToGMs("EventEngine: Unknow transformation id: " + transId);
}
}
showEventControl(activeChar);
@ -425,7 +425,7 @@ public class AdminEventEngine implements IAdminCommandHandler
catch (Exception e)
{
e.printStackTrace();
AdminTable.getInstance().broadcastMessageToGMs("EventEngine: Error! Possible blank boxes while executing a command which requires a value in the box?");
AdminData.getInstance().broadcastMessageToGMs("EventEngine: Error! Possible blank boxes while executing a command which requires a value in the box?");
}
return true;
}

View File

@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.ClassListData;
import com.l2jserver.gameserver.data.xml.impl.ClassListData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

View File

@ -21,7 +21,7 @@ package handlers.admincommandhandlers;
import java.util.List;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -1,116 +0,0 @@
/*
* Copyright (C) 2004-2015 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.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.Config;
import com.l2jserver.gameserver.geoeditorcon.GeoEditorListener;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
/**
* @author Luno, Dezmond
*/
public class AdminGeoEditor implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS =
{
"admin_ge_status",
"admin_ge_mode",
"admin_ge_join",
"admin_ge_leave"
};
@Override
public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
if (!Config.ACCEPT_GEOEDITOR_CONN)
{
activeChar.sendMessage("Server do not accepts geoeditor connections now.");
return true;
}
if (command.startsWith("admin_ge_status"))
{
activeChar.sendMessage(GeoEditorListener.getInstance().getStatus());
}
else if (command.startsWith("admin_ge_mode"))
{
if (GeoEditorListener.getInstance().getThread() == null)
{
activeChar.sendMessage("Geoeditor not connected.");
return true;
}
try
{
String val = command.substring("admin_ge_mode".length());
StringTokenizer st = new StringTokenizer(val);
if (st.countTokens() < 1)
{
activeChar.sendMessage("Usage: //ge_mode X");
activeChar.sendMessage("Mode 0: Don't send coordinates to geoeditor.");
activeChar.sendMessage("Mode 1: Send coordinates at ValidatePosition from clients.");
activeChar.sendMessage("Mode 2: Send coordinates each second.");
return true;
}
int m;
m = Integer.parseInt(st.nextToken());
GeoEditorListener.getInstance().getThread().setMode(m);
activeChar.sendMessage("Geoeditor connection mode set to " + m + ".");
}
catch (Exception e)
{
activeChar.sendMessage("Usage: //ge_mode X");
activeChar.sendMessage("Mode 0: Don't send coordinates to geoeditor.");
activeChar.sendMessage("Mode 1: Send coordinates at ValidatePosition from clients.");
activeChar.sendMessage("Mode 2: Send coordinates each second.");
e.printStackTrace();
}
return true;
}
else if (command.equals("admin_ge_join"))
{
if (GeoEditorListener.getInstance().getThread() == null)
{
activeChar.sendMessage("Geoeditor not connected.");
return true;
}
GeoEditorListener.getInstance().getThread().addGM(activeChar);
activeChar.sendMessage("You added to list for geoeditor.");
}
else if (command.equals("admin_ge_leave"))
{
if (GeoEditorListener.getInstance().getThread() == null)
{
activeChar.sendMessage("Geoeditor not connected.");
return true;
}
GeoEditorListener.getInstance().getThread().removeGM(activeChar);
activeChar.sendMessage("You removed from list for geoeditor.");
}
return true;
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
}

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.logging.Logger;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -41,7 +41,7 @@ public class AdminGm implements IAdminCommandHandler
{
if (command.equals("admin_gm") && activeChar.isGM())
{
AdminTable.getInstance().deleteGm(activeChar);
AdminData.getInstance().deleteGm(activeChar);
activeChar.setAccessLevel(0, true);
activeChar.sendMessage("You no longer have GM status.");
_log.info("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") turned his GM status off");

View File

@ -18,7 +18,7 @@
*/
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.L2World;
@ -116,7 +116,7 @@ public class AdminGmChat implements IAdminCommandHandler
}
text = command.substring(offset);
CreatureSay cs = new CreatureSay(0, Say2.ALLIANCE, activeChar.getName(), text);
AdminTable.getInstance().broadcastToGMs(cs);
AdminData.getInstance().broadcastToGMs(cs);
}
catch (StringIndexOutOfBoundsException e)
{

View File

@ -18,14 +18,14 @@
*/
package handlers.admincommandhandlers;
import hellbound.HellboundEngine;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import hellbound.HellboundEngine;
/**
* Hellbound admin command.
* @author DS, Gladicek

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.ExperienceTable;
import com.l2jserver.gameserver.data.xml.impl.ExperienceData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Playable;
@ -74,10 +74,10 @@ public class AdminLevel implements IAdminCommandHandler
L2PcInstance targetPlayer = (L2PcInstance) targetChar;
byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= ExperienceTable.getInstance().getMaxLevel()))
if ((lvl >= 1) && (lvl <= ExperienceData.getInstance().getMaxLevel()))
{
long pXp = targetPlayer.getExp();
long tXp = ExperienceTable.getInstance().getExpForLevel(lvl);
long tXp = ExperienceData.getInstance().getExpForLevel(lvl);
if (pXp > tXp)
{
@ -90,13 +90,13 @@ public class AdminLevel implements IAdminCommandHandler
}
else
{
activeChar.sendMessage("You must specify level between 1 and " + ExperienceTable.getInstance().getMaxLevel() + ".");
activeChar.sendMessage("You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + ".");
return false;
}
}
catch (NumberFormatException e)
{
activeChar.sendMessage("You must specify level between 1 and " + ExperienceTable.getInstance().getMaxLevel() + ".");
activeChar.sendMessage("You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + ".");
return false;
}
}

View File

@ -23,7 +23,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.AdminCommandHandler;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Clan;
@ -190,7 +190,7 @@ public class AdminMenu implements IAdminCommandHandler
if (st.countTokens() > 1)
{
String subCommand = "admin_ban_char";
if (!AdminTable.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
{
activeChar.sendMessage("You don't have the access right to use this command!");
_log.warning("Character " + activeChar.getName() + " tryed to use admin command " + subCommand + ", but have no access to it!");
@ -207,7 +207,7 @@ public class AdminMenu implements IAdminCommandHandler
if (st.countTokens() > 1)
{
String subCommand = "admin_unban_char";
if (!AdminTable.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
{
activeChar.sendMessage("You don't have the access right to use this command!");
_log.warning("Character " + activeChar.getName() + " tryed to use admin command " + subCommand + ", but have no access to it!");

View File

@ -18,7 +18,7 @@
*/
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.MobGroup;

View File

@ -69,9 +69,9 @@ public class AdminPathNode implements IAdminCommandHandler
}
else if (command.equals("admin_find_path"))
{
if (Config.GEODATA < 2)
if (Config.PATHFINDING == 0)
{
activeChar.sendMessage("PathFinding has not been enabled.");
activeChar.sendMessage("PathFinding is disabled.");
return true;
}
if (activeChar.getTarget() != null)

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.enums.UserInfoType;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Clan;

View File

@ -18,7 +18,7 @@
*/
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.datatables.TransformData;
import com.l2jserver.gameserver.data.xml.impl.TransformData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -28,7 +28,7 @@ import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.PunishmentManager;
import com.l2jserver.gameserver.model.L2World;

View File

@ -25,21 +25,21 @@ import javax.script.ScriptException;
import com.l2jserver.Config;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.AbilityPointsData;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.datatables.BuyListData;
import com.l2jserver.gameserver.datatables.CrestTable;
import com.l2jserver.gameserver.datatables.DoorTable;
import com.l2jserver.gameserver.datatables.EnchantItemData;
import com.l2jserver.gameserver.datatables.EnchantItemGroupsData;
import com.l2jserver.gameserver.datatables.ItemCrystalizationData;
import com.l2jserver.gameserver.data.sql.impl.CrestTable;
import com.l2jserver.gameserver.data.sql.impl.TeleportLocationTable;
import com.l2jserver.gameserver.data.xml.impl.AbilityPointsData;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.data.xml.impl.EnchantItemData;
import com.l2jserver.gameserver.data.xml.impl.EnchantItemGroupsData;
import com.l2jserver.gameserver.data.xml.impl.ItemCrystalizationData;
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.data.xml.impl.TeleportersData;
import com.l2jserver.gameserver.data.xml.impl.TransformData;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.datatables.MultisellData;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.datatables.TeleportLocationTable;
import com.l2jserver.gameserver.datatables.TeleportersData;
import com.l2jserver.gameserver.datatables.TransformData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
@ -81,19 +81,19 @@ public class AdminReload implements IAdminCommandHandler
case "config":
{
Config.load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Configs.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Configs.");
break;
}
case "access":
{
AdminTable.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Access.");
AdminData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Access.");
break;
}
case "npc":
{
NpcData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Npcs.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Npcs.");
break;
}
case "quest":
@ -104,20 +104,20 @@ public class AdminReload implements IAdminCommandHandler
if (!Util.isDigit(value))
{
QuestManager.getInstance().reload(value);
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quest Name:" + value + ".");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quest Name:" + value + ".");
}
else
{
final int questId = Integer.parseInt(value);
QuestManager.getInstance().reload(questId);
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quest ID:" + questId + ".");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quest ID:" + questId + ".");
}
}
else
{
QuestManager.getInstance().reloadAllScripts();
activeChar.sendMessage("All scripts have been reloaded.");
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quests.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Quests.");
}
break;
}
@ -125,7 +125,7 @@ public class AdminReload implements IAdminCommandHandler
{
WalkingManager.getInstance().load();
activeChar.sendMessage("All walkers have been reloaded");
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Walkers.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Walkers.");
break;
}
case "htm":
@ -138,7 +138,7 @@ public class AdminReload implements IAdminCommandHandler
if (file.exists())
{
HtmCache.getInstance().reload(file);
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Htm File:" + file.getName() + ".");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Htm File:" + file.getName() + ".");
}
else
{
@ -149,63 +149,63 @@ public class AdminReload implements IAdminCommandHandler
{
HtmCache.getInstance().reload();
activeChar.sendMessage("Cache[HTML]: " + HtmCache.getInstance().getMemoryUsage() + " megabytes on " + HtmCache.getInstance().getLoadedFiles() + " files loaded");
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Htms.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Htms.");
}
break;
}
case "multisell":
{
MultisellData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Multisells.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Multisells.");
break;
}
case "buylist":
{
BuyListData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Buylists.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Buylists.");
break;
}
case "teleport":
{
TeleportLocationTable.getInstance().reloadAll();
TeleportersData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Teleports.");
break;
}
case "skill":
{
SkillData.getInstance().reload();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Skills.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Skills.");
break;
}
case "item":
{
ItemTable.getInstance().reload();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Items.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Items.");
break;
}
case "door":
{
DoorTable.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Doors.");
DoorData.getInstance().load();
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Doors.");
break;
}
case "zone":
{
ZoneManager.getInstance().reload();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Zones.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Zones.");
break;
}
case "cw":
{
CursedWeaponsManager.getInstance().reload();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Cursed Weapons.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Cursed Weapons.");
break;
}
case "crest":
{
CrestTable.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Crests.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Crests.");
break;
}
case "effect":
@ -214,7 +214,7 @@ public class AdminReload implements IAdminCommandHandler
try
{
L2ScriptEngineManager.getInstance().executeScript(file);
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Effects.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Effects.");
}
catch (ScriptException e)
{
@ -229,7 +229,7 @@ public class AdminReload implements IAdminCommandHandler
try
{
L2ScriptEngineManager.getInstance().executeScript(file);
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Handlers.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded Handlers.");
}
catch (ScriptException e)
{
@ -242,25 +242,25 @@ public class AdminReload implements IAdminCommandHandler
{
EnchantItemGroupsData.getInstance().load();
EnchantItemData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded item enchanting data.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded item enchanting data.");
break;
}
case "transform":
{
TransformData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded transform data.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded transform data.");
break;
}
case "crystalizable":
{
ItemCrystalizationData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded item crystalization data.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded item crystalization data.");
break;
}
case "ability":
{
AbilityPointsData.getInstance().load();
AdminTable.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded ability points data.");
AdminData.getInstance().broadcastMessageToGMs(activeChar.getName() + ": Reloaded ability points data.");
break;
}
default:

View File

@ -18,7 +18,7 @@
*/
package handlers.admincommandhandlers;
import com.l2jserver.gameserver.datatables.TransformData;
import com.l2jserver.gameserver.data.xml.impl.TransformData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;

View File

@ -65,7 +65,7 @@ public class AdminServerInfo implements IAdminCommandHandler
html.replace("%slots%", getPlayersCount("ALL") + "/" + Config.MAXIMUM_ONLINE_USERS);
html.replace("%gameTime%", GameTimeController.getInstance().getGameHour() + ":" + GameTimeController.getInstance().getGameMinute());
html.replace("%dayNight%", GameTimeController.getInstance().isNight() ? "Night" : "Day");
html.replace("%geodata%", Config.GEODATA > 0 ? "Enabled" : "Disabled");
html.replace("%geodata%", Config.PATHFINDING > 0 ? "Enabled" : "Disabled");
html.replace("%serverTime%", fmt.format(new Date(System.currentTimeMillis())));
html.replace("%serverUpTime%", getServerUpTime());
html.replace("%onlineAll%", getPlayersCount("ALL"));

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.logging.Logger;
import com.l2jserver.gameserver.datatables.BuyListData;
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.buylist.L2BuyList;

View File

@ -24,9 +24,9 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.ClassListData;
import com.l2jserver.gameserver.data.xml.impl.ClassListData;
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.datatables.SkillTreesData;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.L2Object;
@ -34,6 +34,7 @@ import com.l2jserver.gameserver.model.L2SkillLearn;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.PledgeSkillList;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@ -183,6 +184,7 @@ public class AdminSkill implements IAdminCommandHandler
player.sendMessage("Admin removed all skills from you.");
player.sendSkillList();
player.broadcastUserInfo();
player.sendPacket(new AcquireSkillList(player));
}
else if (command.startsWith("admin_add_clan_skill"))
{
@ -205,6 +207,7 @@ public class AdminSkill implements IAdminCommandHandler
activeChar.addSkill(skill);
activeChar.sendSkillList();
activeChar.sendMessage("You added yourself skill " + skill.getName() + "(" + id + ") level " + lvl);
activeChar.sendPacket(new AcquireSkillList(activeChar));
}
return true;
}
@ -226,6 +229,7 @@ public class AdminSkill implements IAdminCommandHandler
// Notify player and admin
activeChar.sendMessage("You gave " + player.giveAvailableSkills(includedByFs, true) + " skills to " + player.getName());
player.sendSkillList();
player.sendPacket(new AcquireSkillList(player));
}
/**

View File

@ -26,8 +26,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
@ -219,7 +219,7 @@ public class AdminSpawn implements IAdminCommandHandler
RaidBossSpawnManager.getInstance().cleanUp();
DayNightSpawnManager.getInstance().cleanUp();
L2World.getInstance().deleteVisibleNpcSpawns();
AdminTable.getInstance().broadcastMessageToGMs("NPC Unspawn completed!");
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!");
}
else if (command.startsWith("admin_spawnday"))
{
@ -241,7 +241,7 @@ public class AdminSpawn implements IAdminCommandHandler
RaidBossSpawnManager.getInstance().load();
AutoSpawnHandler.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminTable.getInstance().broadcastMessageToGMs("NPC Respawn completed!");
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!");
}
else if (command.startsWith("admin_spawn_monster") || command.startsWith("admin_spawn"))
{

View File

@ -20,7 +20,7 @@ package handlers.admincommandhandlers;
import java.util.logging.Logger;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.AdminCommandHandler;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -68,7 +68,7 @@ public class AdminSummon implements IAdminCommandHandler
if (id < 1000000)
{
subCommand = "admin_create_item";
if (!AdminTable.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
{
activeChar.sendMessage("You don't have the access right to use this command!");
_log.warning("Character " + activeChar.getName() + " tryed to use admin command " + subCommand + ", but have no access to it!");
@ -80,7 +80,7 @@ public class AdminSummon implements IAdminCommandHandler
else
{
subCommand = "admin_spawn_once";
if (!AdminTable.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(subCommand, activeChar.getAccessLevel()))
{
activeChar.sendMessage("You don't have the access right to use this command!");
_log.warning("Character " + activeChar.getName() + " tryed to use admin command " + subCommand + ", but have no access to it!");

View File

@ -28,7 +28,7 @@ import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
import com.l2jserver.gameserver.instancemanager.MapRegionManager;

View File

@ -20,7 +20,7 @@ package handlers.bypasshandlers;
import java.util.logging.Level;
import com.l2jserver.gameserver.datatables.MultisellData;
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;

View File

@ -23,9 +23,9 @@ import java.util.List;
import java.util.logging.Level;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.MultisellData;
import com.l2jserver.gameserver.datatables.NpcBufferTable;
import com.l2jserver.gameserver.datatables.NpcBufferTable.NpcBufferData;
import com.l2jserver.gameserver.data.sql.impl.NpcBufferTable;
import com.l2jserver.gameserver.data.sql.impl.NpcBufferTable.NpcBufferData;
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
@ -279,12 +279,17 @@ public class OlympiadManagerLink implements IBypassHandler
target.broadcastPacket(new MagicSkillUse(target, activeChar, skill.getId(), skill.getLevel(), 0, 0));
skill.applyEffects(activeChar, activeChar);
final L2Summon summon = activeChar.getSummon();
if (summon != null)
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
target.broadcastPacket(new MagicSkillUse(target, summon, skill.getId(), skill.getLevel(), 0, 0));
skill.applyEffects(summon, summon);
target.broadcastPacket(new MagicSkillUse(target, pet, skill.getId(), skill.getLevel(), 0, 0));
skill.applyEffects(pet, pet);
}
activeChar.getServitors().values().forEach(s ->
{
target.broadcastPacket(new MagicSkillUse(target, s, skill.getId(), skill.getLevel(), 0, 0));
skill.applyEffects(s, s);
});
}
}

View File

@ -24,7 +24,7 @@ import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -22,7 +22,7 @@ import java.util.List;
import java.util.logging.Level;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.SkillTreesData;
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;

View File

@ -99,7 +99,7 @@ public class SupportMagic implements IBypassHandler
private static void makeSupportMagic(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final int level = player.getLevel();
if (isSummon && !player.hasServitor())
if (isSummon && !player.hasServitors())
{
npc.showChatWindow(player, "data/html/default/SupportMagicNoSummon.htm");
return;
@ -122,20 +122,23 @@ public class SupportMagic implements IBypassHandler
if (isSummon)
{
npc.setTarget(player.getSummon());
for (SkillHolder skill : SUMMON_BUFFS)
player.getServitors().values().forEach(s ->
{
npc.doCast(skill.getSkill());
}
if (level >= HASTE_LEVEL_2)
{
npc.doCast(HASTE_2.getSkill());
}
else
{
npc.doCast(HASTE_1.getSkill());
}
npc.setTarget(s);
for (SkillHolder skill : SUMMON_BUFFS)
{
npc.doCast(skill.getSkill());
}
if (level >= HASTE_LEVEL_2)
{
npc.doCast(HASTE_2.getSkill());
}
else
{
npc.doCast(HASTE_1.getSkill());
}
});
}
else
{

View File

@ -18,7 +18,7 @@
*/
package handlers.bypasshandlers;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.L2Clan;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -22,7 +22,7 @@ import java.util.StringTokenizer;
import java.util.logging.Level;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.BuyListData;
import com.l2jserver.gameserver.data.xml.impl.BuyListData;
import com.l2jserver.gameserver.handler.IBypassHandler;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

View File

@ -18,7 +18,7 @@
*/
package handlers.communityboard;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.CommunityBoardHandler;
import com.l2jserver.gameserver.handler.IWriteBoardHandler;
import com.l2jserver.gameserver.model.L2Clan;

View File

@ -25,8 +25,8 @@ import java.sql.ResultSet;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.datatables.MultisellData;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.handler.CommunityBoardHandler;
import com.l2jserver.gameserver.handler.IParseBoardHandler;

View File

@ -21,7 +21,7 @@ package handlers.communityboard;
import java.util.List;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.ClanTable;
import com.l2jserver.gameserver.data.sql.impl.ClanTable;
import com.l2jserver.gameserver.handler.CommunityBoardHandler;
import com.l2jserver.gameserver.handler.IWriteBoardHandler;
import com.l2jserver.gameserver.instancemanager.CastleManager;

View File

@ -18,7 +18,6 @@
*/
package handlers.effecthandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.model.Location;
@ -72,17 +71,14 @@ public final class Blink extends AbstractEffect
int x = effected.getX() + x1;
int y = effected.getY() + y1;
int z = effected.getZ();
Location loc = new Location(x, y, z);
if (Config.GEODATA > 0)
{
loc = GeoData.getInstance().moveCheck(effected.getX(), effected.getY(), effected.getZ(), x, y, z, effected.getInstanceId());
}
final Location destination = GeoData.getInstance().moveCheck(effected.getX(), effected.getY(), effected.getZ(), x, y, z, effected.getInstanceId());
effected.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
effected.broadcastPacket(new FlyToLocation(effected, loc.getX(), loc.getY(), loc.getZ(), FlyType.DUMMY));
effected.broadcastPacket(new FlyToLocation(effected, destination, FlyType.DUMMY));
effected.abortAttack();
effected.abortCast();
effected.setXYZ(loc);
effected.setXYZ(destination);
effected.broadcastPacket(new ValidateLocation(effected));
}
}

View File

@ -18,7 +18,6 @@
*/
package handlers.effecthandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
@ -94,16 +93,12 @@ public final class EnemyCharge extends AbstractEffect
int y = curY + (int) ((distance - offset) * sin);
int z = info.getEffected().getZ();
if (Config.GEODATA > 0)
{
Location destiny = GeoData.getInstance().moveCheck(info.getEffector().getX(), info.getEffector().getY(), info.getEffector().getZ(), x, y, z, info.getEffector().getInstanceId());
x = destiny.getX();
y = destiny.getY();
}
info.getEffector().broadcastPacket(new FlyToLocation(info.getEffector(), x, y, z, FlyType.CHARGE));
final Location destination = GeoData.getInstance().moveCheck(info.getEffector().getX(), info.getEffector().getY(), info.getEffector().getZ(), x, y, z, info.getEffector().getInstanceId());
info.getEffector().broadcastPacket(new FlyToLocation(info.getEffector(), destination, FlyType.CHARGE));
// maybe is need force set X,Y,Z
info.getEffector().setXYZ(x, y, z);
info.getEffector().setXYZ(destination);
info.getEffector().broadcastPacket(new ValidateLocation(info.getEffector()));
}
}

View File

@ -18,7 +18,6 @@
*/
package handlers.effecthandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlEvent;
import com.l2jserver.gameserver.ai.CtrlIntention;
@ -101,18 +100,12 @@ public final class Fear extends AbstractEffect
int posY = (int) (info.getEffected().getY() + (FEAR_RANGE * Math.sin(radians)));
int posZ = info.getEffected().getZ();
if (Config.GEODATA > 0)
{
Location destiny = GeoData.getInstance().moveCheck(info.getEffected().getX(), info.getEffected().getY(), info.getEffected().getZ(), posX, posY, posZ, info.getEffected().getInstanceId());
posX = destiny.getX();
posY = destiny.getY();
}
if (!info.getEffected().isPet())
{
info.getEffected().setRunning();
}
info.getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(posX, posY, posZ));
final Location destination = GeoData.getInstance().moveCheck(info.getEffected().getX(), info.getEffected().getY(), info.getEffected().getZ(), posX, posY, posZ, info.getEffected().getInstanceId());
info.getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, destination);
}
}

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
import com.l2jserver.gameserver.instancemanager.CastleManager;

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.FishingRodsData;
import com.l2jserver.gameserver.data.xml.impl.FishingRodsData;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -74,12 +74,18 @@ public final class RebalanceHP extends AbstractEffect
currentHPs += member.getCurrentHp();
}
final L2Summon summon = member.getSummon();
final L2Summon summon = member.getPet();
if ((summon != null) && (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true)))
{
fullHP += summon.getMaxHp();
currentHPs += summon.getCurrentHp();
}
for (L2Summon servitors : member.getServitors().values())
{
fullHP += servitors.getMaxHp();
currentHPs += servitors.getCurrentHp();
}
}
double percentHP = currentHPs / fullHP;
@ -104,7 +110,7 @@ public final class RebalanceHP extends AbstractEffect
member.setCurrentHp(newHP);
}
final L2Summon summon = member.getSummon();
final L2Summon summon = member.getPet();
if ((summon != null) && (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true)))
{
double newHP = summon.getMaxHp() * percentHP;
@ -122,6 +128,27 @@ public final class RebalanceHP extends AbstractEffect
}
summon.setCurrentHp(newHP);
}
for (L2Summon servitors : member.getServitors().values())
{
if (!servitors.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true))
{
double newHP = servitors.getMaxHp() * percentHP;
if (newHP > servitors.getCurrentHp()) // The target gets healed
{
// The heal will be blocked if the current hp passes the limit
if (servitors.getCurrentHp() > servitors.getMaxRecoverableHp())
{
newHP = servitors.getCurrentHp();
}
else if (newHP > servitors.getMaxRecoverableHp())
{
newHP = servitors.getMaxRecoverableHp();
}
}
servitors.setCurrentHp(newHP);
}
}
}
}
}

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.FishingRodsData;
import com.l2jserver.gameserver.data.xml.impl.FishingRodsData;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character;

View File

@ -21,6 +21,7 @@ package handlers.effecthandlers;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag;
@ -73,7 +74,8 @@ public final class ServitorShare extends AbstractEffect
@Override
public void onExit(BuffInfo info)
{
final L2Character effected = info.getEffected().isPlayer() ? info.getEffected().getSummon() : info.getEffected().getActingPlayer();
final L2Character effected = info.getEffected().isSummon() ? ((L2Summon) info.getEffected()).getOwner() : info.getEffected();
if (effected != null)
{
ThreadPoolManager.getInstance().scheduleEffect(new ScheduledEffectExitTask(effected, info.getSkill().getId()), 100);

View File

@ -60,14 +60,13 @@ public final class Spoil extends AbstractEffect
}
final L2MonsterInstance target = (L2MonsterInstance) info.getEffected();
if (target.isSpoil())
if (target.isSpoiled())
{
info.getEffector().sendPacket(SystemMessageId.IT_HAS_ALREADY_BEEN_SPOILED);
return;
}
target.setSpoil(true);
target.setIsSpoiledBy(info.getEffector().getObjectId());
target.setSpoilerObjectId(info.getEffector().getObjectId());
info.getEffector().sendPacket(SystemMessageId.THE_SPOIL_CONDITION_HAS_BEEN_ACTIVATED);
target.getAI().notifyEvent(CtrlEvent.EVT_ATTACKED, info.getEffector());
}

View File

@ -18,8 +18,8 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.ExperienceTable;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.ExperienceData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.enums.Race;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.model.StatsSet;
@ -42,6 +42,7 @@ public final class Summon extends AbstractEffect
private final ItemHolder _consumeItem;
private final int _lifeTime;
private final int _consumeItemInterval;
private final int _summonPoints;
public Summon(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
@ -57,6 +58,7 @@ public final class Summon extends AbstractEffect
_consumeItem = new ItemHolder(params.getInt("consumeItemId", 0), params.getInt("consumeItemCount", 1));
_consumeItemInterval = params.getInt("consumeItemInterval", 0);
_lifeTime = params.getInt("lifeTime", 3600) * 1000;
_summonPoints = params.getInt("summonPoints", 0);
}
@Override
@ -68,7 +70,7 @@ public final class Summon extends AbstractEffect
@Override
public void onStart(BuffInfo info)
{
if (!info.getEffected().isPlayer() || info.getEffected().hasSummon())
if (!info.getEffected().isPlayer())
{
return;
}
@ -86,22 +88,30 @@ public final class Summon extends AbstractEffect
summon.setItemConsume(_consumeItem);
summon.setItemConsumeInterval(consumeItemInterval);
if (summon.getLevel() >= ExperienceTable.getInstance().getMaxPetLevel())
if (summon.getLevel() >= ExperienceData.getInstance().getMaxPetLevel())
{
summon.getStat().setExp(ExperienceTable.getInstance().getExpForLevel(ExperienceTable.getInstance().getMaxPetLevel() - 1));
_log.warning(Summon.class.getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceTable.getInstance().getMaxPetLevel() + ". Please rectify.");
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(ExperienceData.getInstance().getMaxPetLevel() - 1));
_log.warning(Summon.class.getSimpleName() + ": (" + summon.getName() + ") NpcID: " + summon.getId() + " has a level above " + ExperienceData.getInstance().getMaxPetLevel() + ". Please rectify.");
}
else
{
summon.getStat().setExp(ExperienceTable.getInstance().getExpForLevel(summon.getLevel() % ExperienceTable.getInstance().getMaxPetLevel()));
summon.getStat().setExp(ExperienceData.getInstance().getExpForLevel(summon.getLevel() % ExperienceData.getInstance().getMaxPetLevel()));
}
summon.setCurrentHp(summon.getMaxHp());
summon.setCurrentMp(summon.getMaxMp());
summon.setHeading(player.getHeading());
summon.setSummonPoints(_summonPoints);
player.setPet(summon);
if (summon.isPet())
{
player.setPet(summon);
}
else
{
player.addServitor(summon);
}
summon.setShowSummonAnimation(true);
summon.setRunning();
summon.spawnMe();
}

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.Location;

View File

@ -20,8 +20,8 @@ package handlers.effecthandlers;
import java.util.logging.Level;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.data.xml.impl.PetDataTable;
import com.l2jserver.gameserver.model.L2PetData;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -69,7 +69,7 @@ public final class SummonPet extends AbstractEffect
final L2PcInstance player = info.getEffector().getActingPlayer();
if ((player.hasSummon() || player.isMounted()))
if (player.hasPet() || player.isMounted())
{
player.sendPacket(SystemMessageId.YOU_ALREADY_HAVE_A_PET);
return;

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

View File

@ -18,7 +18,6 @@
*/
package handlers.effecthandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.model.Location;
@ -80,11 +79,8 @@ public final class TeleportToTarget extends AbstractEffect
int x = (int) (px + (25 * Math.cos(ph)));
int y = (int) (py + (25 * Math.sin(ph)));
int z = target.getZ();
Location loc = new Location(x, y, z);
if (Config.GEODATA > 0)
{
loc = GeoData.getInstance().moveCheck(activeChar.getX(), activeChar.getY(), activeChar.getZ(), x, y, z, activeChar.getInstanceId());
}
final Location loc = GeoData.getInstance().moveCheck(activeChar.getX(), activeChar.getY(), activeChar.getZ(), x, y, z, activeChar.getInstanceId());
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
activeChar.broadcastPacket(new FlyToLocation(activeChar, loc.getX(), loc.getY(), loc.getZ(), FlyType.DUMMY));

View File

@ -18,7 +18,6 @@
*/
package handlers.effecthandlers;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.StatsSet;
@ -98,16 +97,11 @@ public final class ThrowUp extends AbstractEffect
int y = info.getEffector().getY() - (int) (offset * sin);
int z = info.getEffected().getZ();
if (Config.GEODATA > 0)
{
Location destiny = GeoData.getInstance().moveCheck(info.getEffected().getX(), info.getEffected().getY(), info.getEffected().getZ(), x, y, z, info.getEffected().getInstanceId());
x = destiny.getX();
y = destiny.getY();
}
final Location destination = GeoData.getInstance().moveCheck(info.getEffected().getX(), info.getEffected().getY(), info.getEffected().getZ(), x, y, z, info.getEffected().getInstanceId());
info.getEffected().broadcastPacket(new FlyToLocation(info.getEffected(), x, y, z, FlyType.THROW_UP));
info.getEffected().broadcastPacket(new FlyToLocation(info.getEffected(), destination, FlyType.THROW_UP));
// TODO: Review.
info.getEffected().setXYZ(x, y, z);
info.getEffected().setXYZ(destination);
info.getEffected().broadcastPacket(new ValidateLocation(info.getEffected()));
}
}

View File

@ -18,7 +18,7 @@
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.TransformData;
import com.l2jserver.gameserver.data.xml.impl.TransformData;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;

View File

@ -74,17 +74,16 @@ public final class Unsummon extends AbstractEffect
@Override
public void onStart(BuffInfo info)
{
final L2Summon summon = info.getEffected().getSummon();
if (summon != null)
if (info.getEffected().isServitor())
{
final L2PcInstance summonOwner = summon.getOwner();
final L2Summon servitor = (L2Summon) info.getEffected();
final L2PcInstance summonOwner = servitor.getOwner();
summon.abortAttack();
summon.abortCast();
summon.stopAllEffects();
servitor.abortAttack();
servitor.abortCast();
servitor.stopAllEffects();
summon.unSummon(summonOwner);
servitor.unSummon(summonOwner);
summonOwner.sendPacket(SystemMessageId.YOUR_SERVITOR_HAS_VANISHED_YOU_LL_NEED_TO_SUMMON_A_NEW_ONE);
}
}

View File

@ -18,11 +18,14 @@
*/
package handlers.itemhandlers;
import java.util.List;
import java.util.logging.Level;
import java.util.stream.Collectors;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
@ -52,16 +55,40 @@ public class BeastSoulShot implements IItemHandler
return false;
}
if (activeOwner.getSummon().isDead())
final L2Summon pet = playable.getPet();
if ((pet != null) && pet.isDead())
{
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
return false;
}
final List<L2Summon> aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList());
if (aliveServitor.isEmpty())
{
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
return false;
}
final int itemId = item.getId();
final short shotConsumption = activeOwner.getSummon().getSoulShotsPerHit();
final long shotCount = item.getCount();
final SkillHolder[] skills = item.getItem().getSkills();
short shotConsumption = 0;
if (pet != null)
{
if (!pet.isChargedShot(ShotType.SOULSHOTS))
{
shotConsumption += pet.getSoulShotsPerHit();
}
}
for (L2Summon servitors : aliveServitor)
{
if (!servitors.isChargedShot(ShotType.SOULSHOTS))
{
shotConsumption += servitors.getSoulShotsPerHit();
}
}
if (skills == null)
{
@ -79,12 +106,6 @@ public class BeastSoulShot implements IItemHandler
return false;
}
if (activeOwner.getSummon().isChargedShot(ShotType.SOULSHOTS))
{
// SoulShots are already active.
return false;
}
// If the player doesn't have enough beast soulshot remaining, remove any auto soulshot task.
if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false))
{
@ -97,9 +118,23 @@ public class BeastSoulShot implements IItemHandler
// Pet uses the power of spirit.
activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
activeOwner.getSummon().setChargedShot(ShotType.SOULSHOTS, true);
if (pet != null)
{
if (!pet.isChargedShot(ShotType.SOULSHOTS))
{
pet.setChargedShot(ShotType.SOULSHOTS, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(activeOwner.getSummon(), activeOwner.getSummon(), skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
aliveServitor.forEach(s ->
{
if (!s.isChargedShot(ShotType.SOULSHOTS))
{
s.setChargedShot(ShotType.SOULSHOTS, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
});
return true;
}
}

View File

@ -18,11 +18,14 @@
*/
package handlers.itemhandlers;
import java.util.List;
import java.util.logging.Level;
import java.util.stream.Collectors;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
@ -52,7 +55,15 @@ public class BeastSpiritShot implements IItemHandler
return false;
}
if (activeOwner.getSummon().isDead())
final L2Summon pet = playable.getPet();
if ((pet != null) && pet.isDead())
{
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
return false;
}
final List<L2Summon> aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList());
if (aliveServitor.isEmpty())
{
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
return false;
@ -60,9 +71,27 @@ public class BeastSpiritShot implements IItemHandler
final int itemId = item.getId();
final boolean isBlessed = ((itemId == 6647) || (itemId == 20334)); // TODO: Unhardcode these!
final short shotConsumption = activeOwner.getSummon().getSpiritShotsPerHit();
final SkillHolder[] skills = item.getItem().getSkills();
final ShotType shotType = isBlessed ? ShotType.BLESSED_SPIRITSHOTS : ShotType.SPIRITSHOTS;
short shotConsumption = 0;
if (pet != null)
{
if (!pet.isChargedShot(shotType))
{
shotConsumption += pet.getSpiritShotsPerHit();
}
}
for (L2Summon servitors : aliveServitor)
{
if (!servitors.isChargedShot(shotType))
{
shotConsumption += servitors.getSpiritShotsPerHit();
}
}
if (skills == null)
{
_log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!");
@ -80,12 +109,6 @@ public class BeastSpiritShot implements IItemHandler
return false;
}
if (activeOwner.getSummon().isChargedShot(isBlessed ? ShotType.BLESSED_SPIRITSHOTS : ShotType.SPIRITSHOTS))
{
// shots are already active.
return false;
}
if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false))
{
if (!activeOwner.disableAutoShot(itemId))
@ -97,9 +120,23 @@ public class BeastSpiritShot implements IItemHandler
// Pet uses the power of spirit.
activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
activeOwner.getSummon().setChargedShot(isBlessed ? ShotType.BLESSED_SPIRITSHOTS : ShotType.SPIRITSHOTS, true);
if (pet != null)
{
if (!pet.isChargedShot(shotType))
{
pet.setChargedShot(shotType, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
}
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(activeOwner.getSummon(), activeOwner.getSummon(), skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
aliveServitor.forEach(s ->
{
if (!s.isChargedShot(shotType))
{
s.setChargedShot(shotType, true);
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 600);
}
});
return true;
}
}

View File

@ -21,7 +21,7 @@ package handlers.itemhandlers;
import java.util.List;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.data.xml.impl.PetDataTable;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.actor.L2Playable;

View File

@ -18,7 +18,7 @@
*/
package handlers.itemhandlers;
import com.l2jserver.gameserver.datatables.RecipeData;
import com.l2jserver.gameserver.data.xml.impl.RecipeData;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.L2RecipeList;
import com.l2jserver.gameserver.model.actor.L2Playable;

View File

@ -18,7 +18,7 @@
*/
package handlers.itemhandlers;
import com.l2jserver.gameserver.datatables.PetDataTable;
import com.l2jserver.gameserver.data.xml.impl.PetDataTable;
import com.l2jserver.gameserver.model.L2PetData;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -58,7 +58,7 @@ public class SummonItems extends ItemSkillsTemplate
return false;
}
if (activeChar.hasSummon() || activeChar.isMounted())
if (activeChar.hasPet() || activeChar.isMounted())
{
activeChar.sendPacket(SystemMessageId.YOU_ALREADY_HAVE_A_PET);
return false;

View File

@ -24,7 +24,6 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.l2jserver.Config;
import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
@ -99,7 +98,7 @@ public class AreaFriendly implements ITargetTypeHandler
private boolean checkTarget(L2Character activeChar, L2Character target)
{
if ((Config.GEODATA > 0) && !GeoData.getInstance().canSeeTarget(activeChar, target))
if (!GeoData.getInstance().canSeeTarget(activeChar, target))
{
return false;
}

View File

@ -39,7 +39,6 @@ public class AreaSummon implements ITargetTypeHandler
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
List<L2Character> targetList = new ArrayList<>();
target = activeChar.getSummon();
if ((target == null) || !target.isServitor() || target.isDead())
{
return EMPTY_TARGET_LIST;
@ -47,10 +46,13 @@ public class AreaSummon implements ITargetTypeHandler
if (onlyFirst)
{
return new L2Character[]
if (activeChar.hasSummon())
{
target
};
return new L2Character[]
{
activeChar.getServitors().values().stream().findFirst().orElse(activeChar.getPet())
};
}
}
final boolean srcInArena = (activeChar.isInsideZone(ZoneId.PVP) && !activeChar.isInsideZone(ZoneId.SIEGE));

View File

@ -74,11 +74,19 @@ public class Clan implements ITargetTypeHandler
final int radius = skill.getAffectRange();
final L2Clan clan = player.getClan();
if (Skill.addSummon(activeChar, player, radius, false))
if (Skill.addPet(activeChar, player, radius, false))
{
targetList.add(player.getSummon());
targetList.add(player.getPet());
}
player.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
if (clan != null)
{
L2PcInstance obj;
@ -114,11 +122,19 @@ public class Clan implements ITargetTypeHandler
continue;
}
if (!onlyFirst && Skill.addSummon(activeChar, obj, radius, false))
if (Skill.addPet(activeChar, obj, radius, false))
{
targetList.add(obj.getSummon());
targetList.add(obj.getPet());
}
obj.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
if (!Skill.addCharacter(activeChar, obj, radius, false))
{
continue;

View File

@ -50,11 +50,19 @@ public class CommandChannel implements ITargetTypeHandler
final L2Party party = player.getParty();
final boolean hasChannel = (party != null) && party.isInCommandChannel();
if (Skill.addSummon(activeChar, player, radius, false))
if (Skill.addPet(activeChar, player, radius, false))
{
targetList.add(player.getSummon());
targetList.add(player.getPet());
}
player.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
// if player in not in party
if (party == null)
{

View File

@ -37,7 +37,7 @@ public class EnemySummon implements ITargetTypeHandler
if (target.isSummon())
{
L2Summon targetSummon = (L2Summon) target;
if ((activeChar.isPlayer() && (activeChar.getSummon() != targetSummon) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId())))
if ((activeChar.isPlayer() && (activeChar.getPet() != targetSummon) && activeChar.hasServitor(targetSummon.getObjectId()) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId())))
{
return new L2Character[]
{

View File

@ -0,0 +1,99 @@
/*
* Copyright (C) 2004-2015 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.targethandlers;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
import com.l2jserver.gameserver.network.SystemMessageId;
/**
* @author St3eT
*/
public final class OneFriendly implements ITargetTypeHandler
{
@Override
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
// Check for null target or any other invalid target
if ((target == null) || target.isDead())
{
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
return EMPTY_TARGET_LIST;
}
if (!checkTarget(activeChar, target))
{
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
return EMPTY_TARGET_LIST;
}
// If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT
return new L2Character[]
{
target
};
}
private boolean checkTarget(L2Character activeChar, L2Character target)
{
if ((target == null) || target.isAlikeDead() || target.isDoor() || (target instanceof L2SiegeFlagInstance) || target.isMonster())
{
return false;
}
if ((target.getActingPlayer() != null) && (target.getActingPlayer() != activeChar) && (target.getActingPlayer().inObserverMode() || target.getActingPlayer().isInOlympiadMode()))
{
return false;
}
if (target.isPlayable())
{
boolean friendly = false;
if ((activeChar.getAllyId() > 0) && (activeChar.getAllyId() == target.getActingPlayer().getAllyId()))
{
friendly = true;
}
else if ((activeChar.getClanId() > 0) && (activeChar.getClanId() == target.getActingPlayer().getClanId()))
{
friendly = true;
}
else if (activeChar.isInParty() && activeChar.getParty().containsPlayer(target.getActingPlayer()))
{
friendly = true;
}
else if ((target != activeChar) && (target.getActingPlayer().getPvpFlag() == 0))
{
friendly = true;
}
return friendly;
}
return true;
}
@Override
public Enum<L2TargetType> getTargetType()
{
return L2TargetType.ONE_FRIENDLY;
}
}

View File

@ -58,10 +58,18 @@ public class Party implements ITargetTypeHandler
}
else if (activeChar.isPlayer())
{
if (Skill.addSummon(activeChar, player, radius, false))
if (Skill.addPet(activeChar, player, radius, false))
{
targetList.add(player.getSummon());
targetList.add(player.getPet());
}
player.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
}
if (activeChar.isInParty())
@ -79,10 +87,18 @@ public class Party implements ITargetTypeHandler
targetList.add(partyMember);
}
if (Skill.addSummon(activeChar, partyMember, radius, false))
if (Skill.addPet(activeChar, partyMember, radius, false))
{
targetList.add(partyMember.getSummon());
targetList.add(partyMember.getPet());
}
partyMember.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
}
}
return targetList.toArray(new L2Character[targetList.size()]);

View File

@ -60,11 +60,19 @@ public class PartyClan implements ITargetTypeHandler
final boolean hasClan = player.getClan() != null;
final boolean hasParty = player.isInParty();
if (Skill.addSummon(activeChar, player, radius, false))
if (Skill.addPet(activeChar, player, radius, false))
{
targetList.add(player.getSummon());
targetList.add(player.getPet());
}
player.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
// if player in clan and not in party
if (!(hasClan || hasParty))
{
@ -128,24 +136,24 @@ public class PartyClan implements ITargetTypeHandler
continue;
}
if (!onlyFirst && Skill.addSummon(activeChar, obj, radius, false))
if (Skill.addPet(activeChar, obj, radius, false))
{
targetList.add(obj.getSummon());
targetList.add(obj.getPet());
}
obj.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
if (!Skill.addCharacter(activeChar, obj, radius, false))
{
continue;
}
if (onlyFirst)
{
return new L2Character[]
{
obj
};
}
if ((maxTargets > 0) && (targetList.size() >= maxTargets))
{
break;

View File

@ -40,7 +40,7 @@ public class PartyMember implements ITargetTypeHandler
}
if (!target.isDead())
{
if ((target == activeChar) || (activeChar.isInParty() && target.isInParty() && (activeChar.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())) || (activeChar.isPlayer() && target.isSummon() && (activeChar.getSummon() == target)) || (activeChar.isSummon() && target.isPlayer() && (activeChar == target.getSummon())))
if ((target == activeChar) || (activeChar.isInParty() && target.isInParty() && (activeChar.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())) || ((activeChar.isPlayer() && target.isSummon() && ((activeChar.getPet() == target) || activeChar.hasServitor(target.getObjectId()))) || (activeChar.isSummon() && target.isPlayer() && ((activeChar == target.getPet()) || target.hasServitor(activeChar.getObjectId())))))
{
return new L2Character[]
{

View File

@ -39,16 +39,13 @@ public class PartyNotMe implements ITargetTypeHandler
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
final List<L2Character> targetList = new ArrayList<>();
final int radius = skill.getAffectRange();
if (activeChar.getParty() != null)
{
final List<L2PcInstance> partyList = activeChar.getParty().getMembers();
for (L2PcInstance partyMember : partyList)
{
if ((partyMember == null) || partyMember.isDead())
{
continue;
}
else if (partyMember == activeChar)
if (partyMember == activeChar)
{
continue;
}
@ -56,18 +53,28 @@ public class PartyNotMe implements ITargetTypeHandler
{
continue;
}
else if ((skill.getAffectRange() > 0) && !Util.checkIfInRange(skill.getAffectRange(), activeChar, partyMember, true))
{
continue;
}
else
{
targetList.add(partyMember);
if ((partyMember.getSummon() != null) && !partyMember.getSummon().isDead())
if (Skill.addPet(activeChar, partyMember, radius, false))
{
targetList.add(partyMember.getSummon());
targetList.add(partyMember.getPet());
}
partyMember.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
if (Skill.addCharacter(activeChar, partyMember, radius, false))
{
targetList.add(partyMember);
}
targetList.add(partyMember);
}
}
}

View File

@ -95,7 +95,7 @@ public class PcBody implements ITargetTypeHandler
if (!onlyFirst)
{
targetList.add(target);
return targetList.toArray(new L2Object[targetList.size()]);
return targetList.toArray(new L2Character[targetList.size()]);
}
return new L2Character[]
{

View File

@ -21,6 +21,7 @@ package handlers.targethandlers;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
@ -33,11 +34,12 @@ public class Pet implements ITargetTypeHandler
@Override
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
if (activeChar.hasPet())
final L2Summon pet = activeChar.getPet();
if (pet != null)
{
return new L2Character[]
{
activeChar.getSummon()
pet
};
}
return EMPTY_TARGET_LIST;

View File

@ -33,12 +33,10 @@ public class Servitor implements ITargetTypeHandler
@Override
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
if (activeChar.hasServitor())
if (activeChar.hasServitors())
{
return new L2Character[]
{
activeChar.getSummon()
};
return activeChar.getServitors().values().toArray(new L2Character[activeChar.getServitors().size()]);
}
return EMPTY_TARGET_LIST;
}

View File

@ -18,6 +18,9 @@
*/
package handlers.targethandlers;
import java.util.ArrayList;
import java.util.List;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
@ -35,10 +38,21 @@ public class Summon implements ITargetTypeHandler
{
if (activeChar.hasSummon())
{
return new L2Character[]
if (!activeChar.hasPet() && activeChar.hasServitors())
{
activeChar.getSummon()
};
return activeChar.getServitors().values().toArray(new L2Character[0]);
}
else if (activeChar.hasPet() && !activeChar.hasServitors())
{
return new L2Character[]
{
activeChar.getPet()
};
}
final List<L2Character> targets = new ArrayList<>(1 + activeChar.getServitors().size());
targets.add(activeChar.getPet());
targets.addAll(activeChar.getServitors().values());
return targets.toArray(new L2Character[0]);
}
return EMPTY_TARGET_LIST;
}

View File

@ -63,10 +63,18 @@ public class TargetParty implements ITargetTypeHandler
targetList.add(partyMember);
}
if (Skill.addSummon(player, partyMember, radius, false))
if (Skill.addPet(player, partyMember, radius, false))
{
targetList.add(partyMember.getSummon());
targetList.add(partyMember.getPet());
}
partyMember.getServitors().values().forEach(s ->
{
if (Skill.addCharacter(activeChar, s, radius, false))
{
targetList.add(s);
}
});
}
}
else

View File

@ -22,7 +22,7 @@ import java.io.PrintWriter;
import java.net.Socket;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -90,7 +90,7 @@ public class ChatsHandler implements ITelnetHandler
{
command = command.substring(7);
CreatureSay cs = new CreatureSay(0, Say2.ALLIANCE, "Telnet GM Broadcast from " + _cSocket.getInetAddress().getHostAddress(), command);
AdminTable.getInstance().broadcastToGMs(cs);
AdminData.getInstance().broadcastToGMs(cs);
_print.println("Your Message Has Been Sent To " + getOnlineGMS() + " GM(s).");
}
catch (StringIndexOutOfBoundsException e)
@ -103,7 +103,7 @@ public class ChatsHandler implements ITelnetHandler
private int getOnlineGMS()
{
return AdminTable.getInstance().getAllGms(true).size();
return AdminData.getInstance().getAllGms(true).size();
}
@Override

View File

@ -38,7 +38,7 @@ import javolution.util.FastTable;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.LoginServerThread;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.enums.ItemLocation;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.model.L2Object;
@ -464,7 +464,7 @@ public class DebugHandler implements ITelnetHandler
private int getOnlineGMS()
{
return AdminTable.getInstance().getAllGms(true).size();
return AdminData.getInstance().getAllGms(true).size();
}
private String getUptime(int time)

View File

@ -24,7 +24,7 @@ import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import com.l2jserver.Config;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.instancemanager.PunishmentManager;
import com.l2jserver.gameserver.model.L2World;

View File

@ -26,12 +26,12 @@ import java.util.StringTokenizer;
import javax.script.ScriptException;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.data.sql.impl.TeleportLocationTable;
import com.l2jserver.gameserver.data.xml.impl.MultisellData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.datatables.MultisellData;
import com.l2jserver.gameserver.datatables.NpcData;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.datatables.TeleportLocationTable;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;

View File

@ -26,7 +26,7 @@ import java.util.Calendar;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.LoginServerThread;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.enums.ItemLocation;
import com.l2jserver.gameserver.handler.ITelnetHandler;
import com.l2jserver.gameserver.model.L2Object;
@ -103,7 +103,7 @@ public class StatusHandler implements ITelnetHandler
int igm = 0;
String gmList = "";
for (String player : AdminTable.getInstance().getAllGmNames(true))
for (String player : AdminData.getInstance().getAllGmNames(true))
{
gmList = gmList + ", " + player;
igm++;
@ -224,7 +224,7 @@ public class StatusHandler implements ITelnetHandler
private int getOnlineGMS()
{
return AdminTable.getInstance().getAllGms(true).size();
return AdminData.getInstance().getAllGms(true).size();
}
private String getUptime(int time)

View File

@ -39,7 +39,7 @@ public class Mount implements IUserCommandHandler
{
return false;
}
return activeChar.mountPlayer(activeChar.getSummon());
return activeChar.mountPlayer(activeChar.getPet());
}
@Override

View File

@ -20,8 +20,8 @@ package handlers.voicedcommandhandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.datatables.CharNameTable;
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.instancemanager.PunishmentManager;
import com.l2jserver.gameserver.model.L2World;
@ -42,7 +42,7 @@ public class ChatAdmin implements IVoicedCommandHandler
@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
{
if (!AdminTable.getInstance().hasAccess(command, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
{
return false;
}
@ -92,7 +92,7 @@ public class ChatAdmin implements IVoicedCommandHandler
activeChar.sendMessage("You can't ban GM !");
return false;
}
if (AdminTable.getInstance().hasAccess(command, player.getAccessLevel()))
if (AdminData.getInstance().hasAccess(command, player.getAccessLevel()))
{
activeChar.sendMessage("You can't ban moderator !");
return false;

View File

@ -18,7 +18,7 @@
*/
package handlers.voicedcommandhandlers;
import com.l2jserver.gameserver.datatables.AdminTable;
import com.l2jserver.gameserver.data.xml.impl.AdminData;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@ -32,7 +32,7 @@ public class Debug implements IVoicedCommandHandler
@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
{
if (!AdminTable.getInstance().hasAccess(command, activeChar.getAccessLevel()))
if (!AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
{
return false;
}

View File

@ -18,11 +18,11 @@
*/
package handlers.voicedcommandhandlers;
import hellbound.HellboundEngine;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import hellbound.HellboundEngine;
/**
* Hellbound voiced command.
* @author DS