Code review Part 4.

This commit is contained in:
MobiusDevelopment
2019-12-21 21:39:37 +00:00
parent cd1f62cc68
commit 4a563b8832
8097 changed files with 41111 additions and 57926 deletions

View File

@@ -33,7 +33,7 @@ import ai.AbstractNpcAI;
*/
public class PlainsOfDion extends AbstractNpcAI
{
private static final int DELU_LIZARDMEN[] =
private static final int[] DELU_LIZARDMEN =
{
21104, // Delu Lizardman Supplier
21105, // Delu Lizardman Special Agent

View File

@@ -119,6 +119,7 @@ public class Baium extends AbstractNpcAI
case WAITING:
{
setStatus(ALIVE);
// fallthrough
}
case ALIVE:
{
@@ -301,11 +302,11 @@ public class Baium extends AbstractNpcAI
}
else
{
for (Creature creature : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 2000))
for (PlayerInstance creature : World.getInstance().getVisibleObjectsInRange(npc, PlayerInstance.class, 2000))
{
if (zone.isInsideZone(creature) && !creature.isDead())
{
addAttackPlayerDesire(npc, (Playable) creature);
addAttackPlayerDesire(npc, creature);
break;
}
}
@@ -487,13 +488,10 @@ public class Baium extends AbstractNpcAI
if (npc.getId() == BAIUM)
{
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()))
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
{
if (!npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
{
npc.setTarget(attacker);
npc.doCast(ANTI_STRIDER.getSkill());
}
npc.setTarget(attacker);
npc.doCast(ANTI_STRIDER.getSkill());
}
if (skill == null)

View File

@@ -113,19 +113,19 @@ public class QueenAnt extends AbstractNpcAI
}
else
{
int loc_x = info.getInt("loc_x");
int loc_y = info.getInt("loc_y");
int loc_z = info.getInt("loc_z");
int locX = info.getInt("loc_x");
int locY = info.getInt("loc_y");
int locZ = info.getInt("loc_z");
final int heading = info.getInt("heading");
final double hp = info.getDouble("currentHP");
final double mp = info.getDouble("currentMP");
if (!_zone.isInsideZone(loc_x, loc_y, loc_z))
if (!_zone.isInsideZone(locX, locY, locZ))
{
loc_x = QUEEN_X;
loc_y = QUEEN_Y;
loc_z = QUEEN_Z;
locX = QUEEN_X;
locY = QUEEN_Y;
locZ = QUEEN_Z;
}
final GrandBossInstance queen = (GrandBossInstance) addSpawn(QUEEN, loc_x, loc_y, loc_z, heading, false, 0);
final GrandBossInstance queen = (GrandBossInstance) addSpawn(QUEEN, locX, locY, locZ, heading, false, 0);
queen.setCurrentHpMp(hp, mp);
spawnBoss(queen);
}
@@ -291,13 +291,10 @@ public class QueenAnt extends AbstractNpcAI
return super.onFactionCall(npc, caller, attacker, isSummon);
}
if (!npc.isCastingNow(SkillCaster::isAnyNormalType) && (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST))
if (!npc.isCastingNow(SkillCaster::isAnyNormalType) && (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST) && (caller.getCurrentHp() < caller.getMaxHp()))
{
if (caller.getCurrentHp() < caller.getMaxHp())
{
npc.setTarget(caller);
((Attackable) npc).useMagic(HEAL1.getSkill());
}
npc.setTarget(caller);
((Attackable) npc).useMagic(HEAL1.getSkill());
}
return null;
}

View File

@@ -52,7 +52,7 @@ public class CastleBlacksmith extends AbstractNpcAI
private boolean hasRights(PlayerInstance player, Npc npc)
{
final boolean isMyLord = player.isClanLeader() ? (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1)) : false;
final boolean isMyLord = player.isClanLeader() && (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1));
return player.canOverrideCond(PlayerCondOverride.CASTLE_CONDITIONS) || isMyLord || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(ClanPrivilege.CS_MANOR_ADMIN));
}

View File

@@ -398,7 +398,7 @@ public class CastleChamberlain extends AbstractNpcAI
final Castle castle = npc.getCastle();
final StringTokenizer st = new StringTokenizer(event, " ");
String htmltext = null;
final boolean isMyLord = player.isClanLeader() ? (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1)) : false;
final boolean isMyLord = player.isClanLeader() && (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1));
switch (st.nextToken())
{
@@ -959,13 +959,13 @@ public class CastleChamberlain extends AbstractNpcAI
{
if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
{
final CastleFunction HP = castle.getCastleFunction(Castle.FUNC_RESTORE_HP);
final CastleFunction MP = castle.getCastleFunction(Castle.FUNC_RESTORE_MP);
final CastleFunction XP = castle.getCastleFunction(Castle.FUNC_RESTORE_EXP);
final CastleFunction hp = castle.getCastleFunction(Castle.FUNC_RESTORE_HP);
final CastleFunction mp = castle.getCastleFunction(Castle.FUNC_RESTORE_MP);
final CastleFunction xp = castle.getCastleFunction(Castle.FUNC_RESTORE_EXP);
final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledecofunction.html");
html.replace("%HPDepth%", (HP == null) ? "0" : Integer.toString(HP.getLvl()));
html.replace("%MPDepth%", (MP == null) ? "0" : Integer.toString(MP.getLvl()));
html.replace("%XPDepth%", (XP == null) ? "0" : Integer.toString(XP.getLvl()));
html.replace("%HPDepth%", (hp == null) ? "0" : Integer.toString(hp.getLvl()));
html.replace("%MPDepth%", (mp == null) ? "0" : Integer.toString(mp.getLvl()));
html.replace("%XPDepth%", (xp == null) ? "0" : Integer.toString(xp.getLvl()));
player.sendPacket(html);
}
else

View File

@@ -55,7 +55,7 @@ public class CastleWarehouse extends AbstractNpcAI
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = event;
final boolean isMyLord = player.isClanLeader() ? (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1)) : false;
final boolean isMyLord = player.isClanLeader() && (player.getClan().getCastleId() == (npc.getCastle() != null ? npc.getCastle().getResidenceId() : -1));
switch (event)
{
case "warehouse-01.html":

View File

@@ -107,8 +107,8 @@ public class ClanHallAuctioneer extends AbstractNpcAI
// THE_CLAN_DOES_NOT_OWN_A_CLAN_HALL
htmltext = getHtm(player, "ClanHallAuctioneer-cancelBid.html");
htmltext = htmltext.replaceAll("%myBid%", String.valueOf(clanHallAuction.getClanBid(clan)));
htmltext = htmltext.replaceAll("%myBidRemain%", String.valueOf(clanHallAuction.getClanBid(clan) * 9));
htmltext = htmltext.replace("%myBid%", String.valueOf(clanHallAuction.getClanBid(clan)));
htmltext = htmltext.replace("%myBidRemain%", String.valueOf(clanHallAuction.getClanBid(clan) * 9));
break;
}
case "cancel":
@@ -151,9 +151,9 @@ public class ClanHallAuctioneer extends AbstractNpcAI
final DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
htmltext = getHtm(player, "ClanHallAuctioneer-bid2.html");
htmltext = htmltext.replaceAll("%id%", String.valueOf(clanHallAuction.getClanHallId()));
htmltext = htmltext.replaceAll("%minBid%", String.valueOf(clanHallAuction.getHighestBid()));
htmltext = htmltext.replaceAll("%myBid%", String.valueOf(clanHallAuction.getClanBid(clan)));
htmltext = htmltext.replace("%id%", String.valueOf(clanHallAuction.getClanHallId()));
htmltext = htmltext.replace("%minBid%", String.valueOf(clanHallAuction.getHighestBid()));
htmltext = htmltext.replace("%myBid%", String.valueOf(clanHallAuction.getClanBid(clan)));
htmltext = htmltext.replace("%auctionEnd%", builder.appendPattern("dd/MM/yyyy HH").appendLiteral(" hour ").appendPattern("mm").appendLiteral(" minutes").toFormatter().format(Instant.ofEpochMilli(System.currentTimeMillis() + clanHallAuction.getRemaingTime()).atZone(ZoneId.systemDefault())));
}
}
@@ -194,7 +194,7 @@ public class ClanHallAuctioneer extends AbstractNpcAI
final DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
htmltext = getHtm(player, "ClanHallAuctioneer-bidInfo.html");
htmltext = htmltext.replaceAll("%id%", String.valueOf(clanHall.getResidenceId()));
htmltext = htmltext.replace("%id%", String.valueOf(clanHall.getResidenceId()));
htmltext = htmltext.replace("%owner%", owner != null ? owner.getName() : "");
htmltext = htmltext.replace("%clanLeader%", owner != null ? owner.getLeaderName() : "");
htmltext = htmltext.replace("%rent%", String.valueOf(clanHall.getLease()));
@@ -287,7 +287,7 @@ public class ClanHallAuctioneer extends AbstractNpcAI
final ClanHallAuction auction = ClanHallAuctionManager.getInstance().getClanHallAuctionById(clanHall.getResidenceId());
if(auction == null)
{
System.out.println(clanHall.getResidenceId());
// System.out.println(clanHall.getResidenceId());
return;
}
sb.append("<tr><td width=50><font color=\"aaaaff\">&^");

View File

@@ -164,9 +164,9 @@ public class ClanHallManager extends AbstractNpcAI
final ResidenceFunction mpFunc = clanHall.getFunction(ResidenceFunctionType.MP_REGEN);
final ResidenceFunction xpFunc = clanHall.getFunction(ResidenceFunctionType.EXP_RESTORE);
htmltext = getHtm(player, "ClanHallManager-09.html");
htmltext = htmltext.replaceAll("%hpFunction%", hpFunc != null ? String.valueOf((int) hpFunc.getValue()) : "0");
htmltext = htmltext.replaceAll("%mpFunction%", mpFunc != null ? String.valueOf((int) mpFunc.getValue()) : "0");
htmltext = htmltext.replaceAll("%resFunction%", xpFunc != null ? String.valueOf((int) xpFunc.getValue()) : "0");
htmltext = htmltext.replace("%hpFunction%", hpFunc != null ? String.valueOf((int) hpFunc.getValue()) : "0");
htmltext = htmltext.replace("%mpFunction%", mpFunc != null ? String.valueOf((int) mpFunc.getValue()) : "0");
htmltext = htmltext.replace("%resFunction%", xpFunc != null ? String.valueOf((int) xpFunc.getValue()) : "0");
}
else
{
@@ -209,7 +209,7 @@ public class ClanHallManager extends AbstractNpcAI
if (!st.hasMoreTokens())
{
htmltext = getHtm(player, "ClanHallManager-funcBuffs_" + buffLevel + ".html");
htmltext = htmltext.replaceAll("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
htmltext = htmltext.replace("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
}
else
{
@@ -230,7 +230,7 @@ public class ClanHallManager extends AbstractNpcAI
castSkill(npc, player, skill);
htmltext = getHtm(player, "ClanHallManager-funcBuffsDone.html");
}
htmltext = htmltext.replaceAll("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
htmltext = htmltext.replace("%manaLeft%", Integer.toString((int) npc.getCurrentMp()));
}
}
}
@@ -271,8 +271,8 @@ public class ClanHallManager extends AbstractNpcAI
case "warehouse":
{
htmltext = getHtm(player, "ClanHallManager-10.html");
htmltext = htmltext.replaceAll("%lease%", String.valueOf(clanHall.getLease()));
htmltext = htmltext.replaceAll("%payDate%", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(clanHall.getNextPayment())));
htmltext = htmltext.replace("%lease%", String.valueOf(clanHall.getLease()));
htmltext = htmltext.replace("%payDate%", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(clanHall.getNextPayment())));
break;
}
case "manageFunctions":
@@ -322,7 +322,7 @@ public class ClanHallManager extends AbstractNpcAI
{
final int funcVal = (int) oldFunc.getTemplate().getValue();
htmltext = getHtm(player, "ClanHallManager-manageFuncAlreadySet.html");
htmltext = htmltext.replaceAll("%funcEffect%", "<fstring p1=\"" + (funcVal > 0 ? funcVal : oldFunc.getLevel()) + "\">" + (funcVal > 0 ? NpcStringId.S1.getId() : NpcStringId.STAGE_S1.getId()) + "</fstring>");
htmltext = htmltext.replace("%funcEffect%", "<fstring p1=\"" + (funcVal > 0 ? funcVal : oldFunc.getLevel()) + "\">" + (funcVal > 0 ? NpcStringId.S1.getId() : NpcStringId.STAGE_S1.getId()) + "</fstring>");
}
else if ((funcId >= 1) && (funcId <= 8))
{
@@ -330,9 +330,9 @@ public class ClanHallManager extends AbstractNpcAI
if (template != null)
{
htmltext = getHtm(player, "ClanHallManager-funcConfirm" + funcId + ".html");
htmltext = htmltext.replaceAll("%funcId%", String.valueOf(funcId));
htmltext = htmltext.replaceAll("%funcLv%", String.valueOf(funcLv));
htmltext = htmltext.replaceAll("%funcCost%", "<fstring p1=\"" + template.getCost().getCount() + "\" p2=\"" + template.getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
htmltext = htmltext.replace("%funcId%", String.valueOf(funcId));
htmltext = htmltext.replace("%funcLv%", String.valueOf(funcLv));
htmltext = htmltext.replace("%funcCost%", "<fstring p1=\"" + template.getCost().getCount() + "\" p2=\"" + template.getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
}
}
}
@@ -376,7 +376,7 @@ public class ClanHallManager extends AbstractNpcAI
if (act.equals("confirm"))
{
htmltext = getHtm(player, "ClanHallManager-removeFunctionConfirm.html");
htmltext = htmltext.replaceAll("%FUNC_TYPE%", funcType.toString());
htmltext = htmltext.replace("%FUNC_TYPE%", funcType.toString());
}
else if (act.equals("remove"))
{
@@ -437,7 +437,7 @@ public class ClanHallManager extends AbstractNpcAI
else
{
htmltext = getHtm(player, "ClanHallManager-02.html");
htmltext = htmltext.replaceAll("%costFailDayLeft%", Integer.toString((8 - clanHall.getCostFailDay())));
htmltext = htmltext.replace("%costFailDayLeft%", Integer.toString((8 - clanHall.getCostFailDay())));
}
}
else

View File

@@ -65,8 +65,10 @@ import ai.AbstractNpcAI;
*/
public class ClassMaster extends AbstractNpcAI implements IXmlReader
{
private static final Logger LOGGER = Logger.getLogger(ClassMaster.class.getName());
// NPCs
private static final List<Integer> CLASS_MASTERS = new ArrayList<>();
private static final List<Integer> CLASS_MASTERS = new ArrayList<>();
static
{
CLASS_MASTERS.add(31756); // Mr. Cat
@@ -76,7 +78,6 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
private boolean _isEnabled;
private boolean _spawnClassMasters;
private boolean _showPopupWindow;
private static final Logger LOGGER = Logger.getLogger(ClassMaster.class.getName());
private final List<ClassChangeData> _classChangeData = new LinkedList<>();
public ClassMaster()
@@ -332,15 +333,12 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
classDataIndex = Integer.parseInt(st.nextToken());
}
if (checkIfClassChangeHasOptions(player))
if (checkIfClassChangeHasOptions(player) && (classDataIndex == -1))
{
if (classDataIndex == -1)
{
htmltext = getHtm(player, "cc_options.html");
htmltext = htmltext.replace("%name%", ClassListData.getInstance().getClass(classId).getClassName()); // getEscapedClientCode());
htmltext = htmltext.replace("%options%", getClassChangeOptions(player, classId));
return htmltext;
}
htmltext = getHtm(player, "cc_options.html");
htmltext = htmltext.replace("%name%", ClassListData.getInstance().getClass(classId).getClassName()); // getEscapedClientCode());
htmltext = htmltext.replace("%options%", getClassChangeOptions(player, classId));
return htmltext;
}
final ClassChangeData data = getClassChangeData(classDataIndex);
@@ -935,7 +933,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
for (int i = 0; i < _classChangeData.size(); i++)
{
final ClassChangeData option = getClassChangeData(i);
if ((option == null) || !option.getCategories().stream().anyMatch(ct -> player.isInCategory(ct)))
if ((option == null) || option.getCategories().stream().noneMatch(player::isInCategory))
{
continue;
}
@@ -951,10 +949,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
}
else
{
option.getItemsRequired().forEach(ih ->
{
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
});
option.getItemsRequired().forEach(ih -> sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>"));
}
sb.append("<tr><td>Rewards:</td></tr>");
if (option.getItemsRewarded().isEmpty())
@@ -976,10 +971,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
}
else
{
option.getItemsRewarded().forEach(ih ->
{
sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>");
});
option.getItemsRewarded().forEach(ih -> sb.append("<tr><td><font color=\"LEVEL\">" + ih.getCount() + "</font></td><td>" + ItemTable.getInstance().getTemplate(ih.getId()).getName() + "</td><td width=30></td></tr>"));
if (option.isRewardNoblesse())
{

View File

@@ -37,10 +37,6 @@ import ai.AbstractNpcAI;
*/
public class Incarnation extends AbstractNpcAI
{
public Incarnation()
{
}
@RegisterEvent(EventType.ON_NPC_SPAWN)
@RegisterType(ListenerRegisterType.NPC)
@Id(13302)

View File

@@ -86,23 +86,20 @@ public class PolymorphingOnAttack extends AbstractNpcAI
if (npc.isSpawned() && !npc.isDead())
{
final List<Integer> tmp = MOBSPAWNS.get(npc.getId());
if (tmp != null)
if ((tmp != null) && (npc.getCurrentHp() <= ((npc.getMaxHp() * tmp.get(1)) / 100.0)) && (getRandom(100) < tmp.get(2)))
{
if ((npc.getCurrentHp() <= ((npc.getMaxHp() * tmp.get(1)) / 100.0)) && (getRandom(100) < tmp.get(2)))
if (tmp.get(3) >= 0)
{
if (tmp.get(3) >= 0)
{
final NpcStringId npcString = MOBTEXTS[tmp.get(3)][getRandom(MOBTEXTS[tmp.get(3)].length)];
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), npcString));
}
npc.deleteMe();
final Attackable newNpc = (Attackable) addSpawn(tmp.get(0), npc.getX(), npc.getY(), npc.getZ() + 10, npc.getHeading(), false, 0, true);
final Creature originalAttacker = isSummon ? attacker.getServitors().values().stream().findFirst().orElse(attacker.getPet()) : attacker;
newNpc.setRunning();
newNpc.addDamageHate(originalAttacker, 0, 500);
newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, originalAttacker);
final NpcStringId npcString = MOBTEXTS[tmp.get(3)][getRandom(MOBTEXTS[tmp.get(3)].length)];
npc.broadcastPacket(new CreatureSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getName(), npcString));
}
npc.deleteMe();
final Attackable newNpc = (Attackable) addSpawn(tmp.get(0), npc.getX(), npc.getY(), npc.getZ() + 10, npc.getHeading(), false, 0, true);
final Creature originalAttacker = isSummon ? attacker.getServitors().values().stream().findFirst().orElse(attacker.getPet()) : attacker;
newNpc.setRunning();
newNpc.addDamageHate(originalAttacker, 0, 500);
newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, originalAttacker);
}
}
return super.onAttack(npc, attacker, damage, isSummon);

View File

@@ -51,16 +51,13 @@ public class TimakOrcTroopLeader extends AbstractNpcAI
if (npc.isMonster())
{
final MonsterInstance monster = (MonsterInstance) npc;
if (!monster.isTeleporting())
if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)))
{
if (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))
for (MinionHolder is : npc.getParameters().getMinionList("Privates"))
{
for (MinionHolder is : npc.getParameters().getMinionList("Privates"))
{
addMinion((MonsterInstance) npc, is.getId());
}
npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG));
addMinion((MonsterInstance) npc, is.getId());
}
npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG));
}
}
return super.onAttack(npc, attacker, damage, isSummon);

View File

@@ -73,7 +73,7 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
public boolean useBypass(String command, PlayerInstance player, Creature target)
{
String cmd = "";
String params = "";
StringBuilder params = new StringBuilder();
final StringTokenizer st = new StringTokenizer(command, " ");
if (st.hasMoreTokens())
@@ -83,14 +83,14 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
while (st.hasMoreTokens())
{
params += st.nextToken() + (st.hasMoreTokens() ? " " : "");
params.append(st.nextToken() + (st.hasMoreTokens() ? " " : ""));
}
if (cmd.isEmpty())
{
return false;
}
return useBypass(cmd, player, params);
return useBypass(cmd, player, params.toString());
}
@Override
@@ -130,11 +130,12 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
}
else
{
String title = "BUFF SELL: ";
StringBuilder title = new StringBuilder();
title.append("BUFF SELL: ");
final StringTokenizer st = new StringTokenizer(params, " ");
while (st.hasMoreTokens())
{
title += st.nextToken() + " ";
title.append(st.nextToken() + " ");
}
if (title.length() > 40)
@@ -143,7 +144,7 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
return false;
}
SellBuffsManager.getInstance().startSellBuffs(player, title);
SellBuffsManager.getInstance().startSellBuffs(player, title.toString());
}
break;
}

View File

@@ -221,12 +221,9 @@ public class Rabbits extends Event
}
}
}
else if (skill.getId() == RABBIT_MAGIC_EYE.getSkillId())
else if ((skill.getId() == RABBIT_MAGIC_EYE.getSkillId()) && npc.isInvisible() && npc.isInsideRadius2D(caster, skill.getAffectRange()))
{
if (npc.isInvisible() && npc.isInsideRadius2D(caster, skill.getAffectRange()))
{
npc.setInvisible(false);
}
npc.setInvisible(false);
}
return super.onSkillSee(npc, caster, skill, targets, isSummon);
}

View File

@@ -41,6 +41,21 @@ import org.l2jmobius.gameserver.util.Broadcast;
*/
public class Race extends Event
{
// 5 min for register
private static final int REGISTER_TIME = 5;
// 5 min for race
private static final int RACE_TIME = 10;
// NPCs
private static final int START_NPC = 900103;
private static final int STOP_NPC = 900104;
// Locations
private static final String[] LOCATIONS =
{
"Heretic catacomb enterance",
"Dion castle bridge",
"Floran village enterance",
"Floran fort gate"
};
// Event NPCs list
private List<Npc> _npclist;
// Npc
@@ -53,28 +68,13 @@ public class Race extends Event
private static boolean _isactive = false;
// Race state
private static boolean _isRaceStarted = false;
// 5 min for register
private static final int _time_register = 5;
// 5 min for race
private static final int _time_race = 10;
// NPCs
private static final int _start_npc = 900103;
private static final int _stop_npc = 900104;
// Skills (Frog by default)
private static int _skill = 6201;
// We must keep second NPC spawn for radar
private static int[] _randspawn = null;
// Locations
private static final String[] _locations =
{
"Heretic catacomb enterance",
"Dion castle bridge",
"Floran village enterance",
"Floran fort gate"
};
// @formatter:off
private static final int[][] _coords =
private static final int[][] COORDS =
{
// x, y, z, heading
{ 39177, 144345, -3650, 0 },
@@ -82,7 +82,7 @@ public class Race extends Event
{ 16537, 169937, -3500, 0 },
{ 7644, 150898, -2890, 0 }
};
private static final int[][] _rewards =
private static final int[][] REWARDS =
{
{ 6622, 2 }, // Giant's Codex
{ 9625, 2 }, // Giant's Codex -
@@ -103,12 +103,12 @@ public class Race extends Event
private Race()
{
addStartNpc(_start_npc);
addFirstTalkId(_start_npc);
addTalkId(_start_npc);
addStartNpc(_stop_npc);
addFirstTalkId(_stop_npc);
addTalkId(_stop_npc);
addStartNpc(START_NPC);
addFirstTalkId(START_NPC);
addTalkId(START_NPC);
addStartNpc(STOP_NPC);
addFirstTalkId(STOP_NPC);
addTalkId(STOP_NPC);
}
@Override
@@ -132,14 +132,14 @@ public class Race extends Event
// Set Event active
_isactive = true;
// Spawn Manager
_npc = recordSpawn(_start_npc, 18429, 145861, -3090, 0, false, 0);
_npc = recordSpawn(START_NPC, 18429, 145861, -3090, 0, false, 0);
// Announce event start
Broadcast.toAllOnlinePlayers("* Race Event started! *");
Broadcast.toAllOnlinePlayers("Visit Event Manager in Dion village and signup, you have " + _time_register + " min before Race Start...");
Broadcast.toAllOnlinePlayers("Visit Event Manager in Dion village and signup, you have " + REGISTER_TIME + " min before Race Start...");
// Schedule Event end
_eventTask = ThreadPool.schedule(() -> StartRace(), _time_register * 60 * 1000);
_eventTask = ThreadPool.schedule(this::StartRace, REGISTER_TIME * 60 * 1000);
return true;
@@ -159,10 +159,10 @@ public class Race extends Event
// Announce
Broadcast.toAllOnlinePlayers("Race started!");
// Get random Finish
final int location = getRandom(0, _locations.length - 1);
_randspawn = _coords[location];
final int location = getRandom(0, LOCATIONS.length - 1);
_randspawn = COORDS[location];
// And spawn NPC
recordSpawn(_stop_npc, _randspawn[0], _randspawn[1], _randspawn[2], _randspawn[3], false, 0);
recordSpawn(STOP_NPC, _randspawn[0], _randspawn[1], _randspawn[2], _randspawn[3], false, 0);
// Transform players and send message
for (PlayerInstance player : _players)
{
@@ -170,7 +170,7 @@ public class Race extends Event
{
if (player.isInsideRadius2D(_npc, 500))
{
sendMessage(player, "Race started! Go find Finish NPC as fast as you can... He is located near " + _locations[location]);
sendMessage(player, "Race started! Go find Finish NPC as fast as you can... He is located near " + LOCATIONS[location]);
transformPlayer(player);
player.getRadar().addMarker(_randspawn[0], _randspawn[1], _randspawn[2]);
}
@@ -182,7 +182,7 @@ public class Race extends Event
}
}
// Schedule timeup for Race
_eventTask = ThreadPool.schedule(() -> timeUp(), _time_race * 60 * 1000);
_eventTask = ThreadPool.schedule(this::timeUp, RACE_TIME * 60 * 1000);
}
@Override
@@ -215,11 +215,11 @@ public class Race extends Event
}
}
// Despawn NPCs
for (Npc _npc : _npclist)
for (Npc npc : _npclist)
{
if (_npc != null)
if (npc != null)
{
_npc.deleteMe();
npc.deleteMe();
}
}
_npclist.clear();
@@ -241,13 +241,13 @@ public class Race extends Event
}
else
{
final int _number = Integer.parseInt(bypass.substring(5));
final Skill _sk = SkillData.getInstance().getSkill(_number, 1);
if (_sk != null)
final int number = Integer.parseInt(bypass.substring(5));
final Skill skill = SkillData.getInstance().getSkill(number, 1);
if (skill != null)
{
_skill = _number;
_skill = number;
player.sendMessage("Transform skill set to:");
player.sendMessage(_sk.getName());
player.sendMessage(skill.getName());
}
else
{
@@ -331,17 +331,17 @@ public class Race extends Event
{
getQuestState(player, true);
if (npc.getId() == _start_npc)
if (npc.getId() == START_NPC)
{
if (_isRaceStarted)
{
return _start_npc + "-started-" + isRacing(player) + ".htm";
return START_NPC + "-started-" + isRacing(player) + ".htm";
}
return _start_npc + "-" + isRacing(player) + ".htm";
return START_NPC + "-" + isRacing(player) + ".htm";
}
else if ((npc.getId() == _stop_npc) && _isRaceStarted)
else if ((npc.getId() == STOP_NPC) && _isRaceStarted)
{
return _stop_npc + "-" + isRacing(player) + ".htm";
return STOP_NPC + "-" + isRacing(player) + ".htm";
}
return npc.getId() + ".htm";
}
@@ -399,8 +399,8 @@ public class Race extends Event
private void winRace(PlayerInstance player)
{
final int[] _reward = _rewards[getRandom(_rewards.length - 1)];
player.addItem("eventModRace", _reward[0], _reward[1], _npc, true);
final int[] reward = REWARDS[getRandom(REWARDS.length - 1)];
player.addItem("eventModRace", reward[0], reward[1], _npc, true);
Broadcast.toAllOnlinePlayers(player.getName() + " is a winner!");
eventStop();
}

View File

@@ -578,8 +578,8 @@ public class TvT extends Event
}
// Start inactivity check.
if (creature.isPlayer() && //
((((zone == BLUE_PEACE_ZONE) && (creature.getTeam() == Team.BLUE)) || //
((zone == RED_PEACE_ZONE) && (creature.getTeam() == Team.RED)))))
(((zone == BLUE_PEACE_ZONE) && (creature.getTeam() == Team.BLUE)) || //
((zone == RED_PEACE_ZONE) && (creature.getTeam() == Team.RED))))
{
resetActivityTimers(creature.getActingPlayer());
}

View File

@@ -61,10 +61,7 @@ public class ListenerTest extends AbstractNpcAI
setAttackableAttackId(this::onAttackableAttack, ELPIES);
// Manual listener registration
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_DLG_ANSWER, (OnPlayerDlgAnswer event) ->
{
LOGGER.info(getClass().getSimpleName() + ": " + event.getPlayer() + " OnPlayerDlgAnswer: Answer: " + event.getAnswer() + " MessageId: " + event.getMessageId());
}, this));
Containers.Global().addListener(new ConsumerEventListener(Containers.Global(), EventType.ON_PLAYER_DLG_ANSWER, (OnPlayerDlgAnswer event) -> LOGGER.info(getClass().getSimpleName() + ": " + event.getPlayer() + " OnPlayerDlgAnswer: Answer: " + event.getAnswer() + " MessageId: " + event.getMessageId()), this));
}
/**

View File

@@ -135,7 +135,6 @@ import handlers.admincommandhandlers.AdminTargetSay;
import handlers.admincommandhandlers.AdminTeleport;
import handlers.admincommandhandlers.AdminTest;
import handlers.admincommandhandlers.AdminTransform;
import handlers.admincommandhandlers.AdminUnblockIp;
import handlers.admincommandhandlers.AdminVitality;
import handlers.admincommandhandlers.AdminZone;
import handlers.admincommandhandlers.AdminZones;
@@ -474,7 +473,6 @@ public class MasterHandler
AdminTeleport.class,
AdminTest.class,
AdminTransform.class,
AdminUnblockIp.class,
AdminVitality.class,
AdminZone.class,
},
@@ -711,12 +709,9 @@ public class MasterHandler
}
}
registerHandlerMethods.entrySet().stream().filter(e -> e.getValue() == null).forEach(e ->
{
LOGGER.warning("Failed loading handlers of: " + e.getKey().getClass().getSimpleName() + " seems registerHandler function does not exist.");
});
registerHandlerMethods.entrySet().stream().filter(e -> e.getValue() == null).forEach(e -> LOGGER.warning("Failed loading handlers of: " + e.getKey().getClass().getSimpleName() + " seems registerHandler function does not exist."));
for (Class<?> classes[] : HANDLERS)
for (Class<?>[] classes : HANDLERS)
{
for (Class<?> c : classes)
{

View File

@@ -33,15 +33,12 @@ public class ItemInstanceAction implements IActionHandler
public boolean action(PlayerInstance player, WorldObject target, boolean interact)
{
final Castle castle = CastleManager.getInstance().getCastle(target);
if ((castle != null) && (SiegeGuardManager.getInstance().getSiegeGuardByItem(castle.getResidenceId(), target.getId()) != null))
if ((castle != null) && (SiegeGuardManager.getInstance().getSiegeGuardByItem(castle.getResidenceId(), target.getId()) != null) && ((player.getClan() == null) || (castle.getOwnerId() != player.getClanId()) || !player.hasClanPrivilege(ClanPrivilege.CS_MERCENARIES)))
{
if ((player.getClan() == null) || (castle.getOwnerId() != player.getClanId()) || !player.hasClanPrivilege(ClanPrivilege.CS_MERCENARIES))
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_AUTHORITY_TO_CANCEL_MERCENARY_POSITIONING);
player.setTarget(target);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
return false;
}
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_AUTHORITY_TO_CANCEL_MERCENARY_POSITIONING);
player.setTarget(target);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
return false;
}
if (!player.isFlying())

View File

@@ -387,6 +387,7 @@ public class AdminAdmin implements IAdminCommandHandler
}
catch (Exception e)
{
// Not important.
}
switch (mode)
{

View File

@@ -207,13 +207,13 @@ public class AdminAnnouncements implements IAdminCommandHandler
announcementDelay = Long.toString(autoAnnounce.getDelay() / 1000);
announcementRepeat = Integer.toString(autoAnnounce.getRepeat());
}
content = content.replaceAll("%id%", announcementId);
content = content.replaceAll("%type%", announcementType);
content = content.replaceAll("%initial%", announcementInital);
content = content.replaceAll("%delay%", announcementDelay);
content = content.replaceAll("%repeat%", announcementRepeat);
content = content.replaceAll("%author%", announcementAuthor);
content = content.replaceAll("%content%", announcementContent);
content = content.replace("%id%", announcementId);
content = content.replace("%type%", announcementType);
content = content.replace("%initial%", announcementInital);
content = content.replace("%delay%", announcementDelay);
content = content.replace("%repeat%", announcementRepeat);
content = content.replace("%author%", announcementAuthor);
content = content.replace("%content%", announcementContent);
Util.sendCBHtml(activeChar, content);
break;
}
@@ -433,13 +433,13 @@ public class AdminAnnouncements implements IAdminCommandHandler
announcementDelay = Long.toString(autoAnnounce.getDelay() / 1000);
announcementRepeat = Integer.toString(autoAnnounce.getRepeat());
}
content = content.replaceAll("%id%", announcementId);
content = content.replaceAll("%type%", announcementType);
content = content.replaceAll("%initial%", announcementInital);
content = content.replaceAll("%delay%", announcementDelay);
content = content.replaceAll("%repeat%", announcementRepeat);
content = content.replaceAll("%author%", announcementAuthor);
content = content.replaceAll("%content%", announcementContent);
content = content.replace("%id%", announcementId);
content = content.replace("%type%", announcementType);
content = content.replace("%initial%", announcementInital);
content = content.replace("%delay%", announcementDelay);
content = content.replace("%repeat%", announcementRepeat);
content = content.replace("%author%", announcementAuthor);
content = content.replace("%content%", announcementContent);
Util.sendCBHtml(activeChar, content);
break;
}
@@ -489,8 +489,8 @@ public class AdminAnnouncements implements IAdminCommandHandler
sb.append("</tr>");
}).build();
content = content.replaceAll("%pages%", result.getPagerTemplate().toString());
content = content.replaceAll("%announcements%", result.getBodyTemplate().toString());
content = content.replace("%pages%", result.getPagerTemplate().toString());
content = content.replace("%announcements%", result.getBodyTemplate().toString());
Util.sendCBHtml(activeChar, content);
break;
}

View File

@@ -212,7 +212,7 @@ public class AdminBuffs implements IAdminCommandHandler
else if (command.startsWith("admin_removereuse"))
{
final StringTokenizer st = new StringTokenizer(command, " ");
command = st.nextToken();
st.nextToken();
PlayerInstance player = null;
if (st.hasMoreTokens())

View File

@@ -154,7 +154,7 @@ public class AdminClanHall implements IAdminCommandHandler
useAdminCommand("admin_clanhall id=" + clanHallId, player);
}
private void sendClanHallList(PlayerInstance player, int page, BypassParser parser)
private void sendClanHallList(PlayerInstance player, int page)
{
final NpcHtmlMessage html = new NpcHtmlMessage(0, 1);
html.setFile(player, "data/html/admin/clanhall_list.htm");
@@ -271,7 +271,7 @@ public class AdminClanHall implements IAdminCommandHandler
}
else
{
sendClanHallList(player, page, parser);
sendClanHallList(player, page);
}
}

View File

@@ -45,8 +45,6 @@ public class AdminCursedWeapons implements IAdminCommandHandler
"admin_cw_info_menu"
};
private int itemId;
@Override
public boolean useAdminCommand(String command, PlayerInstance activeChar)
{
@@ -94,7 +92,7 @@ public class AdminCursedWeapons implements IAdminCommandHandler
adminReply.setFile(activeChar, "data/html/admin/cwinfo.htm");
for (CursedWeapon cw : cwm.getCursedWeapons())
{
itemId = cw.getItemId();
final int itemId = cw.getItemId();
replyMSG.append("<table width=270><tr><td>Name:</td><td>");
replyMSG.append(cw.getName());

View File

@@ -17,6 +17,7 @@
package handlers.admincommandhandlers;
import java.awt.Color;
import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.xml.impl.DoorData;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
@@ -36,7 +37,10 @@ import org.l2jmobius.gameserver.util.BuilderUtil;
*/
public class AdminDoorControl implements IAdminCommandHandler
{
private static final Logger LOGGER = Logger.getLogger(AdminDoorControl.class.getName());
private static DoorData _doorTable = DoorData.getInstance();
private static final String[] ADMIN_COMMANDS =
{
"admin_open",
@@ -168,7 +172,7 @@ public class AdminDoorControl implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
LOGGER.warning("Problem with AdminDoorControl: " + e.getMessage());
}
return true;
}

View File

@@ -650,7 +650,7 @@ public class AdminEditChar implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
LOGGER.warning(e.toString());
}
}
else if (command.startsWith("admin_find_dualbox"))
@@ -1231,9 +1231,9 @@ public class AdminEditChar implements IAdminCommandHandler
/**
* @param activeChar
* @param CharacterToFind
* @param characterToFind
*/
private void findCharacter(PlayerInstance activeChar, String CharacterToFind)
private void findCharacter(PlayerInstance activeChar, String characterToFind)
{
int CharactersFound = 0;
String name;
@@ -1247,7 +1247,7 @@ public class AdminEditChar implements IAdminCommandHandler
for (PlayerInstance player : players)
{ // Add player info into new Table row
name = player.getName();
if (name.toLowerCase().contains(CharacterToFind.toLowerCase()))
if (name.toLowerCase().contains(characterToFind.toLowerCase()))
{
CharactersFound += 1;
replyMSG.append("<tr><td width=80><a action=\"bypass -h admin_character_info ");
@@ -1294,23 +1294,22 @@ public class AdminEditChar implements IAdminCommandHandler
/**
* @param activeChar
* @param IpAdress
* @throws IllegalArgumentException
* @param ipAdress
*/
private void findCharactersPerIp(PlayerInstance activeChar, String IpAdress) throws IllegalArgumentException
private void findCharactersPerIp(PlayerInstance activeChar, String ipAdress)
{
boolean findDisconnected = false;
if (IpAdress.equals("disconnected"))
if (ipAdress.equals("disconnected"))
{
findDisconnected = true;
}
else if (!IpAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$"))
else if (!ipAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$"))
{
throw new IllegalArgumentException("Malformed IPv4 number");
}
int CharactersFound = 0;
int charactersFound = 0;
GameClient client;
String ip = "0.0.0.0";
final StringBuilder replyMSG = new StringBuilder(1000);
@@ -1342,14 +1341,14 @@ public class AdminEditChar implements IAdminCommandHandler
}
ip = client.getConnectionAddress().getHostAddress();
if (!ip.equals(IpAdress))
if (!ip.equals(ipAdress))
{
continue;
}
}
final String name = player.getName();
CharactersFound += 1;
charactersFound += 1;
replyMSG.append("<tr><td width=80><a action=\"bypass -h admin_character_info ");
replyMSG.append(name);
replyMSG.append("\">");
@@ -1360,7 +1359,7 @@ public class AdminEditChar implements IAdminCommandHandler
replyMSG.append(player.getLevel());
replyMSG.append("</td></tr>");
if (CharactersFound > 20)
if (charactersFound > 20)
{
break;
}
@@ -1369,16 +1368,16 @@ public class AdminEditChar implements IAdminCommandHandler
final String replyMSG2;
if (CharactersFound == 0)
if (charactersFound == 0)
{
replyMSG2 = "s. Maybe they got d/c? :)";
}
else if (CharactersFound > 20)
else if (charactersFound > 20)
{
adminReply.replace("%number%", " more than " + CharactersFound);
adminReply.replace("%number%", " more than " + charactersFound);
replyMSG2 = "s.<br>In order to avoid you a client crash I won't <br1>display results beyond the 20th character.";
}
else if (CharactersFound == 1)
else if (charactersFound == 1)
{
replyMSG2 = ".";
}
@@ -1386,8 +1385,8 @@ public class AdminEditChar implements IAdminCommandHandler
{
replyMSG2 = "s.";
}
adminReply.replace("%ip%", IpAdress);
adminReply.replace("%number%", String.valueOf(CharactersFound));
adminReply.replace("%ip%", ipAdress);
adminReply.replace("%number%", String.valueOf(charactersFound));
adminReply.replace("%end%", replyMSG2);
activeChar.sendPacket(adminReply);
}
@@ -1395,9 +1394,8 @@ public class AdminEditChar implements IAdminCommandHandler
/**
* @param activeChar
* @param characterName
* @throws IllegalArgumentException
*/
private void findCharactersPerAccount(PlayerInstance activeChar, String characterName) throws IllegalArgumentException
private void findCharactersPerAccount(PlayerInstance activeChar, String characterName)
{
final PlayerInstance player = World.getInstance().getPlayer(characterName);
if (player == null)
@@ -1460,7 +1458,7 @@ public class AdminEditChar implements IAdminCommandHandler
}
final List<String> keys = new ArrayList<>(dualboxIPs.keySet());
keys.sort(Comparator.comparing(s -> dualboxIPs.get(s)).reversed());
keys.sort(Comparator.comparing(dualboxIPs::get).reversed());
final StringBuilder results = new StringBuilder();
for (String dualboxIP : keys)
@@ -1514,7 +1512,7 @@ public class AdminEditChar implements IAdminCommandHandler
}
final List<IpPack> keys = new ArrayList<>(dualboxIPs.keySet());
keys.sort(Comparator.comparing(s -> dualboxIPs.get(s)).reversed());
keys.sort(Comparator.comparing(dualboxIPs::get).reversed());
final StringBuilder results = new StringBuilder();
for (IpPack dualboxIP : keys)

View File

@@ -758,9 +758,9 @@ public class AdminEffects implements IAdminCommandHandler
private void playAdminSound(PlayerInstance activeChar, String sound)
{
final PlaySound _snd = new PlaySound(1, sound, 0, 0, 0, 0, 0);
activeChar.sendPacket(_snd);
activeChar.broadcastPacket(_snd);
final PlaySound snd = new PlaySound(1, sound, 0, 0, 0, 0, 0);
activeChar.sendPacket(snd);
activeChar.broadcastPacket(snd);
BuilderUtil.sendSysMessage(activeChar, "Playing " + sound + ".");
}

View File

@@ -44,7 +44,6 @@ import org.l2jmobius.gameserver.util.Broadcast;
*/
public class AdminEventEngine implements IAdminCommandHandler
{
private static final String[] ADMIN_COMMANDS =
{
"admin_event",
@@ -128,11 +127,8 @@ public class AdminEventEngine implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
}
}
else if (actualCommand.startsWith("admin_event_del"))
{
@@ -214,9 +210,9 @@ public class AdminEventEngine implements IAdminCommandHandler
activeChar.sendMessage(GameEvent.startEventParticipation());
Broadcast.toAllOnlinePlayers(activeChar.getName() + " has started an event. You will find a participation NPC somewhere around you.");
final PlaySound _snd = new PlaySound(1, "B03_F", 0, 0, 0, 0, 0);
activeChar.sendPacket(_snd);
activeChar.broadcastPacket(_snd);
final PlaySound snd = new PlaySound(1, "B03_F", 0, 0, 0, 0, 0);
activeChar.sendPacket(snd);
activeChar.broadcastPacket(snd);
final NpcHtmlMessage adminReply = new NpcHtmlMessage(0, 1);
@@ -374,7 +370,6 @@ public class AdminEventEngine implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
AdminData.getInstance().broadcastMessageToGMs("EventEngine: Error! Possible blank boxes while executing a command which requires a value in the box?");
}
return true;

View File

@@ -52,17 +52,17 @@ public class AdminEvents implements IAdminCommandHandler
return false;
}
String event_name = "";
String _event_bypass = "";
String eventName = "";
String eventBypass = "";
final StringTokenizer st = new StringTokenizer(command, " ");
st.nextToken();
if (st.hasMoreTokens())
{
event_name = st.nextToken();
eventName = st.nextToken();
}
if (st.hasMoreTokens())
{
_event_bypass = st.nextToken();
eventBypass = st.nextToken();
}
if (command.contains("_menu"))
@@ -74,18 +74,18 @@ public class AdminEvents implements IAdminCommandHandler
{
try
{
if (event_name != null)
if (eventName != null)
{
final Event event = (Event) QuestManager.getInstance().getQuest(event_name);
final Event event = (Event) QuestManager.getInstance().getQuest(eventName);
if (event != null)
{
if (event.eventStart(activeChar))
{
BuilderUtil.sendSysMessage(activeChar, "Event " + event_name + " started.");
BuilderUtil.sendSysMessage(activeChar, "Event " + eventName + " started.");
return true;
}
BuilderUtil.sendSysMessage(activeChar, "There is problem starting " + event_name + " event.");
BuilderUtil.sendSysMessage(activeChar, "There is problem starting " + eventName + " event.");
return true;
}
}
@@ -93,7 +93,6 @@ public class AdminEvents implements IAdminCommandHandler
catch (Exception e)
{
BuilderUtil.sendSysMessage(activeChar, "Usage: //event_start <eventname>");
e.printStackTrace();
return false;
}
}
@@ -101,18 +100,18 @@ public class AdminEvents implements IAdminCommandHandler
{
try
{
if (event_name != null)
if (eventName != null)
{
final Event event = (Event) QuestManager.getInstance().getQuest(event_name);
final Event event = (Event) QuestManager.getInstance().getQuest(eventName);
if (event != null)
{
if (event.eventStop())
{
BuilderUtil.sendSysMessage(activeChar, "Event " + event_name + " stopped.");
BuilderUtil.sendSysMessage(activeChar, "Event " + eventName + " stopped.");
return true;
}
BuilderUtil.sendSysMessage(activeChar, "There is problem with stoping " + event_name + " event.");
BuilderUtil.sendSysMessage(activeChar, "There is problem with stoping " + eventName + " event.");
return true;
}
}
@@ -120,7 +119,6 @@ public class AdminEvents implements IAdminCommandHandler
catch (Exception e)
{
BuilderUtil.sendSysMessage(activeChar, "Usage: //event_start <eventname>");
e.printStackTrace();
return false;
}
}
@@ -128,19 +126,18 @@ public class AdminEvents implements IAdminCommandHandler
{
try
{
if (event_name != null)
if (eventName != null)
{
final Event event = (Event) QuestManager.getInstance().getQuest(event_name);
final Event event = (Event) QuestManager.getInstance().getQuest(eventName);
if (event != null)
{
event.eventBypass(activeChar, _event_bypass);
event.eventBypass(activeChar, eventBypass);
}
}
}
catch (Exception e)
{
BuilderUtil.sendSysMessage(activeChar, "Usage: //event_bypass <eventname> <bypass>");
e.printStackTrace();
return false;
}
}

View File

@@ -108,7 +108,7 @@ public class AdminExpSp implements IAdminCommandHandler
activeChar.sendPacket(adminReply);
}
private boolean adminAddExpSp(PlayerInstance activeChar, String ExpSp)
private boolean adminAddExpSp(PlayerInstance activeChar, String expSp)
{
final WorldObject target = activeChar.getTarget();
PlayerInstance player = null;
@@ -121,7 +121,7 @@ public class AdminExpSp implements IAdminCommandHandler
activeChar.sendPacket(SystemMessageId.INVALID_TARGET);
return false;
}
final StringTokenizer st = new StringTokenizer(ExpSp);
final StringTokenizer st = new StringTokenizer(expSp);
if (st.countTokens() != 2)
{
return false;
@@ -151,7 +151,7 @@ public class AdminExpSp implements IAdminCommandHandler
return true;
}
private boolean adminRemoveExpSP(PlayerInstance activeChar, String ExpSp)
private boolean adminRemoveExpSP(PlayerInstance activeChar, String expSp)
{
final WorldObject target = activeChar.getTarget();
PlayerInstance player = null;
@@ -164,7 +164,7 @@ public class AdminExpSp implements IAdminCommandHandler
activeChar.sendPacket(SystemMessageId.INVALID_TARGET);
return false;
}
final StringTokenizer st = new StringTokenizer(ExpSp);
final StringTokenizer st = new StringTokenizer(expSp);
if (st.countTokens() != 2)
{
return false;

View File

@@ -43,7 +43,6 @@ public class AdminFightCalculator implements IAdminCommandHandler
"admin_fcs",
};
// TODO: remove from gm list etc etc
@Override
public boolean useAdminCommand(String command, PlayerInstance activeChar)
{
@@ -64,6 +63,7 @@ public class AdminFightCalculator implements IAdminCommandHandler
}
catch (StringIndexOutOfBoundsException e)
{
// Do nothing.
}
return true;
}
@@ -212,66 +212,66 @@ public class AdminFightCalculator implements IAdminCommandHandler
for (int i = 0; i < 10000; i++)
{
final boolean _miss1 = Formulas.calcHitMiss(npc1, npc2);
if (_miss1)
final boolean calcMiss1 = Formulas.calcHitMiss(npc1, npc2);
if (calcMiss1)
{
miss1++;
}
final byte _shld1 = Formulas.calcShldUse(npc1, npc2, false);
if (_shld1 > 0)
final byte calcShld1 = Formulas.calcShldUse(npc1, npc2, false);
if (calcShld1 > 0)
{
shld1++;
}
final boolean _crit1 = Formulas.calcCrit(npc1.getCriticalHit(), npc1, npc2, null);
if (_crit1)
final boolean calcCrit1 = Formulas.calcCrit(npc1.getCriticalHit(), npc1, npc2, null);
if (calcCrit1)
{
crit1++;
}
double _patk1 = npc1.getPAtk();
_patk1 += npc1.getRandomDamageMultiplier();
patk1 += _patk1;
double npcPatk1 = npc1.getPAtk();
npcPatk1 += npc1.getRandomDamageMultiplier();
patk1 += npcPatk1;
final double _pdef1 = npc1.getPDef();
pdef1 += _pdef1;
final double npcPdef1 = npc1.getPDef();
pdef1 += npcPdef1;
if (!_miss1)
if (!calcMiss1)
{
final double _dmg1 = Formulas.calcAutoAttackDamage(npc1, npc2, _shld1, _crit1, false);
dmg1 += _dmg1;
final double calcDmg1 = Formulas.calcAutoAttackDamage(npc1, npc2, calcShld1, calcCrit1, false);
dmg1 += calcDmg1;
npc1.abortAttack();
}
}
for (int i = 0; i < 10000; i++)
{
final boolean _miss2 = Formulas.calcHitMiss(npc2, npc1);
if (_miss2)
final boolean calcMiss2 = Formulas.calcHitMiss(npc2, npc1);
if (calcMiss2)
{
miss2++;
}
final byte _shld2 = Formulas.calcShldUse(npc2, npc1, false);
if (_shld2 > 0)
final byte calcShld2 = Formulas.calcShldUse(npc2, npc1, false);
if (calcShld2 > 0)
{
shld2++;
}
final boolean _crit2 = Formulas.calcCrit(npc2.getCriticalHit(), npc2, npc1, null);
if (_crit2)
final boolean calcCrit2 = Formulas.calcCrit(npc2.getCriticalHit(), npc2, npc1, null);
if (calcCrit2)
{
crit2++;
}
double _patk2 = npc2.getPAtk();
_patk2 *= npc2.getRandomDamageMultiplier();
patk2 += _patk2;
double npcPatk2 = npc2.getPAtk();
npcPatk2 *= npc2.getRandomDamageMultiplier();
patk2 += npcPatk2;
final double _pdef2 = npc2.getPDef();
pdef2 += _pdef2;
final double npcPdef2 = npc2.getPDef();
pdef2 += npcPdef2;
if (!_miss2)
if (!calcMiss2)
{
final double _dmg2 = Formulas.calcAutoAttackDamage(npc2, npc1, _shld2, _crit2, false);
dmg2 += _dmg2;
final double calcDmg2 = Formulas.calcAutoAttackDamage(npc2, npc1, calcShld2, calcCrit2, false);
dmg2 += calcDmg2;
npc2.abortAttack();
}
}

View File

@@ -33,7 +33,7 @@ import org.l2jmobius.gameserver.util.BuilderUtil;
*/
public class AdminHeal implements IAdminCommandHandler
{
private static final Logger LOGGER = Logger.getLogger(AdminRes.class.getName());
private static final Logger LOGGER = Logger.getLogger(AdminHeal.class.getName());
private static final String[] ADMIN_COMMANDS =
{
"admin_heal"

View File

@@ -243,7 +243,7 @@ public class AdminInstance implements IAdminCommandHandler
}
}
private void sendTemplateList(PlayerInstance player, int page, BypassParser parser)
private void sendTemplateList(PlayerInstance player, int page)
{
final NpcHtmlMessage html = new NpcHtmlMessage(0, 1);
html.setFile(player, "data/html/admin/instances_list.htm");
@@ -299,7 +299,7 @@ public class AdminInstance implements IAdminCommandHandler
}
else
{
sendTemplateList(player, page, parser);
sendTemplateList(player, page);
}
}

View File

@@ -17,6 +17,7 @@
package handlers.admincommandhandlers;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
@@ -67,7 +68,7 @@ public class AdminInstanceZone implements IAdminCommandHandler
else if (command.startsWith("admin_instancezone"))
{
final StringTokenizer st = new StringTokenizer(command, " ");
command = st.nextToken();
st.nextToken();
if (st.hasMoreTokens())
{
@@ -108,12 +109,6 @@ public class AdminInstanceZone implements IAdminCommandHandler
return true;
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
private void display(PlayerInstance player, PlayerInstance activeChar)
{
final Map<Integer, Long> instanceTimes = InstanceManager.getInstance().getAllInstanceTimes(player);
@@ -121,11 +116,12 @@ public class AdminInstanceZone implements IAdminCommandHandler
final StringBuilder html = new StringBuilder(500 + (instanceTimes.size() * 200));
html.append("<html><center><table width=260><tr><td width=40><button value=\"Main\" action=\"bypass -h admin_admin\" width=40 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center>Character Instances</center></td><td width=40><button value=\"Back\" action=\"bypass -h admin_current_player\" width=40 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table><br><font color=\"LEVEL\">Instances for " + player.getName() + "</font><center><br><table><tr><td width=150>Name</td><td width=50>Time</td><td width=70>Action</td></tr>");
for (int id : instanceTimes.keySet())
for (Entry<Integer, Long> entry : instanceTimes.entrySet())
{
int hours = 0;
int minutes = 0;
final long remainingTime = (instanceTimes.get(id) - System.currentTimeMillis()) / 1000;
int id = entry.getKey();
final long remainingTime = (entry.getValue() - System.currentTimeMillis()) / 1000;
if (remainingTime > 0)
{
hours = (int) (remainingTime / 3600);
@@ -141,4 +137,10 @@ public class AdminInstanceZone implements IAdminCommandHandler
ms.setHtml(html.toString());
activeChar.sendPacket(ms);
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
}

View File

@@ -233,18 +233,12 @@ public class AdminLogin implements IAdminCommandHandler
return nameType;
}
/**
*
*/
private void allowToAll()
{
LoginServerThread.getInstance().setServerStatus(ServerStatus.STATUS_AUTO);
Config.SERVER_GMONLY = false;
}
/**
*
*/
private void gmOnly()
{
LoginServerThread.getInstance().setServerStatus(ServerStatus.STATUS_GM_ONLY);

View File

@@ -86,6 +86,7 @@ public class AdminMenu implements IAdminCommandHandler
}
catch (StringIndexOutOfBoundsException e)
{
// Not important.
}
}
else if (command.startsWith("admin_recall_party_menu"))
@@ -153,6 +154,7 @@ public class AdminMenu implements IAdminCommandHandler
}
catch (StringIndexOutOfBoundsException e)
{
// Not important.
}
}
else if (command.equals("admin_kill_menu"))

View File

@@ -82,9 +82,9 @@ public class AdminMessages implements IAdminCommandHandler
}
else if (val.startsWith("zone:"))
{
final int x = Integer.parseInt(val.substring(5, val.indexOf(",")));
final int y = Integer.parseInt(val.substring(val.indexOf(",") + 1, val.lastIndexOf(",")));
final int z = Integer.parseInt(val.substring(val.lastIndexOf(",") + 1, val.length()));
final int x = Integer.parseInt(val.substring(5, val.indexOf(',')));
final int y = Integer.parseInt(val.substring(val.indexOf(',') + 1, val.lastIndexOf(',')));
final int z = Integer.parseInt(val.substring(val.lastIndexOf(',') + 1, val.length()));
sm.addZoneName(x, y, z);
}
else if (val.startsWith("castle:"))
@@ -101,7 +101,6 @@ public class AdminMessages implements IAdminCommandHandler
catch (Exception e)
{
BuilderUtil.sendSysMessage(activeChar, "Exception: " + e.getMessage());
continue;
}
}
activeChar.sendPacket(sm);

View File

@@ -77,7 +77,7 @@ public class AdminMissingHtmls implements IAdminCommandHandler
final Npc npc = (Npc) obj;
if ((npc.getLocation().getX() > topLeftX) && (npc.getLocation().getX() < bottomRightX) && (npc.getLocation().getY() > topLeftY) && (npc.getLocation().getY() < bottomRightY) && npc.isTalkable() && !npc.hasListener(EventType.ON_NPC_FIRST_TALK))
{
if ((npc.getHtmlPath(npc.getId(), 0, null) == "data/html/npcdefault.htm") //
if ((npc.getHtmlPath(npc.getId(), 0, null).equals("data/html/npcdefault.htm"))//
|| ((obj instanceof FishermanInstance) && (HtmCache.getInstance().getHtm(null, "data/html/fisherman/" + npc.getId() + ".htm") == null)) //
|| ((obj instanceof WarehouseInstance) && (HtmCache.getInstance().getHtm(null, "data/html/warehouse/" + npc.getId() + ".htm") == null)) //
|| (((obj instanceof MerchantInstance) && !(obj instanceof FishermanInstance)) && (HtmCache.getInstance().getHtm(null, "data/html/merchant/" + npc.getId() + ".htm") == null)) //
@@ -112,7 +112,7 @@ public class AdminMissingHtmls implements IAdminCommandHandler
final Npc npc = (Npc) obj;
if (npc.isTalkable() && !npc.hasListener(EventType.ON_NPC_FIRST_TALK))
{
if ((npc.getHtmlPath(npc.getId(), 0, null) == "data/html/npcdefault.htm") //
if ((npc.getHtmlPath(npc.getId(), 0, null).equals("data/html/npcdefault.htm")) //
|| ((obj instanceof FishermanInstance) && (HtmCache.getInstance().getHtm(null, "data/html/fisherman/" + npc.getId() + ".htm") == null)) //
|| ((obj instanceof WarehouseInstance) && (HtmCache.getInstance().getHtm(null, "data/html/warehouse/" + npc.getId() + ".htm") == null)) //
|| (((obj instanceof MerchantInstance) && !(obj instanceof FishermanInstance)) && (HtmCache.getInstance().getHtm(null, "data/html/merchant/" + npc.getId() + ".htm") == null)) //
@@ -144,7 +144,7 @@ public class AdminMissingHtmls implements IAdminCommandHandler
final Npc npc = (Npc) obj;
if (npc.isTalkable() && !npc.hasListener(EventType.ON_NPC_FIRST_TALK))
{
if ((npc.getHtmlPath(npc.getId(), 0, null) == "data/html/npcdefault.htm") //
if ((npc.getHtmlPath(npc.getId(), 0, null).equals("data/html/npcdefault.htm")) //
|| ((obj instanceof FishermanInstance) && (HtmCache.getInstance().getHtm(null, "data/html/fisherman/" + npc.getId() + ".htm") == null)) //
|| ((obj instanceof WarehouseInstance) && (HtmCache.getInstance().getHtm(null, "data/html/warehouse/" + npc.getId() + ".htm") == null)) //
|| (((obj instanceof MerchantInstance) && !(obj instanceof FishermanInstance)) && (HtmCache.getInstance().getHtm(null, "data/html/merchant/" + npc.getId() + ".htm") == null)) //

View File

@@ -61,7 +61,7 @@ public class AdminMobGroup implements IAdminCommandHandler
{
if (command.equals("admin_mobmenu"))
{
showMainPage(activeChar, command);
showMainPage(activeChar);
return true;
}
else if (command.equals("admin_mobgroup_list"))
@@ -132,15 +132,11 @@ public class AdminMobGroup implements IAdminCommandHandler
{
teleportGroup(command, activeChar);
}
showMainPage(activeChar, command);
showMainPage(activeChar);
return true;
}
/**
* @param activeChar
* @param command
*/
private void showMainPage(PlayerInstance activeChar, String command)
private void showMainPage(PlayerInstance activeChar)
{
final String filename = "mobgroup.htm";
AdminHtml.showAdminHtml(activeChar, filename);

View File

@@ -105,8 +105,8 @@ public class AdminOlympiad implements IAdminCommandHandler
final PlayerInstance player = target != null ? target.getActingPlayer() : null;
if (player != null)
{
final int val = parseInt(st, Integer.MIN_VALUE);
if (val == Integer.MIN_VALUE)
final int val = parseInt(st);
if (val == -1)
{
BuilderUtil.sendSysMessage(activeChar, "Syntax: //addolypoints <points>");
return false;
@@ -146,8 +146,8 @@ public class AdminOlympiad implements IAdminCommandHandler
final PlayerInstance player = target != null ? target.getActingPlayer() : null;
if (player != null)
{
final int val = parseInt(st, Integer.MIN_VALUE);
if (val == Integer.MIN_VALUE)
final int val = parseInt(st);
if (val == -1)
{
BuilderUtil.sendSysMessage(activeChar, "Syntax: //removeolypoints <points>");
return false;
@@ -188,8 +188,8 @@ public class AdminOlympiad implements IAdminCommandHandler
final PlayerInstance player = target != null ? target.getActingPlayer() : null;
if (player != null)
{
final int val = parseInt(st, Integer.MIN_VALUE);
if (val == Integer.MIN_VALUE)
final int val = parseInt(st);
if (val == -1)
{
BuilderUtil.sendSysMessage(activeChar, "Syntax: //setolypoints <points>");
return false;
@@ -227,7 +227,7 @@ public class AdminOlympiad implements IAdminCommandHandler
return false;
}
private int parseInt(StringTokenizer st, int defaultVal)
private int parseInt(StringTokenizer st)
{
final String token = st.nextToken();
if (!Util.isDigit(token))

View File

@@ -88,12 +88,7 @@ public class AdminPForge implements IAdminCommandHandler
}
catch (Exception e)
{
if (i > 0)
{
return true;
}
return false;
return i > 0;
}
if (opCodeLong < 0)
@@ -321,7 +316,6 @@ public class AdminPForge implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
showValuesUsage(activeChar);
return false;
}
@@ -612,7 +606,6 @@ public class AdminPForge implements IAdminCommandHandler
}
catch (Exception e)
{
e.printStackTrace();
showSendUsage(activeChar, null, null);
return false;
}

View File

@@ -50,6 +50,7 @@ public class AdminPetition implements IAdminCommandHandler
}
catch (Exception e)
{
// Managed above?
}
if (command.equals("admin_view_petitions"))

View File

@@ -81,8 +81,8 @@ public class AdminPunishment implements IAdminCommandHandler
String content = HtmCache.getInstance().getHtm(activeChar, "data/html/admin/punishment.htm");
if (content != null)
{
content = content.replaceAll("%punishments%", CommonUtil.implode(PunishmentType.values(), ";"));
content = content.replaceAll("%affects%", CommonUtil.implode(PunishmentAffect.values(), ";"));
content = content.replace("%punishments%", CommonUtil.implode(PunishmentType.values(), ";"));
content = content.replace("%affects%", CommonUtil.implode(PunishmentAffect.values(), ";"));
activeChar.sendPacket(new NpcHtmlMessage(0, 1, content));
}
else
@@ -142,10 +142,10 @@ public class AdminPunishment implements IAdminCommandHandler
}
}
content = content.replaceAll("%player_name%", name);
content = content.replaceAll("%punishments%", sb.toString());
content = content.replaceAll("%affects%", CommonUtil.implode(PunishmentAffect.values(), ";"));
content = content.replaceAll("%affect_type%", affect.name());
content = content.replace("%player_name%", name);
content = content.replace("%punishments%", sb.toString());
content = content.replace("%affects%", CommonUtil.implode(PunishmentAffect.values(), ";"));
content = content.replace("%affect_type%", affect.name());
activeChar.sendPacket(new NpcHtmlMessage(0, 1, content));
}
else
@@ -178,11 +178,11 @@ public class AdminPunishment implements IAdminCommandHandler
String content = HtmCache.getInstance().getHtm(activeChar, "data/html/admin/punishment-player.htm");
if (content != null)
{
content = content.replaceAll("%player_name%", target.getName());
content = content.replaceAll("%punishments%", CommonUtil.implode(PunishmentType.values(), ";"));
content = content.replaceAll("%acc%", target.getAccountName());
content = content.replaceAll("%char%", target.getName());
content = content.replaceAll("%ip%", target.getIPAddress());
content = content.replace("%player_name%", target.getName());
content = content.replace("%punishments%", CommonUtil.implode(PunishmentType.values(), ";"));
content = content.replace("%acc%", target.getAccountName());
content = content.replace("%char%", target.getName());
content = content.replace("%ip%", target.getIPAddress());
activeChar.sendPacket(new NpcHtmlMessage(0, 1, content));
}
else
@@ -332,6 +332,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_add %s %s %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.BAN, 0, "Banned by admin"), activeChar);
}
break;
}
case "admin_unban_char":
{
@@ -339,6 +340,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_remove %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.BAN), activeChar);
}
break;
}
case "admin_ban_acc":
{
@@ -346,6 +348,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_add %s %s %s %s %s", st.nextToken(), PunishmentAffect.ACCOUNT, PunishmentType.BAN, 0, "Banned by admin"), activeChar);
}
break;
}
case "admin_unban_acc":
{
@@ -353,6 +356,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_remove %s %s %s", st.nextToken(), PunishmentAffect.ACCOUNT, PunishmentType.BAN), activeChar);
}
break;
}
case "admin_ban_chat":
{
@@ -360,6 +364,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_add %s %s %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.CHAT_BAN, 0, "Chat banned by admin"), activeChar);
}
break;
}
case "admin_unban_chat":
{
@@ -367,6 +372,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_remove %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.CHAT_BAN), activeChar);
}
break;
}
case "admin_jail":
{
@@ -374,6 +380,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_add %s %s %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.JAIL, 0, "Jailed by admin"), activeChar);
}
break;
}
case "admin_unjail":
{
@@ -381,6 +388,7 @@ public class AdminPunishment implements IAdminCommandHandler
{
return useAdminCommand(String.format("admin_punishment_remove %s %s %s", st.nextToken(), PunishmentAffect.CHARACTER, PunishmentType.JAIL), activeChar);
}
break;
}
}
return true;

View File

@@ -377,7 +377,7 @@ public class AdminQuest implements IAdminCommandHandler
private String getUpPath(String full)
{
final int index = full.lastIndexOf("/");
final int index = full.lastIndexOf('/');
if (index == -1)
{
return "";

View File

@@ -83,7 +83,7 @@ public class AdminRepairChar implements IAdminCommandHandler
if (objId == 0)
{
con.close();
// con.close();
return;
}

View File

@@ -92,10 +92,7 @@ public class AdminRes implements IAdminCommandHandler
{
final int radius = Integer.parseInt(resParam);
World.getInstance().forEachVisibleObjectInRange(activeChar, PlayerInstance.class, radius, knownPlayer ->
{
doResurrect(knownPlayer);
});
World.getInstance().forEachVisibleObjectInRange(activeChar, PlayerInstance.class, radius, this::doResurrect);
BuilderUtil.sendSysMessage(activeChar, "Resurrected all players within a " + radius + " unit radius.");
return;

View File

@@ -38,7 +38,6 @@ public class AdminRide implements IAdminCommandHandler
"admin_ride_wolf",
"admin_unride_wolf",
};
private int _petRideId;
private static final int PURPLE_MANED_HORSE_TRANSFORMATION_ID = 106;
@@ -60,17 +59,19 @@ public class AdminRide implements IAdminCommandHandler
BuilderUtil.sendSysMessage(activeChar, "Target already have a summon.");
return false;
}
int petRideId;
if (command.startsWith("admin_ride_wyvern"))
{
_petRideId = 12621;
petRideId = 12621;
}
else if (command.startsWith("admin_ride_strider"))
{
_petRideId = 12526;
petRideId = 12526;
}
else if (command.startsWith("admin_ride_wolf"))
{
_petRideId = 16041;
petRideId = 16041;
}
else if (command.startsWith("admin_ride_horse")) // handled using transformation
{
@@ -104,7 +105,7 @@ public class AdminRide implements IAdminCommandHandler
return false;
}
player.mount(_petRideId, 0, false);
player.mount(petRideId, 0, false);
return false;
}

View File

@@ -38,7 +38,7 @@ import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
*/
public class AdminServerInfo implements IAdminCommandHandler
{
private static final SimpleDateFormat fmt = new SimpleDateFormat("hh:mm a");
private static final SimpleDateFormat SDF = new SimpleDateFormat("hh:mm a");
private static final String[] ADMIN_COMMANDS =
{
@@ -51,7 +51,7 @@ public class AdminServerInfo implements IAdminCommandHandler
if (command.equals("admin_serverinfo"))
{
final NpcHtmlMessage html = new NpcHtmlMessage();
final Runtime RunTime = Runtime.getRuntime();
final Runtime runTime = Runtime.getRuntime();
final int mb = 1024 * 1024;
html.setHtml(HtmCache.getInstance().getHtm(activeChar, "data/html/admin/serverinfo.htm"));
@@ -61,14 +61,14 @@ public class AdminServerInfo implements IAdminCommandHandler
html.replace("%gameTime%", GameTimeController.getInstance().getGameHour() + ":" + GameTimeController.getInstance().getGameMinute());
html.replace("%dayNight%", GameTimeController.getInstance().isNight() ? "Night" : "Day");
html.replace("%geodata%", Config.PATHFINDING ? "Enabled" : "Disabled");
html.replace("%serverTime%", fmt.format(new Date(System.currentTimeMillis())));
html.replace("%serverTime%", SDF.format(new Date(System.currentTimeMillis())));
html.replace("%serverUpTime%", getServerUpTime());
html.replace("%onlineAll%", getPlayersCount("ALL"));
html.replace("%offlineTrade%", getPlayersCount("OFF_TRADE"));
html.replace("%onlineGM%", getPlayersCount("GM"));
html.replace("%onlineReal%", getPlayersCount("ALL_REAL"));
html.replace("%usedMem%", (RunTime.maxMemory() / mb) - (((RunTime.maxMemory() - RunTime.totalMemory()) + RunTime.freeMemory()) / mb));
html.replace("%freeMem%", ((RunTime.maxMemory() - RunTime.totalMemory()) + RunTime.freeMemory()) / mb);
html.replace("%usedMem%", (runTime.maxMemory() / mb) - (((runTime.maxMemory() - runTime.totalMemory()) + runTime.freeMemory()) / mb));
html.replace("%freeMem%", ((runTime.maxMemory() - runTime.totalMemory()) + runTime.freeMemory()) / mb);
html.replace("%totalMem%", Runtime.getRuntime().maxMemory() / 1048576);
activeChar.sendPacket(html);
}

View File

@@ -37,7 +37,6 @@ import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.QuestList;
/**
* TODO: Rework and cleanup.
* @author Korvin, Zoey76
*/
public class AdminShowQuests implements IAdminCommandHandler
@@ -95,13 +94,10 @@ public class AdminShowQuests implements IAdminCommandHandler
val[0] = "name";
val[1] = cmdParams[2];
}
if (cmdParams.length > 3)
if ((cmdParams.length > 3) && cmdParams[3].equals("custom"))
{
if (cmdParams[3].equals("custom"))
{
val[0] = "custom";
val[1] = cmdParams[2];
}
val[0] = "custom";
val[1] = cmdParams[2];
}
}
}

View File

@@ -295,8 +295,7 @@ public class AdminSpawn implements IAdminCommandHandler
final StringTokenizer st = new StringTokenizer(command, " ");
try
{
@SuppressWarnings("unused")
final String cmd = st.nextToken();
st.nextToken();
final String id = st.nextToken();
final String x = st.nextToken();
final String y = st.nextToken();

View File

@@ -360,18 +360,18 @@ public class AdminTeleport implements IAdminCommandHandler
player.teleToLocation(MapRegionManager.getInstance().getMapRegionByName(regionName).getSpawnLoc(), true, null);
}
private void teleportTo(PlayerInstance activeChar, String Coords)
private void teleportTo(PlayerInstance activeChar, String coords)
{
try
{
final StringTokenizer st = new StringTokenizer(Coords);
final StringTokenizer st = new StringTokenizer(coords);
final int x = Integer.parseInt(st.nextToken());
final int y = Integer.parseInt(st.nextToken());
final int z = Integer.parseInt(st.nextToken());
activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
activeChar.teleToLocation(x, y, z, null);
BuilderUtil.sendSysMessage(activeChar, "You have been teleported to " + Coords);
BuilderUtil.sendSysMessage(activeChar, "You have been teleported to " + coords);
}
catch (NoSuchElementException nsee)
{
@@ -404,7 +404,7 @@ public class AdminTeleport implements IAdminCommandHandler
activeChar.sendPacket(adminReply);
}
private void teleportCharacter(PlayerInstance activeChar, String Cords)
private void teleportCharacter(PlayerInstance activeChar, String coords)
{
final WorldObject target = activeChar.getTarget();
PlayerInstance player = null;
@@ -426,7 +426,7 @@ public class AdminTeleport implements IAdminCommandHandler
{
try
{
final StringTokenizer st = new StringTokenizer(Cords);
final StringTokenizer st = new StringTokenizer(coords);
final String x1 = st.nextToken();
final int x = Integer.parseInt(x1);
final String y1 = st.nextToken();

View File

@@ -16,7 +16,6 @@
*/
package handlers.admincommandhandlers;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import org.l2jmobius.commons.concurrent.ThreadPool;
@@ -57,20 +56,9 @@ public class AdminTest implements IAdminCommandHandler
final StringTokenizer st = new StringTokenizer(command);
st.nextToken();
final int id = Integer.parseInt(st.nextToken());
if (command.startsWith("admin_skill_test"))
{
adminTestSkill(activeChar, id, true);
}
else
{
adminTestSkill(activeChar, id, false);
}
adminTestSkill(activeChar, id, command.startsWith("admin_skill_test"));
}
catch (NumberFormatException e)
{
BuilderUtil.sendSysMessage(activeChar, "Command format is //skill_test <ID>");
}
catch (NoSuchElementException nsee)
catch (Exception e)
{
BuilderUtil.sendSysMessage(activeChar, "Command format is //skill_test <ID>");
}
@@ -96,17 +84,17 @@ public class AdminTest implements IAdminCommandHandler
caster = (Creature) target;
}
final Skill _skill = SkillData.getInstance().getSkill(id, 1);
if (_skill != null)
final Skill skill = SkillData.getInstance().getSkill(id, 1);
if (skill != null)
{
caster.setTarget(activeChar);
if (msu)
{
caster.broadcastPacket(new MagicSkillUse(caster, activeChar, id, 1, _skill.getHitTime(), _skill.getReuseDelay()));
caster.broadcastPacket(new MagicSkillUse(caster, activeChar, id, 1, skill.getHitTime(), skill.getReuseDelay()));
}
else
{
caster.doCast(_skill);
caster.doCast(skill);
}
}
}

View File

@@ -1,75 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* 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.logging.Logger;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil;
/**
* This class handles following admin commands:
* <ul>
* <li>admin_unblockip</li>
* </ul>
* @version $Revision: 1.3.2.6.2.4 $ $Date: 2005/04/11 10:06:06 $
*/
public class AdminUnblockIp implements IAdminCommandHandler
{
private static final Logger LOGGER = Logger.getLogger(AdminUnblockIp.class.getName());
private static final String[] ADMIN_COMMANDS =
{
"admin_unblockip"
};
@Override
public boolean useAdminCommand(String command, PlayerInstance activeChar)
{
if (command.startsWith("admin_unblockip "))
{
try
{
final String ipAddress = command.substring(16);
if (unblockIp(ipAddress, activeChar))
{
BuilderUtil.sendSysMessage(activeChar, "Removed IP " + ipAddress + " from blocklist!");
}
}
catch (StringIndexOutOfBoundsException e)
{
BuilderUtil.sendSysMessage(activeChar, "Usage: //unblockip <ip>");
}
}
return true;
}
@Override
public String[] getAdminCommandList()
{
return ADMIN_COMMANDS;
}
private boolean unblockIp(String ipAddress, PlayerInstance activeChar)
{
// LoginServerThread.getInstance().unBlockip(ipAddress);
LOGGER.warning("IP removed by GM " + activeChar.getName());
return true;
}
}

View File

@@ -65,7 +65,8 @@ import ai.AbstractNpcAI;
*/
public class AdminZones extends AbstractNpcAI implements IAdminCommandHandler
{
private static final Logger LOGGER = Logger.getLogger(AdminPathNode.class.getName());
private static final Logger LOGGER = Logger.getLogger(AdminZones.class.getName());
private final Map<Integer, ZoneNodeHolder> _zones = new ConcurrentHashMap<>();
private static final String[] COMMANDS =
@@ -73,10 +74,6 @@ public class AdminZones extends AbstractNpcAI implements IAdminCommandHandler
"admin_zones",
};
public AdminZones()
{
}
@Override
public boolean useAdminCommand(String command, PlayerInstance activeChar)
{

View File

@@ -44,9 +44,9 @@ public class ChatLink implements IBypassHandler
{
val = Integer.parseInt(command.substring(5));
}
catch (Exception ioobe)
catch (Exception e)
{
// Handled above.
}
final Npc npc = (Npc) target;

View File

@@ -217,13 +217,10 @@ public class NpcViewMod implements IBypassHandler
{
final long minTimeFromMillis = tu.convert(npcSpawn.getRespawnMinDelay(), TimeUnit.MILLISECONDS);
final long maxTimeFromMillis = tu.convert(npcSpawn.getRespawnMaxDelay(), TimeUnit.MILLISECONDS);
if ((TimeUnit.MILLISECONDS.convert(minTimeFromMillis, tu) == npcSpawn.getRespawnMinDelay()) && (TimeUnit.MILLISECONDS.convert(maxTimeFromMillis, tu) == npcSpawn.getRespawnMaxDelay()))
if ((TimeUnit.MILLISECONDS.convert(minTimeFromMillis, tu) == npcSpawn.getRespawnMinDelay()) && (TimeUnit.MILLISECONDS.convert(maxTimeFromMillis, tu) == npcSpawn.getRespawnMaxDelay()) && (min > minTimeFromMillis))
{
if (min > minTimeFromMillis)
{
min = minTimeFromMillis;
timeUnit = tu;
}
min = minTimeFromMillis;
timeUnit = tu;
}
}
final long minRespawnDelay = timeUnit.convert(npcSpawn.getRespawnMinDelay(), TimeUnit.MILLISECONDS);
@@ -574,10 +571,10 @@ public class NpcViewMod implements IBypassHandler
LOGGER.warning(NpcViewMod.class.getSimpleName() + ": The html file data/html/mods/NpcView/DropList.htm could not be found.");
return;
}
html = html.replaceAll("%name%", npc.getName());
html = html.replaceAll("%dropListButtons%", getDropListButtons(npc));
html = html.replaceAll("%pages%", pagesSb.toString());
html = html.replaceAll("%items%", bodySb.toString() + limitReachedMsg);
html = html.replace("%name%", npc.getName());
html = html.replace("%dropListButtons%", getDropListButtons(npc));
html = html.replace("%pages%", pagesSb.toString());
html = html.replace("%items%", bodySb.toString() + limitReachedMsg);
Util.sendCBHtml(player, html);
}
}

View File

@@ -63,7 +63,7 @@ public class QuestLink implements IBypassHandler
}
else
{
final int questNameEnd = quest.indexOf(" ");
final int questNameEnd = quest.indexOf(' ');
if (questNameEnd == -1)
{
showQuestWindow(player, (Npc) target, quest);
@@ -133,7 +133,7 @@ public class QuestLink implements IBypassHandler
final NSLocalisation nsl = ns.getLocalisation(player.getLang());
if (nsl != null)
{
localisation = nsl.getLocalisation(Collections.EMPTY_LIST);
localisation = nsl.getLocalisation(Collections.emptyList());
}
}
}
@@ -153,7 +153,7 @@ public class QuestLink implements IBypassHandler
final NSLocalisation nsl = ns.getLocalisation(player.getLang());
if (nsl != null)
{
localisation = nsl.getLocalisation(Collections.EMPTY_LIST);
localisation = nsl.getLocalisation(Collections.emptyList());
}
}
}
@@ -178,7 +178,7 @@ public class QuestLink implements IBypassHandler
final NSLocalisation nsl = ns.getLocalisation(player.getLang());
if (nsl != null)
{
localisation = nsl.getLocalisation(Collections.EMPTY_LIST);
localisation = nsl.getLocalisation(Collections.emptyList());
}
}
}
@@ -198,7 +198,7 @@ public class QuestLink implements IBypassHandler
final NSLocalisation nsl = ns.getLocalisation(player.getLang());
if (nsl != null)
{
localisation = nsl.getLocalisation(Collections.EMPTY_LIST);
localisation = nsl.getLocalisation(Collections.emptyList());
}
}
}
@@ -225,7 +225,7 @@ public class QuestLink implements IBypassHandler
}
// Send a Server->Client packet NpcHtmlMessage to the PlayerInstance in order to display the message of the NpcInstance
content = content.replaceAll("%objectId%", String.valueOf(npc.getObjectId()));
content = content.replace("%objectId%", String.valueOf(npc.getObjectId()));
player.sendPacket(new NpcHtmlMessage(npc.getObjectId(), content));
}
@@ -258,19 +258,12 @@ public class QuestLink implements IBypassHandler
return;
}
if (qs == null)
if ((qs == null) && (q.getId() >= 1) && (q.getId() < 20000) && (player.getAllActiveQuests().size() > 40))
{
if ((q.getId() >= 1) && (q.getId() < 20000))
{
// Too many ongoing quests.
if (player.getAllActiveQuests().size() > 40)
{
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
html.setFile(player, "data/html/fullquest.html");
player.sendPacket(html);
return;
}
}
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
html.setFile(player, "data/html/fullquest.html");
player.sendPacket(html);
return;
}
q.notifyTalk(npc, player);
@@ -283,7 +276,7 @@ public class QuestLink implements IBypassHandler
// Send a Server->Client packet NpcHtmlMessage to the PlayerInstance in order to display the message of the NpcInstance
if (content != null)
{
content = content.replaceAll("%objectId%", String.valueOf(npc.getObjectId()));
content = content.replace("%objectId%", String.valueOf(npc.getObjectId()));
player.sendPacket(new NpcHtmlMessage(npc.getObjectId(), content));
}

View File

@@ -40,7 +40,7 @@ public class VoiceCommand implements IBypassHandler
{
final String vc;
final String vparams;
final int endOfCommand = command.indexOf(" ", 7);
final int endOfCommand = command.indexOf(' ', 7);
if (endOfCommand > 0)
{
vc = command.substring(7, endOfCommand).trim();

View File

@@ -45,7 +45,7 @@ public class ChatGeneral implements IChatHandler
@Override
public void handleChat(ChatType type, PlayerInstance activeChar, String params, String text)
{
boolean vcd_used = false;
boolean vcdUsed = false;
if (text.startsWith("."))
{
final StringTokenizer st = new StringTokenizer(text);
@@ -65,15 +65,15 @@ public class ChatGeneral implements IChatHandler
if (vch != null)
{
vch.useVoicedCommand(command, activeChar, params);
vcd_used = true;
vcdUsed = true;
}
else
{
vcd_used = false;
vcdUsed = false;
}
}
if (!vcd_used)
if (!vcdUsed)
{
if (activeChar.isChatBanned() && Config.BAN_CHAT_CHANNELS.contains(type))
{

View File

@@ -64,7 +64,7 @@ public class ChatShout implements IChatHandler
final int region = MapRegionManager.getInstance().getMapRegionLocId(activeChar);
for (PlayerInstance player : World.getInstance().getPlayers())
{
if ((region == MapRegionManager.getInstance().getMapRegionLocId(player)) && !BlockList.isBlocked(player, activeChar) && (player.getInstanceId() == activeChar.getInstanceId()) && !BlockList.isBlocked(player, activeChar))
if ((region == MapRegionManager.getInstance().getMapRegionLocId(player)) && !BlockList.isBlocked(player, activeChar) && (player.getInstanceId() == activeChar.getInstanceId()) && !BlockList.isBlocked(activeChar, player))
{
if (Config.FACTION_SYSTEM_ENABLED)
{

View File

@@ -72,7 +72,6 @@ public class ChatWorld implements IChatHandler
else if (Config.JAIL_DISABLE_CHAT && activeChar.isJailed() && !activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS))
{
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
return;
}
else if (activeChar.getWorldChatUsed() >= activeChar.getWorldChatPoints())
{

View File

@@ -234,7 +234,6 @@ public class ClanBoard implements IWriteBoardHandler
html.append("\" back=\"l2ui_ch3.prev1_down\" fore=\"l2ui_ch3.prev1\" width=16 height=16 ></td>");
}
i = 0;
int nbp = ClanTable.getInstance().getClanCount() / 8;
if ((nbp * 8) != ClanTable.getInstance().getClanCount())
{

View File

@@ -91,7 +91,8 @@ public class DropSearchBoard implements IParseBoardHandler
private final Map<Integer, List<CBDropHolder>> DROP_INDEX_CACHE = new HashMap<>();
// nonsupport items
private final Set<Integer> BLOCK_ID = new HashSet<>();
private static final Set<Integer> BLOCK_ID = new HashSet<>();
static
{
BLOCK_ID.add(Inventory.ADENA_ID);
}

View File

@@ -69,16 +69,16 @@ public class FavoriteBoard implements IParseBoardHandler
{
while (rs.next())
{
String link = list.replaceAll("%fav_bypass%", rs.getString("favBypass"));
link = link.replaceAll("%fav_title%", rs.getString("favTitle"));
String link = list.replace("%fav_bypass%", rs.getString("favBypass"));
link = link.replace("%fav_title%", rs.getString("favTitle"));
final SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
link = link.replaceAll("%fav_add_date%", date.format(rs.getTimestamp("favAddDate")));
link = link.replaceAll("%fav_id%", String.valueOf(rs.getInt("favId")));
link = link.replace("%fav_add_date%", date.format(rs.getTimestamp("favAddDate")));
link = link.replace("%fav_id%", String.valueOf(rs.getInt("favId")));
sb.append(link);
}
}
String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/favorite.html");
html = html.replaceAll("%fav_list%", sb.toString());
html = html.replace("%fav_list%", sb.toString());
CommunityBoardHandler.separateAndSend(html, player);
}
catch (Exception e)
@@ -116,7 +116,7 @@ public class FavoriteBoard implements IParseBoardHandler
}
else if (command.startsWith("_bbsdelfav_"))
{
final String favId = command.replaceAll("_bbsdelfav_", "");
final String favId = command.replace("_bbsdelfav_", "");
if (!Util.isDigit(favId))
{
LOG.warning(FavoriteBoard.class.getSimpleName() + ": Couldn't delete favorite link, " + favId + " it's not a valid ID!");

View File

@@ -57,10 +57,6 @@ public class FriendsBoard implements IParseBoardHandler
final String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/friends_block_list.html");
CommunityBoardHandler.separateAndSend(html, player);
}
else
{
}
return true;
}

View File

@@ -131,9 +131,9 @@ public class HomeBoard implements IParseBoardHandler
returnHtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/" + customPath + "home.html");
if (!Config.CUSTOM_CB_ENABLED)
{
returnHtml = returnHtml.replaceAll("%fav_count%", Integer.toString(getFavoriteCount(player)));
returnHtml = returnHtml.replaceAll("%region_count%", Integer.toString(getRegionCount(player)));
returnHtml = returnHtml.replaceAll("%clan_count%", Integer.toString(ClanTable.getInstance().getClanCount()));
returnHtml = returnHtml.replace("%fav_count%", Integer.toString(getFavoriteCount(player)));
returnHtml = returnHtml.replace("%region_count%", Integer.toString(getRegionCount(player)));
returnHtml = returnHtml.replace("%clan_count%", Integer.toString(ClanTable.getInstance().getClanCount()));
}
}
else if (command.startsWith("_bbstop;"))
@@ -184,10 +184,7 @@ public class HomeBoard implements IParseBoardHandler
player.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, player, true);
player.setInstanceById(0);
player.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0);
ThreadPool.schedule(() ->
{
player.enableAllSkills();
}, 3000);
ThreadPool.schedule(player::enableAllSkills, 3000);
}
}
else if (command.startsWith("_bbsbuff"))

View File

@@ -61,7 +61,7 @@ public class RegionBoard implements IWriteBoardHandler
{
final Castle castle = CastleManager.getInstance().getCastleById(i + 1);
final Clan clan = ClanTable.getInstance().getClan(castle.getOwnerId());
String link = list.replaceAll("%region_id%", String.valueOf(i));
String link = list.replace("%region_id%", String.valueOf(i));
link = link.replace("%region_name%", String.valueOf(REGIONS[i]));
link = link.replace("%region_owning_clan%", (clan != null ? clan.getName() : "NPC"));
link = link.replace("%region_owning_clan_alliance%", ((clan != null) && (clan.getAllyName() != null) ? clan.getAllyName() : ""));

View File

@@ -40,11 +40,7 @@ public class LoginMonthDailyMissionHandler extends AbstractDailyMissionHandler
public boolean isAvailable(PlayerInstance player)
{
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
if ((entry != null) && (entry.getStatus() == DailyMissionStatus.AVAILABLE))
{
return true;
}
return false;
return (entry != null) && (entry.getStatus() == DailyMissionStatus.AVAILABLE);
}
@Override

View File

@@ -42,11 +42,7 @@ public class LoginWeekendDailyMissionHandler extends AbstractDailyMissionHandler
public boolean isAvailable(PlayerInstance player)
{
final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false);
if ((entry != null) && (entry.getStatus() == DailyMissionStatus.AVAILABLE))
{
return true;
}
return false;
return (entry != null) && (entry.getStatus() == DailyMissionStatus.AVAILABLE);
}
@Override

View File

@@ -16,7 +16,7 @@
*/
package handlers.effecthandlers;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -33,7 +33,7 @@ import org.l2jmobius.gameserver.model.stats.TraitType;
*/
public class AttackTrait extends AbstractEffect
{
private final Map<TraitType, Float> _attackTraits = new HashMap<>();
private final Map<TraitType, Float> _attackTraits = new EnumMap<>(TraitType.class);
public AttackTrait(StatsSet params)
{

View File

@@ -51,12 +51,9 @@ public class CallParty extends AbstractEffect
for (PlayerInstance partyMember : party.getMembers())
{
if (CallPc.checkSummonTargetStatus(partyMember, effector.getActingPlayer()))
if (CallPc.checkSummonTargetStatus(partyMember, effector.getActingPlayer()) && (effector != partyMember))
{
if (effector != partyMember)
{
partyMember.teleToLocation(effector.getLocation(), true);
}
partyMember.teleToLocation(effector.getLocation(), true);
}
}
}

View File

@@ -59,12 +59,9 @@ public class ChameleonRest extends AbstractEffect
return false;
}
if (effected.isPlayer())
if (effected.isPlayer() && !effected.getActingPlayer().isSitting())
{
if (!effected.getActingPlayer().isSitting())
{
return false;
}
return false;
}
final double manaDam = _power * getTicksMultiplier();

View File

@@ -16,7 +16,7 @@
*/
package handlers.effecthandlers;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -33,7 +33,7 @@ import org.l2jmobius.gameserver.model.stats.TraitType;
*/
public class DefenceTrait extends AbstractEffect
{
private final Map<TraitType, Float> _defenceTraits = new HashMap<>();
private final Map<TraitType, Float> _defenceTraits = new EnumMap<>(TraitType.class);
public DefenceTrait(StatsSet params)
{

View File

@@ -17,7 +17,7 @@
package handlers.effecthandlers;
import java.util.Collections;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import org.l2jmobius.gameserver.model.StatsSet;
@@ -42,7 +42,7 @@ public class DispelBySlot extends AbstractEffect
_dispel = params.getString("dispel");
if ((_dispel != null) && !_dispel.isEmpty())
{
_dispelAbnormals = new HashMap<>();
_dispelAbnormals = new EnumMap<>(AbnormalType.class);
for (String ngtStack : _dispel.split(";"))
{
final String[] ngt = ngtStack.split(",");

View File

@@ -55,13 +55,10 @@ public class FakeDeath extends AbstractEffect
}
final double manaDam = _power * getTicksMultiplier();
if (manaDam > effected.getCurrentMp())
if ((manaDam > effected.getCurrentMp()) && skill.isToggle())
{
if (skill.isToggle())
{
effected.sendPacket(SystemMessageId.YOUR_SKILL_WAS_DEACTIVATED_DUE_TO_LACK_OF_MP);
return false;
}
effected.sendPacket(SystemMessageId.YOUR_SKILL_WAS_DEACTIVATED_DUE_TO_LACK_OF_MP);
return false;
}
effected.reduceCurrentMp(manaDam);

View File

@@ -99,7 +99,7 @@ public class MagicalAttackMp extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
final byte shld = Formulas.calcShldUse(effector, effected);
final boolean mcrit = _critical ? Formulas.calcCrit(skill.getMagicCriticalRate(), effector, effected, skill) : false;
final boolean mcrit = _critical && Formulas.calcCrit(skill.getMagicCriticalRate(), effector, effected, skill);
final double damage = Formulas.calcManaDam(effector, effected, skill, _power, shld, sps, bss, mcrit, _criticalLimit);
final double mp = Math.min(effected.getCurrentMp(), damage);

View File

@@ -16,7 +16,7 @@
*/
package handlers.effecthandlers;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import org.l2jmobius.Config;
@@ -45,7 +45,7 @@ public class PhysicalAttackWeaponBonus extends AbstractEffect
private final boolean _overHit;
private final double _pDefMod;
private final Map<WeaponType, Double> _weaponBonus = new HashMap<>();
private final Map<WeaponType, Double> _weaponBonus = new EnumMap<>(WeaponType.class);
public PhysicalAttackWeaponBonus(StatsSet params)
{

View File

@@ -72,31 +72,22 @@ public class Relax extends AbstractEffect
return false;
}
if (effected.isPlayer())
if (effected.isPlayer() && !effected.getActingPlayer().isSitting())
{
if (!effected.getActingPlayer().isSitting())
{
return false;
}
return false;
}
if ((effected.getCurrentHp() + 1) > effected.getMaxRecoverableHp())
if (((effected.getCurrentHp() + 1) > effected.getMaxRecoverableHp()) && skill.isToggle())
{
if (skill.isToggle())
{
effected.sendPacket(SystemMessageId.THAT_SKILL_HAS_BEEN_DE_ACTIVATED_AS_HP_WAS_FULLY_RECOVERED);
return false;
}
effected.sendPacket(SystemMessageId.THAT_SKILL_HAS_BEEN_DE_ACTIVATED_AS_HP_WAS_FULLY_RECOVERED);
return false;
}
final double manaDam = _power * getTicksMultiplier();
if (manaDam > effected.getCurrentMp())
if ((manaDam > effected.getCurrentMp()) && skill.isToggle())
{
if (skill.isToggle())
{
effected.sendPacket(SystemMessageId.YOUR_SKILL_WAS_DEACTIVATED_DUE_TO_LACK_OF_MP);
return false;
}
effected.sendPacket(SystemMessageId.YOUR_SKILL_WAS_DEACTIVATED_DUE_TO_LACK_OF_MP);
return false;
}
effected.reduceCurrentMp(manaDam);

View File

@@ -59,7 +59,7 @@ public class Resurrection extends AbstractEffect
final PlayerInstance player = effected.getActingPlayer();
if (!player.isResurrectionBlocked() && !player.isReviveRequested())
{
effected.getActingPlayer().reviveRequest(effector.getActingPlayer(), skill, effected.isPet(), _power);
effected.getActingPlayer().reviveRequest(effector.getActingPlayer(), effected.isPet(), _power);
}
}
else

View File

@@ -87,12 +87,12 @@ public class ResurrectionSpecial extends AbstractEffect
if (effected.isPlayer())
{
effected.getActingPlayer().reviveRequest(caster, skill, false, _power);
effected.getActingPlayer().reviveRequest(caster, false, _power);
}
else if (effected.isPet())
{
final PetInstance pet = (PetInstance) effected;
effected.getActingPlayer().reviveRequest(pet.getActingPlayer(), skill, true, _power);
effected.getActingPlayer().reviveRequest(pet.getActingPlayer(), true, _power);
}
}
}

View File

@@ -37,11 +37,6 @@ public class SendSystemMessageToClan extends AbstractEffect
{
final int id = params.getInt("id", 0);
_message = new SystemMessage(id);
if (_message == null)
{
throw new IllegalArgumentException("SystemMessageId not found for id: " + id);
}
}
@Override

View File

@@ -16,7 +16,7 @@
*/
package handlers.effecthandlers;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -32,7 +32,7 @@ import org.l2jmobius.gameserver.model.stats.Stats;
*/
public class ServitorShare extends AbstractEffect
{
private final Map<Stats, Float> _sharedStats = new HashMap<>();
private final Map<Stats, Float> _sharedStats = new EnumMap<>(Stats.class);
public ServitorShare(StatsSet params)
{

View File

@@ -173,7 +173,7 @@ public class SummonNpc extends AbstractEffect
// If only single instance is allowed, delete previous NPCs.
if (_singleInstance)
{
player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(npc -> npc.deleteMe());
player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe);
}
final Npc npc = spawn.doSpawn(_isSummonSpawn);

View File

@@ -51,12 +51,9 @@ public class TargetMeProbability extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayable())
if (effected.isPlayable() && (effected.getTarget() != effector))
{
if (effected.getTarget() != effector)
{
effected.setTarget(effector);
}
effected.setTarget(effector);
}
}
}

View File

@@ -131,12 +131,9 @@ public class TriggerSkillByAttack extends AbstractEffect
return;
}
if (_allowWeapons > 0)
if ((_allowWeapons > 0) && ((event.getAttacker().getActiveWeaponItem() == null) || ((event.getAttacker().getActiveWeaponItem().getItemType().mask() & _allowWeapons) == 0)))
{
if ((event.getAttacker().getActiveWeaponItem() == null) || ((event.getAttacker().getActiveWeaponItem().getItemType().mask() & _allowWeapons) == 0))
{
return;
}
return;
}
final Skill triggerSkill = _skill.getSkill();

View File

@@ -54,7 +54,7 @@ public class TwoHandedBluntBonus extends AbstractEffect
@Override
public void pump(Creature effected, Skill skill)
{
if (((_weaponTypeCondition == null) || _weaponTypeCondition.test(effected, effected, skill)) && ((_slotCondition == null) || _slotCondition.test(effected, effected, skill)))
if (_weaponTypeCondition.test(effected, effected, skill) && _slotCondition.test(effected, effected, skill))
{
switch (_pAtkmode)
{

View File

@@ -54,7 +54,7 @@ public class TwoHandedSwordBonus extends AbstractEffect
@Override
public void pump(Creature effected, Skill skill)
{
if (((_weaponTypeCondition == null) || _weaponTypeCondition.test(effected, effected, skill)) && ((_slotCondition == null) || _slotCondition.test(effected, effected, skill)))
if (_weaponTypeCondition.test(effected, effected, skill) && _slotCondition.test(effected, effected, skill))
{
switch (_pAtkmode)
{

View File

@@ -72,12 +72,9 @@ public class BeastSoulShot implements IItemHandler
final List<ItemSkillHolder> skills = item.getItem().getSkills(ItemSkillType.NORMAL);
short shotConsumption = 0;
if (pet != null)
if ((pet != null) && !pet.isChargedShot(ShotType.SOULSHOTS))
{
if (!pet.isChargedShot(ShotType.SOULSHOTS))
{
shotConsumption += pet.getSoulShotsPerHit();
}
shotConsumption += pet.getSoulShotsPerHit();
}
for (Summon servitors : aliveServitor)
@@ -115,21 +112,18 @@ public class BeastSoulShot implements IItemHandler
}
// Pet uses the power of spirit.
if (pet != null)
if ((pet != null) && !pet.isChargedShot(ShotType.SOULSHOTS))
{
if (!pet.isChargedShot(ShotType.SOULSHOTS))
activeOwner.sendMessage("Your pet uses soulshot."); // activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
pet.chargeShot(ShotType.SOULSHOTS);
// Visual effect change if player has equipped Ruby lvl 3 or higher
if (activeOwner.getActiveRubyJewel() != null)
{
activeOwner.sendMessage("Your pet uses soulshot."); // activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
pet.chargeShot(ShotType.SOULSHOTS);
// Visual effect change if player has equipped Ruby lvl 3 or higher
if (activeOwner.getActiveRubyJewel() != null)
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600);
}
else
{
skills.forEach(holder -> Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, holder.getSkillId(), holder.getSkillLevel(), 0, 0), 600));
}
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600);
}
else
{
skills.forEach(holder -> Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, holder.getSkillId(), holder.getSkillLevel(), 0, 0), 600));
}
}

View File

@@ -74,12 +74,9 @@ public class BeastSpiritShot implements IItemHandler
final ShotType shotType = isBlessed ? ShotType.BLESSED_SPIRITSHOTS : ShotType.SPIRITSHOTS;
short shotConsumption = 0;
if (pet != null)
if ((pet != null) && !pet.isChargedShot(shotType))
{
if (!pet.isChargedShot(shotType))
{
shotConsumption += pet.getSpiritShotsPerHit();
}
shotConsumption += pet.getSpiritShotsPerHit();
}
for (Summon servitors : aliveServitor)
@@ -117,21 +114,18 @@ public class BeastSpiritShot implements IItemHandler
}
// Pet uses the power of spirit.
if (pet != null)
if ((pet != null) && !pet.isChargedShot(shotType))
{
if (!pet.isChargedShot(shotType))
activeOwner.sendMessage(isBlessed ? "Your pet uses blessed spiritshot." : "Your pet uses spiritshot."); // activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
pet.chargeShot(shotType);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if (activeOwner.getActiveShappireJewel() != null)
{
activeOwner.sendMessage(isBlessed ? "Your pet uses blessed spiritshot." : "Your pet uses spiritshot."); // activeOwner.sendPacket(SystemMessageId.YOUR_PET_USES_SPIRITSHOT);
pet.chargeShot(shotType);
// Visual effect change if player has equipped Sapphire lvl 3 or higher
if (activeOwner.getActiveShappireJewel() != null)
{
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600);
}
else
{
skills.forEach(holder -> Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, holder.getSkillId(), holder.getSkillLevel(), 0, 0), 600));
}
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600);
}
else
{
skills.forEach(holder -> Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, holder.getSkillId(), holder.getSkillLevel(), 0, 0), 600));
}
}

View File

@@ -89,13 +89,13 @@ public class BlessedSoulShots implements IItemHandler
}
// Consume Soul shots if player has enough of them
int SSCount = weaponItem.getSoulShotCount();
int ssCount = weaponItem.getSoulShotCount();
if ((weaponItem.getReducedSoulShot() > 0) && (Rnd.get(100) < weaponItem.getReducedSoulShotChance()))
{
SSCount = weaponItem.getReducedSoulShot();
ssCount = weaponItem.getReducedSoulShot();
}
if (!player.destroyItemWithoutTrace("Consume", item.getObjectId(), SSCount, null, false))
if (!player.destroyItemWithoutTrace("Consume", item.getObjectId(), ssCount, null, false))
{
if (!player.disableAutoShot(itemId))
{

View File

@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.l2jmobius.Config;
import org.l2jmobius.commons.util.Rnd;
@@ -200,9 +201,9 @@ public class ExtractableItems implements IItemHandler
player.sendPacket(playerIU);
}
for (ItemInstance i : extractedItems.keySet())
for (Entry<ItemInstance, Long> entry : extractedItems.entrySet())
{
sendMessage(player, i, extractedItems.get(i));
sendMessage(player, entry.getKey(), entry.getValue());
}
return true;

View File

@@ -149,13 +149,10 @@ public class ItemSkillsTemplate implements IItemHandler
}
}
if (successfulUse && checkConsume(item, hasConsumeSkill))
if (successfulUse && checkConsume(item, hasConsumeSkill) && !playable.destroyItem("Consume", item.getObjectId(), 1, playable, false))
{
if (!playable.destroyItem("Consume", item.getObjectId(), 1, playable, false))
{
playable.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT_2);
return false;
}
playable.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT_2);
return false;
}
return successfulUse;
@@ -197,56 +194,53 @@ public class ItemSkillsTemplate implements IItemHandler
{
final long remainingTime = (skill != null) ? playable.getSkillRemainingReuseTime(skill.getReuseHashCode()) : playable.getItemRemainingReuseTime(item.getObjectId());
final boolean isAvailable = remainingTime <= 0;
if (playable.isPlayer())
if (playable.isPlayer() && !isAvailable)
{
if (!isAvailable)
final int hours = (int) (remainingTime / 3600000);
final int minutes = (int) (remainingTime % 3600000) / 60000;
final int seconds = (int) ((remainingTime / 1000) % 60);
SystemMessage sm = null;
if (hours > 0)
{
final int hours = (int) (remainingTime / 3600000);
final int minutes = (int) (remainingTime % 3600000) / 60000;
final int seconds = (int) ((remainingTime / 1000) % 60);
SystemMessage sm = null;
if (hours > 0)
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_HOUR_S_S3_MINUTE_S_AND_S4_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_HOUR_S_S3_MINUTE_S_AND_S4_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm.addItemName(item);
}
else
{
sm.addSkillName(skill);
}
sm.addInt(hours);
sm.addInt(minutes);
}
else if (minutes > 0)
{
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_MINUTE_S_S3_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm.addItemName(item);
}
else
{
sm.addSkillName(skill);
}
sm.addInt(minutes);
sm.addItemName(item);
}
else
{
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm.addItemName(item);
}
else
{
sm.addSkillName(skill);
}
sm.addSkillName(skill);
}
sm.addInt(seconds);
playable.sendPacket(sm);
sm.addInt(hours);
sm.addInt(minutes);
}
else if (minutes > 0)
{
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_MINUTE_S_S3_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm.addItemName(item);
}
else
{
sm.addSkillName(skill);
}
sm.addInt(minutes);
}
else
{
sm = new SystemMessage(SystemMessageId.THERE_ARE_S2_SECOND_S_REMAINING_IN_S1_S_RE_USE_TIME);
if ((skill == null) || skill.isStatic())
{
sm.addItemName(item);
}
else
{
sm.addSkillName(skill);
}
}
sm.addInt(seconds);
playable.sendPacket(sm);
}
return isAvailable;
}

View File

@@ -47,10 +47,6 @@ public class MercTicket extends AbstractNpcAI implements IItemHandler
{
private final Map<Integer, ItemInstance> _items = new ConcurrentHashMap<>();
public MercTicket()
{
}
@Override
public boolean useItem(Playable playable, ItemInstance item, boolean forceUse)
{

View File

@@ -80,14 +80,11 @@ public class PetFood implements IItemHandler
if (player.isMounted())
{
final List<Integer> foodIds = PetDataTable.getInstance().getPetData(player.getMountNpcId()).getFood();
if (foodIds.contains(item.getId()))
if (foodIds.contains(item.getId()) && player.destroyItem("Consume", item.getObjectId(), 1, null, false))
{
if (player.destroyItem("Consume", item.getObjectId(), 1, null, false))
{
player.broadcastPacket(new MagicSkillUse(player, player, skillId, skillLevel, 0, 0));
skill.applyEffects(player, player);
return true;
}
player.broadcastPacket(new MagicSkillUse(player, player, skillId, skillLevel, 0, 0));
skill.applyEffects(player, player);
return true;
}
}
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS);

View File

@@ -86,13 +86,13 @@ public class SoulShots implements IItemHandler
}
// Consume Soul shots if player has enough of them
int SSCount = weaponItem.getSoulShotCount();
int ssCount = weaponItem.getSoulShotCount();
if ((weaponItem.getReducedSoulShot() > 0) && (Rnd.get(100) < weaponItem.getReducedSoulShotChance()))
{
SSCount = weaponItem.getReducedSoulShot();
ssCount = weaponItem.getReducedSoulShot();
}
if (!player.destroyItemWithoutTrace("Consume", item.getObjectId(), SSCount, null, false))
if (!player.destroyItemWithoutTrace("Consume", item.getObjectId(), ssCount, null, false))
{
if (!player.disableAutoShot(itemId))
{

View File

@@ -47,12 +47,9 @@ public class AirshipAction implements IPlayerActionHandler
}
case 2: // Cancel Control
{
if (player.getAirShip().isCaptain(player))
if (player.getAirShip().isCaptain(player) && player.getAirShip().setCaptain(null))
{
if (player.getAirShip().setCaptain(null))
{
player.broadcastUserInfo();
}
player.broadcastUserInfo();
}
break;
}

View File

@@ -32,10 +32,7 @@ public class ServitorAttack implements IPlayerActionHandler
{
if (player.hasServitors())
{
player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s ->
{
s.doAttack(player.getTarget());
});
player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget()));
}
else
{

View File

@@ -82,7 +82,7 @@ public class BanHandler implements IPunishmentHandler
@Override
public void onEnd(PunishmentTask task)
{
// Should not do anything.
}
/**

View File

@@ -169,8 +169,8 @@ public class JailHandler implements IPunishmentHandler
String content = HtmCache.getInstance().getHtm(player, "data/html/jail_in.htm");
if (content != null)
{
content = content.replaceAll("%reason%", task != null ? task.getReason() : "");
content = content.replaceAll("%punishedBy%", task != null ? task.getPunishedBy() : "");
content = content.replace("%reason%", task != null ? task.getReason() : "");
content = content.replace("%punishedBy%", task != null ? task.getPunishedBy() : "");
msg.setHtml(content);
}
else

View File

@@ -41,11 +41,6 @@ public class CanSummonCubicSkillCondition implements ISkillCondition
}
final PlayerInstance player = caster.getActingPlayer();
if (player.inObserverMode() || player.isMounted() || player.isSpawnProtected() || player.isTeleportProtected())
{
return false;
}
return true;
return !player.inObserverMode() && !player.isMounted() && !player.isSpawnProtected() && !player.isTeleportProtected();
}
}

Some files were not shown because too many files have changed in this diff Show More