diff --git a/src/main/java/client/AbstractCharacterListener.java b/src/main/java/client/AbstractCharacterListener.java index 407a1d3461..eaa3da7227 100644 --- a/src/main/java/client/AbstractCharacterListener.java +++ b/src/main/java/client/AbstractCharacterListener.java @@ -24,8 +24,8 @@ package client; * @author Ronan */ public interface AbstractCharacterListener { - public void onHpChanged(int oldHp); - public void onHpmpPoolUpdate(); - public void onStatUpdate(); - public void onAnnounceStatPoolUpdate(); + void onHpChanged(int oldHp); + void onHpmpPoolUpdate(); + void onStatUpdate(); + void onAnnounceStatPoolUpdate(); } diff --git a/src/main/java/client/AbstractMapleCharacterObject.java b/src/main/java/client/AbstractMapleCharacterObject.java index e46ebb3bc4..cda953e31a 100644 --- a/src/main/java/client/AbstractMapleCharacterObject.java +++ b/src/main/java/client/AbstractMapleCharacterObject.java @@ -21,10 +21,6 @@ package client; import config.YamlConfig; import constants.game.GameConstants; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.locks.Lock; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; @@ -35,6 +31,11 @@ import net.server.audit.locks.factory.MonitoredWriteLockFactory; import server.maps.AbstractAnimatedMapleMapObject; import server.maps.MapleMap; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.locks.Lock; + /** * * @author RonanLana @@ -315,7 +316,7 @@ public abstract class AbstractMapleCharacterObject extends AbstractAnimatedMaple short newHp = (short) (hpMpPool >> 48); short newMp = (short) (hpMpPool >> 32); short newMaxHp = (short) (hpMpPool >> 16); - short newMaxMp = (short) (hpMpPool.shortValue()); + short newMaxMp = hpMpPool.shortValue(); if (newMaxHp != Short.MIN_VALUE) { if (newMaxHp < 50) { @@ -354,7 +355,7 @@ public abstract class AbstractMapleCharacterObject extends AbstractAnimatedMaple short newStr = (short) (strDexIntLuk >> 48); short newDex = (short) (strDexIntLuk >> 32); short newInt = (short) (strDexIntLuk >> 16); - short newLuk = (short) (strDexIntLuk.shortValue()); + short newLuk = strDexIntLuk.shortValue(); if (newStr >= 4) { setStr(newStr); @@ -386,7 +387,7 @@ public abstract class AbstractMapleCharacterObject extends AbstractAnimatedMaple if (newSp != null) { short sp = (short) (newSp >> 16); - short skillbook = (short) (newSp.shortValue()); + short skillbook = newSp.shortValue(); setRemainingSp(sp, skillbook); statUpdates.put(MapleStat.AVAILABLESP, remainingSp[skillbook]); diff --git a/src/main/java/client/BuddyList.java b/src/main/java/client/BuddyList.java index 823b617c93..2fac16afc2 100644 --- a/src/main/java/client/BuddyList.java +++ b/src/main/java/client/BuddyList.java @@ -21,20 +21,16 @@ */ package client; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.Collection; -import java.util.Collections; -import java.util.Deque; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.Map; import net.server.PlayerStorage; import tools.DatabaseConnection; import tools.MaplePacketCreator; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + public class BuddyList { public enum BuddyOperation { ADDED, DELETED @@ -53,7 +49,7 @@ public class BuddyList { public boolean contains(int characterId) { synchronized(buddies) { - return buddies.containsKey(Integer.valueOf(characterId)); + return buddies.containsKey(characterId); } } @@ -80,7 +76,7 @@ public class BuddyList { public BuddylistEntry get(int characterId) { synchronized(buddies) { - return buddies.get(Integer.valueOf(characterId)); + return buddies.get(characterId); } } @@ -97,13 +93,13 @@ public class BuddyList { public void put(BuddylistEntry entry) { synchronized(buddies) { - buddies.put(Integer.valueOf(entry.getCharacterId()), entry); + buddies.put(entry.getCharacterId(), entry); } } public void remove(int characterId) { synchronized(buddies) { - buddies.remove(Integer.valueOf(characterId)); + buddies.remove(characterId); } } @@ -121,7 +117,7 @@ public class BuddyList { public int[] getBuddyIds() { synchronized(buddies) { - int buddyIds[] = new int[buddies.size()]; + int[] buddyIds = new int[buddies.size()]; int i = 0; for (BuddylistEntry ble : buddies.values()) { buddyIds[i++] = ble.getCharacterId(); diff --git a/src/main/java/client/MapleClient.java b/src/main/java/client/MapleClient.java index 7195a4133b..c4342a0a3d 100644 --- a/src/main/java/client/MapleClient.java +++ b/src/main/java/client/MapleClient.java @@ -602,7 +602,7 @@ public class MapleClient { long ipAddress = 0; for (int i = 0; i < 4; i++) { int quad = Integer.parseInt(quads[i]); - ipAddress += (long) (quad % 256) * (long) Math.pow(256, (double) (4 - i)); + ipAddress += (long) (quad % 256) * (long) Math.pow(256, 4 - i); } return ipAddress; } @@ -807,12 +807,7 @@ public class MapleClient { public final void disconnect(final boolean shutdown, final boolean cashshop) { if (canDisconnect()) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - disconnectInternal(shutdown, cashshop); - } - }); + ThreadManager.getInstance().newTask(() -> disconnectInternal(shutdown, cashshop)); } } diff --git a/src/main/java/client/MapleFamily.java b/src/main/java/client/MapleFamily.java index bae907b941..8f1b008feb 100644 --- a/src/main/java/client/MapleFamily.java +++ b/src/main/java/client/MapleFamily.java @@ -21,6 +21,13 @@ */ package client; +import net.server.Server; +import net.server.world.World; +import tools.DatabaseConnection; +import tools.FilePrinter; +import tools.MaplePacketCreator; +import tools.Pair; + import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -32,13 +39,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import net.server.Server; -import net.server.world.World; -import tools.DatabaseConnection; -import tools.FilePrinter; -import tools.MaplePacketCreator; -import tools.Pair; - /** * * @author Jay Estrella - Mr.Trash :3 @@ -49,7 +49,7 @@ public class MapleFamily { private static final AtomicInteger familyIDCounter = new AtomicInteger(); private final int id, world; - private final Map members = new ConcurrentHashMap(); + private final Map members = new ConcurrentHashMap<>(); private MapleFamilyEntry leader; private String name; private String preceptsMessage = ""; @@ -184,7 +184,7 @@ public class MapleFamily { public static void loadAllFamilies() { try(Connection con = DatabaseConnection.getConnection()) { - List, MapleFamilyEntry>> unmatchedJuniors = new ArrayList, MapleFamilyEntry>>(200); // < familyEntry> + List, MapleFamilyEntry>> unmatchedJuniors = new ArrayList<>(200); // < familyEntry> try(PreparedStatement psEntries = con.prepareStatement("SELECT * FROM family_character")) { ResultSet rsEntries = psEntries.executeQuery(); while(rsEntries.next()) { // can be optimized @@ -236,7 +236,7 @@ public class MapleFamily { if(senior != null) { familyEntry.setSenior(family.getEntryByID(seniorid), false); } else { - if(seniorid > 0) unmatchedJuniors.add(new Pair, MapleFamilyEntry>(new Pair(world, seniorid), familyEntry)); + if(seniorid > 0) unmatchedJuniors.add(new Pair<>(new Pair<>(world, seniorid), familyEntry)); } familyEntry.setReputation(reputation); familyEntry.setTodaysRep(todaysRep); diff --git a/src/main/java/client/MapleQuestStatus.java b/src/main/java/client/MapleQuestStatus.java index e7ce741d57..3a24cb1063 100644 --- a/src/main/java/client/MapleQuestStatus.java +++ b/src/main/java/client/MapleQuestStatus.java @@ -21,14 +21,11 @@ */ package client; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import server.quest.MapleQuest; import tools.StringUtil; +import java.util.*; + /** * * @author Matze @@ -61,8 +58,8 @@ public class MapleQuestStatus { private short questID; private Status status; //private boolean updated; //maybe this can be of use for someone? - private final Map progress = new LinkedHashMap(); - private final List medalProgress = new LinkedList(); + private final Map progress = new LinkedHashMap<>(); + private final List medalProgress = new LinkedList<>(); private int npc; private long completionTime, expirationTime; private int forfeited = 0, completed = 0; diff --git a/src/main/java/client/SkillFactory.java b/src/main/java/client/SkillFactory.java index 7b542c0e2d..5f337e2d36 100644 --- a/src/main/java/client/SkillFactory.java +++ b/src/main/java/client/SkillFactory.java @@ -21,78 +21,22 @@ */ package client; -import constants.skills.Aran; -import constants.skills.Archer; -import constants.skills.Assassin; -import constants.skills.Bandit; -import constants.skills.Beginner; -import constants.skills.Bishop; -import constants.skills.BlazeWizard; -import constants.skills.Bowmaster; -import constants.skills.Buccaneer; -import constants.skills.ChiefBandit; -import constants.skills.Cleric; -import constants.skills.Corsair; -import constants.skills.Crossbowman; -import constants.skills.Crusader; -import constants.skills.DarkKnight; -import constants.skills.DawnWarrior; -import constants.skills.DragonKnight; -import constants.skills.Evan; -import constants.skills.FPArchMage; -import constants.skills.FPMage; -import constants.skills.FPWizard; -import constants.skills.Fighter; -import constants.skills.GM; -import constants.skills.Gunslinger; -import constants.skills.Hermit; -import constants.skills.Hero; -import constants.skills.Hunter; -import constants.skills.ILArchMage; -import constants.skills.ILMage; -import constants.skills.ILWizard; -import constants.skills.Legend; -import constants.skills.Magician; -import constants.skills.Marauder; -import constants.skills.Marksman; -import constants.skills.NightLord; -import constants.skills.NightWalker; -import constants.skills.Noblesse; -import constants.skills.Page; -import constants.skills.Paladin; -import constants.skills.Pirate; -import constants.skills.Priest; -import constants.skills.Ranger; -import constants.skills.Rogue; -import constants.skills.Shadower; -import constants.skills.Sniper; -import constants.skills.Spearman; -import constants.skills.SuperGM; -import constants.skills.Warrior; -import constants.skills.ThunderBreaker; -import constants.skills.WhiteKnight; -import constants.skills.WindArcher; +import constants.skills.*; +import provider.*; +import server.MapleStatEffect; +import server.life.Element; import java.io.File; import java.util.HashMap; import java.util.Map; -import provider.MapleData; -import provider.MapleDataDirectoryEntry; -import provider.MapleDataFileEntry; -import provider.MapleDataProvider; -import provider.MapleDataProviderFactory; -import provider.MapleDataTool; -import server.MapleStatEffect; -import server.life.Element; - public class SkillFactory { private static Map skills = new HashMap<>(); private static MapleDataProvider datasource = MapleDataProviderFactory.getDataProvider(MapleDataProviderFactory.fileInWZPath("Skill.wz")); public static Skill getSkill(int id) { if (!skills.isEmpty()) { - return skills.get(Integer.valueOf(id)); + return skills.get(id); } return null; } @@ -389,10 +333,10 @@ public class SkillFactory { public static String getSkillName(int skillid) { MapleData data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "String.wz")).getData("Skill.img"); StringBuilder skill = new StringBuilder(); - skill.append(String.valueOf(skillid)); + skill.append(skillid); if (skill.length() == 4) { skill.delete(0, 4); - skill.append("000").append(String.valueOf(skillid)); + skill.append("000").append(skillid); } if (data.getChildByPath(skill.toString()) != null) { for (MapleData skilldata : data.getChildByPath(skill.toString()).getChildren()) { diff --git a/src/main/java/client/autoban/AutobanManager.java b/src/main/java/client/autoban/AutobanManager.java index 0318dd88c3..e348fcfa29 100644 --- a/src/main/java/client/autoban/AutobanManager.java +++ b/src/main/java/client/autoban/AutobanManager.java @@ -7,11 +7,12 @@ package client.autoban; import client.MapleCharacter; import config.YamlConfig; -import java.util.HashMap; -import java.util.Map; import net.server.Server; import tools.FilePrinter; +import java.util.HashMap; +import java.util.Map; + /** * * @author kevintjuh93 @@ -23,9 +24,9 @@ public class AutobanManager { private int misses = 0; private int lastmisses = 0; private int samemisscount = 0; - private long spam[] = new long[20]; - private int timestamp[] = new int[20]; - private byte timestampcounter[] = new byte[20]; + private long[] spam = new long[20]; + private int[] timestamp = new int[20]; + private byte[] timestampcounter = new byte[20]; public AutobanManager(MapleCharacter chr) { diff --git a/src/main/java/client/command/Command.java b/src/main/java/client/command/Command.java index fac0158ce1..fcbe89eb7c 100644 --- a/src/main/java/client/command/Command.java +++ b/src/main/java/client/command/Command.java @@ -48,7 +48,7 @@ public abstract class Command { this.rank = rank; } - protected String joinStringFrom(String arr[], int start) { + protected String joinStringFrom(String[] arr, int start) { StringBuilder builder = new StringBuilder(); for (int i = start; i < arr.length; i++) { builder.append(arr[i]); diff --git a/src/main/java/client/command/CommandsExecutor.java b/src/main/java/client/command/CommandsExecutor.java index e30c90adc2..a439dbbcb0 100644 --- a/src/main/java/client/command/CommandsExecutor.java +++ b/src/main/java/client/command/CommandsExecutor.java @@ -23,6 +23,7 @@ */ package client.command; +import client.MapleClient; import client.command.commands.gm0.*; import client.command.commands.gm1.*; import client.command.commands.gm2.*; @@ -30,18 +31,11 @@ import client.command.commands.gm3.*; import client.command.commands.gm4.*; import client.command.commands.gm5.*; import client.command.commands.gm6.*; - -import client.MapleClient; - import tools.FilePrinter; import tools.Pair; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Arrays; -import java.util.Calendar; -import java.util.HashMap; +import java.util.*; public class CommandsExecutor { @@ -181,7 +175,7 @@ public class CommandsExecutor { } private void registerLv0Commands(){ - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand(new String[]{"help", "commands"}, HelpCommand.class); addCommand("droplimit", DropLimitCommand.class); @@ -217,7 +211,7 @@ public class CommandsExecutor { private void registerLv1Commands() { - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("whatdropsfrom", 1, WhatDropsFromCommand.class); addCommand("whodrops", 1, WhoDropsCommand.class); @@ -229,7 +223,7 @@ public class CommandsExecutor { private void registerLv2Commands(){ - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("recharge", 2, RechargeCommand.class); addCommand("whereami", 2, WhereaMiCommand.class); @@ -272,7 +266,7 @@ public class CommandsExecutor { } private void registerLv3Commands() { - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("debuff", 3, DebuffCommand.class); addCommand("fly", 3, FlyCommand.class); @@ -338,7 +332,7 @@ public class CommandsExecutor { } private void registerLv4Commands(){ - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("servermessage", 4, ServerMessageCommand.class); addCommand("proitem", 4, ProItemCommand.class); @@ -369,7 +363,7 @@ public class CommandsExecutor { } private void registerLv5Commands(){ - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("debug", 5, DebugCommand.class); addCommand("set", 5, SetCommand.class); @@ -382,7 +376,7 @@ public class CommandsExecutor { } private void registerLv6Commands(){ - levelCommandsCursor = new Pair<>((List) new ArrayList(), (List) new ArrayList()); + levelCommandsCursor = new Pair<>(new ArrayList(), new ArrayList()); addCommand("setgmlevel", 6, SetGmLevelCommand.class); addCommand("warpworld", 6, WarpWorldCommand.class); diff --git a/src/main/java/client/command/commands/gm1/GotoCommand.java b/src/main/java/client/command/commands/gm1/GotoCommand.java index eb4f9a2b5e..3568bd8250 100644 --- a/src/main/java/client/command/commands/gm1/GotoCommand.java +++ b/src/main/java/client/command/commands/gm1/GotoCommand.java @@ -29,7 +29,10 @@ import client.command.Command; import constants.game.GameConstants; import server.maps.*; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; public class GotoCommand extends Command { @@ -65,13 +68,7 @@ public class GotoCommand extends Command { public static String GOTO_AREAS_INFO = ""; private static void sortGotoEntries(List> listEntries) { - Collections.sort(listEntries, new Comparator>() { - @Override - public int compare(Entry e1, Entry e2) - { - return e1.getValue().compareTo(e2.getValue()); - } - }); + listEntries.sort((e1, e2) -> e1.getValue().compareTo(e2.getValue())); } @Override diff --git a/src/main/java/client/command/commands/gm2/IdCommand.java b/src/main/java/client/command/commands/gm2/IdCommand.java index 991e0d5b32..d37d84f4a8 100644 --- a/src/main/java/client/command/commands/gm2/IdCommand.java +++ b/src/main/java/client/command/commands/gm2/IdCommand.java @@ -38,34 +38,31 @@ public class IdCommand extends Command { } final String queryItem = joinStringArr(Arrays.copyOfRange(params, 1, params.length), " "); player.yellowMessage("Querying for entry... May take some time... Please try to refine your search."); - Runnable queryRunnable = new Runnable() { - @Override - public void run() { - try { - populateIdMap(params[0].toLowerCase()); + Runnable queryRunnable = () -> { + try { + populateIdMap(params[0].toLowerCase()); - Map resultList = fetchResults(itemMap.get(params[0]), queryItem); - StringBuilder sb = new StringBuilder(); - - if (resultList.size() > 0) { - int count = 0; - for (Map.Entry entry: resultList.entrySet()) { - sb.append(String.format("Id for %s is: #b%s#k", entry.getKey(), entry.getValue()) + "\r\n"); - if (++count > 100) { - break; - } + Map resultList = fetchResults(itemMap.get(params[0]), queryItem); + StringBuilder sb = new StringBuilder(); + + if (resultList.size() > 0) { + int count = 0; + for (Map.Entry entry: resultList.entrySet()) { + sb.append(String.format("Id for %s is: #b%s#k", entry.getKey(), entry.getValue()) + "\r\n"); + if (++count > 100) { + break; } - sb.append(String.format("Results found: #r%d#k | Returned: #b%d#k/100 | Refine search query to improve time.", resultList.size(), count) + "\r\n"); - - player.getAbstractPlayerInteraction().npcTalk(9010000, sb.toString()); - } else { - player.yellowMessage(String.format("Id not found for item: %s, of type: %s.", queryItem, params[0])); } - } catch (IdTypeNotSupportedException e) { - player.yellowMessage("Your query type is not supported."); - } catch (IOException e) { - player.yellowMessage("Error reading file, please contact your administrator."); + sb.append(String.format("Results found: #r%d#k | Returned: #b%d#k/100 | Refine search query to improve time.", resultList.size(), count) + "\r\n"); + + player.getAbstractPlayerInteraction().npcTalk(9010000, sb.toString()); + } else { + player.yellowMessage(String.format("Id not found for item: %s, of type: %s.", queryItem, params[0])); } + } catch (IdTypeNotSupportedException e) { + player.yellowMessage("Your query type is not supported."); + } catch (IOException e) { + player.yellowMessage("Error reading file, please contact your administrator."); } }; @@ -76,7 +73,7 @@ public class IdCommand extends Command { if (!handbookDirectory.containsKey(type)) { throw new IdTypeNotSupportedException(); } - itemMap.put(type, new HashMap()); + itemMap.put(type, new HashMap<>()); BufferedReader reader = new BufferedReader(new FileReader(handbookDirectory.get(type))); String line; while ((line = reader.readLine()) != null) { diff --git a/src/main/java/client/command/commands/gm2/JailCommand.java b/src/main/java/client/command/commands/gm2/JailCommand.java index 9cb25ff515..55c5ae82f7 100644 --- a/src/main/java/client/command/commands/gm2/JailCommand.java +++ b/src/main/java/client/command/commands/gm2/JailCommand.java @@ -44,7 +44,7 @@ public class JailCommand extends Command { int minutesJailed = 5; if (params.length >= 2) { - minutesJailed = Integer.valueOf(params[1]); + minutesJailed = Integer.parseInt(params[1]); if (minutesJailed <= 0) { player.yellowMessage("Syntax: !jail []"); return; diff --git a/src/main/java/client/command/commands/gm3/BanCommand.java b/src/main/java/client/command/commands/gm3/BanCommand.java index e47c549cae..21080eb3a8 100644 --- a/src/main/java/client/command/commands/gm3/BanCommand.java +++ b/src/main/java/client/command/commands/gm3/BanCommand.java @@ -75,12 +75,7 @@ public class BanCommand extends Command { target.yellowMessage("Reason: " + reason); c.announce(MaplePacketCreator.getGMEffect(4, (byte) 0)); final MapleCharacter rip = target; - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - rip.getClient().disconnect(false, false); - } - }, 5000); //5 Seconds + TimerManager.getInstance().schedule(() -> rip.getClient().disconnect(false, false), 5000); //5 Seconds Server.getInstance().broadcastMessage(c.getWorld(), MaplePacketCreator.serverNotice(6, "[RIP]: " + ign + " has been banned.")); } else if (MapleCharacter.ban(ign, reason, false)) { c.announce(MaplePacketCreator.getGMEffect(4, (byte) 0)); diff --git a/src/main/java/client/command/commands/gm3/CheckDmgCommand.java b/src/main/java/client/command/commands/gm3/CheckDmgCommand.java index 4545443dc5..1f7ad273c5 100644 --- a/src/main/java/client/command/commands/gm3/CheckDmgCommand.java +++ b/src/main/java/client/command/commands/gm3/CheckDmgCommand.java @@ -41,7 +41,7 @@ public class CheckDmgCommand extends Command { int maxBase = victim.calculateMaxBaseDamage(victim.getTotalWatk()); Integer watkBuff = victim.getBuffedValue(MapleBuffStat.WATK); Integer matkBuff = victim.getBuffedValue(MapleBuffStat.MATK); - Integer blessing = victim.getSkillLevel(10000000 * player.getJobType() + 12); + int blessing = victim.getSkillLevel(10000000 * player.getJobType() + 12); if (watkBuff == null) watkBuff = 0; if (matkBuff == null) matkBuff = 0; diff --git a/src/main/java/client/command/commands/gm3/HpMpCommand.java b/src/main/java/client/command/commands/gm3/HpMpCommand.java index b23502f58a..c67a199faa 100644 --- a/src/main/java/client/command/commands/gm3/HpMpCommand.java +++ b/src/main/java/client/command/commands/gm3/HpMpCommand.java @@ -40,9 +40,9 @@ public class HpMpCommand extends Command { if (params.length == 2) { victim = c.getWorldServer().getPlayerStorage().getCharacterByName(params[0]); - statUpdate = Integer.valueOf(params[1]); + statUpdate = Integer.parseInt(params[1]); } else if (params.length == 1) { - statUpdate = Integer.valueOf(params[0]); + statUpdate = Integer.parseInt(params[0]); } else { player.yellowMessage("Syntax: !hpmp [] "); } diff --git a/src/main/java/client/command/commands/gm3/MaxHpMpCommand.java b/src/main/java/client/command/commands/gm3/MaxHpMpCommand.java index 9b9a0e116e..7100dcbf84 100644 --- a/src/main/java/client/command/commands/gm3/MaxHpMpCommand.java +++ b/src/main/java/client/command/commands/gm3/MaxHpMpCommand.java @@ -40,9 +40,9 @@ public class MaxHpMpCommand extends Command { int statUpdate = 1; if (params.length >= 2) { victim = c.getWorldServer().getPlayerStorage().getCharacterByName(params[0]); - statUpdate = Integer.valueOf(params[1]); + statUpdate = Integer.parseInt(params[1]); } else if (params.length == 1) { - statUpdate = Integer.valueOf(params[0]); + statUpdate = Integer.parseInt(params[0]); } else { player.yellowMessage("Syntax: !maxhpmp [] "); } diff --git a/src/main/java/client/command/commands/gm3/SeedCommand.java b/src/main/java/client/command/commands/gm3/SeedCommand.java index 463f9bb9d4..9824d4518a 100644 --- a/src/main/java/client/command/commands/gm3/SeedCommand.java +++ b/src/main/java/client/command/commands/gm3/SeedCommand.java @@ -42,8 +42,8 @@ public class SeedCommand extends Command { player.yellowMessage("This command can only be used in HPQ."); return; } - Point pos[] = {new Point(7, -207), new Point(179, -447), new Point(-3, -687), new Point(-357, -687), new Point(-538, -447), new Point(-359, -207)}; - int seed[] = {4001097, 4001096, 4001095, 4001100, 4001099, 4001098}; + Point[] pos = {new Point(7, -207), new Point(179, -447), new Point(-3, -687), new Point(-357, -687), new Point(-538, -447), new Point(-359, -207)}; + int[] seed = {4001097, 4001096, 4001095, 4001100, 4001099, 4001098}; for (int i = 0; i < pos.length; i++) { Item item = new Item(seed[i], (byte) 0, (short) 1); player.getMap().spawnItemDrop(player, player, item, pos[i], false, true); diff --git a/src/main/java/client/command/commands/gm5/DebugCommand.java b/src/main/java/client/command/commands/gm5/DebugCommand.java index a0ee8f1247..3ed04fab77 100644 --- a/src/main/java/client/command/commands/gm5/DebugCommand.java +++ b/src/main/java/client/command/commands/gm5/DebugCommand.java @@ -40,7 +40,7 @@ import java.util.Arrays; import java.util.List; public class DebugCommand extends Command { - private final static String debugTypes[] = {"monster", "packet", "portal", "spawnpoint", "pos", "map", "mobsp", "event", "areas", "reactors", "servercoupons", "playercoupons", "timer", "marriage", "buff", ""}; + private final static String[] debugTypes = {"monster", "packet", "portal", "spawnpoint", "pos", "map", "mobsp", "event", "areas", "reactors", "servercoupons", "playercoupons", "timer", "marriage", "buff", ""}; { setDescription("Show a debug message."); diff --git a/src/main/java/client/command/commands/gm6/ServerAddChannelCommand.java b/src/main/java/client/command/commands/gm6/ServerAddChannelCommand.java index 22352dc9c4..4e5cbcca39 100644 --- a/src/main/java/client/command/commands/gm6/ServerAddChannelCommand.java +++ b/src/main/java/client/command/commands/gm6/ServerAddChannelCommand.java @@ -45,23 +45,20 @@ public class ServerAddChannelCommand extends Command { final int worldid = Integer.parseInt(params[0]); - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - int chid = Server.getInstance().addChannel(worldid); - if(player.isLoggedinWorld()) { - if(chid >= 0) { - player.dropMessage(5, "NEW Channel " + chid + " successfully deployed on world " + worldid + "."); + ThreadManager.getInstance().newTask(() -> { + int chid = Server.getInstance().addChannel(worldid); + if(player.isLoggedinWorld()) { + if(chid >= 0) { + player.dropMessage(5, "NEW Channel " + chid + " successfully deployed on world " + worldid + "."); + } else { + if(chid == -3) { + player.dropMessage(5, "Invalid worldid detected. Channel creation aborted."); + } else if(chid == -2) { + player.dropMessage(5, "Reached channel limit on worldid " + worldid + ". Channel creation aborted."); + } else if(chid == -1) { + player.dropMessage(5, "Error detected when loading the 'world.ini' file. Channel creation aborted."); } else { - if(chid == -3) { - player.dropMessage(5, "Invalid worldid detected. Channel creation aborted."); - } else if(chid == -2) { - player.dropMessage(5, "Reached channel limit on worldid " + worldid + ". Channel creation aborted."); - } else if(chid == -1) { - player.dropMessage(5, "Error detected when loading the 'world.ini' file. Channel creation aborted."); - } else { - player.dropMessage(5, "NEW Channel failed to be deployed. Check if the needed port is already in use or other limitations are taking place."); - } + player.dropMessage(5, "NEW Channel failed to be deployed. Check if the needed port is already in use or other limitations are taking place."); } } } diff --git a/src/main/java/client/command/commands/gm6/ServerAddWorldCommand.java b/src/main/java/client/command/commands/gm6/ServerAddWorldCommand.java index 4da883ac2b..2fa045c58c 100644 --- a/src/main/java/client/command/commands/gm6/ServerAddWorldCommand.java +++ b/src/main/java/client/command/commands/gm6/ServerAddWorldCommand.java @@ -38,20 +38,17 @@ public class ServerAddWorldCommand extends Command { public void execute(MapleClient c, String[] params) { final MapleCharacter player = c.getPlayer(); - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - int wid = Server.getInstance().addWorld(); + ThreadManager.getInstance().newTask(() -> { + int wid = Server.getInstance().addWorld(); - if(player.isLoggedinWorld()) { - if(wid >= 0) { - player.dropMessage(5, "NEW World " + wid + " successfully deployed."); + if(player.isLoggedinWorld()) { + if(wid >= 0) { + player.dropMessage(5, "NEW World " + wid + " successfully deployed."); + } else { + if(wid == -2) { + player.dropMessage(5, "Error detected when loading the 'world.ini' file. World creation aborted."); } else { - if(wid == -2) { - player.dropMessage(5, "Error detected when loading the 'world.ini' file. World creation aborted."); - } else { - player.dropMessage(5, "NEW World failed to be deployed. Check if needed ports are already in use or maximum world count has been reached."); - } + player.dropMessage(5, "NEW World failed to be deployed. Check if needed ports are already in use or maximum world count has been reached."); } } } diff --git a/src/main/java/client/command/commands/gm6/ServerRemoveChannelCommand.java b/src/main/java/client/command/commands/gm6/ServerRemoveChannelCommand.java index 43adaec014..fa2b379d07 100644 --- a/src/main/java/client/command/commands/gm6/ServerRemoveChannelCommand.java +++ b/src/main/java/client/command/commands/gm6/ServerRemoveChannelCommand.java @@ -44,17 +44,14 @@ public class ServerRemoveChannelCommand extends Command { } final int worldId = Integer.parseInt(params[0]); - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - if(Server.getInstance().removeChannel(worldId)) { - if(player.isLoggedinWorld()) { - player.dropMessage(5, "Successfully removed a channel on World " + worldId + ". Current channel count: " + Server.getInstance().getWorld(worldId).getChannelsSize() + "."); - } - } else { - if(player.isLoggedinWorld()) { - player.dropMessage(5, "Failed to remove last Channel on world " + worldId + ". Check if either that world exists or there are people currently playing there."); - } + ThreadManager.getInstance().newTask(() -> { + if(Server.getInstance().removeChannel(worldId)) { + if(player.isLoggedinWorld()) { + player.dropMessage(5, "Successfully removed a channel on World " + worldId + ". Current channel count: " + Server.getInstance().getWorld(worldId).getChannelsSize() + "."); + } + } else { + if(player.isLoggedinWorld()) { + player.dropMessage(5, "Failed to remove last Channel on world " + worldId + ". Check if either that world exists or there are people currently playing there."); } } }); diff --git a/src/main/java/client/command/commands/gm6/ServerRemoveWorldCommand.java b/src/main/java/client/command/commands/gm6/ServerRemoveWorldCommand.java index 9ff7b577ea..0692b3ed51 100644 --- a/src/main/java/client/command/commands/gm6/ServerRemoveWorldCommand.java +++ b/src/main/java/client/command/commands/gm6/ServerRemoveWorldCommand.java @@ -44,20 +44,17 @@ public class ServerRemoveWorldCommand extends Command { return; } - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - if(Server.getInstance().removeWorld()) { - if(player.isLoggedinWorld()) { - player.dropMessage(5, "Successfully removed a world. Current world count: " + Server.getInstance().getWorldsSize() + "."); - } - } else { - if(player.isLoggedinWorld()) { - if(rwid < 0) { - player.dropMessage(5, "No registered worlds to remove."); - } else { - player.dropMessage(5, "Failed to remove world " + rwid + ". Check if there are people currently playing there."); - } + ThreadManager.getInstance().newTask(() -> { + if(Server.getInstance().removeWorld()) { + if(player.isLoggedinWorld()) { + player.dropMessage(5, "Successfully removed a world. Current world count: " + Server.getInstance().getWorldsSize() + "."); + } + } else { + if(player.isLoggedinWorld()) { + if(rwid < 0) { + player.dropMessage(5, "No registered worlds to remove."); + } else { + player.dropMessage(5, "Failed to remove world " + rwid + ". Check if there are people currently playing there."); } } } diff --git a/src/main/java/client/command/commands/gm6/ShutdownCommand.java b/src/main/java/client/command/commands/gm6/ShutdownCommand.java index 1f7c96b5dc..2f4797b606 100644 --- a/src/main/java/client/command/commands/gm6/ShutdownCommand.java +++ b/src/main/java/client/command/commands/gm6/ShutdownCommand.java @@ -51,10 +51,10 @@ public class ShutdownCommand extends Command { } if (time > 1) { - int seconds = (int) (time / 1000) % 60; - int minutes = (int) ((time / (1000 * 60)) % 60); - int hours = (int) ((time / (1000 * 60 * 60)) % 24); - int days = (int) ((time / (1000 * 60 * 60 * 24))); + int seconds = (time / 1000) % 60; + int minutes = (time / (1000 * 60)) % 60; + int hours = (time / (1000 * 60 * 60)) % 24; + int days = (time / (1000 * 60 * 60 * 24)); String strTime = ""; if (days > 0) strTime += days + " days, "; diff --git a/src/main/java/client/inventory/Equip.java b/src/main/java/client/inventory/Equip.java index 91036d9287..c2a821cddc 100644 --- a/src/main/java/client/inventory/Equip.java +++ b/src/main/java/client/inventory/Equip.java @@ -25,15 +25,16 @@ import client.MapleClient; import config.YamlConfig; import constants.game.ExpTable; import constants.inventory.ItemConstants; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import server.MapleItemInformationProvider; import tools.MaplePacketCreator; import tools.Pair; import tools.Randomizer; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + public class Equip extends Item { public static enum ScrollResult { @@ -383,7 +384,7 @@ public class Equip extends Item { public Pair> gainStats(List> stats) { boolean gotSlot = false, gotVicious = false; String lvupStr = ""; - Integer statUp, maxStat = YamlConfig.config.server.MAX_EQUIPMNT_STAT; + int statUp, maxStat = YamlConfig.config.server.MAX_EQUIPMNT_STAT; for (Pair stat : stats) { switch (stat.getLeft()) { case incDEX: diff --git a/src/main/java/client/inventory/ItemFactory.java b/src/main/java/client/inventory/ItemFactory.java index 955bbb0531..e6ce4b20c9 100644 --- a/src/main/java/client/inventory/ItemFactory.java +++ b/src/main/java/client/inventory/ItemFactory.java @@ -49,7 +49,7 @@ public enum ItemFactory { private final boolean account; private static final int lockCount = 400; - private static final Lock locks[] = new Lock[lockCount]; // thanks Masterrulax for pointing out a bottleneck issue here + private static final Lock[] locks = new Lock[lockCount]; // thanks Masterrulax for pointing out a bottleneck issue here static { for (int i = 0; i < lockCount; i++) { @@ -104,7 +104,7 @@ public enum ItemFactory { equip.setWatk((short) rs.getInt("watk")); equip.setWdef((short) rs.getInt("wdef")); equip.setUpgradeSlots((byte) rs.getInt("upgradeslots")); - equip.setLevel((byte) rs.getByte("level")); + equip.setLevel(rs.getByte("level")); equip.setItemExp(rs.getInt("itemexp")); equip.setItemLevel(rs.getByte("itemlevel")); equip.setExpiration(rs.getLong("expiration")); @@ -135,7 +135,7 @@ public enum ItemFactory { try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { Integer cid = rs.getInt("characterid"); - items.add(new Pair(loadEquipFromResultSet(rs), cid)); + items.add(new Pair<>(loadEquipFromResultSet(rs), cid)); } } } @@ -295,7 +295,7 @@ public enum ItemFactory { MapleInventoryType mit = MapleInventoryType.getByType(rs.getByte("inventorytype")); if (mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) { - items.add(new Pair(loadEquipFromResultSet(rs), mit)); + items.add(new Pair<>(loadEquipFromResultSet(rs), mit)); } else { if (bundles > 0) { int petid = rs.getInt("petid"); diff --git a/src/main/java/client/inventory/MapleInventory.java b/src/main/java/client/inventory/MapleInventory.java index 705d281186..86be247466 100644 --- a/src/main/java/client/inventory/MapleInventory.java +++ b/src/main/java/client/inventory/MapleInventory.java @@ -21,28 +21,20 @@ */ package client.inventory; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map.Entry; -import java.util.Map; -import java.util.concurrent.locks.Lock; -import net.server.audit.locks.factory.MonitoredReentrantLockFactory; - -import tools.Pair; import client.MapleCharacter; import client.MapleClient; -import constants.inventory.ItemConstants; -import server.MapleItemInformationProvider; import client.inventory.manipulator.MapleInventoryManipulator; -import tools.FilePrinter; +import constants.inventory.ItemConstants; import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.factory.MonitoredReentrantLockFactory; +import server.MapleItemInformationProvider; import server.ThreadManager; +import tools.FilePrinter; +import tools.Pair; + +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.locks.Lock; /** * @@ -196,12 +188,7 @@ public class MapleInventory implements Iterable { } if (ret.size() > 1) { - Collections.sort(ret, new Comparator() { - @Override - public int compare(Item i1, Item i2) { - return i1.getPosition() - i2.getPosition(); - } - }); + ret.sort((i1, i2) -> i1.getPosition() - i2.getPosition()); } return ret; @@ -216,12 +203,7 @@ public class MapleInventory implements Iterable { } if (ret.size() > 1) { - Collections.sort(ret, new Comparator() { - @Override - public int compare(Item i1, Item i2) { - return i1.getPosition() - i2.getPosition(); - } - }); + ret.sort((i1, i2) -> i1.getPosition() - i2.getPosition()); } return ret; @@ -250,8 +232,8 @@ public class MapleInventory implements Iterable { public void move(short sSlot, short dSlot, short slotMax) { lock.lock(); try { - Item source = (Item) inventory.get(sSlot); - Item target = (Item) inventory.get(dSlot); + Item source = inventory.get(sSlot); + Item target = inventory.get(dSlot); if (source == null) { return; } @@ -334,12 +316,8 @@ public class MapleInventory implements Iterable { } if (ItemConstants.isRateCoupon(item.getItemId())) { - ThreadManager.getInstance().newTask(new Runnable() { // deadlocks with coupons rates found thanks to GabrielSin & Masterrulax - @Override - public void run() { - owner.updateCouponRates(); - } - }); + // deadlocks with coupons rates found thanks to GabrielSin & Masterrulax + ThreadManager.getInstance().newTask(() -> owner.updateCouponRates()); } return slotId; @@ -354,12 +332,7 @@ public class MapleInventory implements Iterable { } if (ItemConstants.isRateCoupon(item.getItemId())) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - owner.updateCouponRates(); - } - }); + ThreadManager.getInstance().newTask(() -> owner.updateCouponRates()); } } @@ -373,12 +346,7 @@ public class MapleInventory implements Iterable { } if (item != null && ItemConstants.isRateCoupon(item.getItemId())) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - owner.updateCouponRates(); - } - }); + ThreadManager.getInstance().newTask(() -> owner.updateCouponRates()); } } diff --git a/src/main/java/client/inventory/MaplePet.java b/src/main/java/client/inventory/MaplePet.java index 8596328df1..e2b3cb8594 100644 --- a/src/main/java/client/inventory/MaplePet.java +++ b/src/main/java/client/inventory/MaplePet.java @@ -306,7 +306,7 @@ public class MaplePet extends Item { for (LifeMovementFragment move : movement) { if (move instanceof LifeMovement) { if (move instanceof AbsoluteLifeMovement) { - this.setPos(((LifeMovement) move).getPosition()); + this.setPos(move.getPosition()); } this.setStance(((LifeMovement) move).getNewstate()); } diff --git a/src/main/java/client/inventory/PetDataFactory.java b/src/main/java/client/inventory/PetDataFactory.java index fb80aca432..2f737d9c85 100644 --- a/src/main/java/client/inventory/PetDataFactory.java +++ b/src/main/java/client/inventory/PetDataFactory.java @@ -21,25 +21,26 @@ */ package client.inventory; -import java.io.File; -import java.util.HashMap; -import java.util.Map; import provider.MapleData; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; import provider.MapleDataTool; +import java.io.File; +import java.util.HashMap; +import java.util.Map; + /** * * @author Danny (Leifde) */ public class PetDataFactory { private static MapleDataProvider dataRoot = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Item.wz")); - private static Map petCommands = new HashMap(); - private static Map petHunger = new HashMap(); + private static Map petCommands = new HashMap<>(); + private static Map petHunger = new HashMap<>(); public static PetCommand getPetCommand(int petId, int skillId) { - PetCommand ret = petCommands.get(Integer.valueOf(petId) + "" + skillId); + PetCommand ret = petCommands.get(petId + "" + skillId); if (ret != null) { return ret; } @@ -61,14 +62,14 @@ public class PetDataFactory { } public static int getHunger(int petId) { - Integer ret = petHunger.get(Integer.valueOf(petId)); + Integer ret = petHunger.get(petId); if (ret != null) { return ret; } synchronized (petHunger) { - ret = petHunger.get(Integer.valueOf(petId)); + ret = petHunger.get(petId); if (ret == null) { - ret = Integer.valueOf(MapleDataTool.getInt(dataRoot.getData("Pet/" + petId + ".img").getChildByPath("info/hungry"), 1)); + ret = MapleDataTool.getInt(dataRoot.getData("Pet/" + petId + ".img").getChildByPath("info/hungry"), 1); } return ret; } diff --git a/src/main/java/client/inventory/manipulator/MapleInventoryManipulator.java b/src/main/java/client/inventory/manipulator/MapleInventoryManipulator.java index 2a5be06bf7..5c96e090ae 100644 --- a/src/main/java/client/inventory/manipulator/MapleInventoryManipulator.java +++ b/src/main/java/client/inventory/manipulator/MapleInventoryManipulator.java @@ -24,26 +24,20 @@ package client.inventory.manipulator; import client.MapleBuffStat; import client.MapleCharacter; import client.MapleClient; -import client.inventory.Equip; -import client.inventory.Item; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.MaplePet; -import client.inventory.ModifyInventory; +import client.inventory.*; import client.newyear.NewYearCardRecord; import config.YamlConfig; import constants.inventory.ItemConstants; +import server.MapleItemInformationProvider; +import server.maps.MapleMap; +import tools.FilePrinter; +import tools.MaplePacketCreator; -import java.awt.Point; +import java.awt.*; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; -import server.MapleItemInformationProvider; -import server.maps.MapleMap; -import tools.FilePrinter; - -import tools.MaplePacketCreator; /** * @@ -91,7 +85,7 @@ public class MapleInventoryManipulator { Iterator i = existing.iterator(); while (quantity > 0) { if (i.hasNext()) { - Item eItem = (Item) i.next(); + Item eItem = i.next(); short oldQ = eItem.getQuantity(); if (oldQ < slotMax && ((eItem.getOwner().equals(owner) || owner == null) && eItem.getFlag() == flag)) { short newQ = (short) Math.min(oldQ + quantity, slotMax); @@ -202,7 +196,7 @@ public class MapleInventoryManipulator { Iterator i = existing.iterator(); while (quantity > 0) { if (i.hasNext()) { - Item eItem = (Item) i.next(); + Item eItem = i.next(); short oldQ = eItem.getQuantity(); if (oldQ < slotMax && item.getFlag() == eItem.getFlag() && item.getOwner().equals(eItem.getOwner())) { short newQ = (short) Math.min(oldQ + quantity, slotMax); diff --git a/src/main/java/client/newyear/NewYearCardRecord.java b/src/main/java/client/newyear/NewYearCardRecord.java index 2e2dca67ea..f86de1b7da 100644 --- a/src/main/java/client/newyear/NewYearCardRecord.java +++ b/src/main/java/client/newyear/NewYearCardRecord.java @@ -20,6 +20,10 @@ package client.newyear; import client.MapleCharacter; +import net.server.Server; +import server.TimerManager; +import tools.DatabaseConnection; +import tools.MaplePacketCreator; import java.sql.Connection; import java.sql.PreparedStatement; @@ -28,10 +32,6 @@ import java.sql.SQLException; import java.util.HashSet; import java.util.Set; import java.util.concurrent.ScheduledFuture; -import net.server.Server; -import server.TimerManager; -import tools.DatabaseConnection; -import tools.MaplePacketCreator; /** * @@ -244,23 +244,20 @@ public class NewYearCardRecord { public void startNewYearCardTask() { if(sendTask != null) return; - sendTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - Server server = Server.getInstance(); - - int world = server.getCharacterWorld(receiverId); - if(world == -1) { - sendTask.cancel(false); - sendTask = null; - - return; - } - - MapleCharacter target = server.getWorld(world).getPlayerStorage().getCharacterById(receiverId); - if(target != null && target.isLoggedinWorld()) { - target.announce(MaplePacketCreator.onNewYearCardRes(target, NewYearCardRecord.this, 0xC, 0)); - } + sendTask = TimerManager.getInstance().register(() -> { + Server server = Server.getInstance(); + + int world = server.getCharacterWorld(receiverId); + if(world == -1) { + sendTask.cancel(false); + sendTask = null; + + return; + } + + MapleCharacter target = server.getWorld(world).getPlayerStorage().getCharacterById(receiverId); + if(target != null && target.isLoggedinWorld()) { + target.announce(MaplePacketCreator.onNewYearCardRes(target, NewYearCardRecord.this, 0xC, 0)); } }, 1000 * 60 * 60); //1 Hour } diff --git a/src/main/java/client/processor/npc/DueyProcessor.java b/src/main/java/client/processor/npc/DueyProcessor.java index a0c71d3eaf..3d984bae8a 100644 --- a/src/main/java/client/processor/npc/DueyProcessor.java +++ b/src/main/java/client/processor/npc/DueyProcessor.java @@ -127,7 +127,7 @@ public class DueyProcessor { } private static void deletePackageFromInventoryDB(Connection con, int packageId) throws SQLException { - ItemFactory.DUEY.saveItems(new LinkedList>(), packageId, con); + ItemFactory.DUEY.saveItems(new LinkedList<>(), packageId, con); } private static void removePackageFromDB(int packageId) { diff --git a/src/main/java/client/processor/stat/AssignAPProcessor.java b/src/main/java/client/processor/stat/AssignAPProcessor.java index 3c2edb6fd8..032143883e 100644 --- a/src/main/java/client/processor/stat/AssignAPProcessor.java +++ b/src/main/java/client/processor/stat/AssignAPProcessor.java @@ -23,31 +23,21 @@ */ package client.processor.stat; -import client.MapleCharacter; -import client.MapleClient; -import client.MapleJob; -import client.MapleStat; -import client.Skill; -import client.SkillFactory; +import client.*; import client.autoban.AutobanFactory; import client.inventory.Equip; import client.inventory.Item; import client.inventory.MapleInventoryType; import config.YamlConfig; -import constants.skills.BlazeWizard; -import constants.skills.Brawler; -import constants.skills.DawnWarrior; -import constants.skills.Magician; -import constants.skills.ThunderBreaker; -import constants.skills.Warrior; +import constants.skills.*; +import tools.MaplePacketCreator; +import tools.Randomizer; +import tools.data.input.SeekableLittleEndianAccessor; + import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import server.ThreadManager; -import tools.MaplePacketCreator; -import tools.Randomizer; -import tools.data.input.SeekableLittleEndianAccessor; /** * @@ -102,9 +92,9 @@ public class AssignAPProcessor { statUpdate[2] = chr.getLuk(); statUpdate[3] = chr.getInt(); - Collections.sort(eqpStrList, Collections.reverseOrder()); - Collections.sort(eqpDexList, Collections.reverseOrder()); - Collections.sort(eqpLukList, Collections.reverseOrder()); + eqpStrList.sort(Collections.reverseOrder()); + eqpDexList.sort(Collections.reverseOrder()); + eqpLukList.sort(Collections.reverseOrder()); //Autoassigner looks up the 1st/2nd placed equips for their stats to calculate the optimal upgrade. int eqpStr = getNthHighestStat(eqpStrList, (short) 0) + getNthHighestStat(eqpStrList, (short) 1); @@ -374,7 +364,7 @@ public class AssignAPProcessor { return(statList.size() <= rank ? 0 : statList.get(rank)); } - private static int gainStatByType(MapleStat type, int[] statGain, int gain, int statUpdate[]) { + private static int gainStatByType(MapleStat type, int[] statGain, int gain, int[] statUpdate) { if(gain <= 0) return 0; int newVal = 0; diff --git a/src/main/java/client/processor/stat/AssignSPProcessor.java b/src/main/java/client/processor/stat/AssignSPProcessor.java index fc1cf37870..f6f18cfaa6 100644 --- a/src/main/java/client/processor/stat/AssignSPProcessor.java +++ b/src/main/java/client/processor/stat/AssignSPProcessor.java @@ -30,7 +30,6 @@ import client.SkillFactory; import client.autoban.AutobanFactory; import constants.game.GameConstants; import constants.skills.Aran; -import server.ThreadManager; import tools.FilePrinter; import tools.MaplePacketCreator; @@ -87,12 +86,12 @@ public class AssignSPProcessor { } if (skill.getId() == Aran.FULL_SWING) { player.changeSkillLevel(skill, (byte) (curLevel + 1), player.getMasterLevel(skill), player.getSkillExpiration(skill)); - player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_FULL_DOUBLE), (byte) player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); - player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_FULL_TRIPLE), (byte) player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); + player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_FULL_DOUBLE), player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); + player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_FULL_TRIPLE), player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); } else if (skill.getId() == Aran.OVER_SWING) { player.changeSkillLevel(skill, (byte) (curLevel + 1), player.getMasterLevel(skill), player.getSkillExpiration(skill)); - player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_OVER_DOUBLE), (byte) player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); - player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_OVER_TRIPLE), (byte) player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); + player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_OVER_DOUBLE), player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); + player.changeSkillLevel(SkillFactory.getSkill(Aran.HIDDEN_OVER_TRIPLE), player.getSkillLevel(skill), player.getMasterLevel(skill), player.getSkillExpiration(skill)); } else { player.changeSkillLevel(skill, (byte) (curLevel + 1), player.getMasterLevel(skill), player.getSkillExpiration(skill)); } diff --git a/src/main/java/constants/game/GameConstants.java b/src/main/java/constants/game/GameConstants.java index c74dcbb90c..92e2a3d44b 100644 --- a/src/main/java/constants/game/GameConstants.java +++ b/src/main/java/constants/game/GameConstants.java @@ -1,26 +1,18 @@ package constants.game; import client.MapleDisease; -import java.util.ArrayList; -import java.util.List; -import java.util.HashMap; -import java.util.Map; import client.MapleJob; import config.YamlConfig; import constants.skills.Aran; +import provider.*; +import server.maps.FieldLimit; +import server.maps.MapleMap; +import server.quest.MapleQuest; + import java.io.File; import java.text.DecimalFormat; import java.text.NumberFormat; -import java.util.Locale; -import provider.MapleData; -import provider.MapleDataDirectoryEntry; -import provider.MapleDataFileEntry; -import provider.MapleDataProvider; -import provider.MapleDataProviderFactory; -import provider.MapleDataTool; -import server.maps.MapleMap; -import server.maps.FieldLimit; -import server.quest.MapleQuest; +import java.util.*; /* * @author kevintjuh93 @@ -518,8 +510,8 @@ public class GameConstants { private static boolean isInBranchJobTree(int skillJobId, int jobId, int branchType) { int branch = (int)(Math.pow(10, branchType)); - int skillBranch = (int)(skillJobId / branch) * branch; - int jobBranch = (int)(jobId / branch) * branch; + int skillBranch = (skillJobId / branch) * branch; + int jobBranch = (jobId / branch) * branch; return skillBranch == jobBranch; } @@ -527,8 +519,8 @@ public class GameConstants { private static boolean hasDivergedBranchJobTree(int skillJobId, int jobId, int branchType) { int branch = (int)(Math.pow(10, branchType)); - int skillBranch = (int)(skillJobId / branch); - int jobBranch = (int)(jobId / branch); + int skillBranch = skillJobId / branch; + int jobBranch = jobId / branch; return skillBranch != jobBranch && skillBranch % 10 != 0; } diff --git a/src/main/java/constants/net/ServerConstants.java b/src/main/java/constants/net/ServerConstants.java index f341f45c4d..306ba287a4 100644 --- a/src/main/java/constants/net/ServerConstants.java +++ b/src/main/java/constants/net/ServerConstants.java @@ -9,7 +9,7 @@ public class ServerConstants { public static final boolean JAVA_8 = getJavaVersion() >= 8; //Max amount of times a party leader is allowed to persist on the Party Search before entry expiration (thus needing to manually restart the Party Search to be able to search for members). //Debug Variables - public static int DEBUG_VALUES[] = new int[10]; // Field designed for packet testing purposes + public static int[] DEBUG_VALUES = new int[10]; // Field designed for packet testing purposes // https://github.com/openstreetmap/josm/blob/a3a6e8a6b657cf4c5b4c64ea14d6e87be6280d65/src/org/openstreetmap/josm/tools/Utils.java#L1566-L1585 // Added by kolakcc (Familiar) diff --git a/src/main/java/constants/string/LanguageConstants.java b/src/main/java/constants/string/LanguageConstants.java index 2170961aad..666df6ff79 100644 --- a/src/main/java/constants/string/LanguageConstants.java +++ b/src/main/java/constants/string/LanguageConstants.java @@ -25,19 +25,19 @@ public class LanguageConstants { } - public static String CPQBlue[] = new String[3]; - public static String CPQError[] = new String[3]; - public static String CPQEntry[] = new String[3]; - public static String CPQFindError[] = new String[3]; - public static String CPQRed[] = new String[3]; - public static String CPQPlayerExit[] = new String[3]; - public static String CPQEntryLobby[] = new String[3]; - public static String CPQPickRoom[] = new String[3]; - public static String CPQExtendTime[] = new String[3]; - public static String CPQLeaderNotFound[] = new String[3]; - public static String CPQChallengeRoomAnswer[] = new String[3]; - public static String CPQChallengeRoomSent[] = new String[3]; - public static String CPQChallengeRoomDenied[] = new String[3]; + public static String[] CPQBlue = new String[3]; + public static String[] CPQError = new String[3]; + public static String[] CPQEntry = new String[3]; + public static String[] CPQFindError = new String[3]; + public static String[] CPQRed = new String[3]; + public static String[] CPQPlayerExit = new String[3]; + public static String[] CPQEntryLobby = new String[3]; + public static String[] CPQPickRoom = new String[3]; + public static String[] CPQExtendTime = new String[3]; + public static String[] CPQLeaderNotFound = new String[3]; + public static String[] CPQChallengeRoomAnswer = new String[3]; + public static String[] CPQChallengeRoomSent = new String[3]; + public static String[] CPQChallengeRoomDenied = new String[3]; static { int lang; diff --git a/src/main/java/net/MapleServerHandler.java b/src/main/java/net/MapleServerHandler.java index 3922c847c8..af5654c5c9 100644 --- a/src/main/java/net/MapleServerHandler.java +++ b/src/main/java/net/MapleServerHandler.java @@ -21,28 +21,19 @@ along with this program. If not, see . */ package net; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Set; -import java.util.HashSet; -import java.util.Calendar; -import java.util.concurrent.atomic.AtomicLong; - -import config.YamlConfig; -import org.apache.mina.core.service.IoHandlerAdapter; -import org.apache.mina.core.session.IdleStatus; -import org.apache.mina.core.session.IoSession; - import client.MapleClient; +import config.YamlConfig; import constants.net.ServerConstants; -import java.net.InetSocketAddress; - import net.server.Server; +import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.coordinator.session.MapleSessionCoordinator; - +import org.apache.mina.core.service.IoHandlerAdapter; +import org.apache.mina.core.session.IdleStatus; +import org.apache.mina.core.session.IoSession; +import server.TimerManager; import tools.FilePrinter; import tools.MapleAESOFB; import tools.MapleLogger; @@ -50,15 +41,14 @@ import tools.MaplePacketCreator; import tools.data.input.ByteArrayByteStream; import tools.data.input.GenericSeekableLittleEndianAccessor; import tools.data.input.SeekableLittleEndianAccessor; -import java.util.Arrays; -import java.util.concurrent.ScheduledFuture; - -import java.util.HashMap; -import java.util.Map; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.Map.Entry; -import net.server.audit.LockCollector; -import server.TimerManager; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicLong; public class MapleServerHandler extends IoHandlerAdapter { private final static Set ignoredDebugRecvPackets = new HashSet<>(Arrays.asList((short) 167, (short) 197, (short) 89, (short) 91, (short) 41, (short) 188, (short) 107)); @@ -138,12 +128,12 @@ public class MapleServerHandler extends IoHandlerAdapter { FilePrinter.print(FilePrinter.SESSION, "IoSession with " + session.getRemoteAddress() + " opened on " + sdf.format(Calendar.getInstance().getTime()), false); } - byte ivRecv[] = {70, 114, 122, 82}; - byte ivSend[] = {82, 48, 120, 115}; + byte[] ivRecv = {70, 114, 122, 82}; + byte[] ivSend = {82, 48, 120, 115}; ivRecv[3] = (byte) (Math.random() * 255); ivSend[3] = (byte) (Math.random() * 255); MapleAESOFB sendCypher = new MapleAESOFB(ivSend, (short) (0xFFFF - ServerConstants.VERSION)); - MapleAESOFB recvCypher = new MapleAESOFB(ivRecv, (short) ServerConstants.VERSION); + MapleAESOFB recvCypher = new MapleAESOFB(ivRecv, ServerConstants.VERSION); MapleClient client = new MapleClient(sendCypher, recvCypher, session); client.setWorld(world); client.setChannel(channel); @@ -274,12 +264,7 @@ public class MapleServerHandler extends IoHandlerAdapter { } private void idleManagerTask() { - this.idleManager = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - manageIdleSessions(); - } - }, 10000); + this.idleManager = TimerManager.getInstance().register(() -> manageIdleSessions(), 10000); } private void cancelIdleManagerTask() { @@ -288,12 +273,7 @@ public class MapleServerHandler extends IoHandlerAdapter { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/mina/MapleCustomEncryption.java b/src/main/java/net/mina/MapleCustomEncryption.java index 6ebc5e671b..93f0a1b121 100644 --- a/src/main/java/net/mina/MapleCustomEncryption.java +++ b/src/main/java/net/mina/MapleCustomEncryption.java @@ -35,7 +35,7 @@ public class MapleCustomEncryption { return (byte) ((tmp & 0xFF) | (tmp >>> 8)); } - public static byte[] encryptData(byte data[]) { + public static byte[] encryptData(byte[] data) { for (int j = 0; j < 6; j++) { byte remember = 0; byte dataLength = (byte) (data.length & 0xFF); @@ -69,7 +69,7 @@ public class MapleCustomEncryption { return data; } - public static byte[] decryptData(byte data[]) { + public static byte[] decryptData(byte[] data) { for (int j = 1; j <= 6; j++) { byte remember = 0; byte dataLength = (byte) (data.length & 0xFF); diff --git a/src/main/java/net/mina/MaplePacketDecoder.java b/src/main/java/net/mina/MaplePacketDecoder.java index 5035395886..aa182f1528 100644 --- a/src/main/java/net/mina/MaplePacketDecoder.java +++ b/src/main/java/net/mina/MaplePacketDecoder.java @@ -21,19 +21,19 @@ */ package net.mina; -import config.YamlConfig; import client.MapleClient; +import config.YamlConfig; import constants.net.OpcodeConstants; import net.server.coordinator.session.MapleSessionCoordinator; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder; import org.apache.mina.filter.codec.ProtocolDecoderOutput; +import tools.FilePrinter; import tools.HexTool; import tools.MapleAESOFB; import tools.data.input.ByteArrayByteStream; import tools.data.input.GenericLittleEndianAccessor; -import tools.FilePrinter; public class MaplePacketDecoder extends CumulativeProtocolDecoder { private static final String DECODER_STATE_KEY = MaplePacketDecoder.class.getName() + ".STATE"; @@ -68,7 +68,7 @@ public class MaplePacketDecoder extends CumulativeProtocolDecoder { return false; } if (in.remaining() >= decoderState.packetlength) { - byte decryptedPacket[] = new byte[decoderState.packetlength]; + byte[] decryptedPacket = new byte[decoderState.packetlength]; in.get(decryptedPacket, 0, decoderState.packetlength); decoderState.packetlength = -1; rcvdCrypto.crypt(decryptedPacket); diff --git a/src/main/java/net/server/Server.java b/src/main/java/net/server/Server.java index 0c74945ade..7b674b1b7f 100644 --- a/src/main/java/net/server/Server.java +++ b/src/main/java/net/server/Server.java @@ -54,7 +54,6 @@ import net.server.task.*; import net.server.world.World; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.buffer.SimpleBufferAllocator; -import org.apache.mina.core.filterchain.IoFilter; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter; @@ -260,9 +259,7 @@ public class Server { try { List channelz = new ArrayList<>(); for (World world : this.getWorlds()) { - for (Channel ch : world.getChannels()) { - channelz.add(ch); - } + channelz.addAll(world.getChannels()); } return channelz; } catch (NullPointerException npe) { @@ -702,7 +699,7 @@ public class Server { try { if (!YamlConfig.config.server.USE_WHOLE_SERVER_RANKING) { for (int i = playerRanking.size(); i <= worldid; i++) { - playerRanking.add(new ArrayList>(0)); + playerRanking.add(new ArrayList<>(0)); } playerRanking.add(worldid, ranking.get(0).getRight()); @@ -746,7 +743,7 @@ public class Server { try { if (!YamlConfig.config.server.USE_WHOLE_SERVER_RANKING) { for (int i = playerRanking.size(); i <= rankUpdates.get(rankUpdates.size() - 1).getLeft(); i++) { - playerRanking.add(new ArrayList>(0)); + playerRanking.add(new ArrayList<>(0)); } for (Pair>> wranks : rankUpdates) { @@ -763,7 +760,7 @@ public class Server { private void initWorldPlayerRanking() { if (YamlConfig.config.server.USE_WHOLE_SERVER_RANKING) { - playerRanking.add(new ArrayList>(0)); + playerRanking.add(new ArrayList<>(0)); } updateWorldPlayerRanking(); } @@ -876,7 +873,7 @@ public class Server { } try { - Integer worldCount = Math.min(GameConstants.WORLD_NAMES.length, YamlConfig.config.server.WORLDS); + int worldCount = Math.min(GameConstants.WORLD_NAMES.length, YamlConfig.config.server.WORLDS); for (int i = 0; i < worldCount; i++) { initWorld(); @@ -901,7 +898,7 @@ public class Server { IoBuffer.setUseDirectBuffer(false); // join IO operations performed by lxconan IoBuffer.setAllocator(new SimpleBufferAllocator()); acceptor = new NioSocketAcceptor(); - acceptor.getFilterChain().addLast("codec", (IoFilter) new ProtocolCodecFilter(new MapleCodecFactory())); + acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MapleCodecFactory())); acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30); acceptor.setHandler(new MapleServerHandler()); try { @@ -948,7 +945,7 @@ public class Server { tMan.register(new BossLogTask(), 24 * 60 * 60 * 1000, timeLeft); } - public static void main(String args[]) { + public static void main(String[] args) { System.setProperty("wzpath", "wz"); Security.setProperty("crypto.policy", "unlimited"); AutoJCE.removeCryptographyRestrictions(); @@ -1465,7 +1462,7 @@ public class Server { if (wchars == null) { if (!accountChars.containsKey(accountId)) { accountCharacterCount.put(accountId, (short) 0); - accountChars.put(accountId, new HashSet()); // not advisable at all to write on the map on a read-protected environment + accountChars.put(accountId, new HashSet<>()); // not advisable at all to write on the map on a read-protected environment } // yet it's known there's no problem since no other point in the source does } else if (!wchars.isEmpty()) { // this action. lastwchars = wchars; @@ -1485,7 +1482,7 @@ public class Server { short characterCount = 0; List> wchars = new ArrayList<>(wlen); for (int i = 0; i < wlen; i++) { - wchars.add(i, new LinkedList()); + wchars.add(i, new LinkedList<>()); } List chars = new LinkedList<>(); @@ -1567,7 +1564,7 @@ public class Server { try (Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("SELECT * FROM namechanges WHERE completionTime IS NULL"); ResultSet rs = ps.executeQuery()) { - List> changedNames = new LinkedList>(); //logging only + List> changedNames = new LinkedList<>(); //logging only while (rs.next()) { con.setAutoCommit(false); int nameChangeId = rs.getInt("id"); @@ -1578,7 +1575,7 @@ public class Server { if (!success) { con.rollback(); //discard changes } else { - changedNames.add(new Pair(oldName, newName)); + changedNames.add(new Pair<>(oldName, newName)); } con.setAutoCommit(true); } @@ -1597,7 +1594,7 @@ public class Server { PreparedStatement ps = con.prepareStatement("SELECT * FROM worldtransfers WHERE completionTime IS NULL", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = ps.executeQuery()) { - List removedTransfers = new LinkedList(); + List removedTransfers = new LinkedList<>(); while (rs.next()) { int nameChangeId = rs.getInt("id"); int characterId = rs.getInt("characterId"); @@ -1617,7 +1614,7 @@ public class Server { } } rs.beforeFirst(); - List>> worldTransfers = new LinkedList>>(); //logging only > + List>> worldTransfers = new LinkedList<>(); //logging only > while (rs.next()) { con.setAutoCommit(false); int nameChangeId = rs.getInt("id"); @@ -1631,7 +1628,7 @@ public class Server { if (!success) { con.rollback(); } else { - worldTransfers.add(new Pair>(characterId, new Pair(oldWorld, newWorld))); + worldTransfers.add(new Pair<>(characterId, new Pair<>(oldWorld, newWorld))); } con.setAutoCommit(true); } @@ -1856,21 +1853,11 @@ public class Server { } private void disconnectIdlesOnLoginTask() { - TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - disconnectIdlesOnLoginState(); - } - }, 300000); + TimerManager.getInstance().register(() -> disconnectIdlesOnLoginState(), 300000); } public final Runnable shutdown(final boolean restart) {//no player should be online when trying to shutdown! - return new Runnable() { - @Override - public void run() { - shutdownInternal(restart); - } - }; + return () -> shutdownInternal(restart); } private synchronized void shutdownInternal(boolean restart) { @@ -1928,12 +1915,7 @@ public class Server { acceptor.unbind(); acceptor = null; if (!restart) { // shutdown hook deadlocks if System.exit() method is used within its body chores, thanks MIKE for pointing that out - new Thread(new Runnable() { - @Override - public void run() { - System.exit(0); - } - }).start(); + new Thread(() -> System.exit(0)).start(); } else { System.out.println("\r\nRestarting the server....\r\n"); try { diff --git a/src/main/java/net/server/audit/ThreadTracker.java b/src/main/java/net/server/audit/ThreadTracker.java index a7bb1c850d..cd03a30981 100644 --- a/src/main/java/net/server/audit/ThreadTracker.java +++ b/src/main/java/net/server/audit/ThreadTracker.java @@ -19,26 +19,19 @@ */ package net.server.audit; +import net.server.audit.locks.MonitoredLockType; +import server.TimerManager; +import tools.FilePrinter; + import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; -import java.util.TimeZone; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import net.server.audit.locks.MonitoredLockType; -import server.TimerManager; -import tools.FilePrinter; - /** * * @author RonanLana @@ -127,8 +120,8 @@ public class ThreadTracker { private static String printThreadStack(StackTraceElement[] list, String dateFormat) { String s = "----------------------------\r\n" + dateFormat + "\r\n"; - for(int i = 0; i < list.length; i++) { - s += (" " + list[i].toString() + "\r\n"); + for (StackTraceElement stackTraceElement : list) { + s += (" " + stackTraceElement.toString() + "\r\n"); } return s; @@ -277,12 +270,7 @@ public class ThreadTracker { } public void registerThreadTrackerTask() { - threadTrackerSchedule = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - accessThreadTracker(true, false, MonitoredLockType.UNDEFINED, -1); - } - }, 10000, 10000); + threadTrackerSchedule = TimerManager.getInstance().register(() -> accessThreadTracker(true, false, MonitoredLockType.UNDEFINED, -1), 10000, 10000); } public void cancelThreadTrackerTask() { diff --git a/src/main/java/net/server/audit/locks/MonitoredLockType.java b/src/main/java/net/server/audit/locks/MonitoredLockType.java index 53d78f062f..520db9a291 100644 --- a/src/main/java/net/server/audit/locks/MonitoredLockType.java +++ b/src/main/java/net/server/audit/locks/MonitoredLockType.java @@ -108,5 +108,5 @@ public enum MonitoredLockType { MAP_AGGRO_IDLE, MINIDUNGEON, REACTOR, - REACTOR_HIT; + REACTOR_HIT } diff --git a/src/main/java/net/server/audit/locks/MonitoredReadLock.java b/src/main/java/net/server/audit/locks/MonitoredReadLock.java index c57c8da1fb..3cd5799ab6 100644 --- a/src/main/java/net/server/audit/locks/MonitoredReadLock.java +++ b/src/main/java/net/server/audit/locks/MonitoredReadLock.java @@ -25,12 +25,12 @@ package net.server.audit.locks; */ public interface MonitoredReadLock { - public void lock(); + void lock(); - public void unlock(); + void unlock(); - public boolean tryLock(); + boolean tryLock(); - public MonitoredReadLock dispose(); + MonitoredReadLock dispose(); } diff --git a/src/main/java/net/server/audit/locks/MonitoredReentrantLock.java b/src/main/java/net/server/audit/locks/MonitoredReentrantLock.java index 6a0e79fec2..9bd2323c62 100644 --- a/src/main/java/net/server/audit/locks/MonitoredReentrantLock.java +++ b/src/main/java/net/server/audit/locks/MonitoredReentrantLock.java @@ -25,12 +25,12 @@ package net.server.audit.locks; */ public interface MonitoredReentrantLock { - public void lock(); + void lock(); - public void unlock(); + void unlock(); - public boolean tryLock(); + boolean tryLock(); - public MonitoredReentrantLock dispose(); + MonitoredReentrantLock dispose(); } diff --git a/src/main/java/net/server/audit/locks/MonitoredWriteLock.java b/src/main/java/net/server/audit/locks/MonitoredWriteLock.java index 0a30d8187b..0c2bb39484 100644 --- a/src/main/java/net/server/audit/locks/MonitoredWriteLock.java +++ b/src/main/java/net/server/audit/locks/MonitoredWriteLock.java @@ -25,12 +25,12 @@ package net.server.audit.locks; */ public interface MonitoredWriteLock { - public void lock(); + void lock(); - public void unlock(); + void unlock(); - public boolean tryLock(); + boolean tryLock(); - public MonitoredWriteLock dispose(); + MonitoredWriteLock dispose(); } diff --git a/src/main/java/net/server/audit/locks/active/TrackerReadLock.java b/src/main/java/net/server/audit/locks/active/TrackerReadLock.java index fbdb6c7b3c..2c854f5c9c 100644 --- a/src/main/java/net/server/audit/locks/active/TrackerReadLock.java +++ b/src/main/java/net/server/audit/locks/active/TrackerReadLock.java @@ -20,24 +20,21 @@ package net.server.audit.locks.active; import config.YamlConfig; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.ScheduledFuture; -import server.TimerManager; - import net.server.audit.ThreadTracker; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; import net.server.audit.locks.empty.EmptyReadLock; +import server.TimerManager; -import tools.FilePrinter; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.TimeZone; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; /** * @@ -109,12 +106,7 @@ public class TrackerReadLock extends ReentrantReadWriteLock.ReadLock implements if(reentrantCount.incrementAndGet() == 1) { final Thread t = Thread.currentThread(); - timeoutSchedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - issueDeadlock(t); - } - }, YamlConfig.config.server.LOCK_MONITOR_TIME); + timeoutSchedule = TimerManager.getInstance().schedule(() -> issueDeadlock(t), YamlConfig.config.server.LOCK_MONITOR_TIME); } } finally { state.unlock(); @@ -144,8 +136,8 @@ public class TrackerReadLock extends ReentrantReadWriteLock.ReadLock implements private static String printStackTrace(StackTraceElement[] list) { String s = ""; - for(int i = 0; i < list.length; i++) { - s += (" " + list[i].toString() + "\r\n"); + for (StackTraceElement stackTraceElement : list) { + s += (" " + stackTraceElement.toString() + "\r\n"); } return s; diff --git a/src/main/java/net/server/audit/locks/active/TrackerReentrantLock.java b/src/main/java/net/server/audit/locks/active/TrackerReentrantLock.java index 6d87a8739c..41028828ab 100644 --- a/src/main/java/net/server/audit/locks/active/TrackerReentrantLock.java +++ b/src/main/java/net/server/audit/locks/active/TrackerReentrantLock.java @@ -19,22 +19,20 @@ */ package net.server.audit.locks.active; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.ScheduledFuture; - import config.YamlConfig; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; -import server.TimerManager; import net.server.audit.ThreadTracker; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.empty.EmptyReentrantLock; -import tools.FilePrinter; +import server.TimerManager; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.TimeZone; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; /** * @@ -112,12 +110,7 @@ public class TrackerReentrantLock extends ReentrantLock implements MonitoredReen if(reentrantCount.incrementAndGet() == 1) { final Thread t = Thread.currentThread(); - timeoutSchedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - issueDeadlock(t); - } - }, YamlConfig.config.server.LOCK_MONITOR_TIME); + timeoutSchedule = TimerManager.getInstance().schedule(() -> issueDeadlock(t), YamlConfig.config.server.LOCK_MONITOR_TIME); } } finally { state.unlock(); @@ -147,8 +140,8 @@ public class TrackerReentrantLock extends ReentrantLock implements MonitoredReen private static String printStackTrace(StackTraceElement[] list) { String s = ""; - for(int i = 0; i < list.length; i++) { - s += (" " + list[i].toString() + "\r\n"); + for (StackTraceElement stackTraceElement : list) { + s += (" " + stackTraceElement.toString() + "\r\n"); } return s; diff --git a/src/main/java/net/server/audit/locks/active/TrackerWriteLock.java b/src/main/java/net/server/audit/locks/active/TrackerWriteLock.java index 3bf895a3f1..b0981895ae 100644 --- a/src/main/java/net/server/audit/locks/active/TrackerWriteLock.java +++ b/src/main/java/net/server/audit/locks/active/TrackerWriteLock.java @@ -20,22 +20,21 @@ package net.server.audit.locks.active; import config.YamlConfig; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.ScheduledFuture; -import server.TimerManager; import net.server.audit.ThreadTracker; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantReadWriteLock; import net.server.audit.locks.MonitoredWriteLock; import net.server.audit.locks.empty.EmptyWriteLock; -import tools.FilePrinter; +import server.TimerManager; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.TimeZone; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; /** * @@ -107,12 +106,7 @@ public class TrackerWriteLock extends ReentrantReadWriteLock.WriteLock implement if(reentrantCount.incrementAndGet() == 1) { final Thread t = Thread.currentThread(); - timeoutSchedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - issueDeadlock(t); - } - }, YamlConfig.config.server.LOCK_MONITOR_TIME); + timeoutSchedule = TimerManager.getInstance().schedule(() -> issueDeadlock(t), YamlConfig.config.server.LOCK_MONITOR_TIME); } } finally { state.unlock(); @@ -142,8 +136,8 @@ public class TrackerWriteLock extends ReentrantReadWriteLock.WriteLock implement private static String printStackTrace(StackTraceElement[] list) { String s = ""; - for(int i = 0; i < list.length; i++) { - s += (" " + list[i].toString() + "\r\n"); + for (StackTraceElement stackTraceElement : list) { + s += (" " + stackTraceElement.toString() + "\r\n"); } return s; diff --git a/src/main/java/net/server/audit/locks/empty/AbstractEmptyLock.java b/src/main/java/net/server/audit/locks/empty/AbstractEmptyLock.java index ca81b5af19..6796301423 100644 --- a/src/main/java/net/server/audit/locks/empty/AbstractEmptyLock.java +++ b/src/main/java/net/server/audit/locks/empty/AbstractEmptyLock.java @@ -13,8 +13,8 @@ public abstract class AbstractEmptyLock { String df = dateFormat.format(new Date()); String s = "\r\n" + df + "\r\n"; - for(int i = 0; i < list.length; i++) { - s += (" " + list[i].toString() + "\r\n"); + for (StackTraceElement stackTraceElement : list) { + s += (" " + stackTraceElement.toString() + "\r\n"); } s += "----------------------------\r\n\r\n"; diff --git a/src/main/java/net/server/channel/Channel.java b/src/main/java/net/server/channel/Channel.java index 942f86046f..1956daf09e 100644 --- a/src/main/java/net/server/channel/Channel.java +++ b/src/main/java/net/server/channel/Channel.java @@ -41,7 +41,6 @@ import net.server.world.MaplePartyCharacter; import net.server.world.World; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.buffer.SimpleBufferAllocator; -import org.apache.mina.core.filterchain.IoFilter; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter; @@ -81,7 +80,7 @@ public final class Channel { private Map expeditions = new HashMap<>(); private Map dungeons = new HashMap<>(); private List expedType = new ArrayList<>(); - private Set ownedMaps = Collections.synchronizedSet(Collections.newSetFromMap(new WeakHashMap())); + private Set ownedMaps = Collections.synchronizedSet(Collections.newSetFromMap(new WeakHashMap<>())); private MapleEvent event; private boolean finishedShutdown = false; private Set usedMC = new HashSet<>(); @@ -109,7 +108,7 @@ public final class Channel { private MonitoredReadLock merchRlock = MonitoredReadLockFactory.createLock(merchantLock); private MonitoredWriteLock merchWlock = MonitoredWriteLockFactory.createLock(merchantLock); - private MonitoredReentrantLock faceLock[] = new MonitoredReentrantLock[YamlConfig.config.server.CHANNEL_LOCKS]; + private MonitoredReentrantLock[] faceLock = new MonitoredReentrantLock[YamlConfig.config.server.CHANNEL_LOCKS]; private MonitoredReentrantLock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.CHANNEL, true); @@ -128,12 +127,10 @@ public final class Channel { acceptor = new NioSocketAcceptor(); acceptor.setHandler(new MapleServerHandler(world, channel)); acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 30); - acceptor.getFilterChain().addLast("codec", (IoFilter) new ProtocolCodecFilter(new MapleCodecFactory())); + acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MapleCodecFactory())); acceptor.bind(new InetSocketAddress(port)); ((SocketSessionConfig) acceptor.getSessionConfig()).setTcpNoDelay(true); - for (MapleExpeditionType exped : MapleExpeditionType.values()) { - expedType.add(exped); - } + expedType.addAll(Arrays.asList(MapleExpeditionType.values())); if (Server.getInstance().isOnline()) { // postpone event loading to improve boot time... thanks Riizade, daronhudson for noticing slow startup times eventSM = new EventScriptManager(this, getEvents()); @@ -225,12 +222,7 @@ public final class Channel { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { @@ -408,7 +400,7 @@ public final class Channel { int[] retArr = new int[ret.size()]; int pos = 0; for (Integer i : ret) { - retArr[pos++] = i.intValue(); + retArr[pos++] = i; } return retArr; } @@ -461,7 +453,7 @@ public final class Channel { } private static String [] getEvents(){ - List events = new ArrayList(); + List events = new ArrayList<>(); for (File file : new File("scripts/event").listFiles()){ events.add(file.getName().substring(0, file.getName().length() - 3)); } @@ -606,29 +598,26 @@ public final class Channel { if (this.dojoTask[slot] != null) { this.dojoTask[slot].cancel(false); } - this.dojoTask[slot] = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - final int delta = (dojoMapId) % 100; - final int dojoBaseMap = (slot < 5) ? 925030000 : 925020000; - MapleParty party = null; + this.dojoTask[slot] = TimerManager.getInstance().schedule(() -> { + final int delta = (dojoMapId) % 100; + final int dojoBaseMap = (slot < 5) ? 925030000 : 925020000; + MapleParty party = null; - for (int i = 0; i < 5; i++) { //only 32 stages, but 38 maps - if (stage + i > 38) { - break; - } - - MapleMap dojoExit = getMapFactory().getMap(925020002); - for(MapleCharacter chr: getMapFactory().getMap(dojoBaseMap + (100 * (stage + i)) + delta).getAllPlayers()) { - if(GameConstants.isDojo(chr.getMap().getId())) { - chr.changeMap(dojoExit); - } - party = chr.getParty(); - } + for (int i = 0; i < 5; i++) { //only 32 stages, but 38 maps + if (stage + i > 38) { + break; } - freeDojoSlot(slot, party); + MapleMap dojoExit = getMapFactory().getMap(925020002); + for(MapleCharacter chr: getMapFactory().getMap(dojoBaseMap + (100 * (stage + i)) + delta).getAllPlayers()) { + if(GameConstants.isDojo(chr.getMap().getId())) { + chr.changeMap(dojoExit); + } + party = chr.getParty(); + } } + + freeDojoSlot(slot, party); }, clockTime + 3000); // let the TIMES UP display for 3 seconds, then warp } finally { lock.unlock(); @@ -857,12 +846,7 @@ public final class Channel { ongoingStartTime = System.currentTimeMillis(); if(weddingId != null) { - ScheduledFuture weddingTask = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - closeOngoingWedding(cathedral); - } - }, YamlConfig.config.server.WEDDING_RESERVATION_TIMEOUT * 60 * 1000); + ScheduledFuture weddingTask = TimerManager.getInstance().schedule(() -> closeOngoingWedding(cathedral), YamlConfig.config.server.WEDDING_RESERVATION_TIMEOUT * 60 * 1000); if(cathedral) { cathedralReservationTask = weddingTask; diff --git a/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java b/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java index 51f6d73fc8..ec6a15d2e4 100644 --- a/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java @@ -21,25 +21,19 @@ */ package net.server.channel.handlers; -import java.awt.Point; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - +import client.*; +import client.autoban.AutobanFactory; +import client.status.MonsterStatus; +import client.status.MonsterStatusEffect; import config.YamlConfig; +import constants.game.GameConstants; +import constants.skills.*; import net.AbstractMaplePacketHandler; +import net.server.PlayerBuffValueHolder; +import scripting.AbstractPlayerInteraction; import server.MapleStatEffect; import server.TimerManager; -import server.life.Element; -import server.life.ElementalEffectiveness; -import server.life.MapleMonster; -import server.life.MapleMonsterInformationProvider; -import server.life.MobSkill; -import server.life.MobSkillFactory; -import server.life.MonsterDropEntry; +import server.life.*; import server.maps.MapleMap; import server.maps.MapleMapItem; import server.maps.MapleMapObject; @@ -48,62 +42,10 @@ import tools.MaplePacketCreator; import tools.Pair; import tools.Randomizer; import tools.data.input.LittleEndianAccessor; -import client.MapleBuffStat; -import client.MapleCharacter; -import client.MapleJob; -import client.Skill; -import client.SkillFactory; -import client.autoban.AutobanFactory; -import client.status.MonsterStatus; -import client.status.MonsterStatusEffect; -import constants.game.GameConstants; -import constants.skills.Aran; -import constants.skills.Assassin; -import constants.skills.Bandit; -import constants.skills.Beginner; -import constants.skills.Bishop; -import constants.skills.BlazeWizard; -import constants.skills.Bowmaster; -import constants.skills.Brawler; -import constants.skills.Buccaneer; -import constants.skills.ChiefBandit; -import constants.skills.Cleric; -import constants.skills.Corsair; -import constants.skills.Crossbowman; -import constants.skills.Crusader; -import constants.skills.DawnWarrior; -import constants.skills.DragonKnight; -import constants.skills.Evan; -import constants.skills.FPArchMage; -import constants.skills.FPMage; -import constants.skills.FPWizard; -import constants.skills.Fighter; -import constants.skills.Gunslinger; -import constants.skills.Hermit; -import constants.skills.Hero; -import constants.skills.Hunter; -import constants.skills.ILArchMage; -import constants.skills.ILMage; -import constants.skills.Legend; -import constants.skills.Marauder; -import constants.skills.Marksman; -import constants.skills.NightLord; -import constants.skills.NightWalker; -import constants.skills.Noblesse; -import constants.skills.Outlaw; -import constants.skills.Page; -import constants.skills.Paladin; -import constants.skills.Ranger; -import constants.skills.Rogue; -import constants.skills.Shadower; -import constants.skills.Sniper; -import constants.skills.Spearman; -import constants.skills.SuperGM; -import constants.skills.ThunderBreaker; -import constants.skills.WhiteKnight; -import constants.skills.WindArcher; -import net.server.PlayerBuffValueHolder; -import scripting.AbstractPlayerInteraction; + +import java.awt.*; +import java.util.List; +import java.util.*; public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandler { @@ -208,7 +150,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl if (attack.skill == ChiefBandit.MESO_EXPLOSION) { int delay = 0; for (Integer oned : attack.allDamage.keySet()) { - MapleMapObject mapobject = map.getMapObject(oned.intValue()); + MapleMapObject mapobject = map.getMapObject(oned); if (mapobject != null && mapobject.getType() == MapleMapObjectType.ITEM) { final MapleMapItem mapitem = (MapleMapItem) mapobject; if (mapitem.getMeso() == 0) { //Maybe it is possible some how? @@ -220,18 +162,15 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl if (mapitem.isPickedUp()) { return; } - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - mapitem.lockItem(); - try { - if (mapitem.isPickedUp()) { - return; - } - map.pickItemDrop(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 4, 0), mapitem); - } finally { - mapitem.unlockItem(); + TimerManager.getInstance().schedule(() -> { + mapitem.lockItem(); + try { + if (mapitem.isPickedUp()) { + return; } + map.pickItemDrop(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 4, 0), mapitem); + } finally { + mapitem.unlockItem(); } }, delay); delay += 100; @@ -244,7 +183,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl } } for (Integer oned : attack.allDamage.keySet()) { - final MapleMonster monster = map.getMonsterByOid(oned.intValue()); + final MapleMonster monster = map.getMonsterByOid(oned); if (monster != null) { double distance = player.getPosition().distanceSq(monster.getPosition()); double distanceToDetect = 200000.0; @@ -314,23 +253,18 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl int picklv = (player.isGM()) ? pickpocket.getMaxLevel() : player.getSkillLevel(pickpocket); if(picklv > 0) { int delay = 0; - final int maxmeso = player.getBuffedValue(MapleBuffStat.PICKPOCKET).intValue(); + final int maxmeso = player.getBuffedValue(MapleBuffStat.PICKPOCKET); for (Integer eachd : onedList) { eachd += Integer.MAX_VALUE; if (pickpocket.getEffect(picklv).makeChanceResult()) { - final Integer eachdf; + final int eachdf; if(eachd < 0) eachdf = eachd + Integer.MAX_VALUE; else eachdf = eachd; - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - map.spawnMesoDrop(Math.min((int) Math.max(((double) eachdf / (double) 20000) * (double) maxmeso, (double) 1), maxmeso), new Point((int) (monster.getPosition().getX() + Randomizer.nextInt(100) - 50), (int) (monster.getPosition().getY())), monster, player, true, (byte) 2); - } - }, delay); + TimerManager.getInstance().schedule(() -> map.spawnMesoDrop(Math.min((int) Math.max(((double) eachdf / (double) 20000) * (double) maxmeso, 1), maxmeso), new Point((int) (monster.getPosition().getX() + Randomizer.nextInt(100) - 50), (int) (monster.getPosition().getY())), monster, player, true, (byte) 2), delay); delay += 100; } } @@ -346,7 +280,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl MapleMonsterInformationProvider mi = MapleMonsterInformationProvider.getInstance(); List dropPool = mi.retrieveDropPool(monster.getId()); if(!dropPool.isEmpty()) { - Integer rndPool = (int) Math.floor(Math.random() * dropPool.get(dropPool.size() - 1)); + int rndPool = (int) Math.floor(Math.random() * dropPool.get(dropPool.size() - 1)); int i = 0; while(rndPool >= dropPool.get(i)) i++; @@ -477,7 +411,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl if (attack.skill != 0) { if (attackEffect.getFixDamage() != -1) { if (totDamageToOneMonster != attackEffect.getFixDamage() && totDamageToOneMonster != 0) { - AutobanFactory.FIX_DAMAGE.autoban(player, String.valueOf(totDamageToOneMonster) + " damage"); + AutobanFactory.FIX_DAMAGE.autoban(player, totDamageToOneMonster + " damage"); } int threeSnailsId = player.getJobType() * 10000000 + 1000; @@ -580,12 +514,9 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl else animationTime = fixedTime; if(animationTime > 0) { // be sure to only use LIMITED ATTACKS with animation time here - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - map.broadcastMessage(MaplePacketCreator.damageMonster(monster.getObjectId(), damage), monster.getPosition()); - map.damageMonster(attacker, monster, damage); - } + TimerManager.getInstance().schedule(() -> { + map.broadcastMessage(MaplePacketCreator.damageMonster(monster.getObjectId(), damage), monster.getPosition()); + map.damageMonster(attacker, monster, damage); }, animationTime); } else { map.broadcastMessage(MaplePacketCreator.damageMonster(monster.getObjectId(), damage), monster.getPosition()); @@ -627,7 +558,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl for (int j = 0; j < bullets; j++) { int mesoid = lea.readInt(); lea.skip(1); - ret.allDamage.put(Integer.valueOf(mesoid), null); + ret.allDamage.put(mesoid, null); } return ret; } else { @@ -641,16 +572,16 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl List allDamageNumbers = new ArrayList<>(); for (int j = 0; j < bullets; j++) { int damage = lea.readInt(); - allDamageNumbers.add(Integer.valueOf(damage)); + allDamageNumbers.add(damage); } - ret.allDamage.put(Integer.valueOf(oid), allDamageNumbers); + ret.allDamage.put(oid, allDamageNumbers); lea.skip(4); } else { int bullets = lea.readByte(); for (int j = 0; j < bullets; j++) { int mesoid = lea.readInt(); lea.skip(1); - ret.allDamage.put(Integer.valueOf(mesoid), null); + ret.allDamage.put(mesoid, null); } } } @@ -928,7 +859,7 @@ public abstract class AbstractDealDamageHandler extends AbstractMaplePacketHandl if (ret.skill != Corsair.RAPID_FIRE || ret.skill != Aran.HIDDEN_FULL_DOUBLE || ret.skill != Aran.HIDDEN_FULL_TRIPLE || ret.skill != Aran.HIDDEN_OVER_DOUBLE || ret.skill != Aran.HIDDEN_OVER_TRIPLE) { lea.skip(4); } - ret.allDamage.put(Integer.valueOf(oid), allDamageNumbers); + ret.allDamage.put(oid, allDamageNumbers); } if (ret.skill == NightWalker.POISON_BOMB) { // Poison Bomb lea.skip(4); diff --git a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java index d6f546f13b..7cc357ffea 100644 --- a/src/main/java/net/server/channel/handlers/AdminCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/AdminCommandHandler.java @@ -21,9 +21,11 @@ */ package net.server.channel.handlers; -import java.util.Arrays; -import java.util.List; - +import client.MapleCharacter; +import client.MapleClient; +import client.inventory.MapleInventory; +import client.inventory.MapleInventoryType; +import client.inventory.manipulator.MapleInventoryManipulator; import net.AbstractMaplePacketHandler; import server.MapleItemInformationProvider; import server.life.MapleLifeFactory; @@ -34,11 +36,9 @@ import server.quest.MapleQuest; import tools.MaplePacketCreator; import tools.Randomizer; import tools.data.input.SeekableLittleEndianAccessor; -import client.MapleCharacter; -import client.MapleClient; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.manipulator.MapleInventoryManipulator; + +import java.util.Arrays; +import java.util.List; public final class AdminCommandHandler extends AbstractMaplePacketHandler { @@ -53,8 +53,7 @@ public final class AdminCommandHandler extends AbstractMaplePacketHandler { switch (mode) { case 0x00: // Level1~Level8 & Package1~Package2 int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(slea.readInt()); - for (int z = 0; z < toSpawn.length; z++) { - int[] toSpawnChild = toSpawn[z]; + for (int[] toSpawnChild : toSpawn) { if (Randomizer.nextInt(100) < toSpawnChild[1]) { c.getPlayer().getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition()); } diff --git a/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java b/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java index f24956088e..c450f5eae4 100644 --- a/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/AllianceOperationHandler.java @@ -26,9 +26,9 @@ import client.MapleClient; import net.AbstractMaplePacketHandler; import net.opcodes.SendOpcode; import net.server.Server; +import net.server.guild.MapleAlliance; import net.server.guild.MapleGuild; import net.server.guild.MapleGuildCharacter; -import net.server.guild.MapleAlliance; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; import tools.data.output.MaplePacketLittleEndianWriter; @@ -170,7 +170,7 @@ public final class AllianceOperationHandler extends AbstractMaplePacketHandler { break; } case 0x08: - String ranks[] = new String[5]; + String[] ranks = new String[5]; for (int i = 0; i < 5; i++) { ranks[i] = slea.readMapleAsciiString(); } diff --git a/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java b/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java index 621ce02426..2d681567ce 100644 --- a/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java @@ -21,30 +21,19 @@ */ package net.server.channel.handlers; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - +import client.*; import config.YamlConfig; -import client.MapleBuffStat; -import client.MapleCharacter; -import client.MapleClient; -import client.MapleJob; -import client.Skill; -import client.SkillFactory; import constants.game.GameConstants; -import constants.skills.Crusader; -import constants.skills.DawnWarrior; -import constants.skills.DragonKnight; -import constants.skills.Hero; -import constants.skills.NightWalker; -import constants.skills.Rogue; -import constants.skills.WindArcher; +import constants.skills.*; import server.MapleStatEffect; import tools.MaplePacketCreator; import tools.Pair; import tools.data.input.SeekableLittleEndianAccessor; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + public final class CloseRangeDamageHandler extends AbstractDealDamageHandler { @Override @@ -78,7 +67,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler { Integer comboBuff = chr.getBuffedValue(MapleBuffStat.COMBO); if (GameConstants.isFinisherSkill(attack.skill)) { if (comboBuff != null) { - numFinisherOrbs = comboBuff.intValue() - 1; + numFinisherOrbs = comboBuff - 1; } chr.handleOrbconsume(); } else if (attack.numAttacked > 0) { @@ -129,7 +118,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler { int totDamageToOneMonster = 0; // sacrifice attacks only 1 mob with 1 attack final Iterator> dmgIt = attack.allDamage.values().iterator(); if (dmgIt.hasNext()) { - totDamageToOneMonster = dmgIt.next().get(0).intValue(); + totDamageToOneMonster = dmgIt.next().get(0); } chr.safeAddHP(-1 * totDamageToOneMonster * attack.getAttackEffect(chr, null).getX() / 100); diff --git a/src/main/java/net/server/channel/handlers/CouponCodeHandler.java b/src/main/java/net/server/channel/handlers/CouponCodeHandler.java index 0baa0106e4..9dedbe2432 100644 --- a/src/main/java/net/server/channel/handlers/CouponCodeHandler.java +++ b/src/main/java/net/server/channel/handlers/CouponCodeHandler.java @@ -190,8 +190,8 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { if (type < 0) { c.announce(MaplePacketCreator.showCashShopMessage((byte) parseCouponResult(type))); } else { - List cashItems = new LinkedList(); - List> items = new LinkedList>(); + List cashItems = new LinkedList<>(); + List> items = new LinkedList<>(); int nxCredit = 0; int maplePoints = 0; int nxPrepaid = 0; @@ -245,7 +245,7 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { cashItems.add(it); } else { MapleInventoryManipulator.addById(c, item, qty, "", -1); - items.add(new Pair((int)qty, item)); + items.add(new Pair<>((int) qty, item)); } break; } diff --git a/src/main/java/net/server/channel/handlers/EnterMTSHandler.java b/src/main/java/net/server/channel/handlers/EnterMTSHandler.java index 6cd496cae0..e6e42a79c5 100644 --- a/src/main/java/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/main/java/net/server/channel/handlers/EnterMTSHandler.java @@ -120,7 +120,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { c.announce(MaplePacketCreator.showMTSCash(c.getPlayer())); List items = new ArrayList<>(); int pages = 0; - try (Connection con = DatabaseConnection.getConnection();) { + try (Connection con = DatabaseConnection.getConnection()) { try (PreparedStatement ps = con.prepareStatement("SELECT * FROM mts_items WHERE tab = 1 AND transfer = 0 ORDER BY id DESC LIMIT 16, 16"); ResultSet rs = ps.executeQuery()) { while (rs.next()) { @@ -157,7 +157,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price") + 100 + (int) (rs.getInt("price") * 0.1), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } } @@ -188,7 +188,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -217,7 +217,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } } @@ -238,7 +238,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -267,7 +267,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } } diff --git a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java index c8c900177b..15cffe4c93 100644 --- a/src/main/java/net/server/channel/handlers/GuildOperationHandler.java +++ b/src/main/java/net/server/channel/handlers/GuildOperationHandler.java @@ -21,22 +21,23 @@ */ package net.server.channel.handlers; -import config.YamlConfig; -import net.server.guild.MapleGuildResponse; -import net.server.guild.MapleGuild; -import constants.game.GameConstants; -import client.MapleClient; -import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; -import tools.MaplePacketCreator; import client.MapleCharacter; -import java.util.HashSet; -import java.util.Set; +import client.MapleClient; +import config.YamlConfig; +import constants.game.GameConstants; +import net.AbstractMaplePacketHandler; import net.server.Server; import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; import net.server.guild.MapleAlliance; +import net.server.guild.MapleGuild; +import net.server.guild.MapleGuildResponse; import net.server.world.MapleParty; import net.server.world.World; +import tools.MaplePacketCreator; +import tools.data.input.SeekableLittleEndianAccessor; + +import java.util.HashSet; +import java.util.Set; public final class GuildOperationHandler extends AbstractMaplePacketHandler { private boolean isGuildNameAcceptable(String name) { @@ -187,7 +188,7 @@ public final class GuildOperationHandler extends AbstractMaplePacketHandler { System.out.println("[Hack] " + mc.getName() + " tried to change guild rank titles when s/he does not have permission."); return; } - String ranks[] = new String[5]; + String[] ranks = new String[5]; for (int i = 0; i < 5; i++) { ranks[i] = slea.readMapleAsciiString(); } diff --git a/src/main/java/net/server/channel/handlers/InventorySortHandler.java b/src/main/java/net/server/channel/handlers/InventorySortHandler.java index 63b00ba038..b993695db8 100644 --- a/src/main/java/net/server/channel/handlers/InventorySortHandler.java +++ b/src/main/java/net/server/channel/handlers/InventorySortHandler.java @@ -21,22 +21,18 @@ */ package net.server.channel.handlers; -import java.util.ArrayList; -import java.util.List; - -import config.YamlConfig; -import net.AbstractMaplePacketHandler; -import tools.MaplePacketCreator; -import tools.data.input.SeekableLittleEndianAccessor; import client.MapleCharacter; import client.MapleClient; -import client.inventory.Item; -import client.inventory.Equip; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.ModifyInventory; -import server.MapleItemInformationProvider; +import client.inventory.*; +import config.YamlConfig; +import net.AbstractMaplePacketHandler; import net.server.Server; +import server.MapleItemInformationProvider; +import tools.MaplePacketCreator; +import tools.data.input.SeekableLittleEndianAccessor; + +import java.util.ArrayList; +import java.util.List; /** * @@ -159,7 +155,7 @@ class PairedQuicksort { if (i <= j) { w = (Equip)A.get(i); A.set(i, A.get(j)); - A.set(j, (Item)w); + A.set(j, w); i++; j--; @@ -290,7 +286,7 @@ public final class InventorySortHandler extends AbstractMaplePacketHandler { for (short i = 1; i <= inventory.getSlotLimit(); i++) { Item item = inventory.getItem(i); if (item != null) { - itemarray.add((Item) item.copy()); + itemarray.add(item.copy()); } } diff --git a/src/main/java/net/server/channel/handlers/MTSHandler.java b/src/main/java/net/server/channel/handlers/MTSHandler.java index 50ca166f63..97fce7ec6c 100644 --- a/src/main/java/net/server/channel/handlers/MTSHandler.java +++ b/src/main/java/net/server/channel/handlers/MTSHandler.java @@ -21,6 +21,23 @@ */ package net.server.channel.handlers; +import client.MapleCharacter; +import client.MapleClient; +import client.inventory.Equip; +import client.inventory.Item; +import client.inventory.MapleInventoryType; +import client.inventory.manipulator.MapleInventoryManipulator; +import constants.inventory.ItemConstants; +import net.AbstractMaplePacketHandler; +import net.server.Server; +import net.server.channel.Channel; +import server.MTSItemInfo; +import server.MapleItemInformationProvider; +import tools.DatabaseConnection; +import tools.MaplePacketCreator; +import tools.Pair; +import tools.data.input.SeekableLittleEndianAccessor; + import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -29,23 +46,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.List; -import net.AbstractMaplePacketHandler; -import net.server.Server; -import net.server.channel.Channel; -import server.MTSItemInfo; -import client.inventory.manipulator.MapleInventoryManipulator; -import server.MapleItemInformationProvider; -import tools.DatabaseConnection; -import tools.MaplePacketCreator; -import tools.Pair; -import tools.data.input.SeekableLittleEndianAccessor; -import client.MapleCharacter; -import client.MapleClient; -import client.inventory.Equip; -import client.inventory.Item; -import client.inventory.MapleInventoryType; -import constants.inventory.ItemConstants; - public final class MTSHandler extends AbstractMaplePacketHandler { @Override @@ -159,10 +159,10 @@ public final class MTSHandler extends AbstractMaplePacketHandler { date += day + ""; } if (!i.getInventoryType().equals(MapleInventoryType.EQUIP)) { - Item item = (Item) i; + Item item = i; ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, owner, sellername, sell_ends) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); ps.setInt(1, 1); - ps.setInt(2, (int) invType.getType()); + ps.setInt(2, invType.getType()); ps.setInt(3, item.getItemId()); ps.setInt(4, quantity); ps.setLong(5, item.getExpiration()); @@ -176,7 +176,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { Equip equip = (Equip) i; ps = con.prepareStatement("INSERT INTO mts_items (tab, type, itemid, quantity, expiration, giftFrom, seller, price, upgradeslots, level, str, dex, `int`, luk, hp, mp, watk, matk, wdef, mdef, acc, avoid, hands, speed, jump, locked, owner, sellername, sell_ends, vicious, flag, itemexp, itemlevel, ringid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); ps.setInt(1, 1); - ps.setInt(2, (int) invType.getType()); + ps.setInt(2, invType.getType()); ps.setInt(3, equip.getItemId()); ps.setInt(4, quantity); ps.setLong(5, equip.getExpiration()); @@ -557,7 +557,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (byte) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -586,7 +586,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { equip.setRingId(rs.getInt("ringid")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } rs.close(); @@ -617,7 +617,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { if (rse.getInt("type") != 1) { Item i = new Item(rse.getInt("itemid"), (short) 0, (short) rse.getInt("quantity")); i.setOwner(rse.getString("owner")); - items.add(new MTSItemInfo((Item) i, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends"))); } else { Equip equip = new Equip(rse.getInt("itemid"), (byte) rse.getInt("position"), -1); equip.setOwner(rse.getString("owner")); @@ -646,7 +646,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rse.getInt("price"), rse.getInt("id"), rse.getInt("seller"), rse.getString("sellername"), rse.getString("sell_ends"))); } } } @@ -685,7 +685,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -714,7 +714,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } rs.close(); @@ -751,7 +751,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -780,7 +780,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } rs.close(); @@ -850,7 +850,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { if (rs.getInt("type") != 1) { Item i = new Item(rs.getInt("itemid"), (short) 0, (short) rs.getInt("quantity")); i.setOwner(rs.getString("owner")); - items.add(new MTSItemInfo((Item) i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(i, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } else { Equip equip = new Equip(rs.getInt("itemid"), (byte) rs.getInt("position"), -1); equip.setOwner(rs.getString("owner")); @@ -879,7 +879,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { equip.setFlag((short) rs.getInt("flag")); equip.setExpiration(rs.getLong("expiration")); equip.setGiftFrom(rs.getString("giftFrom")); - items.add(new MTSItemInfo((Item) equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); + items.add(new MTSItemInfo(equip, rs.getInt("price"), rs.getInt("id"), rs.getInt("seller"), rs.getString("sellername"), rs.getString("sell_ends"))); } } rs.close(); diff --git a/src/main/java/net/server/channel/handlers/MultiChatHandler.java b/src/main/java/net/server/channel/handlers/MultiChatHandler.java index 87515bb2c8..df75fd41b5 100644 --- a/src/main/java/net/server/channel/handlers/MultiChatHandler.java +++ b/src/main/java/net/server/channel/handlers/MultiChatHandler.java @@ -43,7 +43,7 @@ public final class MultiChatHandler extends AbstractMaplePacketHandler { int type = slea.readByte(); // 0 for buddys, 1 for partys int numRecipients = slea.readByte(); - int recipients[] = new int[numRecipients]; + int[] recipients = new int[numRecipients]; for (int i = 0; i < numRecipients; i++) { recipients[i] = slea.readInt(); } diff --git a/src/main/java/net/server/channel/handlers/PetCommandHandler.java b/src/main/java/net/server/channel/handlers/PetCommandHandler.java index 40f559b41c..f25768b5a8 100644 --- a/src/main/java/net/server/channel/handlers/PetCommandHandler.java +++ b/src/main/java/net/server/channel/handlers/PetCommandHandler.java @@ -23,9 +23,9 @@ package net.server.channel.handlers; import client.MapleCharacter; import client.MapleClient; +import client.inventory.MaplePet; import client.inventory.PetCommand; import client.inventory.PetDataFactory; -import client.inventory.MaplePet; import net.AbstractMaplePacketHandler; import tools.MaplePacketCreator; import tools.Randomizer; @@ -47,7 +47,7 @@ public final class PetCommandHandler extends AbstractMaplePacketHandler { slea.readInt(); slea.readByte(); byte command = slea.readByte(); - PetCommand petCommand = PetDataFactory.getPetCommand(pet.getItemId(), (int) command); + PetCommand petCommand = PetDataFactory.getPetCommand(pet.getItemId(), command); if (petCommand == null) { return; } diff --git a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java index 593369416a..4db6a00253 100644 --- a/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerLoggedinHandler.java @@ -234,7 +234,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { player.visitMap(player.getMap()); BuddyList bl = player.getBuddylist(); - int buddyIds[] = bl.getBuddyIds(); + int[] buddyIds = bl.getBuddyIds(); wserv.loggedOn(player.getName(), player.getId(), c.getChannel(), buddyIds); for (CharacterIdChannelPair onlineBuddy : wserv.multiBuddyFind(player.getId(), buddyIds)) { BuddylistEntry ble = bl.get(onlineBuddy.getCharacterId()); @@ -360,7 +360,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { if(diseases != null) { for(Entry> e : diseases.entrySet()) { - final List> debuff = Collections.singletonList(new Pair<>(e.getKey(), Integer.valueOf(e.getValue().getRight().getX()))); + final List> debuff = Collections.singletonList(new Pair<>(e.getKey(), e.getValue().getRight().getX())); c.announce(MaplePacketCreator.giveDebuff(debuff, e.getValue().getRight())); } } @@ -451,12 +451,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { timedBuffs.add(new Pair<>(curtime - pb.usedTime, pb)); } - Collections.sort(timedBuffs, new Comparator>() { - @Override - public int compare(Pair p1, Pair p2) { - return p1.getLeft().compareTo(p2.getLeft()); - } - }); + timedBuffs.sort((p1, p2) -> p1.getLeft().compareTo(p2.getLeft())); return timedBuffs; } diff --git a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java index 89c3dd3c2a..b0ad63342a 100644 --- a/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java +++ b/src/main/java/net/server/channel/handlers/RaiseIncExpHandler.java @@ -1,20 +1,20 @@ package net.server.channel.handlers; -import java.util.Map; - import client.MapleCharacter; import client.MapleClient; import client.MapleQuestStatus; import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; -import net.AbstractMaplePacketHandler; import client.inventory.manipulator.MapleInventoryManipulator; +import net.AbstractMaplePacketHandler; import server.MapleItemInformationProvider; import server.MapleItemInformationProvider.QuestConsItem; import server.quest.MapleQuest; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import java.util.Map; + /** * * @author Xari @@ -55,7 +55,7 @@ public class RaiseIncExpHandler extends AbstractMaplePacketHandler { return; } - MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(inventorytype), (short) slot, (short) 1, false, true); + MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(inventorytype), slot, (short) 1, false, true); } finally { inv.unlockInventory(); } diff --git a/src/main/java/net/server/channel/handlers/ScrollHandler.java b/src/main/java/net/server/channel/handlers/ScrollHandler.java index d485609288..d8b9911855 100644 --- a/src/main/java/net/server/channel/handlers/ScrollHandler.java +++ b/src/main/java/net/server/channel/handlers/ScrollHandler.java @@ -21,26 +21,23 @@ */ package net.server.channel.handlers; -import client.MapleClient; import client.MapleCharacter; +import client.MapleClient; import client.Skill; import client.SkillFactory; -import client.inventory.Equip; +import client.inventory.*; import client.inventory.Equip.ScrollResult; -import client.inventory.Item; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.ModifyInventory; -import constants.inventory.ItemConstants; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import net.AbstractMaplePacketHandler; import client.inventory.manipulator.MapleInventoryManipulator; +import constants.inventory.ItemConstants; +import net.AbstractMaplePacketHandler; import server.MapleItemInformationProvider; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + /** * @author Matze * @author Frz @@ -81,7 +78,7 @@ public final class ScrollHandler extends AbstractMaplePacketHandler { announceCannotScroll(c, legendarySpirit); return; } - } else if (!ItemConstants.isModifierScroll(scroll.getItemId()) && ((Equip) toScroll).getUpgradeSlots() < 1) { + } else if (!ItemConstants.isModifierScroll(scroll.getItemId()) && toScroll.getUpgradeSlots() < 1) { announceCannotScroll(c, legendarySpirit); // thanks onechord for noticing zero upgrade slots freezing Legendary Scroll UI return; } diff --git a/src/main/java/net/server/channel/handlers/SkillBookHandler.java b/src/main/java/net/server/channel/handlers/SkillBookHandler.java index 0fdca86ff1..9ff146ecb6 100644 --- a/src/main/java/net/server/channel/handlers/SkillBookHandler.java +++ b/src/main/java/net/server/channel/handlers/SkillBookHandler.java @@ -28,13 +28,14 @@ import client.SkillFactory; import client.inventory.Item; import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; -import java.util.Map; -import net.AbstractMaplePacketHandler; import client.inventory.manipulator.MapleInventoryManipulator; +import net.AbstractMaplePacketHandler; import server.MapleItemInformationProvider; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import java.util.Map; + public final class SkillBookHandler extends AbstractMaplePacketHandler { @Override public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { @@ -44,7 +45,7 @@ public final class SkillBookHandler extends AbstractMaplePacketHandler { } slea.readInt(); - short slot = (short) slea.readShort(); + short slot = slea.readShort(); int itemId = slea.readInt(); boolean canuse; diff --git a/src/main/java/net/server/channel/handlers/TakeDamageHandler.java b/src/main/java/net/server/channel/handlers/TakeDamageHandler.java index 488937d6c1..c04a258e18 100644 --- a/src/main/java/net/server/channel/handlers/TakeDamageHandler.java +++ b/src/main/java/net/server/channel/handlers/TakeDamageHandler.java @@ -21,35 +21,21 @@ along with this program. If not, see . */ package net.server.channel.handlers; -import client.MapleBuffStat; -import client.MapleCharacter; -import client.MapleClient; -import client.Skill; -import client.SkillFactory; +import client.*; import client.inventory.Item; import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; +import client.inventory.manipulator.MapleInventoryManipulator; import client.status.MonsterStatus; import client.status.MonsterStatusEffect; import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; import constants.skills.Aran; - -import java.awt.Point; -import java.util.Collections; -import java.util.ArrayList; -import java.util.List; - import net.AbstractMaplePacketHandler; -import client.inventory.manipulator.MapleInventoryManipulator; import server.MapleStatEffect; import server.life.MapleLifeFactory.loseItem; -import server.life.MapleMonster; -import server.life.MobAttackInfo; -import server.life.MobAttackInfoFactory; -import server.life.MobSkill; -import server.life.MobSkillFactory; +import server.life.*; import server.maps.MapleMap; import server.maps.MapleMapObject; import tools.FilePrinter; @@ -57,6 +43,11 @@ import tools.MaplePacketCreator; import tools.Randomizer; import tools.data.input.SeekableLittleEndianAccessor; +import java.awt.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public final class TakeDamageHandler extends AbstractMaplePacketHandler { @Override @@ -128,7 +119,7 @@ public final class TakeDamageHandler extends AbstractMaplePacketHandler { } for (byte b = 0; b < qty; b++) { - pos.x = (int) (playerpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2)))); + pos.x = playerpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2))); map.spawnItemDrop(chr, chr, new Item(loseItem.getId(), (short) 0, (short) 1), map.calcDropPos(pos, chr.getPosition()), true, true); d++; } diff --git a/src/main/java/net/server/channel/handlers/TransferNameHandler.java b/src/main/java/net/server/channel/handlers/TransferNameHandler.java index 17f16e4e2e..d434fae6be 100644 --- a/src/main/java/net/server/channel/handlers/TransferNameHandler.java +++ b/src/main/java/net/server/channel/handlers/TransferNameHandler.java @@ -20,13 +20,6 @@ package net.server.channel.handlers; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.Calendar; -import java.sql.Connection; - import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; @@ -35,6 +28,9 @@ import tools.DatabaseConnection; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import java.sql.*; +import java.util.Calendar; + /** * * @author Ronan @@ -76,7 +72,7 @@ public final class TransferNameHandler extends AbstractMaplePacketHandler { } else if(completedTimestamp.getTime() + YamlConfig.config.server.NAME_CHANGE_COOLDOWN > System.currentTimeMillis()) { c.announce(MaplePacketCreator.sendNameTransferRules(3)); return; - }; + } } } catch(SQLException e) { e.printStackTrace(); diff --git a/src/main/java/net/server/channel/handlers/TransferWorldHandler.java b/src/main/java/net/server/channel/handlers/TransferWorldHandler.java index 83a27d8bce..b34078c1b4 100644 --- a/src/main/java/net/server/channel/handlers/TransferWorldHandler.java +++ b/src/main/java/net/server/channel/handlers/TransferWorldHandler.java @@ -20,12 +20,6 @@ package net.server.channel.handlers; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; - import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; @@ -35,6 +29,8 @@ import tools.DatabaseConnection; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; +import java.sql.*; + /** * * @author Ronan @@ -73,7 +69,7 @@ public final class TransferWorldHandler extends AbstractMaplePacketHandler { } else if(completedTimestamp.getTime() + YamlConfig.config.server.WORLD_TRANSFER_COOLDOWN > System.currentTimeMillis()) { c.announce(MaplePacketCreator.sendWorldTransferRules(7, c)); return; - }; + } } } catch(SQLException e) { e.printStackTrace(); diff --git a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java index 2d385aed0d..3cf50014fd 100644 --- a/src/main/java/net/server/channel/handlers/UseCashItemHandler.java +++ b/src/main/java/net/server/channel/handlers/UseCashItemHandler.java @@ -21,49 +21,34 @@ */ package net.server.channel.handlers; -import client.MapleCharacter; -import client.MapleClient; -import client.Skill; -import client.SkillFactory; -import client.SkillMacro; +import client.*; import client.creator.veteran.*; -import client.inventory.Equip; +import client.inventory.*; import client.inventory.Equip.ScrollResult; -import client.inventory.Item; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.MaplePet; -import client.inventory.ModifyInventory; import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleKarmaManipulator; +import client.processor.npc.DueyProcessor; import client.processor.stat.AssignAPProcessor; import client.processor.stat.AssignSPProcessor; -import client.processor.npc.DueyProcessor; import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - import net.AbstractMaplePacketHandler; import net.server.Server; import server.MapleItemInformationProvider; import server.MapleShop; import server.MapleShopFactory; import server.TimerManager; -import server.maps.AbstractMapleMapObject; -import server.maps.FieldLimit; -import server.maps.MaplePlayerShopItem; -import server.maps.MapleKite; -import server.maps.MapleMap; -import server.maps.MapleTVEffect; +import server.maps.*; import tools.MaplePacketCreator; import tools.Pair; import tools.data.input.SeekableLittleEndianAccessor; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + public final class UseCashItemHandler extends AbstractMaplePacketHandler { @Override @@ -449,12 +434,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { final int world = c.getWorld(); Server.getInstance().broadcastMessage(world, MaplePacketCreator.getAvatarMega(player, medal, c.getChannel(), itemId, strLines, (slea.readByte() != 0))); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - Server.getInstance().broadcastMessage(world, MaplePacketCreator.byeAvatarMega()); - } - }, 1000 * 10); + TimerManager.getInstance().schedule(() -> Server.getInstance().broadcastMessage(world, MaplePacketCreator.byeAvatarMega()), 1000 * 10); remove(c, position, itemId); } else if (itemType == 540) { slea.readByte(); @@ -597,26 +577,23 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { remove(c, position, itemId); final MapleClient client = c; - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if(!player.isLoggedin()) return; - - player.toggleBlockCashShop(); - - final List mods = new ArrayList<>(); - mods.add(new ModifyInventory(3, scrolled)); - mods.add(new ModifyInventory(0, scrolled)); - client.announce(MaplePacketCreator.modifyInventory(true, mods)); + TimerManager.getInstance().schedule(() -> { +if(!player.isLoggedin()) return; - ScrollResult scrollResult = scrolled.getLevel() > curlevel ? ScrollResult.SUCCESS : ScrollResult.FAIL; - player.getMap().broadcastMessage(MaplePacketCreator.getScrollEffect(player.getId(), scrollResult, false, false)); - if (eSlot < 0 && (scrollResult == ScrollResult.SUCCESS)) { - player.equipChanged(); - } +player.toggleBlockCashShop(); - client.announce(MaplePacketCreator.enableActions()); - } +final List mods = new ArrayList<>(); +mods.add(new ModifyInventory(3, scrolled)); +mods.add(new ModifyInventory(0, scrolled)); +client.announce(MaplePacketCreator.modifyInventory(true, mods)); + +ScrollResult scrollResult = scrolled.getLevel() > curlevel ? ScrollResult.SUCCESS : ScrollResult.FAIL; +player.getMap().broadcastMessage(MaplePacketCreator.getScrollEffect(player.getId(), scrollResult, false, false)); +if (eSlot < 0 && (scrollResult == ScrollResult.SUCCESS)) { +player.equipChanged(); +} + +client.announce(MaplePacketCreator.enableActions()); }, 1000 * 3); } else { System.out.println("NEW CASH ITEM: " + itemType + "\n" + slea.toString()); diff --git a/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java b/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java index 10268306cd..5f0729a19a 100644 --- a/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java +++ b/src/main/java/net/server/channel/handlers/UseOwlOfMinervaHandler.java @@ -20,18 +20,17 @@ package net.server.channel.handlers; import client.MapleClient; +import constants.game.GameConstants; import net.AbstractMaplePacketHandler; -import tools.data.input.SeekableLittleEndianAccessor; import tools.MaplePacketCreator; import tools.Pair; +import tools.data.input.SeekableLittleEndianAccessor; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.PriorityQueue; -import constants.game.GameConstants; - /** * @author Ronan */ @@ -48,17 +47,11 @@ public final class UseOwlOfMinervaHandler extends AbstractMaplePacketHandler { owlLeaderboards.add(i); } } else { - Comparator> comparator = new Comparator>() { // descending order - @Override - public int compare(Pair p1, Pair p2) { - return p2.getRight().compareTo(p1.getRight()); - } - }; + // descending order + Comparator> comparator = (p1, p2) -> p2.getRight().compareTo(p1.getRight()); PriorityQueue> queue = new PriorityQueue<>(Math.max(1, owlSearched.size()), comparator); - for(Pair p : owlSearched) { - queue.add(p); - } + queue.addAll(owlSearched); owlLeaderboards = new LinkedList<>(); for(int i = 0; i < Math.min(owlSearched.size(), 10); i++) { diff --git a/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java b/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java index 17d6f236f9..da8d730d68 100644 --- a/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java +++ b/src/main/java/net/server/channel/handlers/UseSummonBagHandler.java @@ -24,12 +24,12 @@ package net.server.channel.handlers; import client.MapleClient; import client.inventory.Item; import client.inventory.MapleInventoryType; -import tools.Randomizer; -import net.AbstractMaplePacketHandler; import client.inventory.manipulator.MapleInventoryManipulator; +import net.AbstractMaplePacketHandler; import server.MapleItemInformationProvider; import server.life.MapleLifeFactory; import tools.MaplePacketCreator; +import tools.Randomizer; import tools.data.input.SeekableLittleEndianAccessor; /** @@ -52,8 +52,7 @@ public final class UseSummonBagHandler extends AbstractMaplePacketHandler { if (toUse != null && toUse.getQuantity() > 0 && toUse.getItemId() == itemId) { MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.USE, slot, (short) 1, false); int[][] toSpawn = MapleItemInformationProvider.getInstance().getSummonMobs(itemId); - for (int z = 0; z < toSpawn.length; z++) { - int[] toSpawnChild = toSpawn[z]; + for (int[] toSpawnChild : toSpawn) { if (Randomizer.nextInt(100) < toSpawnChild[1]) { c.getPlayer().getMap().spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(toSpawnChild[0]), c.getPlayer().getPosition()); } diff --git a/src/main/java/net/server/coordinator/login/LoginStorage.java b/src/main/java/net/server/coordinator/login/LoginStorage.java index 6c2bf3dafe..c4957f6899 100644 --- a/src/main/java/net/server/coordinator/login/LoginStorage.java +++ b/src/main/java/net/server/coordinator/login/LoginStorage.java @@ -20,14 +20,14 @@ package net.server.coordinator.login; import config.YamlConfig; +import net.server.Server; + import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; -import net.server.Server; - /** * * @author Ronan @@ -39,7 +39,7 @@ public class LoginStorage { public boolean registerLogin(int accountId) { List accHist = loginHistory.get(accountId); if (accHist == null) { - accHist = new LinkedList(); + accHist = new LinkedList<>(); loginHistory.put(accountId, accHist); } diff --git a/src/main/java/net/server/coordinator/matchchecker/AbstractMatchCheckerListener.java b/src/main/java/net/server/coordinator/matchchecker/AbstractMatchCheckerListener.java index f7b939fff3..21dce79c89 100644 --- a/src/main/java/net/server/coordinator/matchchecker/AbstractMatchCheckerListener.java +++ b/src/main/java/net/server/coordinator/matchchecker/AbstractMatchCheckerListener.java @@ -20,6 +20,7 @@ package net.server.coordinator.matchchecker; import client.MapleCharacter; + import java.util.Set; /** @@ -27,8 +28,8 @@ import java.util.Set; * @author Ronan */ public interface AbstractMatchCheckerListener { - public void onMatchCreated(MapleCharacter leader, Set nonLeaderMatchPlayers, String message); - public void onMatchAccepted(int leaderid, Set matchPlayers, String message); - public void onMatchDeclined(int leaderid, Set matchPlayers, String message); - public void onMatchDismissed(int leaderid, Set matchPlayers, String message); + void onMatchCreated(MapleCharacter leader, Set nonLeaderMatchPlayers, String message); + void onMatchAccepted(int leaderid, Set matchPlayers, String message); + void onMatchDeclined(int leaderid, Set matchPlayers, String message); + void onMatchDismissed(int leaderid, Set matchPlayers, String message); } diff --git a/src/main/java/net/server/coordinator/matchchecker/MatchCheckerListenerRecipe.java b/src/main/java/net/server/coordinator/matchchecker/MatchCheckerListenerRecipe.java index b9779009c1..8f8bf571d0 100644 --- a/src/main/java/net/server/coordinator/matchchecker/MatchCheckerListenerRecipe.java +++ b/src/main/java/net/server/coordinator/matchchecker/MatchCheckerListenerRecipe.java @@ -24,5 +24,5 @@ package net.server.coordinator.matchchecker; * @author Ronan */ public interface MatchCheckerListenerRecipe { - public AbstractMatchCheckerListener getListener(); + AbstractMatchCheckerListener getListener(); } diff --git a/src/main/java/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java b/src/main/java/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java index fd0679f74e..2d3720c712 100644 --- a/src/main/java/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java +++ b/src/main/java/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java @@ -22,20 +22,6 @@ package net.server.coordinator.partysearch; import client.MapleCharacter; import client.MapleJob; import config.YamlConfig; -import java.io.File; -import net.server.world.MapleParty; -import net.server.coordinator.world.MapleInviteCoordinator.InviteType; -import tools.MaplePacketCreator; -import tools.Pair; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; @@ -43,9 +29,17 @@ import net.server.audit.locks.MonitoredWriteLock; import net.server.audit.locks.factory.MonitoredReadLockFactory; import net.server.audit.locks.factory.MonitoredWriteLockFactory; import net.server.coordinator.world.MapleInviteCoordinator; +import net.server.coordinator.world.MapleInviteCoordinator.InviteType; +import net.server.world.MapleParty; import provider.MapleData; import provider.MapleDataProviderFactory; import provider.MapleDataTool; +import tools.MaplePacketCreator; +import tools.Pair; + +import java.io.File; +import java.util.*; +import java.util.Map.Entry; /** * @@ -77,7 +71,7 @@ public class MaplePartySearchCoordinator { MapleData data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/" + "Etc.wz")).getData("MapNeighbors.img"); if (data != null) { for (MapleData mapdata : data.getChildren()) { - int mapid = Integer.valueOf(mapdata.getName()); + int mapid = Integer.parseInt(mapdata.getName()); Set neighborMaps = new HashSet<>(); mapLinks.put(mapid, neighborMaps); diff --git a/src/main/java/net/server/coordinator/partysearch/PartySearchStorage.java b/src/main/java/net/server/coordinator/partysearch/PartySearchStorage.java index 059ff89d15..d1840f74c9 100644 --- a/src/main/java/net/server/coordinator/partysearch/PartySearchStorage.java +++ b/src/main/java/net/server/coordinator/partysearch/PartySearchStorage.java @@ -20,24 +20,16 @@ package net.server.coordinator.partysearch; import client.MapleCharacter; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; import net.server.audit.locks.MonitoredWriteLock; import net.server.audit.locks.factory.MonitoredReadLockFactory; import net.server.audit.locks.factory.MonitoredWriteLockFactory; - import tools.IntervalBuilder; +import java.util.*; + /** * * @author Ronan @@ -90,13 +82,9 @@ public class PartySearchStorage { pscList.add(new PartySearchCharacter(chr)); } - Collections.sort(pscList, new Comparator() { - @Override - public int compare(PartySearchCharacter c1, PartySearchCharacter c2) - { - int levelP1 = c1.getLevel(), levelP2 = c2.getLevel(); - return levelP1 > levelP2 ? 1 : (levelP1 == levelP2 ? 0 : -1); - } + pscList.sort((c1, c2) -> { + int levelP1 = c1.getLevel(), levelP2 = c2.getLevel(); + return levelP1 > levelP2 ? 1 : (levelP1 == levelP2 ? 0 : -1); }); psWLock.lock(); diff --git a/src/main/java/net/server/coordinator/session/MapleSessionCoordinator.java b/src/main/java/net/server/coordinator/session/MapleSessionCoordinator.java index 2cb7d3880c..207d0ec6d6 100644 --- a/src/main/java/net/server/coordinator/session/MapleSessionCoordinator.java +++ b/src/main/java/net/server/coordinator/session/MapleSessionCoordinator.java @@ -579,12 +579,7 @@ public class MapleSessionCoordinator { public void printSessionTrace() { if (!onlineClients.isEmpty()) { List> elist = new ArrayList<>(onlineClients.entrySet()); - Collections.sort(elist, new Comparator>() { - @Override - public int compare(Entry e1, Entry e2) { - return e1.getKey().compareTo(e2.getKey()); - } - }); + elist.sort((e1, e2) -> e1.getKey().compareTo(e2.getKey())); System.out.println("Current online clients: "); for (Entry e : elist) { @@ -605,12 +600,7 @@ public class MapleSessionCoordinator { if (!loginRemoteHosts.isEmpty()) { List>> elist = new ArrayList<>(loginRemoteHosts.entrySet()); - Collections.sort(elist, new Comparator>>() { - @Override - public int compare(Entry> e1, Entry> e2) { - return e1.getKey().compareTo(e2.getKey()); - } - }); + elist.sort((e1, e2) -> e1.getKey().compareTo(e2.getKey())); System.out.println("Current login sessions: "); for (Entry> e : elist) { @@ -624,12 +614,7 @@ public class MapleSessionCoordinator { if (!onlineClients.isEmpty()) { List> elist = new ArrayList<>(onlineClients.entrySet()); - Collections.sort(elist, new Comparator>() { - @Override - public int compare(Entry e1, Entry e2) { - return e1.getKey().compareTo(e2.getKey()); - } - }); + elist.sort((e1, e2) -> e1.getKey().compareTo(e2.getKey())); str += ("Current online clients:\r\n"); for (Entry e : elist) { @@ -650,12 +635,7 @@ public class MapleSessionCoordinator { if (!loginRemoteHosts.isEmpty()) { List>> elist = new ArrayList<>(loginRemoteHosts.entrySet()); - Collections.sort(elist, new Comparator>>() { - @Override - public int compare(Entry> e1, Entry> e2) { - return e1.getKey().compareTo(e2.getKey()); - } - }); + elist.sort((e1, e2) -> e1.getKey().compareTo(e2.getKey())); str += ("Current login sessions:\r\n"); for (Entry> e : elist) { diff --git a/src/main/java/net/server/coordinator/world/MapleInviteCoordinator.java b/src/main/java/net/server/coordinator/world/MapleInviteCoordinator.java index 05a75324b5..91de9c9590 100644 --- a/src/main/java/net/server/coordinator/world/MapleInviteCoordinator.java +++ b/src/main/java/net/server/coordinator/world/MapleInviteCoordinator.java @@ -22,10 +22,10 @@ package net.server.coordinator.world; import client.MapleCharacter; import tools.Pair; +import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import java.util.HashSet; import java.util.concurrent.ConcurrentHashMap; /** @@ -37,7 +37,7 @@ public class MapleInviteCoordinator { public enum InviteResult { ACCEPTED, DENIED, - NOT_FOUND; + NOT_FOUND } public enum InviteType { diff --git a/src/main/java/net/server/coordinator/world/MapleMonsterAggroCoordinator.java b/src/main/java/net/server/coordinator/world/MapleMonsterAggroCoordinator.java index bbc8437090..ae495f88ac 100644 --- a/src/main/java/net/server/coordinator/world/MapleMonsterAggroCoordinator.java +++ b/src/main/java/net/server/coordinator/world/MapleMonsterAggroCoordinator.java @@ -19,30 +19,22 @@ */ package net.server.coordinator.world; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import config.YamlConfig; import client.MapleCharacter; -import java.util.concurrent.ScheduledFuture; +import config.YamlConfig; import net.server.Server; import net.server.audit.LockCollector; -import server.life.MapleMonster; -import server.maps.MapleMap; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import server.TimerManager; +import server.life.MapleMonster; +import server.maps.MapleMap; import tools.Pair; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; + /** * * @author Ronan @@ -95,12 +87,9 @@ public class MapleMonsterAggroCoordinator { try { if (aggroMonitor != null) return; - aggroMonitor = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - runAggroUpdate(1); - runSortLeadingCharactersAggro(); - } + aggroMonitor = TimerManager.getInstance().register(() -> { + runAggroUpdate(1); + runSortLeadingCharactersAggro(); }, YamlConfig.config.server.MOB_STATUS_AGGRO_INTERVAL, YamlConfig.config.server.MOB_STATUS_AGGRO_INTERVAL); } finally { idleLock.unlock(); @@ -244,12 +233,8 @@ public class MapleMonsterAggroCoordinator { } if (!toRemoveIdx.isEmpty()) { - Collections.sort(toRemoveIdx, new Comparator() { // last to first indexes - @Override - public int compare(Integer p1, Integer p2) { - return p1 < p2 ? 1 : p1.equals(p2) ? 0 : -1; - } - }); + // last to first indexes + toRemoveIdx.sort((p1, p2) -> p1 < p2 ? 1 : p1.equals(p2) ? 0 : -1); for (int idx : toRemoveIdx) { sortedAggro.remove(idx); @@ -387,12 +372,7 @@ public class MapleMonsterAggroCoordinator { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/server/guild/MapleGuild.java b/src/main/java/net/server/guild/MapleGuild.java index 398c808e46..2c7f82e5da 100644 --- a/src/main/java/net/server/guild/MapleGuild.java +++ b/src/main/java/net/server/guild/MapleGuild.java @@ -115,7 +115,7 @@ public class MapleGuild { if (notifications.keySet().size() != chs.size()) { notifications.clear(); for (Integer ch : chs) { - notifications.put(ch, new LinkedList()); + notifications.put(ch, new LinkedList<>()); } } else { for (List l : notifications.values()) { diff --git a/src/main/java/net/server/handlers/login/CreateCharHandler.java b/src/main/java/net/server/handlers/login/CreateCharHandler.java index 3c6b4f7226..ae709f4e02 100644 --- a/src/main/java/net/server/handlers/login/CreateCharHandler.java +++ b/src/main/java/net/server/handlers/login/CreateCharHandler.java @@ -22,7 +22,9 @@ package net.server.handlers.login; import client.MapleClient; -import client.creator.novice.*; +import client.creator.novice.BeginnerCreator; +import client.creator.novice.LegendCreator; +import client.creator.novice.NoblesseCreator; import net.AbstractMaplePacketHandler; import tools.FilePrinter; import tools.MaplePacketCreator; @@ -66,8 +68,8 @@ public final class CreateCharHandler extends AbstractMaplePacketHandler { int gender = slea.readByte(); int [] items = new int [] {weapon, top, bottom, shoes, hair, face}; - for (int i = 0; i < items.length; i++){ - if (!isLegal(items[i])) { + for (int item : items) { + if (!isLegal(item)) { FilePrinter.printError(FilePrinter.EXPLOITS + name + ".txt", "Owner from account '" + c.getAccountName() + "' tried to packet edit in char creation."); c.disconnect(true, false); return; diff --git a/src/main/java/net/server/services/BaseScheduler.java b/src/main/java/net/server/services/BaseScheduler.java index b27203465f..2a48bd36a8 100644 --- a/src/main/java/net/server/services/BaseScheduler.java +++ b/src/main/java/net/server/services/BaseScheduler.java @@ -20,14 +20,6 @@ package net.server.services; import config.YamlConfig; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ScheduledFuture; - import net.server.Server; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; @@ -36,6 +28,10 @@ import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import server.TimerManager; import tools.Pair; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; + /** * * @author Ronan @@ -48,12 +44,7 @@ public abstract class BaseScheduler { private ScheduledFuture schedulerTask = null; private MonitoredReentrantLock schedulerLock; - private Runnable monitorTask = new Runnable() { - @Override - public void run() { - runBaseSchedule(); - } - }; + private Runnable monitorTask = () -> runBaseSchedule(); protected BaseScheduler(MonitoredLockType lockType) { schedulerLock = MonitoredReentrantLockFactory.createLock(lockType, true); @@ -62,10 +53,8 @@ public abstract class BaseScheduler { // NOTE: practice EXTREME caution when adding external locks to the scheduler system, if you don't know what you're doing DON'T USE THIS. protected BaseScheduler(MonitoredLockType lockType, List extLocks) { schedulerLock = MonitoredReentrantLockFactory.createLock(lockType, true); - - for(MonitoredReentrantLock lock : extLocks) { - externalLocks.add(lock); - } + + externalLocks.addAll(extLocks); } protected void addListener(SchedulerListener listener) { @@ -201,12 +190,7 @@ public abstract class BaseScheduler { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/server/services/SchedulerListener.java b/src/main/java/net/server/services/SchedulerListener.java index 975de08b19..6a3f9c8b52 100644 --- a/src/main/java/net/server/services/SchedulerListener.java +++ b/src/main/java/net/server/services/SchedulerListener.java @@ -26,5 +26,5 @@ import java.util.List; * @author Ronan */ public interface SchedulerListener { - public void removedScheduledEntries(List entries, boolean update); + void removedScheduledEntries(List entries, boolean update); } diff --git a/src/main/java/net/server/services/Service.java b/src/main/java/net/server/services/Service.java index b9798d4753..950279e913 100644 --- a/src/main/java/net/server/services/Service.java +++ b/src/main/java/net/server/services/Service.java @@ -31,7 +31,7 @@ public class Service { public Service(Class s) { try { cls = s; - service = (BaseService) cls.getConstructor().newInstance(); + service = cls.getConstructor().newInstance(); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/net/server/services/ServiceType.java b/src/main/java/net/server/services/ServiceType.java index 7d43fcdeb6..420c89e09e 100644 --- a/src/main/java/net/server/services/ServiceType.java +++ b/src/main/java/net/server/services/ServiceType.java @@ -24,7 +24,7 @@ package net.server.services; * @author Ronan */ public interface ServiceType > { - public abstract Service createService(); - public int ordinal(); - public T[] enumValues(); + Service createService(); + int ordinal(); + T[] enumValues(); } diff --git a/src/main/java/net/server/services/ServicesManager.java b/src/main/java/net/server/services/ServicesManager.java index a083a9b610..1ef1ab055c 100644 --- a/src/main/java/net/server/services/ServicesManager.java +++ b/src/main/java/net/server/services/ServicesManager.java @@ -41,8 +41,8 @@ public class ServicesManager { } public void shutdown() { - for (int i = 0; i < services.length; i++) { - services[i].dispose(); + for (Service service : services) { + service.dispose(); } services = null; } diff --git a/src/main/java/net/server/services/task/channel/EventService.java b/src/main/java/net/server/services/task/channel/EventService.java index 278fe4aa51..51e3528d8f 100644 --- a/src/main/java/net/server/services/task/channel/EventService.java +++ b/src/main/java/net/server/services/task/channel/EventService.java @@ -19,10 +19,10 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import config.YamlConfig; import net.server.audit.locks.MonitoredLockType; import net.server.services.BaseScheduler; +import net.server.services.BaseService; /** * @@ -30,7 +30,7 @@ import net.server.services.BaseScheduler; */ public class EventService extends BaseService { - private EventScheduler eventSchedulers[] = new EventScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private EventScheduler[] eventSchedulers = new EventScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public EventService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { diff --git a/src/main/java/net/server/services/task/channel/FaceExpressionService.java b/src/main/java/net/server/services/task/channel/FaceExpressionService.java index 3231a9a863..1f788d4651 100644 --- a/src/main/java/net/server/services/task/channel/FaceExpressionService.java +++ b/src/main/java/net/server/services/task/channel/FaceExpressionService.java @@ -19,26 +19,27 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import client.MapleCharacter; import config.YamlConfig; -import java.util.Collections; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.services.BaseScheduler; +import net.server.services.BaseService; import server.maps.MapleMap; import tools.MaplePacketCreator; +import java.util.Collections; + /** * * @author Ronan */ public class FaceExpressionService extends BaseService { - private FaceExpressionScheduler faceExpressionSchedulers[] = new FaceExpressionScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; - private MonitoredReentrantLock faceLock[] = new MonitoredReentrantLock[YamlConfig.config.server.CHANNEL_LOCKS]; + private FaceExpressionScheduler[] faceExpressionSchedulers = new FaceExpressionScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private MonitoredReentrantLock[] faceLock = new MonitoredReentrantLock[YamlConfig.config.server.CHANNEL_LOCKS]; public FaceExpressionService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { @@ -54,12 +55,7 @@ public class FaceExpressionService extends BaseService { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } @Override @@ -77,12 +73,9 @@ public class FaceExpressionService extends BaseService { public void registerFaceExpression(final MapleMap map, final MapleCharacter chr, int emote) { int lockid = getChannelSchedulerIndex(map.getId()); - Runnable cancelAction = new Runnable() { - @Override - public void run() { - if(chr.isLoggedinWorld()) { - map.broadcastMessage(chr, MaplePacketCreator.facialExpression(chr, 0), false); - } + Runnable cancelAction = () -> { + if(chr.isLoggedinWorld()) { + map.broadcastMessage(chr, MaplePacketCreator.facialExpression(chr, 0), false); } }; diff --git a/src/main/java/net/server/services/task/channel/MobAnimationService.java b/src/main/java/net/server/services/task/channel/MobAnimationService.java index d7e3249564..b30cac8a7d 100644 --- a/src/main/java/net/server/services/task/channel/MobAnimationService.java +++ b/src/main/java/net/server/services/task/channel/MobAnimationService.java @@ -19,18 +19,16 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import config.YamlConfig; -import net.server.audit.locks.MonitoredLockType; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; import net.server.audit.LockCollector; +import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.services.BaseScheduler; -import net.server.services.SchedulerListener; +import net.server.services.BaseService; + +import java.util.HashSet; +import java.util.Set; /** * @@ -38,7 +36,7 @@ import net.server.services.SchedulerListener; */ public class MobAnimationService extends BaseService { - private MobAnimationScheduler mobAnimationSchedulers[] = new MobAnimationScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private MobAnimationScheduler[] mobAnimationSchedulers = new MobAnimationScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public MobAnimationService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { @@ -59,11 +57,9 @@ public class MobAnimationService extends BaseService { public boolean registerMobOnAnimationEffect(int mapid, int mobHash, long delay) { return mobAnimationSchedulers[getChannelSchedulerIndex(mapid)].registerAnimationMode(mobHash, delay); } - - private static Runnable r = new Runnable() { - @Override - public void run() {} // do nothing - }; + + // do nothing + private static Runnable r = () -> {}; private class MobAnimationScheduler extends BaseScheduler { Set onAnimationMobs = new HashSet<>(1000); @@ -72,18 +68,15 @@ public class MobAnimationService extends BaseService { public MobAnimationScheduler() { super(MonitoredLockType.CHANNEL_MOBACTION); - super.addListener(new SchedulerListener() { - @Override - public void removedScheduledEntries(List toRemove, boolean update) { - animationLock.lock(); - try { - for(Object hashObj : toRemove) { - Integer mobHash = (Integer) hashObj; - onAnimationMobs.remove(mobHash); - } - } finally { - animationLock.unlock(); + super.addListener((toRemove, update) -> { + animationLock.lock(); + try { + for(Object hashObj : toRemove) { + Integer mobHash = (Integer) hashObj; + onAnimationMobs.remove(mobHash); } + } finally { + animationLock.unlock(); } }); } @@ -110,12 +103,7 @@ public class MobAnimationService extends BaseService { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/server/services/task/channel/MobClearSkillService.java b/src/main/java/net/server/services/task/channel/MobClearSkillService.java index 2477078441..a949484600 100644 --- a/src/main/java/net/server/services/task/channel/MobClearSkillService.java +++ b/src/main/java/net/server/services/task/channel/MobClearSkillService.java @@ -19,10 +19,10 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import config.YamlConfig; import net.server.audit.locks.MonitoredLockType; import net.server.services.BaseScheduler; +import net.server.services.BaseService; /** * @@ -30,7 +30,7 @@ import net.server.services.BaseScheduler; */ public class MobClearSkillService extends BaseService { - private MobClearSkillScheduler mobClearSkillSchedulers[] = new MobClearSkillScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private MobClearSkillScheduler[] mobClearSkillSchedulers = new MobClearSkillScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public MobClearSkillService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { diff --git a/src/main/java/net/server/services/task/channel/MobMistService.java b/src/main/java/net/server/services/task/channel/MobMistService.java index 4424daf9b9..937e6b1076 100644 --- a/src/main/java/net/server/services/task/channel/MobMistService.java +++ b/src/main/java/net/server/services/task/channel/MobMistService.java @@ -19,10 +19,10 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import config.YamlConfig; import net.server.audit.locks.MonitoredLockType; import net.server.services.BaseScheduler; +import net.server.services.BaseService; /** * @@ -30,7 +30,7 @@ import net.server.services.BaseScheduler; */ public class MobMistService extends BaseService { - private MobMistScheduler mobMistSchedulers[] = new MobMistScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private MobMistScheduler[] mobMistSchedulers = new MobMistScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public MobMistService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { diff --git a/src/main/java/net/server/services/task/channel/MobStatusService.java b/src/main/java/net/server/services/task/channel/MobStatusService.java index 735d2fe4ad..4c656734b5 100644 --- a/src/main/java/net/server/services/task/channel/MobStatusService.java +++ b/src/main/java/net/server/services/task/channel/MobStatusService.java @@ -19,19 +19,19 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import client.status.MonsterStatusEffect; import config.YamlConfig; -import java.util.HashMap; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.services.BaseScheduler; -import net.server.services.SchedulerListener; +import net.server.services.BaseService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @@ -39,7 +39,7 @@ import net.server.services.SchedulerListener; */ public class MobStatusService extends BaseService { - private MobStatusScheduler mobStatusSchedulers[] = new MobStatusScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private MobStatusScheduler[] mobStatusSchedulers = new MobStatusScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public MobStatusService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { @@ -97,32 +97,29 @@ public class MobStatusService extends BaseService { public MobStatusScheduler() { super(MonitoredLockType.CHANNEL_MOBSTATUS); - super.addListener(new SchedulerListener() { - @Override - public void removedScheduledEntries(List toRemove, boolean update) { - List toRun = new ArrayList<>(); + super.addListener((toRemove, update) -> { + List toRun = new ArrayList<>(); - overtimeStatusLock.lock(); - try { - for(Object mseo : toRemove) { - MonsterStatusEffect mse = (MonsterStatusEffect) mseo; - registeredMobStatusOvertime.remove(mse); - } - - if(update) { - // it's probably ok to use one thread for both management & overtime actions - List mdoeList = new ArrayList<>(registeredMobStatusOvertime.values()); - for(MobStatusOvertimeEntry mdoe : mdoeList) { - mdoe.update(toRun); - } - } - } finally { - overtimeStatusLock.unlock(); + overtimeStatusLock.lock(); + try { + for(Object mseo : toRemove) { + MonsterStatusEffect mse = (MonsterStatusEffect) mseo; + registeredMobStatusOvertime.remove(mse); } - for(Runnable r : toRun) { - r.run(); + if(update) { + // it's probably ok to use one thread for both management & overtime actions + List mdoeList = new ArrayList<>(registeredMobStatusOvertime.values()); + for(MobStatusOvertimeEntry mdoe : mdoeList) { + mdoe.update(toRun); + } } + } finally { + overtimeStatusLock.unlock(); + } + + for(Runnable r : toRun) { + r.run(); } }); } @@ -153,12 +150,7 @@ public class MobStatusService extends BaseService { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/server/services/task/channel/OverallService.java b/src/main/java/net/server/services/task/channel/OverallService.java index 7dc75f1ea6..54a9cf3adb 100644 --- a/src/main/java/net/server/services/task/channel/OverallService.java +++ b/src/main/java/net/server/services/task/channel/OverallService.java @@ -19,10 +19,10 @@ */ package net.server.services.task.channel; -import net.server.services.BaseService; import config.YamlConfig; import net.server.audit.locks.MonitoredLockType; import net.server.services.BaseScheduler; +import net.server.services.BaseService; /** * @@ -30,7 +30,7 @@ import net.server.services.BaseScheduler; */ public class OverallService extends BaseService { // thanks Alex for suggesting a refactor over the several channel schedulers unnecessarily populating the Channel class - private OverallScheduler channelSchedulers[] = new OverallScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; + private OverallScheduler[] channelSchedulers = new OverallScheduler[YamlConfig.config.server.CHANNEL_LOCKS]; public OverallService() { for(int i = 0; i < YamlConfig.config.server.CHANNEL_LOCKS; i++) { diff --git a/src/main/java/net/server/world/MapleMessenger.java b/src/main/java/net/server/world/MapleMessenger.java index ff2eacdc4a..0f596f71b8 100644 --- a/src/main/java/net/server/world/MapleMessenger.java +++ b/src/main/java/net/server/world/MapleMessenger.java @@ -29,7 +29,7 @@ import java.util.List; public final class MapleMessenger { private int id; - private List members = new ArrayList(3); + private List members = new ArrayList<>(3); private boolean[] pos = new boolean[3]; public MapleMessenger(int id, MapleMessengerCharacter chrfor) { diff --git a/src/main/java/net/server/world/MapleParty.java b/src/main/java/net/server/world/MapleParty.java index 7d0d40191b..c9fe9faab0 100644 --- a/src/main/java/net/server/world/MapleParty.java +++ b/src/main/java/net/server/world/MapleParty.java @@ -24,17 +24,9 @@ package net.server.world; import client.MapleCharacter; import client.MapleClient; import config.YamlConfig; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.HashMap; -import java.util.Map.Entry; -import java.util.Map; -import java.util.Comparator; import net.server.audit.LockCollector; -import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.coordinator.matchchecker.MapleMatchCheckerCoordinator; import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; @@ -44,6 +36,9 @@ import server.maps.MapleMap; import server.partyquest.MonsterCarnival; import tools.MaplePacketCreator; +import java.util.*; +import java.util.Map.Entry; + public class MapleParty { private int id; @@ -216,12 +211,7 @@ public class MapleParty { lock.unlock(); } - Collections.sort(histList, new Comparator>() { - @Override - public int compare(Entry o1, Entry o2) { - return (o1.getValue()).compareTo(o2.getValue()); - } - }); + histList.sort((o1, o2) -> (o1.getValue()).compareTo(o2.getValue())); List histSort = new LinkedList<>(); for (Entry e : histList) { @@ -292,12 +282,7 @@ public class MapleParty { } public void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/net/server/world/World.java b/src/main/java/net/server/world/World.java index 855bcaeb54..7fb78eb2fe 100644 --- a/src/main/java/net/server/world/World.java +++ b/src/main/java/net/server/world/World.java @@ -138,7 +138,7 @@ public class World { private ScheduledFuture timedMapObjectsSchedule; private MonitoredReentrantLock timedMapObjectLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.WORLD_MAPOBJS, true); - private Map fishingAttempters = Collections.synchronizedMap(new WeakHashMap()); + private Map fishingAttempters = Collections.synchronizedMap(new WeakHashMap<>()); private ScheduledFuture charactersSchedule; private ScheduledFuture marriagesSchedule; @@ -165,7 +165,7 @@ public class World { mountUpdate = petUpdate; for (int i = 0; i < 9; i++) { - cashItemBought.add(new LinkedHashMap()); + cashItemBought.add(new LinkedHashMap<>()); } TimerManager tman = TimerManager.getInstance(); @@ -457,16 +457,9 @@ public class World { private static List>> getSortedAccountCharacterView(Map> map) { List>> list = new ArrayList<>(map.size()); - for(Entry> e : map.entrySet()) { - list.add(e); - } + list.addAll(map.entrySet()); - Collections.sort(list, new Comparator>>() { - @Override - public int compare(Entry> o1, Entry> o2) { - return o1.getKey() - o2.getKey(); - } - }); + list.sort((o1, o2) -> o1.getKey() - o2.getKey()); return list; } @@ -488,9 +481,7 @@ public class World { } for (Entry> e : getSortedAccountCharacterView(accChars)) { - for (MapleCharacter chr : e.getValue().values()) { - chrList.add(chr); - } + chrList.addAll(e.getValue().values()); } return chrList; @@ -506,7 +497,7 @@ public class World { if(accChars != null) { chrList = new LinkedList<>(accChars.values()); } else { - accountChars.put(accountId, new TreeMap()); + accountChars.put(accountId, new TreeMap<>()); chrList = null; } } finally { @@ -579,7 +570,7 @@ public class World { public Collection getFamilies() { synchronized(families) { - return Collections.unmodifiableCollection((Collection) families.values()); + return Collections.unmodifiableCollection(families.values()); } } @@ -1246,7 +1237,7 @@ public class World { updateBuddies(characterId, channel, buddies, true); } - public void loggedOn(String name, int characterId, int channel, int buddies[]) { + public void loggedOn(String name, int characterId, int channel, int[] buddies) { updateBuddies(characterId, channel, buddies, false); } @@ -1359,18 +1350,12 @@ public class World { private List getMostSellerOnTab(List> tabSellers) { List tabLeaderboards; - - Comparator> comparator = new Comparator>() { // descending order - @Override - public int compare(Pair p1, Pair p2) { - return p2.getRight().compareTo(p1.getRight()); - } - }; + + // descending order + Comparator> comparator = (p1, p2) -> p2.getRight().compareTo(p1.getRight()); PriorityQueue> queue = new PriorityQueue<>(Math.max(1, tabSellers.size()), comparator); - for(Pair p : tabSellers) { - queue.add(p); - } + queue.addAll(tabSellers); tabLeaderboards = new LinkedList<>(); for(int i = 0; i < Math.min(tabSellers.size(), 5); i++) { @@ -1460,7 +1445,7 @@ public class World { MapleCharacter chr = this.getPlayerStorage().getCharacterById(dp.getKey() / 4); if(chr == null || !chr.isLoggedinWorld()) continue; - Integer dpVal = dp.getValue() + 1; + int dpVal = dp.getValue() + 1; if(dpVal == YamlConfig.config.server.PET_EXHAUST_COUNT) { chr.runFullnessSchedule(dp.getKey() % 4); dpVal = 0; @@ -1557,9 +1542,7 @@ public class World { List psList = new ArrayList<>(); activePlayerShopsLock.lock(); try { - for(MaplePlayerShop mps : activePlayerShops.values()) { - psList.add(mps); - } + psList.addAll(activePlayerShops.values()); return psList; } finally { @@ -1841,7 +1824,7 @@ public class World { List itemBundles = hm.sendAvailableBundles(itemid); for(MaplePlayerShopItem mpsi : itemBundles) { - hmsAvailable.add(new Pair<>(mpsi, (AbstractMapleMapObject) hm)); + hmsAvailable.add(new Pair<>(mpsi, hm)); } } @@ -1849,16 +1832,11 @@ public class World { List itemBundles = ps.sendAvailableBundles(itemid); for(MaplePlayerShopItem mpsi : itemBundles) { - hmsAvailable.add(new Pair<>(mpsi, (AbstractMapleMapObject) ps)); + hmsAvailable.add(new Pair<>(mpsi, ps)); } } - Collections.sort(hmsAvailable, new Comparator>() { - @Override - public int compare(Pair p1, Pair p2) { - return p1.getLeft().getPrice() - p2.getLeft().getPrice(); - } - }); + hmsAvailable.sort((p1, p2) -> p1.getLeft().getPrice() - p2.getLeft().getPrice()); hmsAvailable.subList(0, Math.min(hmsAvailable.size(), 200)); //truncates the list to have up to 200 elements return hmsAvailable; @@ -2049,12 +2027,7 @@ public class World { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/provider/MapleData.java b/src/main/java/provider/MapleData.java index 4d90a93804..0fd0a6883c 100644 --- a/src/main/java/provider/MapleData.java +++ b/src/main/java/provider/MapleData.java @@ -21,14 +21,15 @@ */ package provider; -import java.util.List; import provider.wz.MapleDataType; +import java.util.List; + public interface MapleData extends MapleDataEntity, Iterable { @Override - public String getName(); - public MapleDataType getType(); - public List getChildren(); - public MapleData getChildByPath(String path); - public Object getData(); + String getName(); + MapleDataType getType(); + List getChildren(); + MapleData getChildByPath(String path); + Object getData(); } diff --git a/src/main/java/provider/MapleDataDirectoryEntry.java b/src/main/java/provider/MapleDataDirectoryEntry.java index cb043e0c94..8760feb657 100644 --- a/src/main/java/provider/MapleDataDirectoryEntry.java +++ b/src/main/java/provider/MapleDataDirectoryEntry.java @@ -28,7 +28,7 @@ import java.util.List; * @author Matze */ public interface MapleDataDirectoryEntry extends MapleDataEntry { - public List getSubdirectories(); - public List getFiles(); - public MapleDataEntry getEntry(String name); + List getSubdirectories(); + List getFiles(); + MapleDataEntry getEntry(String name); } diff --git a/src/main/java/provider/MapleDataEntity.java b/src/main/java/provider/MapleDataEntity.java index 03ff77649c..3493587a74 100644 --- a/src/main/java/provider/MapleDataEntity.java +++ b/src/main/java/provider/MapleDataEntity.java @@ -26,6 +26,6 @@ package provider; * @author Matze */ public interface MapleDataEntity { - public String getName(); - public MapleDataEntity getParent(); + String getName(); + MapleDataEntity getParent(); } diff --git a/src/main/java/provider/MapleDataEntry.java b/src/main/java/provider/MapleDataEntry.java index 62db6d0abe..8ac8abadc9 100644 --- a/src/main/java/provider/MapleDataEntry.java +++ b/src/main/java/provider/MapleDataEntry.java @@ -26,8 +26,8 @@ package provider; * @author Matze */ public interface MapleDataEntry extends MapleDataEntity { - public String getName(); - public int getSize(); - public int getChecksum(); - public int getOffset(); + String getName(); + int getSize(); + int getChecksum(); + int getOffset(); } diff --git a/src/main/java/provider/MapleDataFileEntry.java b/src/main/java/provider/MapleDataFileEntry.java index 902130a612..41d76c322d 100644 --- a/src/main/java/provider/MapleDataFileEntry.java +++ b/src/main/java/provider/MapleDataFileEntry.java @@ -26,5 +26,5 @@ package provider; * @author Matze */ public interface MapleDataFileEntry extends MapleDataEntry { - public void setOffset(int offset); + void setOffset(int offset); } diff --git a/src/main/java/provider/MapleDataTool.java b/src/main/java/provider/MapleDataTool.java index 51b92419e1..ba76755696 100644 --- a/src/main/java/provider/MapleDataTool.java +++ b/src/main/java/provider/MapleDataTool.java @@ -21,10 +21,11 @@ */ package provider; -import java.awt.Point; -import java.awt.image.BufferedImage; import provider.wz.MapleDataType; +import java.awt.*; +import java.awt.image.BufferedImage; + public class MapleDataTool { public static String getString(MapleData data) { return ((String) data.getData()); @@ -47,18 +48,18 @@ public class MapleDataTool { } public static double getDouble(MapleData data) { - return ((Double) data.getData()).doubleValue(); + return (Double) data.getData(); } public static float getFloat(MapleData data) { - return ((Float) data.getData()).floatValue(); + return (Float) data.getData(); } public static int getInt(MapleData data) { if (data == null || data.getData() == null) { return 0;// DEF? } - return ((Integer) data.getData()).intValue(); + return (Integer) data.getData(); } public static int getInt(String path, MapleData data) { diff --git a/src/main/java/provider/wz/ListWZFile.java b/src/main/java/provider/wz/ListWZFile.java index 1672a08c59..1053b74252 100644 --- a/src/main/java/provider/wz/ListWZFile.java +++ b/src/main/java/provider/wz/ListWZFile.java @@ -21,24 +21,21 @@ */ package provider.wz; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; import provider.MapleDataProviderFactory; import tools.data.input.GenericLittleEndianAccessor; import tools.data.input.InputStreamByteStream; import tools.data.input.LittleEndianAccessor; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.*; + public class ListWZFile { private LittleEndianAccessor lea; - private List entries = new ArrayList(); - private static Collection modernImgs = new HashSet(); + private List entries = new ArrayList<>(); + private static Collection modernImgs = new HashSet<>(); public static byte[] xorBytes(byte[] a, byte[] b) { byte[] wusched = new byte[a.length]; @@ -73,7 +70,7 @@ public class ListWZFile { ListWZFile listwz; try { listwz = new ListWZFile(MapleDataProviderFactory.fileInWZPath("List.wz")); - modernImgs = new HashSet(listwz.getEntries()); + modernImgs = new HashSet<>(listwz.getEntries()); } catch (FileNotFoundException e) { e.printStackTrace(); } diff --git a/src/main/java/provider/wz/MapleDataType.java b/src/main/java/provider/wz/MapleDataType.java index e074d57d14..517d8e55ea 100644 --- a/src/main/java/provider/wz/MapleDataType.java +++ b/src/main/java/provider/wz/MapleDataType.java @@ -22,5 +22,5 @@ package provider.wz; public enum MapleDataType { - NONE, IMG_0x00, SHORT, INT, FLOAT, DOUBLE, STRING, EXTENDED, PROPERTY, CANVAS, VECTOR, CONVEX, SOUND, UOL, UNKNOWN_TYPE, UNKNOWN_EXTENDED_TYPE; + NONE, IMG_0x00, SHORT, INT, FLOAT, DOUBLE, STRING, EXTENDED, PROPERTY, CANVAS, VECTOR, CONVEX, SOUND, UOL, UNKNOWN_TYPE, UNKNOWN_EXTENDED_TYPE } \ No newline at end of file diff --git a/src/main/java/provider/wz/WZDirectoryEntry.java b/src/main/java/provider/wz/WZDirectoryEntry.java index d24b8cb2b9..a2dd1b35cc 100644 --- a/src/main/java/provider/wz/WZDirectoryEntry.java +++ b/src/main/java/provider/wz/WZDirectoryEntry.java @@ -21,20 +21,17 @@ */ package provider.wz; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import provider.MapleDataDirectoryEntry; import provider.MapleDataEntity; import provider.MapleDataEntry; import provider.MapleDataFileEntry; +import java.util.*; + public class WZDirectoryEntry extends WZEntry implements MapleDataDirectoryEntry { - private List subdirs = new ArrayList(); - private List files = new ArrayList(); - private Map entries = new HashMap(); + private List subdirs = new ArrayList<>(); + private List files = new ArrayList<>(); + private Map entries = new HashMap<>(); public WZDirectoryEntry(String name, int size, int checksum, MapleDataEntity parent) { super(name, size, checksum, parent); diff --git a/src/main/java/provider/wz/WZFile.java b/src/main/java/provider/wz/WZFile.java index c6c0abf537..d0ab5a392a 100644 --- a/src/main/java/provider/wz/WZFile.java +++ b/src/main/java/provider/wz/WZFile.java @@ -21,21 +21,13 @@ */ package provider.wz; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.RandomAccessFile; import provider.MapleData; import provider.MapleDataDirectoryEntry; import provider.MapleDataFileEntry; import provider.MapleDataProvider; -import tools.data.input.GenericLittleEndianAccessor; -import tools.data.input.GenericSeekableLittleEndianAccessor; -import tools.data.input.InputStreamByteStream; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.RandomAccessByteStream; -import tools.data.input.SeekableLittleEndianAccessor; +import tools.data.input.*; + +import java.io.*; public class WZFile implements MapleDataProvider { static { @@ -116,7 +108,7 @@ public class WZFile implements MapleDataProvider { } public WZIMGFile getImgFile(String path) throws IOException { - String segments[] = path.split("/"); + String[] segments = path.split("/"); WZDirectoryEntry dir = root; for (int x = 0; x < segments.length - 1; x++) { dir = (WZDirectoryEntry) dir.getEntry(segments[x]); diff --git a/src/main/java/provider/wz/WZIMGEntry.java b/src/main/java/provider/wz/WZIMGEntry.java index 385d785183..ef0dfc1f28 100644 --- a/src/main/java/provider/wz/WZIMGEntry.java +++ b/src/main/java/provider/wz/WZIMGEntry.java @@ -21,17 +21,18 @@ */ package provider.wz; +import provider.MapleData; +import provider.MapleDataEntity; + import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; -import provider.MapleData; -import provider.MapleDataEntity; public class WZIMGEntry implements MapleData { private String name; private MapleDataType type; - private List children = new ArrayList(10); + private List children = new ArrayList<>(10); private Object data; private MapleDataEntity parent; @@ -56,15 +57,15 @@ public class WZIMGEntry implements MapleData { @Override public MapleData getChildByPath(String path) { - String segments[] = path.split("/"); + String[] segments = path.split("/"); if (segments[0].equals("..")) { return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); } MapleData ret = this; - for (int x = 0; x < segments.length; x++) { + for (String segment : segments) { boolean foundChild = false; for (MapleData child : ret.getChildren()) { - if (child.getName().equals(segments[x])) { + if (child.getName().equals(segment)) { ret = child; foundChild = true; break; diff --git a/src/main/java/provider/wz/WZIMGFile.java b/src/main/java/provider/wz/WZIMGFile.java index bec06c78bd..e24154322c 100644 --- a/src/main/java/provider/wz/WZIMGFile.java +++ b/src/main/java/provider/wz/WZIMGFile.java @@ -21,16 +21,13 @@ */ package provider.wz; -import java.awt.Point; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.OutputStream; -import java.io.RandomAccessFile; import tools.data.input.GenericSeekableLittleEndianAccessor; import tools.data.input.RandomAccessByteStream; import tools.data.input.SeekableLittleEndianAccessor; +import java.awt.*; +import java.io.*; + public class WZIMGFile { private WZFileEntry file; private WZIMGEntry root; @@ -91,19 +88,19 @@ public class WZIMGFile { case 2: case 11: //??? no idea, since 0.49 entry.setType(MapleDataType.SHORT); - entry.setData(Short.valueOf(slea.readShort())); + entry.setData(slea.readShort()); break; case 3: entry.setType(MapleDataType.INT); - entry.setData(Integer.valueOf(WZTool.readValue(slea))); + entry.setData(WZTool.readValue(slea)); break; case 4: entry.setType(MapleDataType.FLOAT); - entry.setData(Float.valueOf(WZTool.readFloatValue(slea))); + entry.setData(WZTool.readFloatValue(slea)); break; case 5: entry.setType(MapleDataType.DOUBLE); - entry.setData(Double.valueOf(slea.readDouble())); + entry.setData(slea.readDouble()); break; case 8: entry.setType(MapleDataType.STRING); diff --git a/src/main/java/provider/wz/WZTool.java b/src/main/java/provider/wz/WZTool.java index 85e1c8d90b..0fb994052e 100644 --- a/src/main/java/provider/wz/WZTool.java +++ b/src/main/java/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,12 +104,12 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; } - byte str[] = new byte[strLength * 2]; + byte[] str = new byte[strLength * 2]; for (int i = 0; i < strLength * 2; i++) { str[i] = llea.readByte(); } @@ -122,7 +123,7 @@ public class WZTool { if (strLength < 0) { return ""; } - byte str[] = new byte[strLength]; + byte[] str = new byte[strLength]; for (int i = 0; i < strLength; i++) { str[i] = llea.readByte(); } @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/src/main/java/provider/wz/XMLDomMapleData.java b/src/main/java/provider/wz/XMLDomMapleData.java index b24ec2726a..a35edf3e09 100644 --- a/src/main/java/provider/wz/XMLDomMapleData.java +++ b/src/main/java/provider/wz/XMLDomMapleData.java @@ -22,23 +22,24 @@ package provider.wz; import constants.game.GameConstants; -import java.awt.Point; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; +import provider.MapleData; +import provider.MapleDataEntity; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.awt.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import provider.MapleData; -import provider.MapleDataEntity; -import org.w3c.dom.Document; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; public class XMLDomMapleData implements MapleData { private Node node; @@ -66,7 +67,7 @@ public class XMLDomMapleData implements MapleData { @Override public synchronized MapleData getChildByPath(String path) { // the whole XML reading system seems susceptible to give nulls on strenuous read scenarios - String segments[] = path.split("/"); + String[] segments = path.split("/"); if (segments[0].equals("..")) { return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); } diff --git a/src/main/java/scripting/AbstractPlayerInteraction.java b/src/main/java/scripting/AbstractPlayerInteraction.java index 01d3b869de..f7a9b1b84e 100644 --- a/src/main/java/scripting/AbstractPlayerInteraction.java +++ b/src/main/java/scripting/AbstractPlayerInteraction.java @@ -21,18 +21,15 @@ */ package scripting; -import java.awt.Point; -import java.util.Arrays; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -import client.Skill; +import client.*; +import client.MapleCharacter.DelayedQuestUpdate; +import client.inventory.*; +import client.inventory.manipulator.MapleInventoryManipulator; import config.YamlConfig; +import constants.game.GameConstants; +import constants.inventory.ItemConstants; +import constants.net.ServerConstants; import net.server.Server; -import net.server.channel.Channel; import net.server.guild.MapleGuild; import net.server.world.MapleParty; import net.server.world.MaplePartyCharacter; @@ -40,12 +37,11 @@ import scripting.event.EventInstanceManager; import scripting.event.EventManager; import scripting.npc.NPCScriptManager; import server.MapleItemInformationProvider; +import server.MapleMarriage; import server.expeditions.MapleExpedition; +import server.expeditions.MapleExpeditionBossLog; import server.expeditions.MapleExpeditionType; -import server.life.MapleLifeFactory; -import server.life.MapleMonster; -import server.life.MobSkill; -import server.life.MobSkillFactory; +import server.life.*; import server.maps.MapleMap; import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; @@ -53,28 +49,12 @@ import server.partyquest.PartyQuest; import server.partyquest.Pyramid; import server.quest.MapleQuest; import tools.MaplePacketCreator; -import client.MapleCharacter; -import client.MapleCharacter.DelayedQuestUpdate; -import client.MapleClient; -import client.MapleJob; -import client.MapleQuestStatus; -import client.SkillFactory; -import client.inventory.Equip; -import client.inventory.Item; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryProof; -import client.inventory.MapleInventoryType; -import client.inventory.MaplePet; -import client.inventory.ModifyInventory; -import client.inventory.manipulator.MapleInventoryManipulator; -import constants.game.GameConstants; -import constants.inventory.ItemConstants; -import constants.net.ServerConstants; -import server.MapleMarriage; -import server.expeditions.MapleExpeditionBossLog; -import server.life.MapleNPC; import tools.Pair; +import java.awt.*; +import java.util.List; +import java.util.*; + public class AbstractPlayerInteraction { public MapleClient c; @@ -243,7 +223,7 @@ public class AbstractPlayerInteraction { if (ServerConstants.JAVA_8) { for (Object d: list) { - intList.add(((Integer) d).intValue()); + intList.add((Integer) d); } } else { for (Object d: list) { @@ -305,7 +285,7 @@ public class AbstractPlayerInteraction { List>> invList = new ArrayList<>(6); for(int i = MapleInventoryType.UNDEFINED.getType(); i < MapleInventoryType.CASH.getType(); i++) { - invList.add(new LinkedList>()); + invList.add(new LinkedList<>()); } for(int i = 0; i < size; i++) { @@ -445,7 +425,7 @@ public class AbstractPlayerInteraction { public int getQuestProgressInt(int id) { try { - return Integer.valueOf(getQuestProgress(id)); + return Integer.parseInt(getQuestProgress(id)); } catch (NumberFormatException nfe) { return 0; } @@ -453,7 +433,7 @@ public class AbstractPlayerInteraction { public int getQuestProgressInt(int id, int infoNumber) { try { - return Integer.valueOf(getQuestProgress(id, infoNumber)); + return Integer.parseInt(getQuestProgress(id, infoNumber)); } catch (NumberFormatException nfe) { return 0; } @@ -662,7 +642,7 @@ public class AbstractPlayerInteraction { if (randomStats) { MapleInventoryManipulator.addFromDrop(c, ii.randomizeStats((Equip) item), false, petId); } else { - MapleInventoryManipulator.addFromDrop(c, (Equip) item, false, petId); + MapleInventoryManipulator.addFromDrop(c, item, false, petId); } } else { MapleInventoryManipulator.addFromDrop(c, item, false, petId); @@ -796,9 +776,9 @@ public class AbstractPlayerInteraction { public void removeHPQItems() { int[] items = {4001095, 4001096, 4001097, 4001098, 4001099, 4001100, 4001101}; - for (int i = 0; i < items.length; i ++) { - removePartyItems(items[i]); - } + for (int item : items) { + removePartyItems(item); + } } public void removePartyItems(int id) { diff --git a/src/main/java/scripting/event/EventInstanceManager.java b/src/main/java/scripting/event/EventInstanceManager.java index 87c67d40d4..237713d2b3 100644 --- a/src/main/java/scripting/event/EventInstanceManager.java +++ b/src/main/java/scripting/event/EventInstanceManager.java @@ -21,56 +21,45 @@ */ package scripting.event; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.HashMap; -import java.util.Map; -import java.util.HashSet; -import java.util.Set; -import java.util.Iterator; -import java.util.Properties; -import javax.script.ScriptException; - +import client.MapleCharacter; +import client.Skill; +import client.SkillFactory; import config.YamlConfig; +import constants.inventory.ItemConstants; +import constants.net.ServerConstants; import net.server.audit.LockCollector; -import net.server.audit.locks.MonitoredLockType; -import net.server.audit.locks.MonitoredReentrantLock; -import net.server.audit.locks.MonitoredReadLock; -import net.server.audit.locks.MonitoredReentrantReadWriteLock; -import net.server.audit.locks.MonitoredWriteLock; +import net.server.audit.locks.*; import net.server.audit.locks.factory.MonitoredReadLockFactory; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.audit.locks.factory.MonitoredWriteLockFactory; +import net.server.coordinator.world.MapleEventRecallCoordinator; import net.server.world.MapleParty; import net.server.world.MaplePartyCharacter; -import server.maps.MaplePortal; -import server.TimerManager; -import server.MapleStatEffect; -import server.expeditions.MapleExpedition; -import server.life.MapleMonster; -import server.maps.MapleMap; -import server.maps.MapleMapManager; -import server.maps.MapleReactor; -import client.MapleCharacter; -import client.SkillFactory; -import client.Skill; -import constants.inventory.ItemConstants; -import constants.net.ServerConstants; -import java.awt.Point; -import java.util.concurrent.ScheduledFuture; -import java.util.logging.Level; -import java.util.logging.Logger; -import net.server.coordinator.world.MapleEventRecallCoordinator; import scripting.AbstractPlayerInteraction; import scripting.event.scheduler.EventScriptScheduler; import server.MapleItemInformationProvider; +import server.MapleStatEffect; import server.ThreadManager; +import server.TimerManager; +import server.expeditions.MapleExpedition; import server.life.MapleLifeFactory; +import server.life.MapleMonster; import server.life.MapleNPC; +import server.maps.MapleMap; +import server.maps.MapleMapManager; +import server.maps.MaplePortal; +import server.maps.MapleReactor; import tools.MaplePacketCreator; import tools.Pair; +import javax.script.ScriptException; +import java.awt.*; +import java.util.List; +import java.util.*; +import java.util.concurrent.ScheduledFuture; +import java.util.logging.Level; +import java.util.logging.Logger; + /** * * @author Matze @@ -297,16 +286,13 @@ public class EventInstanceManager { chr.announce(MaplePacketCreator.getClock((int) (time / 1000))); } - event_schedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - dismissEventTimer(); - - try { - invokeScriptFunction("scheduledTimeout", EventInstanceManager.this); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, "Event '" + em.getName() + "' does not implement scheduledTimeout function.", ex); - } + event_schedule = TimerManager.getInstance().schedule(() -> { + dismissEventTimer(); + + try { + invokeScriptFunction("scheduledTimeout", EventInstanceManager.this); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, "Event '" + em.getName() + "' does not implement scheduledTimeout function.", ex); } }, time); } @@ -317,16 +303,13 @@ public class EventInstanceManager { long nextTime = getTimeLeft() + time; eventTime += time; - event_schedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - dismissEventTimer(); + event_schedule = TimerManager.getInstance().schedule(() -> { + dismissEventTimer(); - try { - invokeScriptFunction("scheduledTimeout", EventInstanceManager.this); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, "Event '" + em.getName() + "' does not implement scheduledTimeout function.", ex); - } + try { + invokeScriptFunction("scheduledTimeout", EventInstanceManager.this); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, "Event '" + em.getName() + "' does not implement scheduledTimeout function.", ex); } }, nextTime); } @@ -539,13 +522,10 @@ public class EventInstanceManager { } public void playerKilled(final MapleCharacter chr) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - try { - invokeScriptFunction("playerDead", EventInstanceManager.this, chr); - } catch (ScriptException | NoSuchMethodException ex) {} // optional - } + ThreadManager.getInstance().newTask(() -> { + try { + invokeScriptFunction("playerDead", EventInstanceManager.this, chr); + } catch (ScriptException | NoSuchMethodException ex) {} // optional }); } @@ -660,30 +640,22 @@ public class EventInstanceManager { sL.unlock(); } - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - mapManager.dispose(); // issues from instantly disposing some event objects found thanks to MedicOP - wL.lock(); - try { - mapManager = null; - em = null; - } finally { - wL.unlock(); - } - - disposeLocks(); + TimerManager.getInstance().schedule(() -> { + mapManager.dispose(); // issues from instantly disposing some event objects found thanks to MedicOP + wL.lock(); + try { + mapManager = null; + em = null; + } finally { + wL.unlock(); } + + disposeLocks(); }, 60 * 1000); } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { @@ -699,14 +671,11 @@ public class EventInstanceManager { rL.lock(); try { if (ess != null) { - Runnable r = new Runnable() { - @Override - public void run() { - try { - invokeScriptFunction(methodName, EventInstanceManager.this); - } catch (ScriptException | NoSuchMethodException ex) { - ex.printStackTrace(); - } + Runnable r = () -> { + try { + invokeScriptFunction(methodName, EventInstanceManager.this); + } catch (ScriptException | NoSuchMethodException ex) { + ex.printStackTrace(); } }; @@ -923,7 +892,7 @@ public class EventInstanceManager { if (ServerConstants.JAVA_8) { for (Object d: list) { - intList.add(((Integer) d).intValue()); + intList.add((Integer) d); } } else { for (Object d: list) { @@ -975,9 +944,7 @@ public class EventInstanceManager { wL.lock(); try { - for(Integer item: exclusive) { - exclusiveItems.add(item); - } + exclusiveItems.addAll(exclusive); } finally { wL.unlock(); } @@ -1142,7 +1109,7 @@ public class EventInstanceManager { if(!eventCleared && leavingEventMap && !isEventTeamLeaderOn()) return true; if(getPlayerCount() < minPlayers) return true; - + return false; } @@ -1153,7 +1120,7 @@ public class EventInstanceManager { // thanks Conrad for noticing expeditions don't need to have neither the leader nor meet the minimum requirement inside the event if(getPlayerCount() <= 1) return true; } - + return false; } @@ -1164,7 +1131,7 @@ public class EventInstanceManager { if(leavingEventMap && getLeaderId() == quitter.getId()) return true; if(getPlayerCount() <= minPlayers) return true; } - + return false; } diff --git a/src/main/java/scripting/event/EventManager.java b/src/main/java/scripting/event/EventManager.java index d9661a6239..11f9535def 100644 --- a/src/main/java/scripting/event/EventManager.java +++ b/src/main/java/scripting/event/EventManager.java @@ -21,50 +21,39 @@ */ package scripting.event; +import client.MapleCharacter; import config.YamlConfig; +import constants.game.GameConstants; +import constants.net.ServerConstants; +import jdk.nashorn.api.scripting.NashornScriptEngine; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.api.scripting.ScriptUtils; -import tools.exceptions.EventInstanceInProgressException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.script.ScriptException; - -import constants.net.ServerConstants; -import constants.game.GameConstants; -import client.MapleCharacter; import net.server.Server; -import net.server.world.World; -import net.server.channel.Channel; -import net.server.guild.MapleGuild; -import net.server.world.MapleParty; -import net.server.world.MaplePartyCharacter; -import scripting.event.scheduler.EventScriptScheduler; -import server.MapleMarriage; -import server.expeditions.MapleExpedition; -import server.maps.MapleMap; -import server.life.MapleMonster; -import server.life.MapleLifeFactory; -import server.quest.MapleQuest; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; -import jdk.nashorn.api.scripting.NashornScriptEngine; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; +import net.server.channel.Channel; +import net.server.guild.MapleGuild; +import net.server.world.MapleParty; +import net.server.world.MaplePartyCharacter; +import net.server.world.World; +import scripting.event.scheduler.EventScriptScheduler; +import server.MapleMarriage; import server.ThreadManager; +import server.expeditions.MapleExpedition; +import server.life.MapleLifeFactory; +import server.life.MapleMonster; +import server.maps.MapleMap; +import server.quest.MapleQuest; +import tools.exceptions.EventInstanceInProgressException; + +import javax.script.ScriptException; +import java.util.*; +import java.util.concurrent.Semaphore; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; //import jdk.nashorn.api.scripting.ScriptUtils; /** @@ -78,8 +67,8 @@ public class EventManager { private World wserv; private Server server; private EventScriptScheduler ess = new EventScriptScheduler(); - private Map instances = new HashMap(); - private Map instanceLocks = new HashMap(); + private Map instances = new HashMap<>(); + private Map instanceLocks = new HashMap<>(); private final Queue queuedGuilds = new LinkedList<>(); private final Map queuedGuildLeaders = new HashMap<>(); private List openedLobbys; @@ -154,12 +143,7 @@ public class EventManager { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { @@ -173,7 +157,7 @@ public class EventManager { if (ServerConstants.JAVA_8) { for (Object d: list) { - intList.add(((Integer) d).intValue()); + intList.add((Integer) d); } } else { for (Object d: list) { @@ -216,14 +200,11 @@ public class EventManager { } public EventScheduledFuture schedule(final String methodName, final EventInstanceManager eim, long delay) { - Runnable r = new Runnable() { - @Override - public void run() { - try { - iv.invokeFunction(methodName, eim); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } + Runnable r = () -> { + try { + iv.invokeFunction(methodName, eim); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } }; @@ -234,14 +215,11 @@ public class EventManager { } public EventScheduledFuture scheduleAtTimestamp(final String methodName, long timestamp) { - Runnable r = new Runnable() { - @Override - public void run() { - try { - iv.invokeFunction(methodName, (Object) null); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } + Runnable r = () -> { + try { + iv.invokeFunction(methodName, (Object) null); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } }; @@ -304,14 +282,11 @@ public class EventManager { } public void disposeInstance(final String name) { - ess.registerEntry(new Runnable() { - @Override - public void run() { - freeLobbyInstance(name); - - synchronized (instances) { - instances.remove(name); - } + ess.registerEntry(() -> { + freeLobbyInstance(name); + + synchronized (instances) { + instances.remove(name); } }, YamlConfig.config.server.EVENT_LOBBY_DELAY * 1000); } diff --git a/src/main/java/scripting/event/scheduler/EventScriptScheduler.java b/src/main/java/scripting/event/scheduler/EventScriptScheduler.java index 3e8805f2ac..6646a7df81 100644 --- a/src/main/java/scripting/event/scheduler/EventScriptScheduler.java +++ b/src/main/java/scripting/event/scheduler/EventScriptScheduler.java @@ -20,19 +20,20 @@ package scripting.event.scheduler; import config.YamlConfig; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ScheduledFuture; -import server.TimerManager; import net.server.Server; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import server.ThreadManager; +import server.TimerManager; + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; /** * @@ -46,12 +47,7 @@ public class EventScriptScheduler { private ScheduledFuture schedulerTask = null; private MonitoredReentrantLock schedulerLock; - private Runnable monitorTask = new Runnable() { - @Override - public void run() { - runBaseSchedule(); - } - }; + private Runnable monitorTask = () -> runBaseSchedule(); public EventScriptScheduler() { schedulerLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.EM_SCHDL, true); @@ -107,73 +103,59 @@ public class EventScriptScheduler { public void registerEntry(final Runnable scheduledAction, final long duration) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - schedulerLock.lock(); - try { - idleProcs = 0; - if (schedulerTask == null) { - if (disposed) { - return; - } - - schedulerTask = TimerManager.getInstance().register(monitorTask, YamlConfig.config.server.MOB_STATUS_MONITOR_PROC, YamlConfig.config.server.MOB_STATUS_MONITOR_PROC); + ThreadManager.getInstance().newTask(() -> { + schedulerLock.lock(); + try { + idleProcs = 0; + if (schedulerTask == null) { + if (disposed) { + return; } - registeredEntries.put(scheduledAction, Server.getInstance().getCurrentTime() + duration); - } finally { - schedulerLock.unlock(); + schedulerTask = TimerManager.getInstance().register(monitorTask, YamlConfig.config.server.MOB_STATUS_MONITOR_PROC, YamlConfig.config.server.MOB_STATUS_MONITOR_PROC); } + + registeredEntries.put(scheduledAction, Server.getInstance().getCurrentTime() + duration); + } finally { + schedulerLock.unlock(); } }); } public void cancelEntry(final Runnable scheduledAction) { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - schedulerLock.lock(); - try { - registeredEntries.remove(scheduledAction); - } finally { - schedulerLock.unlock(); - } + ThreadManager.getInstance().newTask(() -> { + schedulerLock.lock(); + try { + registeredEntries.remove(scheduledAction); + } finally { + schedulerLock.unlock(); } }); } public void dispose() { - ThreadManager.getInstance().newTask(new Runnable() { - @Override - public void run() { - schedulerLock.lock(); - try { - if (schedulerTask != null) { - schedulerTask.cancel(false); - schedulerTask = null; - } - - registeredEntries.clear(); - disposed = true; - } finally { - schedulerLock.unlock(); + ThreadManager.getInstance().newTask(() -> { + schedulerLock.lock(); + try { + if (schedulerTask != null) { + schedulerTask.cancel(false); + schedulerTask = null; } - disposeLocks(); + registeredEntries.clear(); + disposed = true; + } finally { + schedulerLock.unlock(); } + + disposeLocks(); }); } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/scripting/npc/NPCConversationManager.java b/src/main/java/scripting/npc/NPCConversationManager.java index f4b22ed08a..4c21dfc5c5 100644 --- a/src/main/java/scripting/npc/NPCConversationManager.java +++ b/src/main/java/scripting/npc/NPCConversationManager.java @@ -21,11 +21,17 @@ along with this program. If not, see . */ package scripting.npc; -import java.io.File; -import java.sql.SQLException; - +import client.*; +import client.inventory.Item; +import client.inventory.ItemFactory; +import client.inventory.MaplePet; import config.YamlConfig; +import constants.game.GameConstants; +import constants.inventory.ItemConstants; +import constants.string.LanguageConstants; import net.server.Server; +import net.server.channel.Channel; +import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; import net.server.guild.MapleAlliance; import net.server.guild.MapleGuild; import net.server.world.MapleParty; @@ -33,57 +39,33 @@ import net.server.world.MaplePartyCharacter; import provider.MapleData; import provider.MapleDataProviderFactory; import scripting.AbstractPlayerInteraction; -import server.MapleItemInformationProvider; -import server.MapleStatEffect; -import server.MapleShop; -import server.MapleShopFactory; +import server.*; +import server.MapleSkillbookInformationProvider.SkillBookEntry; import server.events.gm.MapleEvent; +import server.expeditions.MapleExpedition; +import server.expeditions.MapleExpeditionType; import server.gachapon.MapleGachapon; import server.gachapon.MapleGachapon.MapleGachaponItem; +import server.life.MapleLifeFactory; import server.life.MaplePlayerNPC; import server.maps.MapleMap; import server.maps.MapleMapManager; -import server.partyquest.Pyramid; -import server.partyquest.Pyramid.PyramidMode; -import tools.LogHelper; -import tools.MaplePacketCreator; -import client.MapleCharacter; -import client.MapleClient; -import client.MapleJob; -import client.MapleSkinColor; -import client.MapleStat; -import client.Skill; -import client.SkillFactory; -import client.inventory.Item; -import client.inventory.ItemFactory; -import client.inventory.MaplePet; -import constants.game.GameConstants; -import constants.inventory.ItemConstants; -import constants.string.LanguageConstants; -import net.server.channel.Channel; -import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType; -import server.MapleMarriage; -import server.MapleSkillbookInformationProvider; -import server.MapleSkillbookInformationProvider.SkillBookEntry; -import server.TimerManager; -import server.life.MapleLifeFactory; import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; -import server.expeditions.MapleExpedition; -import server.expeditions.MapleExpeditionType; import server.partyquest.AriantColiseum; import server.partyquest.MonsterCarnival; +import server.partyquest.Pyramid; +import server.partyquest.Pyramid.PyramidMode; +import tools.FilePrinter; +import tools.LogHelper; +import tools.MaplePacketCreator; import tools.packets.Wedding; -import java.awt.Point; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; +import java.awt.*; +import java.io.File; +import java.sql.SQLException; import java.util.List; -import java.util.Map; -import java.util.Set; -import tools.FilePrinter; +import java.util.*; /** * @@ -214,7 +196,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { getClient().announce(MaplePacketCreator.getNPCTalk(npc, (byte) 4, text, "", speaker)); } - public void sendStyle(String text, int styles[]) { + public void sendStyle(String text, int[] styles) { if (styles.length > 0) { getClient().announce(MaplePacketCreator.getNPCTalkStyle(npc, text, styles)); } else { // thanks Conrad for noticing empty styles crashing players @@ -697,19 +679,9 @@ public class NPCConversationManager extends AbstractPlayerInteraction { mc.changeMap(map, map.getPortal(0)); mc.announce(MaplePacketCreator.serverNotice(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntryLobby))); TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - mapClock(3 * 60); - } - }, 1500); + tMan.schedule(() -> mapClock(3 * 60), 1500); - mc.setCpqTimer(TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - mc.changeMap(mapExit, mapExit.getPortal(0)); - } - }, 3 * 60 * 1000)); + mc.setCpqTimer(TimerManager.getInstance().schedule(() -> mc.changeMap(mapExit, mapExit.getPortal(0)), 3 * 60 * 1000)); } } } catch (Exception ex) { @@ -794,57 +766,44 @@ public class NPCConversationManager extends AbstractPlayerInteraction { if (mc != null) { mc.changeMap(lobbyMap, lobbyMap.getPortal(0)); TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - mapClock(10); - } - }, 1500); + tMan.schedule(() -> mapClock(10), 1500); } } for (MaplePartyCharacter mpc : getPlayer().getParty().getMembers()) { MapleCharacter mc = mpc.getPlayer(); if (mc != null) { TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - mapClock(10); - } - }, 1500); + tMan.schedule(() -> mapClock(10), 1500); } } } final int mapid = c.getPlayer().getMapId() + 1; TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - try { - for (MaplePartyCharacter mpc : getPlayer().getParty().getMembers()) { - MapleCharacter mc = mpc.getPlayer(); - if (mc != null) { - mc.setMonsterCarnival(null); - } + tMan.schedule(() -> { + try { + for (MaplePartyCharacter mpc : getPlayer().getParty().getMembers()) { + MapleCharacter mc = mpc.getPlayer(); + if (mc != null) { + mc.setMonsterCarnival(null); } - for (MaplePartyCharacter mpc : challenger.getParty().getMembers()) { - MapleCharacter mc = mpc.getPlayer(); - if (mc != null) { - mc.setMonsterCarnival(null); - } + } + for (MaplePartyCharacter mpc : challenger.getParty().getMembers()) { + MapleCharacter mc = mpc.getPlayer(); + if (mc != null) { + mc.setMonsterCarnival(null); } - } catch (NullPointerException npe) { - warpoutCPQLobby(lobbyMap); - return; - } - - MapleParty lobbyParty = getPlayer().getParty(), challengerParty = challenger.getParty(); - int status = canStartCPQ(lobbyMap, lobbyParty, challengerParty); - if (status == 0) { - new MonsterCarnival(lobbyParty, challengerParty, mapid, true, (field / 100) % 10); - } else { - warpoutCPQLobby(lobbyMap); } + } catch (NullPointerException npe) { + warpoutCPQLobby(lobbyMap); + return; + } + + MapleParty lobbyParty = getPlayer().getParty(), challengerParty = challenger.getParty(); + int status = canStartCPQ(lobbyMap, lobbyParty, challengerParty); + if (status == 0) { + new MonsterCarnival(lobbyParty, challengerParty, mapid, true, (field / 100) % 10); + } else { + warpoutCPQLobby(lobbyMap); } }, 11000); } catch (Exception e) { @@ -872,34 +831,31 @@ public class NPCConversationManager extends AbstractPlayerInteraction { } final int mapid = c.getPlayer().getMapId() + 100; TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - try { - for (MaplePartyCharacter mpc : getPlayer().getParty().getMembers()) { - MapleCharacter mc = mpc.getPlayer(); - if (mc != null) { - mc.setMonsterCarnival(null); - } + tMan.schedule(() -> { + try { + for (MaplePartyCharacter mpc : getPlayer().getParty().getMembers()) { + MapleCharacter mc = mpc.getPlayer(); + if (mc != null) { + mc.setMonsterCarnival(null); } - for (MaplePartyCharacter mpc : challenger.getParty().getMembers()) { - MapleCharacter mc = mpc.getPlayer(); - if (mc != null) { - mc.setMonsterCarnival(null); - } + } + for (MaplePartyCharacter mpc : challenger.getParty().getMembers()) { + MapleCharacter mc = mpc.getPlayer(); + if (mc != null) { + mc.setMonsterCarnival(null); } - } catch (NullPointerException npe) { - warpoutCPQLobby(lobbyMap); - return; - } - - MapleParty lobbyParty = getPlayer().getParty(), challengerParty = challenger.getParty(); - int status = canStartCPQ(lobbyMap, lobbyParty, challengerParty); - if (status == 0) { - new MonsterCarnival(lobbyParty, challengerParty, mapid, false, (field / 1000) % 10); - } else { - warpoutCPQLobby(lobbyMap); } + } catch (NullPointerException npe) { + warpoutCPQLobby(lobbyMap); + return; + } + + MapleParty lobbyParty = getPlayer().getParty(), challengerParty = challenger.getParty(); + int status = canStartCPQ(lobbyMap, lobbyParty, challengerParty); + if (status == 0) { + new MonsterCarnival(lobbyParty, challengerParty, mapid, false, (field / 1000) % 10); + } else { + warpoutCPQLobby(lobbyMap); } }, 10000); } catch (Exception e) { @@ -972,19 +928,9 @@ public class NPCConversationManager extends AbstractPlayerInteraction { mc.changeMap(map, map.getPortal(0)); mc.announce(MaplePacketCreator.serverNotice(6, LanguageConstants.getMessage(mc, LanguageConstants.CPQEntryLobby))); TimerManager tMan = TimerManager.getInstance(); - tMan.schedule(new Runnable() { - @Override - public void run() { - mapClock(3 * 60); - } - }, 1500); + tMan.schedule(() -> mapClock(3 * 60), 1500); - mc.setCpqTimer(TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - mc.changeMap(mapExit, mapExit.getPortal(0)); - } - }, 3 * 60 * 1000)); + mc.setCpqTimer(TimerManager.getInstance().schedule(() -> mc.changeMap(mapExit, mapExit.getPortal(0)), 3 * 60 * 1000)); } } } catch (Exception ex) { diff --git a/src/main/java/scripting/portal/PortalScript.java b/src/main/java/scripting/portal/PortalScript.java index b679ef5eb0..0b0f8e8a81 100644 --- a/src/main/java/scripting/portal/PortalScript.java +++ b/src/main/java/scripting/portal/PortalScript.java @@ -22,5 +22,5 @@ package scripting.portal; public interface PortalScript { - public boolean enter(PortalPlayerInteraction ppi); + boolean enter(PortalPlayerInteraction ppi); } \ No newline at end of file diff --git a/src/main/java/scripting/reactor/ReactorActionManager.java b/src/main/java/scripting/reactor/ReactorActionManager.java index dd43569083..417ea59288 100644 --- a/src/main/java/scripting/reactor/ReactorActionManager.java +++ b/src/main/java/scripting/reactor/ReactorActionManager.java @@ -28,14 +28,6 @@ import client.inventory.Item; import client.inventory.MapleInventoryType; import config.YamlConfig; import constants.inventory.ItemConstants; -import java.awt.Point; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.ScheduledFuture; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.script.ScriptException; import jdk.nashorn.api.scripting.NashornScriptEngine; import scripting.AbstractPlayerInteraction; import scripting.event.EventInstanceManager; @@ -52,6 +44,15 @@ import server.partyquest.MapleCarnivalFactory; import server.partyquest.MapleCarnivalFactory.MCSkill; import tools.MaplePacketCreator; +import javax.script.ScriptException; +import java.awt.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ScheduledFuture; +import java.util.logging.Level; +import java.util.logging.Logger; + /** * @author Lerk * @author Ronan @@ -168,7 +169,7 @@ public class ReactorActionManager extends AbstractPlayerInteraction { byte p = 1; for (ReactorDropEntry d : items) { - dropPos.x = (int) (posX + ((p % 2 == 0) ? (25 * ((p + 1) / 2)) : -(25 * (p / 2)))); + dropPos.x = posX + ((p % 2 == 0) ? (25 * ((p + 1) / 2)) : -(25 * (p / 2))); p++; if (d.itemId == 0) { @@ -195,35 +196,32 @@ public class ReactorActionManager extends AbstractPlayerInteraction { dropPos.x -= (12 * items.size()); - sprayTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - if(dropItems.isEmpty()) { - sprayTask.cancel(false); - return; - } - - ReactorDropEntry d = dropItems.remove(0); - if (d.itemId == 0) { - int range = maxMeso - minMeso; - int displayDrop = (int) (Math.random() * range) + minMeso; - int mesoDrop = (displayDrop * worldMesoRate); - r.getMap().spawnMesoDrop(mesoDrop, r.getMap().calcDropPos(dropPos, r.getPosition()), r, chr, false, (byte) 2); - } else { - Item drop; - - if (ItemConstants.getInventoryType(d.itemId) != MapleInventoryType.EQUIP) { - drop = new Item(d.itemId, (short) 0, (short) 1); - } else { - MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId)); - } - - r.getMap().dropFromReactor(getPlayer(), r, drop, dropPos, (short) d.questid); - } - - dropPos.x += 25; + sprayTask = TimerManager.getInstance().register(() -> { + if(dropItems.isEmpty()) { + sprayTask.cancel(false); + return; } + + ReactorDropEntry d = dropItems.remove(0); + if (d.itemId == 0) { + int range = maxMeso - minMeso; + int displayDrop = (int) (Math.random() * range) + minMeso; + int mesoDrop = (displayDrop * worldMesoRate); + r.getMap().spawnMesoDrop(mesoDrop, r.getMap().calcDropPos(dropPos, r.getPosition()), r, chr, false, (byte) 2); + } else { + Item drop; + + if (ItemConstants.getInventoryType(d.itemId) != MapleInventoryType.EQUIP) { + drop = new Item(d.itemId, (short) 0, (short) 1); + } else { + MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); + drop = ii.randomizeStats((Equip) ii.getEquipById(d.itemId)); + } + + r.getMap().dropFromReactor(getPlayer(), r, drop, dropPos, (short) d.questid); + } + + dropPos.x += 25; }, 200); } } @@ -319,27 +317,21 @@ public class ReactorActionManager extends AbstractPlayerInteraction { } public ScheduledFuture schedule(final String methodName, final EventInstanceManager eim, long delay) { - return TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - try { - iv.invokeFunction(methodName, eim); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } + return TimerManager.getInstance().schedule(() -> { + try { + iv.invokeFunction(methodName, eim); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } }, delay); } public ScheduledFuture scheduleAtTimestamp(final String methodName, long timestamp) { - return TimerManager.getInstance().scheduleAtTimestamp(new Runnable() { - @Override - public void run() { - try { - iv.invokeFunction(methodName, (Object) null); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } + return TimerManager.getInstance().scheduleAtTimestamp(() -> { + try { + iv.invokeFunction(methodName, (Object) null); + } catch (ScriptException | NoSuchMethodException ex) { + Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } }, timestamp); } diff --git a/src/main/java/server/MakerItemFactory.java b/src/main/java/server/MakerItemFactory.java index 200b0eebe0..9d2886d257 100644 --- a/src/main/java/server/MakerItemFactory.java +++ b/src/main/java/server/MakerItemFactory.java @@ -23,11 +23,12 @@ package server; import config.YamlConfig; import constants.inventory.EquipType; +import tools.Pair; + import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import tools.Pair; /** * @@ -160,14 +161,10 @@ public class MakerItemFactory { this.cost = mi.cost; this.reqLevel = mi.reqLevel; this.reqMakerLevel = mi.reqMakerLevel; - - for(Pair p : mi.reqItems) { - reqItems.add(p); - } - - for(Pair p : mi.gainItems) { - gainItems.add(p); - } + + reqItems.addAll(mi.reqItems); + + gainItems.addAll(mi.gainItems); } public List> getReqItems() { diff --git a/src/main/java/server/MapleShop.java b/src/main/java/server/MapleShop.java index 97f722f6b9..241900da8f 100644 --- a/src/main/java/server/MapleShop.java +++ b/src/main/java/server/MapleShop.java @@ -193,7 +193,7 @@ public class MapleShop { return; } - Item item = c.getPlayer().getInventory(type).getItem((short) slot); + Item item = c.getPlayer().getInventory(type).getItem(slot); if(canSell(item, quantity)) { quantity = getSellingQuantity(item, quantity); MapleInventoryManipulator.removeFromSlot(c, type, (byte) slot, quantity, false); @@ -277,7 +277,7 @@ public class MapleShop { } } for (Integer recharge : recharges) { - ret.addItem(new MapleShopItem((short) 1000, recharge.intValue(), 0, 0)); + ret.addItem(new MapleShopItem((short) 1000, recharge, 0, 0)); } } } diff --git a/src/main/java/server/MapleShopFactory.java b/src/main/java/server/MapleShopFactory.java index 2807e041a2..67264b681a 100644 --- a/src/main/java/server/MapleShopFactory.java +++ b/src/main/java/server/MapleShopFactory.java @@ -36,8 +36,8 @@ public class MapleShopFactory { return instance; } - private Map shops = new HashMap(); - private Map npcShops = new HashMap(); + private Map shops = new HashMap<>(); + private Map npcShops = new HashMap<>(); private MapleShop loadShop(int id, boolean isShopId) { MapleShop ret = MapleShop.createFromDB(id, isShopId); diff --git a/src/main/java/server/MapleStatEffect.java b/src/main/java/server/MapleStatEffect.java index d7821b1193..d7aa812cd9 100644 --- a/src/main/java/server/MapleStatEffect.java +++ b/src/main/java/server/MapleStatEffect.java @@ -21,102 +21,34 @@ */ package server; -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import config.YamlConfig; -import net.server.Server; -import provider.MapleData; -import provider.MapleDataTool; -import server.life.MapleMonster; -import server.maps.FieldLimit; -import server.maps.MapleDoor; -import server.maps.MapleMap; -import server.maps.MapleMapObject; -import server.maps.MapleMapObjectType; -import server.maps.MapleMist; -import server.maps.MaplePortal; -import server.maps.MapleSummon; -import server.maps.SummonMovementType; -import tools.ArrayMap; -import tools.MaplePacketCreator; -import tools.Pair; -import client.MapleBuffStat; -import client.MapleCharacter; -import client.MapleDisease; -import client.MapleJob; -import client.MapleMount; -import client.Skill; -import client.SkillFactory; +import client.*; import client.inventory.Item; import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import client.status.MonsterStatus; import client.status.MonsterStatusEffect; +import config.YamlConfig; import constants.inventory.ItemConstants; -import constants.skills.Aran; -import constants.skills.Assassin; -import constants.skills.Bandit; -import constants.skills.Beginner; -import constants.skills.Bishop; -import constants.skills.BlazeWizard; -import constants.skills.Bowmaster; -import constants.skills.Brawler; -import constants.skills.Buccaneer; -import constants.skills.ChiefBandit; -import constants.skills.Cleric; -import constants.skills.Corsair; -import constants.skills.Crossbowman; -import constants.skills.Crusader; -import constants.skills.DarkKnight; -import constants.skills.DawnWarrior; -import constants.skills.DragonKnight; -import constants.skills.Evan; -import constants.skills.FPArchMage; -import constants.skills.FPMage; -import constants.skills.FPWizard; -import constants.skills.Fighter; -import constants.skills.GM; -import constants.skills.Gunslinger; -import constants.skills.Hermit; -import constants.skills.Hero; -import constants.skills.Hunter; -import constants.skills.ILArchMage; -import constants.skills.ILMage; -import constants.skills.ILWizard; -import constants.skills.Legend; -import constants.skills.Magician; -import constants.skills.Marauder; -import constants.skills.Marksman; -import constants.skills.NightLord; -import constants.skills.NightWalker; -import constants.skills.Noblesse; -import constants.skills.Outlaw; -import constants.skills.Page; -import constants.skills.Paladin; -import constants.skills.Pirate; -import constants.skills.Priest; -import constants.skills.Ranger; -import constants.skills.Rogue; -import constants.skills.Shadower; -import constants.skills.Sniper; -import constants.skills.Spearman; -import constants.skills.SuperGM; -import constants.skills.ThunderBreaker; -import constants.skills.WhiteKnight; -import constants.skills.WindArcher; +import constants.skills.*; +import net.server.Server; import net.server.world.MapleParty; import net.server.world.MaplePartyCharacter; +import provider.MapleData; +import provider.MapleDataTool; +import server.life.MapleMonster; import server.life.MobSkill; import server.life.MobSkillFactory; +import server.maps.*; import server.partyquest.MapleCarnivalFactory; import server.partyquest.MapleCarnivalFactory.MCSkill; +import tools.ArrayMap; +import tools.MaplePacketCreator; +import tools.Pair; + +import java.awt.*; +import java.util.List; +import java.util.*; /** * @author Matze @@ -221,7 +153,7 @@ public class MapleStatEffect { } private static void addBuffStatPairToListIfNotZero(List> list, MapleBuffStat buffstat, Integer val) { - if (val.intValue() != 0) { + if (val != 0) { list.add(new Pair<>(buffstat, val)); } } @@ -249,7 +181,7 @@ public class MapleStatEffect { ret.prop = iprop / 100.0; ret.cp = MapleDataTool.getInt("cp", source, 0); - List cure = new ArrayList(5); + List cure = new ArrayList<>(5); if (MapleDataTool.getInt("poison", source, 0) > 0) { cure.add(MapleDisease.POISON); } @@ -317,7 +249,7 @@ public class MapleStatEffect { addBuffStatPairToListIfNotZero(statups, MapleBuffStat.AURA, ret.barrier); ret.mapProtection = mapProtection(sourceid); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MAP_PROTECTION, Integer.valueOf(ret.mapProtection)); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MAP_PROTECTION, (int) ret.mapProtection); if (ret.overTime && ret.getSummonMovementType() == null) { if (!skill) { @@ -325,8 +257,8 @@ public class MapleStatEffect { ret.berserk = MapleDataTool.getInt("berserk", source, 0); ret.booster = MapleDataTool.getInt("booster", source, 0); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.BERSERK, Integer.valueOf(ret.berserk)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.BOOSTER, Integer.valueOf(ret.booster)); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.BERSERK, ret.berserk); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.BOOSTER, ret.booster); } else if (isDojoBuff(sourceid) || isHpMpRecovery(sourceid)) { ret.mhpR = (byte) MapleDataTool.getInt("mhpR", source, 0); @@ -334,8 +266,8 @@ public class MapleStatEffect { ret.mmpR = (byte) MapleDataTool.getInt("mmpR", source, 0); ret.mmpRRate = (short) (MapleDataTool.getInt("mmpRRate", source, 0) * 100); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.HPREC, Integer.valueOf(ret.mhpR)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MPREC, Integer.valueOf(ret.mmpR)); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.HPREC, (int) ret.mhpR); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MPREC, (int) ret.mmpR); } else if (isRateCoupon(sourceid)) { switch (MapleDataTool.getInt("expR", source, 0)) { @@ -451,14 +383,14 @@ public class MapleStatEffect { } } - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.WATK, Integer.valueOf(ret.watk)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.WDEF, Integer.valueOf(ret.wdef)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MATK, Integer.valueOf(ret.matk)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MDEF, Integer.valueOf(ret.mdef)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.ACC, Integer.valueOf(ret.acc)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.AVOID, Integer.valueOf(ret.avoid)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.SPEED, Integer.valueOf(ret.speed)); - addBuffStatPairToListIfNotZero(statups, MapleBuffStat.JUMP, Integer.valueOf(ret.jump)); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.WATK, (int) ret.watk); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.WDEF, (int) ret.wdef); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MATK, (int) ret.matk); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.MDEF, (int) ret.mdef); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.ACC, (int) ret.acc); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.AVOID, (int) ret.avoid); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.SPEED, (int) ret.speed); + addBuffStatPairToListIfNotZero(statups, MapleBuffStat.JUMP, (int) ret.jump); } MapleData ltd = source.getChildByPath("lt"); @@ -497,13 +429,13 @@ public class MapleStatEffect { case Noblesse.RECOVERY: case Legend.RECOVERY: case Evan.RECOVERY: - statups.add(new Pair<>(MapleBuffStat.RECOVERY, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.RECOVERY, x)); break; case Beginner.ECHO_OF_HERO: case Noblesse.ECHO_OF_HERO: case Legend.ECHO_OF_HERO: case Evan.ECHO_OF_HERO: - statups.add(new Pair<>(MapleBuffStat.ECHO_OF_HERO, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.ECHO_OF_HERO, ret.x)); break; case Beginner.MONSTER_RIDER: case Noblesse.MONSTER_RIDER: @@ -523,27 +455,27 @@ public class MapleStatEffect { case Beginner.BALROG_MOUNT: case Noblesse.BALROG_MOUNT: case Legend.BALROG_MOUNT: - statups.add(new Pair<>(MapleBuffStat.MONSTER_RIDING, Integer.valueOf(sourceid))); + statups.add(new Pair<>(MapleBuffStat.MONSTER_RIDING, sourceid)); break; case Beginner.INVINCIBLE_BARRIER: case Noblesse.INVINCIBLE_BARRIER: case Legend.INVICIBLE_BARRIER: case Evan.INVINCIBLE_BARRIER: - statups.add(new Pair<>(MapleBuffStat.DIVINE_BODY, Integer.valueOf(1))); + statups.add(new Pair<>(MapleBuffStat.DIVINE_BODY, 1)); break; case Fighter.POWER_GUARD: case Page.POWER_GUARD: - statups.add(new Pair<>(MapleBuffStat.POWERGUARD, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.POWERGUARD, x)); break; case Spearman.HYPER_BODY: case GM.HYPER_BODY: case SuperGM.HYPER_BODY: - statups.add(new Pair<>(MapleBuffStat.HYPERBODYHP, Integer.valueOf(x))); - statups.add(new Pair<>(MapleBuffStat.HYPERBODYMP, Integer.valueOf(ret.y))); + statups.add(new Pair<>(MapleBuffStat.HYPERBODYHP, x)); + statups.add(new Pair<>(MapleBuffStat.HYPERBODYMP, ret.y)); break; case Crusader.COMBO: case DawnWarrior.COMBO: - statups.add(new Pair<>(MapleBuffStat.COMBO, Integer.valueOf(1))); + statups.add(new Pair<>(MapleBuffStat.COMBO, 1)); break; case WhiteKnight.BW_FIRE_CHARGE: case WhiteKnight.BW_ICE_CHARGE: @@ -555,130 +487,130 @@ public class MapleStatEffect { case Paladin.SWORD_HOLY_CHARGE: case DawnWarrior.SOUL_CHARGE: case ThunderBreaker.LIGHTNING_CHARGE: - statups.add(new Pair<>(MapleBuffStat.WK_CHARGE, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.WK_CHARGE, x)); break; case DragonKnight.DRAGON_BLOOD: - statups.add(new Pair<>(MapleBuffStat.DRAGONBLOOD, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.DRAGONBLOOD, ret.x)); break; case Hero.STANCE: case Paladin.STANCE: case DarkKnight.STANCE: case Aran.FREEZE_STANDING: - statups.add(new Pair<>(MapleBuffStat.STANCE, Integer.valueOf(iprop))); + statups.add(new Pair<>(MapleBuffStat.STANCE, iprop)); break; case DawnWarrior.FINAL_ATTACK: case WindArcher.FINAL_ATTACK: - statups.add(new Pair<>(MapleBuffStat.FINALATTACK, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.FINALATTACK, x)); break; // MAGICIAN case Magician.MAGIC_GUARD: case BlazeWizard.MAGIC_GUARD: case Evan.MAGIC_GUARD: - statups.add(new Pair<>(MapleBuffStat.MAGIC_GUARD, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.MAGIC_GUARD, x)); break; case Cleric.INVINCIBLE: - statups.add(new Pair<>(MapleBuffStat.INVINCIBLE, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.INVINCIBLE, x)); break; case Priest.HOLY_SYMBOL: case SuperGM.HOLY_SYMBOL: - statups.add(new Pair<>(MapleBuffStat.HOLY_SYMBOL, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.HOLY_SYMBOL, x)); break; case FPArchMage.INFINITY: case ILArchMage.INFINITY: case Bishop.INFINITY: - statups.add(new Pair<>(MapleBuffStat.INFINITY, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.INFINITY, x)); break; case FPArchMage.MANA_REFLECTION: case ILArchMage.MANA_REFLECTION: case Bishop.MANA_REFLECTION: - statups.add(new Pair<>(MapleBuffStat.MANA_REFLECTION, Integer.valueOf(1))); + statups.add(new Pair<>(MapleBuffStat.MANA_REFLECTION, 1)); break; case Bishop.HOLY_SHIELD: - statups.add(new Pair<>(MapleBuffStat.HOLY_SHIELD, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.HOLY_SHIELD, x)); break; case BlazeWizard.ELEMENTAL_RESET: case Evan.ELEMENTAL_RESET: - statups.add(new Pair<>(MapleBuffStat.ELEMENTAL_RESET, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.ELEMENTAL_RESET, x)); break; case Evan.MAGIC_SHIELD: - statups.add(new Pair<>(MapleBuffStat.MAGIC_SHIELD, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.MAGIC_SHIELD, x)); break; case Evan.MAGIC_RESISTANCE: - statups.add(new Pair<>(MapleBuffStat.MAGIC_RESISTANCE, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.MAGIC_RESISTANCE, x)); break; case Evan.SLOW: - statups.add(new Pair<>(MapleBuffStat.SLOW, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.SLOW, x)); // BOWMAN case Priest.MYSTIC_DOOR: case Hunter.SOUL_ARROW: case Crossbowman.SOUL_ARROW: case WindArcher.SOUL_ARROW: - statups.add(new Pair<>(MapleBuffStat.SOULARROW, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.SOULARROW, x)); break; case Ranger.PUPPET: case Sniper.PUPPET: case WindArcher.PUPPET: case Outlaw.OCTOPUS: case Corsair.WRATH_OF_THE_OCTOPI: - statups.add(new Pair<>(MapleBuffStat.PUPPET, Integer.valueOf(1))); + statups.add(new Pair<>(MapleBuffStat.PUPPET, 1)); break; case Bowmaster.CONCENTRATE: statups.add(new Pair<>(MapleBuffStat.CONCENTRATE, x)); break; case Bowmaster.HAMSTRING: - statups.add(new Pair<>(MapleBuffStat.HAMSTRING, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.HAMSTRING, x)); monsterStatus.put(MonsterStatus.SPEED, x); break; case Marksman.BLIND: - statups.add(new Pair<>(MapleBuffStat.BLIND, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.BLIND, x)); monsterStatus.put(MonsterStatus.ACC, x); break; case Bowmaster.SHARP_EYES: case Marksman.SHARP_EYES: - statups.add(new Pair<>(MapleBuffStat.SHARP_EYES, Integer.valueOf(ret.x << 8 | ret.y))); + statups.add(new Pair<>(MapleBuffStat.SHARP_EYES, ret.x << 8 | ret.y)); break; case WindArcher.WIND_WALK: - statups.add(new Pair<>(MapleBuffStat.WIND_WALK, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.WIND_WALK, x)); //break; thanks Vcoc for noticing WW not showing for other players when changing maps case Rogue.DARK_SIGHT: case NightWalker.DARK_SIGHT: - statups.add(new Pair<>(MapleBuffStat.DARKSIGHT, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.DARKSIGHT, x)); break; case Hermit.MESO_UP: - statups.add(new Pair<>(MapleBuffStat.MESOUP, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.MESOUP, x)); break; case Hermit.SHADOW_PARTNER: case NightWalker.SHADOW_PARTNER: - statups.add(new Pair<>(MapleBuffStat.SHADOWPARTNER, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.SHADOWPARTNER, x)); break; case ChiefBandit.MESO_GUARD: - statups.add(new Pair<>(MapleBuffStat.MESOGUARD, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.MESOGUARD, x)); break; case ChiefBandit.PICKPOCKET: - statups.add(new Pair<>(MapleBuffStat.PICKPOCKET, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.PICKPOCKET, x)); break; case NightLord.SHADOW_STARS: - statups.add(new Pair<>(MapleBuffStat.SHADOW_CLAW, Integer.valueOf(0))); + statups.add(new Pair<>(MapleBuffStat.SHADOW_CLAW, 0)); break; // PIRATE case Pirate.DASH: case ThunderBreaker.DASH: case Beginner.SPACE_DASH: case Noblesse.SPACE_DASH: - statups.add(new Pair<>(MapleBuffStat.DASH2, Integer.valueOf(ret.x))); - statups.add(new Pair<>(MapleBuffStat.DASH, Integer.valueOf(ret.y))); + statups.add(new Pair<>(MapleBuffStat.DASH2, ret.x)); + statups.add(new Pair<>(MapleBuffStat.DASH, ret.y)); break; case Corsair.SPEED_INFUSION: case Buccaneer.SPEED_INFUSION: case ThunderBreaker.SPEED_INFUSION: - statups.add(new Pair<>(MapleBuffStat.SPEED_INFUSION, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.SPEED_INFUSION, x)); break; case Outlaw.HOMING_BEACON: case Corsair.BULLSEYE: - statups.add(new Pair<>(MapleBuffStat.HOMING_BEACON, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.HOMING_BEACON, x)); break; case ThunderBreaker.SPARK: - statups.add(new Pair<>(MapleBuffStat.SPARK, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.SPARK, x)); break; // MULTIPLE case Aran.POLEARM_BOOSTER: @@ -705,7 +637,7 @@ public class MapleStatEffect { case Beginner.POWER_EXPLOSION: case Noblesse.POWER_EXPLOSION: case Legend.POWER_EXPLOSION: - statups.add(new Pair<>(MapleBuffStat.BOOSTER, Integer.valueOf(x))); + statups.add(new Pair<>(MapleBuffStat.BOOSTER, x)); break; case Hero.MAPLE_WARRIOR: case Paladin.MAPLE_WARRIOR: @@ -721,18 +653,18 @@ public class MapleStatEffect { case Buccaneer.MAPLE_WARRIOR: case Aran.MAPLE_WARRIOR: case Evan.MAPLE_WARRIOR: - statups.add(new Pair<>(MapleBuffStat.MAPLE_WARRIOR, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.MAPLE_WARRIOR, ret.x)); break; // SUMMON case Ranger.SILVER_HAWK: case Sniper.GOLDEN_EAGLE: - statups.add(new Pair<>(MapleBuffStat.SUMMON, Integer.valueOf(1))); - monsterStatus.put(MonsterStatus.STUN, Integer.valueOf(1)); + statups.add(new Pair<>(MapleBuffStat.SUMMON, 1)); + monsterStatus.put(MonsterStatus.STUN, 1); break; case FPArchMage.ELQUINES: case Marksman.FROST_PREY: - statups.add(new Pair<>(MapleBuffStat.SUMMON, Integer.valueOf(1))); - monsterStatus.put(MonsterStatus.FREEZE, Integer.valueOf(1)); + statups.add(new Pair<>(MapleBuffStat.SUMMON, 1)); + monsterStatus.put(MonsterStatus.FREEZE, 1); break; case Priest.SUMMON_DRAGON: case Bowmaster.PHOENIX: @@ -746,32 +678,32 @@ public class MapleStatEffect { case NightWalker.DARKNESS: case ThunderBreaker.LIGHTNING: case BlazeWizard.IFRIT: - statups.add(new Pair<>(MapleBuffStat.SUMMON, Integer.valueOf(1))); + statups.add(new Pair<>(MapleBuffStat.SUMMON, 1)); break; // ----------------------------- MONSTER STATUS ---------------------------------- // case Crusader.ARMOR_CRASH: case DragonKnight.POWER_CRASH: case WhiteKnight.MAGIC_CRASH: - monsterStatus.put(MonsterStatus.SEAL_SKILL, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.SEAL_SKILL, 1); break; case Rogue.DISORDER: - monsterStatus.put(MonsterStatus.WATK, Integer.valueOf(ret.x)); - monsterStatus.put(MonsterStatus.WDEF, Integer.valueOf(ret.y)); + monsterStatus.put(MonsterStatus.WATK, ret.x); + monsterStatus.put(MonsterStatus.WDEF, ret.y); break; case Corsair.HYPNOTIZE: monsterStatus.put(MonsterStatus.INERTMOB, 1); break; case NightLord.NINJA_AMBUSH: case Shadower.NINJA_AMBUSH: - monsterStatus.put(MonsterStatus.NINJA_AMBUSH, Integer.valueOf(ret.damage)); + monsterStatus.put(MonsterStatus.NINJA_AMBUSH, ret.damage); break; case Page.THREATEN: - monsterStatus.put(MonsterStatus.WATK, Integer.valueOf(ret.x)); - monsterStatus.put(MonsterStatus.WDEF, Integer.valueOf(ret.y)); + monsterStatus.put(MonsterStatus.WATK, ret.x); + monsterStatus.put(MonsterStatus.WDEF, ret.y); break; case DragonKnight.DRAGON_ROAR: ret.hpR = -x / 100.0; - monsterStatus.put(MonsterStatus.STUN, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.STUN, 1); break; case Crusader.AXE_COMA: case Crusader.SWORD_COMA: @@ -791,7 +723,7 @@ public class MapleStatEffect { case Aran.ROLLING_SPIN: case Evan.FIRE_BREATH: case Evan.BLAZE: - monsterStatus.put(MonsterStatus.STUN, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.STUN, 1); break; case NightLord.TAUNT: case Shadower.TAUNT: @@ -808,65 +740,65 @@ public class MapleStatEffect { case FPArchMage.PARALYZE: case Aran.COMBO_TEMPEST: case Evan.ICE_BREATH: - monsterStatus.put(MonsterStatus.FREEZE, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.FREEZE, 1); ret.duration *= 2; // freezing skills are a little strange break; case FPWizard.SLOW: case ILWizard.SLOW: case BlazeWizard.SLOW: - monsterStatus.put(MonsterStatus.SPEED, Integer.valueOf(ret.x)); + monsterStatus.put(MonsterStatus.SPEED, ret.x); break; case FPWizard.POISON_BREATH: case FPMage.ELEMENT_COMPOSITION: - monsterStatus.put(MonsterStatus.POISON, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.POISON, 1); break; case Priest.DOOM: - monsterStatus.put(MonsterStatus.DOOM, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.DOOM, 1); break; case ILMage.SEAL: case FPMage.SEAL: case BlazeWizard.SEAL: - monsterStatus.put(MonsterStatus.SEAL, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.SEAL, 1); break; case Hermit.SHADOW_WEB: // shadow web case NightWalker.SHADOW_WEB: - monsterStatus.put(MonsterStatus.SHADOW_WEB, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.SHADOW_WEB, 1); break; case FPArchMage.FIRE_DEMON: case ILArchMage.ICE_DEMON: - monsterStatus.put(MonsterStatus.POISON, Integer.valueOf(1)); - monsterStatus.put(MonsterStatus.FREEZE, Integer.valueOf(1)); + monsterStatus.put(MonsterStatus.POISON, 1); + monsterStatus.put(MonsterStatus.FREEZE, 1); break; case Evan.PHANTOM_IMPRINT: - monsterStatus.put(MonsterStatus.PHANTOM_IMPRINT, Integer.valueOf(x)); + monsterStatus.put(MonsterStatus.PHANTOM_IMPRINT, x); //ARAN case Aran.COMBO_ABILITY: - statups.add(new Pair<>(MapleBuffStat.ARAN_COMBO, Integer.valueOf(100))); + statups.add(new Pair<>(MapleBuffStat.ARAN_COMBO, 100)); break; case Aran.COMBO_BARRIER: - statups.add(new Pair<>(MapleBuffStat.COMBO_BARRIER, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.COMBO_BARRIER, ret.x)); break; case Aran.COMBO_DRAIN: - statups.add(new Pair<>(MapleBuffStat.COMBO_DRAIN, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.COMBO_DRAIN, ret.x)); break; case Aran.SMART_KNOCKBACK: - statups.add(new Pair<>(MapleBuffStat.SMART_KNOCKBACK, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.SMART_KNOCKBACK, ret.x)); break; case Aran.BODY_PRESSURE: - statups.add(new Pair<>(MapleBuffStat.BODY_PRESSURE, Integer.valueOf(ret.x))); + statups.add(new Pair<>(MapleBuffStat.BODY_PRESSURE, ret.x)); break; case Aran.SNOW_CHARGE: - statups.add(new Pair<>(MapleBuffStat.WK_CHARGE, Integer.valueOf(ret.duration))); + statups.add(new Pair<>(MapleBuffStat.WK_CHARGE, ret.duration)); break; default: break; } } if (ret.isMorph()) { - statups.add(new Pair<>(MapleBuffStat.MORPH, Integer.valueOf(ret.getMorph()))); + statups.add(new Pair<>(MapleBuffStat.MORPH, ret.getMorph())); } if (ret.ghost > 0 && !skill) { - statups.add(new Pair<>(MapleBuffStat.GHOST_MORPH, Integer.valueOf(ret.ghost))); + statups.add(new Pair<>(MapleBuffStat.GHOST_MORPH, ret.ghost)); } ret.monsterStatus = monsterStatus; statups.trimToSize(); @@ -1023,7 +955,7 @@ public class MapleStatEffect { if (projectile == null) { return false; } else { - MapleInventoryManipulator.removeFromSlot(applyto.getClient(), MapleInventoryType.USE, projectile.getPosition(), (short) projectileConsume, false, true); + MapleInventoryManipulator.removeFromSlot(applyto.getClient(), MapleInventoryType.USE, projectile.getPosition(), projectileConsume, false, true); } } finally { use.unlockInventory(); @@ -1377,7 +1309,7 @@ public class MapleStatEffect { } else if (isEnrage()) { applyto.handleOrbconsume(); } else if (isMorph()) { - List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.MORPH, Integer.valueOf(getMorph(applyto)))); + List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.MORPH, getMorph(applyto))); mbuff = MaplePacketCreator.giveForeignBuff(applyto.getId(), stat); } else if (isAriantShield()) { List> stat = Collections.singletonList(new Pair<>(MapleBuffStat.AURA, 1)); diff --git a/src/main/java/server/MapleStorage.java b/src/main/java/server/MapleStorage.java index 60ff667f5f..676adaeaca 100644 --- a/src/main/java/server/MapleStorage.java +++ b/src/main/java/server/MapleStorage.java @@ -233,16 +233,13 @@ public class MapleStorage { lock.lock(); try { - Collections.sort(items, new Comparator() { - @Override - public int compare(Item o1, Item o2) { - if (o1.getInventoryType().getType() < o2.getInventoryType().getType()) { - return -1; - } else if (o1.getInventoryType() == o2.getInventoryType()) { - return 0; - } - return 1; + items.sort((o1, o2) -> { + if (o1.getInventoryType().getType() < o2.getInventoryType().getType()) { + return -1; + } else if (o1.getInventoryType() == o2.getInventoryType()) { + return 0; } + return 1; }); List storageItems = getItems(); diff --git a/src/main/java/server/MapleStorageInventory.java b/src/main/java/server/MapleStorageInventory.java index 294d9df698..5d7bf2594c 100644 --- a/src/main/java/server/MapleStorageInventory.java +++ b/src/main/java/server/MapleStorageInventory.java @@ -19,19 +19,13 @@ */ package server; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import config.YamlConfig; -import constants.inventory.ItemConstants; - import client.MapleClient; import client.inventory.Equip; import client.inventory.Item; -import java.util.ArrayList; +import config.YamlConfig; +import constants.inventory.ItemConstants; + +import java.util.*; /** * @@ -128,7 +122,7 @@ class PairedQuicksort { if (i <= j) { w = (Equip)A.get(i); A.set(i, A.get(j)); - A.set(j, (Item)w); + A.set(j, w); i++; j--; @@ -221,8 +215,8 @@ public class MapleStorageInventory { } private void move(short sSlot, short dSlot, short slotMax) { - Item source = (Item) inventory.get(sSlot); - Item target = (Item) inventory.get(dSlot); + Item source = inventory.get(sSlot); + Item target = inventory.get(dSlot); if (source == null) { return; } @@ -350,7 +344,7 @@ public class MapleStorageInventory { for (short i = 1; i <= this.getSlotLimit(); i++) { Item item = this.getItem(i); if (item != null) { - itemarray.add((Item) item.copy()); + itemarray.add(item.copy()); } } diff --git a/src/main/java/server/ThreadManager.java b/src/main/java/server/ThreadManager.java index ae38f786d1..b5c8cc0d10 100644 --- a/src/main/java/server/ThreadManager.java +++ b/src/main/java/server/ThreadManager.java @@ -19,12 +19,7 @@ */ package server; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.Executors; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; /** * @@ -59,7 +54,7 @@ public class ThreadManager { RejectedExecutionHandler reh = new RejectedExecutionHandlerImpl(); ThreadFactory tf = Executors.defaultThreadFactory(); - tpe = new ThreadPoolExecutor(20, 1000, 77, TimeUnit.SECONDS, new ArrayBlockingQueue(50), tf, reh); + tpe = new ThreadPoolExecutor(20, 1000, 77, TimeUnit.SECONDS, new ArrayBlockingQueue<>(50), tf, reh); } public void stop() { diff --git a/src/main/java/server/TimerManager.java b/src/main/java/server/TimerManager.java index b80aaa388b..45f689a6b7 100644 --- a/src/main/java/server/TimerManager.java +++ b/src/main/java/server/TimerManager.java @@ -21,16 +21,17 @@ */ package server; +import net.server.Server; +import tools.FilePrinter; + +import javax.management.MBeanServer; +import javax.management.ObjectName; import java.lang.management.ManagementFactory; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import net.server.Server; -import javax.management.MBeanServer; -import javax.management.ObjectName; -import tools.FilePrinter; public class TimerManager implements TimerManagerMBean { private static TimerManager instance = new TimerManager(); @@ -79,12 +80,9 @@ public class TimerManager implements TimerManagerMBean { } public Runnable purge() {//Yay? - return new Runnable() { - @Override - public void run() { - Server.getInstance().forceUpdateCurrentTime(); - ses.purge(); - } + return () -> { + Server.getInstance().forceUpdateCurrentTime(); + ses.purge(); }; } diff --git a/src/main/java/server/TimerManagerMBean.java b/src/main/java/server/TimerManagerMBean.java index 147b43b159..014d34dad5 100644 --- a/src/main/java/server/TimerManagerMBean.java +++ b/src/main/java/server/TimerManagerMBean.java @@ -22,10 +22,10 @@ package server; public interface TimerManagerMBean { - public boolean isTerminated(); - public boolean isShutdown(); - public long getCompletedTaskCount(); - public long getActiveCount(); - public long getTaskCount(); - public int getQueuedTasks(); + boolean isTerminated(); + boolean isShutdown(); + long getCompletedTaskCount(); + long getActiveCount(); + long getTaskCount(); + int getQueuedTasks(); } diff --git a/src/main/java/server/events/gm/MapleCoconut.java b/src/main/java/server/events/gm/MapleCoconut.java index e78685226d..c9ca7332bd 100644 --- a/src/main/java/server/events/gm/MapleCoconut.java +++ b/src/main/java/server/events/gm/MapleCoconut.java @@ -23,13 +23,14 @@ package server.events.gm; import client.MapleCharacter; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; import server.TimerManager; import server.maps.MapleMap; import tools.MaplePacketCreator; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + /** * * @author kevintjuh93 @@ -42,7 +43,7 @@ public class MapleCoconut extends MapleEvent { private int countBombing = 80; private int countFalling = 401; private int countStopped = 20; - private List coconuts = new LinkedList(); + private List coconuts = new LinkedList<>(); public MapleCoconut(MapleMap map) { super(1, 50); @@ -58,35 +59,32 @@ public class MapleCoconut extends MapleEvent { setCoconutsHittable(true); map.broadcastMessage(MaplePacketCreator.getClock(300)); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (map.getId() == 109080000) { - if (getMapleScore() == getStoryScore()) { - bonusTime(); - } else if (getMapleScore() > getStoryScore()) { - for (MapleCharacter chr : map.getCharacters()) { - if (chr.getTeam() == 0) { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); - } else { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); - } + TimerManager.getInstance().schedule(() -> { + if (map.getId() == 109080000) { + if (getMapleScore() == getStoryScore()) { + bonusTime(); + } else if (getMapleScore() > getStoryScore()) { + for (MapleCharacter chr : map.getCharacters()) { + if (chr.getTeam() == 0) { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); + } else { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); } - warpOut(); - } else { - for (MapleCharacter chr : map.getCharacters()) { - if (chr.getTeam() == 1) { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); - } else { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); - } - } - warpOut(); } + warpOut(); + } else { + for (MapleCharacter chr : map.getCharacters()) { + if (chr.getTeam() == 1) { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); + } else { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); + } + } + warpOut(); } } }, 300000); @@ -94,59 +92,53 @@ public class MapleCoconut extends MapleEvent { public void bonusTime() { map.broadcastMessage(MaplePacketCreator.getClock(120)); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (getMapleScore() == getStoryScore()) { + TimerManager.getInstance().schedule(() -> { + if (getMapleScore() == getStoryScore()) { + for (MapleCharacter chr : map.getCharacters()) { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); + } + warpOut(); + } else if (getMapleScore() > getStoryScore()) { for (MapleCharacter chr : map.getCharacters()) { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); + if (chr.getTeam() == 0) { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); + } else { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); + } } warpOut(); - } else if (getMapleScore() > getStoryScore()) { - for (MapleCharacter chr : map.getCharacters()) { - if (chr.getTeam() == 0) { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); - } else { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); - } + } else { + for (MapleCharacter chr : map.getCharacters()) { + if (chr.getTeam() == 1) { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); + } else { + chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); + chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); } - warpOut(); - } else { - for (MapleCharacter chr : map.getCharacters()) { - if (chr.getTeam() == 1) { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/victory")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Victory")); - } else { - chr.getClient().announce(MaplePacketCreator.showEffect("event/coconut/lose")); - chr.getClient().announce(MaplePacketCreator.playSound("Coconut/Failed")); - } - } - warpOut(); } - } + warpOut(); + } }, 120000); } public void warpOut() { setCoconutsHittable(false); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - List chars = new ArrayList<>(map.getCharacters()); - - for (MapleCharacter chr : chars) { - if ((getMapleScore() > getStoryScore() && chr.getTeam() == 0) || (getStoryScore() > getMapleScore() && chr.getTeam() == 1)) { - chr.changeMap(109050000); - } else { - chr.changeMap(109050001); - } - } - map.setCoconut(null); + TimerManager.getInstance().schedule(() -> { + List chars = new ArrayList<>(map.getCharacters()); + + for (MapleCharacter chr : chars) { + if ((getMapleScore() > getStoryScore() && chr.getTeam() == 0) || (getStoryScore() > getMapleScore() && chr.getTeam() == 1)) { + chr.changeMap(109050000); + } else { + chr.changeMap(109050001); + } } + map.setCoconut(null); }, 12000); } diff --git a/src/main/java/server/events/gm/MapleFitness.java b/src/main/java/server/events/gm/MapleFitness.java index 1cbebdb4e7..4006a30eba 100644 --- a/src/main/java/server/events/gm/MapleFitness.java +++ b/src/main/java/server/events/gm/MapleFitness.java @@ -23,10 +23,11 @@ package server.events.gm; import client.MapleCharacter; -import java.util.concurrent.ScheduledFuture; import server.TimerManager; import tools.MaplePacketCreator; +import java.util.concurrent.ScheduledFuture; + /** * * @author kevintjuh93 @@ -40,12 +41,9 @@ public class MapleFitness { public MapleFitness(final MapleCharacter chr) { this.chr = chr; - this.schedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (chr.getMapId() >= 109040000 && chr.getMapId() <= 109040004) - chr.changeMap(chr.getMap().getReturnMap()); - } + this.schedule = TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() >= 109040000 && chr.getMapId() <= 109040004) + chr.changeMap(chr.getMap().getReturnMap()); }, 900000); } @@ -80,42 +78,39 @@ public class MapleFitness { } public void checkAndMessage() { - this.schedulemsg = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - if (chr.getFitness() == null) { - resetTimes(); - } - if (chr.getMap().getId() >= 109040000 && chr.getMap().getId() <= 109040004) { - if (getTimeLeft() > 9000 && getTimeLeft() < 11000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~")); - } else if (getTimeLeft() > 99000 && getTimeLeft() < 101000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Alright, you don't have much time remaining. Please hurry up a little!")); - } else if (getTimeLeft() > 239000 && getTimeLeft() < 241000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top!")); - } else if (getTimeLeft() > 299000 && getTimeLeft() < 301000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up.")); - } else if (getTimeLeft() > 359000 && getTimeLeft() < 361000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags.")); - } else if (getTimeLeft() > 499000 && getTimeLeft() < 501000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on.")); - } else if (getTimeLeft() > 599000 && getTimeLeft() < 601000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this!")); - } else if (getTimeLeft() > 659000 && getTimeLeft() < 661000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing.")); - } else if (getTimeLeft() > 699000 && getTimeLeft() < 701000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on.")); - } else if (getTimeLeft() > 779000 && getTimeLeft() < 781000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages.")); - } else if (getTimeLeft() > 839000 && getTimeLeft() < 841000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag.")); - } else if (getTimeLeft() > 869000 && getTimeLeft() < 871000) { - chr.getClient().announce(MaplePacketCreator.serverNotice(0, "[MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that.")); - } - } else { - resetTimes(); - } + this.schedulemsg = TimerManager.getInstance().register(() -> { + if (chr.getFitness() == null) { + resetTimes(); + } + if (chr.getMap().getId() >= 109040000 && chr.getMap().getId() <= 109040004) { + if (getTimeLeft() > 9000 && getTimeLeft() < 11000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~")); + } else if (getTimeLeft() > 99000 && getTimeLeft() < 101000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Alright, you don't have much time remaining. Please hurry up a little!")); + } else if (getTimeLeft() > 239000 && getTimeLeft() < 241000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top!")); + } else if (getTimeLeft() > 299000 && getTimeLeft() < 301000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up.")); + } else if (getTimeLeft() > 359000 && getTimeLeft() < 361000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags.")); + } else if (getTimeLeft() > 499000 && getTimeLeft() < 501000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on.")); + } else if (getTimeLeft() > 599000 && getTimeLeft() < 601000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this!")); + } else if (getTimeLeft() > 659000 && getTimeLeft() < 661000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing.")); + } else if (getTimeLeft() > 699000 && getTimeLeft() < 701000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on.")); + } else if (getTimeLeft() > 779000 && getTimeLeft() < 781000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages.")); + } else if (getTimeLeft() > 839000 && getTimeLeft() < 841000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag.")); + } else if (getTimeLeft() > 869000 && getTimeLeft() < 871000) { + chr.getClient().announce(MaplePacketCreator.serverNotice(0, "[MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that.")); } + } else { + resetTimes(); + } }, 5000, 29500); } // 14:30 [Notice][MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that. diff --git a/src/main/java/server/events/gm/MapleOla.java b/src/main/java/server/events/gm/MapleOla.java index bcc224d35f..820c618ad6 100644 --- a/src/main/java/server/events/gm/MapleOla.java +++ b/src/main/java/server/events/gm/MapleOla.java @@ -22,10 +22,11 @@ package server.events.gm; import client.MapleCharacter; -import java.util.concurrent.ScheduledFuture; import server.TimerManager; import tools.MaplePacketCreator; +import java.util.concurrent.ScheduledFuture; + /** * * @author kevintjuh93 @@ -38,13 +39,10 @@ public class MapleOla { public MapleOla(final MapleCharacter chr) { this.chr = chr; - this.schedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (chr.getMapId() >= 109030001 && chr.getMapId() <= 109030303) - chr.changeMap(chr.getMap().getReturnMap()); - resetTimes(); - } + this.schedule = TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() >= 109030001 && chr.getMapId() <= 109030303) + chr.changeMap(chr.getMap().getReturnMap()); + resetTimes(); }, 360000); } diff --git a/src/main/java/server/events/gm/MapleOxQuiz.java b/src/main/java/server/events/gm/MapleOxQuiz.java index c4c2a73b65..08b515571e 100644 --- a/src/main/java/server/events/gm/MapleOxQuiz.java +++ b/src/main/java/server/events/gm/MapleOxQuiz.java @@ -22,16 +22,17 @@ package server.events.gm; import client.MapleCharacter; -import tools.Randomizer; -import java.io.File; -import java.util.ArrayList; -import java.util.List; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; import provider.MapleDataTool; import server.TimerManager; import server.maps.MapleMap; import tools.MaplePacketCreator; +import tools.Randomizer; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; /** * @@ -69,39 +70,36 @@ public final class MapleOxQuiz { } final int number = gm; map.broadcastMessage(MaplePacketCreator.showOXQuiz(round, question, true)); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - map.broadcastMessage(MaplePacketCreator.showOXQuiz(round, question, true)); - List chars = new ArrayList<>(map.getCharacters()); - - for (MapleCharacter chr : chars) { - if (chr != null) // make sure they aren't null... maybe something can happen in 12 seconds. - { - if (!isCorrectAnswer(chr, getOXAnswer(round, question)) && !chr.isGM()) { - chr.changeMap(chr.getMap().getReturnMap()); - } else { - chr.gainExp(expGain, true, true); - } + TimerManager.getInstance().schedule(() -> { + map.broadcastMessage(MaplePacketCreator.showOXQuiz(round, question, true)); + List chars = new ArrayList<>(map.getCharacters()); + + for (MapleCharacter chr : chars) { + if (chr != null) // make sure they aren't null... maybe something can happen in 12 seconds. + { + if (!isCorrectAnswer(chr, getOXAnswer(round, question)) && !chr.isGM()) { + chr.changeMap(chr.getMap().getReturnMap()); + } else { + chr.gainExp(expGain, true, true); } } - //do question - if ((round == 1 && question == 29) || ((round == 2 || round == 3) && question == 17) || ((round == 4 || round == 8) && question == 12) || (round == 5 && question == 26) || (round == 9 && question == 44) || ((round == 6 || round == 7) && question == 16)) { - question = 100; - } else { - question++; - } - //send question - if (map.getCharacters().size() - number <= 2) { - map.broadcastMessage(MaplePacketCreator.serverNotice(6, "The event has ended")); - map.getPortal("join00").setPortalStatus(true); - map.setOx(null); - map.setOxQuiz(false); - //prizes here - return; - } - sendQuestion(); } + //do question + if ((round == 1 && question == 29) || ((round == 2 || round == 3) && question == 17) || ((round == 4 || round == 8) && question == 12) || (round == 5 && question == 26) || (round == 9 && question == 44) || ((round == 6 || round == 7) && question == 16)) { + question = 100; + } else { + question++; + } + //send question + if (map.getCharacters().size() - number <= 2) { + map.broadcastMessage(MaplePacketCreator.serverNotice(6, "The event has ended")); + map.getPortal("join00").setPortalStatus(true); + map.setOx(null); + map.setOxQuiz(false); + //prizes here + return; + } + sendQuestion(); }, 30000); // Time to answer = 30 seconds ( Ox Quiz packet shows a 30 second timer. } diff --git a/src/main/java/server/events/gm/MapleSnowball.java b/src/main/java/server/events/gm/MapleSnowball.java index a21129c3f2..ab69320f70 100644 --- a/src/main/java/server/events/gm/MapleSnowball.java +++ b/src/main/java/server/events/gm/MapleSnowball.java @@ -22,12 +22,13 @@ along with this program. If not, see . package server.events.gm; import client.MapleCharacter; -import java.util.LinkedList; -import java.util.List; import server.TimerManager; import server.maps.MapleMap; import tools.MaplePacketCreator; +import java.util.LinkedList; +import java.util.List; + /** * * @author kevintjuh93 @@ -40,7 +41,7 @@ public class MapleSnowball { private boolean hittable = false; private int team; private boolean winner = false; - List characters = new LinkedList(); + List characters = new LinkedList<>(); public MapleSnowball(int team, MapleMap map) { this.map = map; @@ -62,24 +63,21 @@ public class MapleSnowball { } } hittable = true; - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (map.getSnowball(team).getPosition() > map.getSnowball(team == 0 ? 1 : 0).getPosition()) { - for (MapleCharacter chr : characters) { - if (chr != null) - chr.announce(MaplePacketCreator.rollSnowBall(false, 3, map.getSnowball(0), map.getSnowball(0))); - } - winner = true; - } else if (map.getSnowball(team == 0 ? 1 : 0).getPosition() > map.getSnowball(team).getPosition()) { - for (MapleCharacter chr : characters) { - if (chr != null) - chr.announce(MaplePacketCreator.rollSnowBall(false, 4, map.getSnowball(0), map.getSnowball(0))); - } - winner = true; - } //Else - warpOut(); - } + TimerManager.getInstance().schedule(() -> { + if (map.getSnowball(team).getPosition() > map.getSnowball(team == 0 ? 1 : 0).getPosition()) { + for (MapleCharacter chr : characters) { + if (chr != null) + chr.announce(MaplePacketCreator.rollSnowBall(false, 3, map.getSnowball(0), map.getSnowball(0))); + } + winner = true; + } else if (map.getSnowball(team == 0 ? 1 : 0).getPosition() > map.getSnowball(team).getPosition()) { + for (MapleCharacter chr : characters) { + if (chr != null) + chr.announce(MaplePacketCreator.rollSnowBall(false, 4, map.getSnowball(0), map.getSnowball(0))); + } + winner = true; + } //Else + warpOut(); }, 600000); } @@ -112,13 +110,9 @@ public class MapleSnowball { if (this.snowmanhp - damage < 0) { this.snowmanhp = 0; - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - setSnowmanHP(7500); - message(5); - } + TimerManager.getInstance().schedule(() -> { + setSnowmanHP(7500); + message(5); }, 10000); } else this.snowmanhp -= damage; @@ -149,17 +143,13 @@ public class MapleSnowball { } public void warpOut() { - TimerManager.getInstance().schedule(new Runnable() { + TimerManager.getInstance().schedule(() -> { + if (winner == true) + map.warpOutByTeam(team, 109050000); + else + map.warpOutByTeam(team, 109050001); - @Override - public void run() { - if (winner == true) - map.warpOutByTeam(team, 109050000); - else - map.warpOutByTeam(team, 109050001); - - map.setSnowball(team, null); - } + map.setSnowball(team, null); }, 10000); } } \ No newline at end of file diff --git a/src/main/java/server/expeditions/MapleExpedition.java b/src/main/java/server/expeditions/MapleExpedition.java index 17335dd105..32262909e6 100644 --- a/src/main/java/server/expeditions/MapleExpedition.java +++ b/src/main/java/server/expeditions/MapleExpedition.java @@ -22,31 +22,25 @@ package server.expeditions; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.ScheduledFuture; - +import client.MapleCharacter; import net.server.PlayerStorage; import net.server.Server; +import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantLock; +import net.server.audit.locks.factory.MonitoredReentrantLockFactory; +import net.server.channel.Channel; import server.TimerManager; import server.life.MapleMonster; import server.maps.MapleMap; import tools.LogHelper; import tools.MaplePacketCreator; -import client.MapleCharacter; -import java.util.Iterator; -import java.util.Properties; -import net.server.audit.locks.MonitoredLockType; -import net.server.audit.locks.MonitoredReentrantLock; -import net.server.audit.locks.factory.MonitoredReentrantLockFactory; -import net.server.channel.Channel; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ScheduledFuture; /** * @@ -133,17 +127,14 @@ public class MapleExpedition { final MapleExpedition exped = this; startTime = System.currentTimeMillis() + type.getRegistrationTime() * 60 * 1000; - schedule = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - if (registering){ - exped.removeChannelExpedition(startMap.getChannelServer()); - if (!silent) startMap.broadcastMessage(MaplePacketCreator.serverNotice(6, "[Expedition] The time limit has been reached. Expedition has been disbanded.")); - - dispose(false); - } - } - }, type.getRegistrationTime() * 60 * 1000); + schedule = TimerManager.getInstance().schedule(() -> { + if (registering){ +exped.removeChannelExpedition(startMap.getChannelServer()); + if (!silent) startMap.broadcastMessage(MaplePacketCreator.serverNotice(6, "[Expedition] The time limit has been reached. Expedition has been disbanded.")); + +dispose(false); + } + }, type.getRegistrationTime() * 60 * 1000); } public void dispose(boolean log){ @@ -256,8 +247,8 @@ public class MapleExpedition { } public void monsterKilled(MapleCharacter chr, MapleMonster mob) { - for (int i = 0; i < EXPEDITION_BOSSES.length; i++) { - if (mob.getId() == EXPEDITION_BOSSES[i]) { //If the monster killed was a boss + for (int expeditionBoss : EXPEDITION_BOSSES) { + if (mob.getId() == expeditionBoss) { //If the monster killed was a boss String timeStamp = new SimpleDateFormat("HH:mm:ss").format(new Date()); bossLogs.add(">" + mob.getName() + " was killed after " + LogHelper.getTimeString(startTime) + " - " + timeStamp + "\r\n"); return; diff --git a/src/main/java/server/life/MapleLifeFactory.java b/src/main/java/server/life/MapleLifeFactory.java index 4d74054ee4..45bc6184ac 100644 --- a/src/main/java/server/life/MapleLifeFactory.java +++ b/src/main/java/server/life/MapleLifeFactory.java @@ -21,15 +21,6 @@ along with this program. If not, see . */ package server.life; -import java.awt.Point; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; import provider.MapleData; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; @@ -38,6 +29,11 @@ import provider.wz.MapleDataType; import tools.Pair; import tools.StringUtil; +import java.awt.*; +import java.io.File; +import java.util.List; +import java.util.*; + public class MapleLifeFactory { private static MapleDataProvider data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Mob.wz")); @@ -95,7 +91,7 @@ public class MapleLifeFactory { } private static Pair> getMonsterStats(int mid) { - MapleData monsterData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(mid) + ".img", '0', 11)); + MapleData monsterData = data.getData(StringUtil.getLeftPaddedStr(mid + ".img", '0', 11)); if (monsterData == null) { return null; } @@ -244,13 +240,13 @@ public class MapleLifeFactory { public static MapleMonster getMonster(int mid) { try { - MapleMonsterStats stats = monsterStats.get(Integer.valueOf(mid)); + MapleMonsterStats stats = monsterStats.get(mid); if (stats == null) { Pair> mobStats = getMonsterStats(mid); stats = mobStats.getLeft(); setMonsterAttackInfo(mid, mobStats.getRight()); - monsterStats.put(Integer.valueOf(mid), stats); + monsterStats.put(mid, stats); } MapleMonster ret = new MapleMonster(mid, stats); return ret; @@ -264,9 +260,9 @@ public class MapleLifeFactory { public static int getMonsterLevel(int mid) { try { - MapleMonsterStats stats = monsterStats.get(Integer.valueOf(mid)); + MapleMonsterStats stats = monsterStats.get(mid); if (stats == null) { - MapleData monsterData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(mid) + ".img", '0', 11)); + MapleData monsterData = data.getData(StringUtil.getLeftPaddedStr(mid + ".img", '0', 11)); if (monsterData == null) { return -1; } @@ -285,7 +281,7 @@ public class MapleLifeFactory { private static void decodeElementalString(MapleMonsterStats stats, String elemAttr) { for (int i = 0; i < elemAttr.length(); i += 2) { - stats.setEffectiveness(Element.getFromChar(elemAttr.charAt(i)), ElementalEffectiveness.getByNumber(Integer.valueOf(String.valueOf(elemAttr.charAt(i + 1))))); + stats.setEffectiveness(Element.getFromChar(elemAttr.charAt(i)), ElementalEffectiveness.getByNumber(Integer.parseInt(String.valueOf(elemAttr.charAt(i + 1))))); } } diff --git a/src/main/java/server/life/MapleMonster.java b/src/main/java/server/life/MapleMonster.java index b5f3c0c9ad..05b695e60a 100644 --- a/src/main/java/server/life/MapleMonster.java +++ b/src/main/java/server/life/MapleMonster.java @@ -21,66 +21,45 @@ */ package server.life; -import client.MapleBuffStat; -import client.MapleCharacter; -import client.MapleClient; -import client.MapleFamilyEntry; -import client.MapleJob; -import client.Skill; -import client.SkillFactory; +import client.*; import client.status.MonsterStatus; import client.status.MonsterStatusEffect; import config.YamlConfig; -import constants.skills.Crusader; -import constants.skills.FPMage; -import constants.skills.Hermit; -import constants.skills.ILMage; -import constants.skills.NightLord; -import constants.skills.NightWalker; -import constants.skills.Priest; -import constants.skills.Shadower; -import constants.skills.WhiteKnight; -import java.awt.Point; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.EnumMap; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.HashSet; -import java.util.Set; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import net.server.audit.locks.MonitoredReentrantLock; -import net.server.channel.Channel; -import net.server.world.MapleParty; -import net.server.world.MaplePartyCharacter; -import scripting.event.EventInstanceManager; -import server.TimerManager; -import server.life.MapleLifeFactory.BanishInfo; -import server.maps.MapleMap; -import server.maps.MapleMapObjectType; -import tools.IntervalBuilder; -import tools.MaplePacketCreator; -import tools.Pair; -import tools.Randomizer; +import constants.skills.*; import net.server.audit.LockCollector; import net.server.audit.locks.MonitoredLockType; +import net.server.audit.locks.MonitoredReentrantLock; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; -import net.server.services.type.ChannelServices; +import net.server.channel.Channel; +import net.server.coordinator.world.MapleMonsterAggroCoordinator; import net.server.services.task.channel.MobAnimationService; import net.server.services.task.channel.MobClearSkillService; import net.server.services.task.channel.MobStatusService; import net.server.services.task.channel.OverallService; -import net.server.coordinator.world.MapleMonsterAggroCoordinator; +import net.server.services.type.ChannelServices; +import net.server.world.MapleParty; +import net.server.world.MaplePartyCharacter; +import scripting.event.EventInstanceManager; import server.MapleStatEffect; +import server.TimerManager; +import server.life.MapleLifeFactory.BanishInfo; import server.loot.MapleLootManager; +import server.maps.MapleMap; +import server.maps.MapleMapObjectType; import server.maps.MapleSummon; +import tools.IntervalBuilder; +import tools.MaplePacketCreator; +import tools.Pair; +import tools.Randomizer; + +import java.awt.*; +import java.lang.ref.WeakReference; +import java.util.List; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; public class MapleMonster extends AbstractLoadedMapleLife { @@ -193,7 +172,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { public void addSummonedMob(MapleMonster mob) { Set calledOids = this.calledMobOids; if (calledOids == null) { - calledOids = Collections.synchronizedSet(new HashSet()); + calledOids = Collections.synchronizedSet(new HashSet<>()); this.calledMobOids = calledOids; } @@ -792,51 +771,48 @@ public class MapleMonster extends AbstractLoadedMapleLife { if(toSpawn.size() > 0) { final EventInstanceManager eim = this.getMap().getEventInstance(); - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - MapleCharacter controller = lastController.getLeft(); - boolean aggro = lastController.getRight(); - - for (Integer mid : toSpawn) { - final MapleMonster mob = MapleLifeFactory.getMonster(mid); - mob.setPosition(getPosition()); - mob.setFh(getFh()); - mob.setParentMobOid(getObjectId()); - - if (dropsDisabled()) { - mob.disableDrops(); - } - reviveMap.spawnMonster(mob); + TimerManager.getInstance().schedule(() -> { + MapleCharacter controller = lastController.getLeft(); + boolean aggro = lastController.getRight(); - if (mob.getId() >= 8810010 && mob.getId() <= 8810017 && reviveMap.isHorntailDefeated()) { - boolean htKilled = false; - MapleMonster ht = reviveMap.getMonsterById(8810018); - - if(ht != null) { - ht.lockMonster(); - try { - htKilled = ht.isAlive(); - ht.setHpZero(); - } finally { - ht.unlockMonster(); - } - - if(htKilled) { - reviveMap.killMonster(ht, killer, true); - } + for (Integer mid : toSpawn) { + final MapleMonster mob = MapleLifeFactory.getMonster(mid); + mob.setPosition(getPosition()); + mob.setFh(getFh()); + mob.setParentMobOid(getObjectId()); + + if (dropsDisabled()) { + mob.disableDrops(); + } + reviveMap.spawnMonster(mob); + + if (mob.getId() >= 8810010 && mob.getId() <= 8810017 && reviveMap.isHorntailDefeated()) { + boolean htKilled = false; + MapleMonster ht = reviveMap.getMonsterById(8810018); + + if(ht != null) { + ht.lockMonster(); + try { + htKilled = ht.isAlive(); + ht.setHpZero(); + } finally { + ht.unlockMonster(); } - - for(int i = 8810017; i >= 8810010; i--) { - reviveMap.killMonster(reviveMap.getMonsterById(i), killer, true); + + if(htKilled) { + reviveMap.killMonster(ht, killer, true); } - } else if (controller != null) { - mob.aggroSwitchController(controller, aggro); } - - if(eim != null) { - eim.reviveMonster(mob); + + for(int i = 8810017; i >= 8810010; i--) { + reviveMap.killMonster(reviveMap.getMonsterById(i), killer, true); } + } else if (controller != null) { + mob.aggroSwitchController(controller, aggro); + } + + if(eim != null) { + eim.reviveMonster(mob); } } }, getAnimationTime("die1")); @@ -851,29 +827,26 @@ public class MapleMonster extends AbstractLoadedMapleLife { public void dropFromFriendlyMonster(long delay) { final MapleMonster m = this; - monsterItemDrop = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - if (!m.isAlive()) { - if (monsterItemDrop != null) { - monsterItemDrop.cancel(false); - } - - return; + monsterItemDrop = TimerManager.getInstance().register(() -> { + if (!m.isAlive()) { + if (monsterItemDrop != null) { + monsterItemDrop.cancel(false); } - - MapleMap map = m.getMap(); - List chrList = map.getAllPlayers(); - if (!chrList.isEmpty()) { - MapleCharacter chr = (MapleCharacter) chrList.get(0); - - EventInstanceManager eim = map.getEventInstance(); - if (eim != null) { - eim.friendlyItemDrop(m); - } - - map.dropFromFriendlyMonster(chr, m); + + return; + } + + MapleMap map = m.getMap(); + List chrList = map.getAllPlayers(); + if (!chrList.isEmpty()) { + MapleCharacter chr = chrList.get(0); + + EventInstanceManager eim = map.getEventInstance(); + if (eim != null) { + eim.friendlyItemDrop(m); } + + map.dropFromFriendlyMonster(chr, m); } }, delay, delay); } @@ -1197,26 +1170,22 @@ public class MapleMonster extends AbstractLoadedMapleLife { } } - final Runnable cancelTask = new Runnable() { - - @Override - public void run() { - if (isAlive()) { - byte[] packet = MaplePacketCreator.cancelMonsterStatus(getObjectId(), status.getStati()); - broadcastMonsterStatusMessage(packet); - } - - statiLock.lock(); - try { - for (MonsterStatus stat : status.getStati().keySet()) { - stati.remove(stat); - } - } finally { - statiLock.unlock(); - } - - setVenomMulti(0); + final Runnable cancelTask = () -> { + if (isAlive()) { + byte[] packet = MaplePacketCreator.cancelMonsterStatus(getObjectId(), status.getStati()); + broadcastMonsterStatusMessage(packet); } + + statiLock.lock(); + try { + for (MonsterStatus stat : status.getStati().keySet()) { + stati.remove(stat); + } + } finally { + statiLock.unlock(); + } + + setVenomMulti(0); }; Runnable overtimeAction = null; @@ -1226,7 +1195,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { if (poison) { int poisonLevel = from.getSkillLevel(status.getSkill()); int poisonDamage = Math.min(Short.MAX_VALUE, (int) (getMaxHp() / (70.0 - poisonLevel) + 0.999)); - status.setValue(MonsterStatus.POISON, Integer.valueOf(poisonDamage)); + status.setValue(MonsterStatus.POISON, poisonDamage); animationTime = broadcastStatusEffect(status); overtimeAction = new DamageTask(poisonDamage, from, status, 0); @@ -1252,8 +1221,8 @@ public class MapleMonster extends AbstractLoadedMapleLife { poisonDamage += (Randomizer.nextInt(gap) + minDmg); } poisonDamage = Math.min(Short.MAX_VALUE, poisonDamage); - status.setValue(MonsterStatus.VENOMOUS_WEAPON, Integer.valueOf(poisonDamage)); - status.setValue(MonsterStatus.POISON, Integer.valueOf(poisonDamage)); + status.setValue(MonsterStatus.VENOMOUS_WEAPON, poisonDamage); + status.setValue(MonsterStatus.POISON, poisonDamage); animationTime = broadcastStatusEffect(status); overtimeAction = new DamageTask(poisonDamage, from, status, 0); @@ -1275,7 +1244,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { final byte level = from.getSkillLevel(skill); final int damage = (int) ((from.getStr() + from.getLuk()) * ((3.7 * skill.getEffect(level).getDamage()) / 100)); - status.setValue(MonsterStatus.NINJA_AMBUSH, Integer.valueOf(damage)); + status.setValue(MonsterStatus.NINJA_AMBUSH, damage); animationTime = broadcastStatusEffect(status); overtimeAction = new DamageTask(damage, from, status, 2); @@ -1300,7 +1269,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { } public final void dispelSkill(final MobSkill skillId) { - List toCancel = new ArrayList(); + List toCancel = new ArrayList<>(); for (Entry effects : stati.entrySet()) { MonsterStatusEffect mse = effects.getValue(); if (mse.getMobSkill() != null && mse.getMobSkill().getSkillId() == skillId.getSkillId()) { //not checking for level. @@ -1313,22 +1282,18 @@ public class MapleMonster extends AbstractLoadedMapleLife { } public void applyMonsterBuff(final Map stats, final int x, int skillId, long duration, MobSkill skill, final List reflection) { - final Runnable cancelTask = new Runnable() { + final Runnable cancelTask = () -> { + if (isAlive()) { + byte[] packet = MaplePacketCreator.cancelMonsterStatus(getObjectId(), stats); + broadcastMonsterStatusMessage(packet); - @Override - public void run() { - if (isAlive()) { - byte[] packet = MaplePacketCreator.cancelMonsterStatus(getObjectId(), stats); - broadcastMonsterStatusMessage(packet); - - statiLock.lock(); - try { - for (final MonsterStatus stat : stats.keySet()) { - stati.remove(stat); - } - } finally { - statiLock.unlock(); + statiLock.lock(); + try { + for (final MonsterStatus stat : stats.keySet()) { + stati.remove(stat); } + } finally { + statiLock.unlock(); } } }; @@ -1538,12 +1503,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { final MapleMonster mons = this; MapleMap mmap = mons.getMap(); - Runnable r = new Runnable() { - @Override - public void run() { - mons.clearSkill(skillId, level); - } - }; + Runnable r = () -> mons.clearSkill(skillId, level); MobClearSkillService service = (MobClearSkillService) map.getChannelServer().getServiceAccess(ChannelServices.MOB_CLEAR_SKILL); service.registerMobClearSkillAction(mmap.getId(), r, cooltime); @@ -1607,12 +1567,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { final MapleMonster mons = this; MapleMap mmap = mons.getMap(); - Runnable r = new Runnable() { - @Override - public void run() { - mons.clearAttack(attackPos); - } - }; + Runnable r = () -> mons.clearAttack(attackPos); MobClearSkillService service = (MobClearSkillService) map.getChannelServer().getServiceAccess(ChannelServices.MOB_CLEAR_SKILL); service.registerMobClearSkillAction(mmap.getId(), r, cooltime); @@ -1715,16 +1670,13 @@ public class MapleMonster extends AbstractLoadedMapleLife { stats.setEffectiveness(e, ee); MapleMap mmap = this.getMap(); - Runnable r = new Runnable() { - @Override - public void run() { - monsterLock.lock(); - try { - stats.removeEffectiveness(fE); - stats.setEffectiveness(fE, fEE); - } finally { - monsterLock.unlock(); - } + Runnable r = () -> { + monsterLock.lock(); + try { + stats.removeEffectiveness(fE); + stats.setEffectiveness(fE, fEE); + } finally { + monsterLock.unlock(); } }; @@ -2178,35 +2130,32 @@ public class MapleMonster extends AbstractLoadedMapleLife { } availablePuppetUpdate = false; - Runnable r = new Runnable() { - @Override - public void run() { - try { - MapleCharacter chrController = MapleMonster.this.getActiveController(); - if (chrController == null) { + Runnable r = () -> { + try { + MapleCharacter chrController = MapleMonster.this.getActiveController(); + if (chrController == null) { + return; + } + + MapleStatEffect puppetEffect = chrController.getBuffEffect(MapleBuffStat.PUPPET); + if (puppetEffect != null) { + MapleSummon puppet = chrController.getSummonByKey(puppetEffect.getSourceId()); + + if (puppet != null && isPuppetInVicinity(puppet)) { + controllerHasPuppet = true; + aggroRefreshPuppetVisibility(chrController, puppet); return; } - - MapleStatEffect puppetEffect = chrController.getBuffEffect(MapleBuffStat.PUPPET); - if (puppetEffect != null) { - MapleSummon puppet = chrController.getSummonByKey(puppetEffect.getSourceId()); - - if (puppet != null && isPuppetInVicinity(puppet)) { - controllerHasPuppet = true; - aggroRefreshPuppetVisibility(chrController, puppet); - return; - } - } - - if (controllerHasPuppet) { - controllerHasPuppet = false; - - chrController.announce(MaplePacketCreator.stopControllingMonster(MapleMonster.this.getObjectId())); - aggroMonsterControl(chrController.getClient(), MapleMonster.this, MapleMonster.this.isControllerHasAggro()); - } - } finally { - availablePuppetUpdate = true; } + + if (controllerHasPuppet) { + controllerHasPuppet = false; + + chrController.announce(MaplePacketCreator.stopControllingMonster(MapleMonster.this.getObjectId())); + aggroMonsterControl(chrController.getClient(), MapleMonster.this, MapleMonster.this.isControllerHasAggro()); + } + } finally { + availablePuppetUpdate = true; } }; @@ -2252,12 +2201,7 @@ public class MapleMonster extends AbstractLoadedMapleLife { } private void disposeLocks() { - LockCollector.getInstance().registerDisposeAction(new Runnable() { - @Override - public void run() { - emptyLocks(); - } - }); + LockCollector.getInstance().registerDisposeAction(() -> emptyLocks()); } private void emptyLocks() { diff --git a/src/main/java/server/life/MapleMonsterInformationProvider.java b/src/main/java/server/life/MapleMonsterInformationProvider.java index ee0956a080..e84d46d90b 100644 --- a/src/main/java/server/life/MapleMonsterInformationProvider.java +++ b/src/main/java/server/life/MapleMonsterInformationProvider.java @@ -228,13 +228,13 @@ public class MapleMonsterInformationProvider { public static ArrayList> getMobsIDsFromName(String search) { MapleDataProvider dataProvider = MapleDataProviderFactory.getDataProvider(new File("wz/String.wz")); - ArrayList> retMobs = new ArrayList>(); + ArrayList> retMobs = new ArrayList<>(); MapleData data = dataProvider.getData("Mob.img"); - List> mobPairList = new LinkedList>(); + List> mobPairList = new LinkedList<>(); for (MapleData mobIdData : data.getChildren()) { int mobIdFromData = Integer.parseInt(mobIdData.getName()); String mobNameFromData = MapleDataTool.getString(mobIdData.getChildByPath("name"), "NO-NAME"); - mobPairList.add(new Pair(mobIdFromData, mobNameFromData)); + mobPairList.add(new Pair<>(mobIdFromData, mobNameFromData)); } for (Pair mobPair : mobPairList) { if (mobPair.getRight().toLowerCase().contains(search.toLowerCase())) { diff --git a/src/main/java/server/life/MapleMonsterStats.java b/src/main/java/server/life/MapleMonsterStats.java index 94d3a07038..0e03ccb26e 100644 --- a/src/main/java/server/life/MapleMonsterStats.java +++ b/src/main/java/server/life/MapleMonsterStats.java @@ -21,18 +21,14 @@ */ package server.life; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import server.life.MapleLifeFactory.BanishInfo; import server.life.MapleLifeFactory.loseItem; import server.life.MapleLifeFactory.selfDestruction; import tools.Pair; +import java.lang.reflect.Field; +import java.util.*; + /** * @author Frz */ @@ -41,11 +37,11 @@ public class MapleMonsterStats { public int exp, hp, mp, level, PADamage, PDDamage, MADamage, MDDamage, dropPeriod, cp, buffToGive = -1, removeAfter; public boolean boss, undead, ffaLoot, isExplosiveReward, firstAttack, removeOnMiss; public String name; - public Map animationTimes = new HashMap(); - public Map resistance = new HashMap(); + public Map animationTimes = new HashMap<>(); + public Map resistance = new HashMap<>(); public List revives = Collections.emptyList(); public byte tagColor, tagBgColor; - public List> skills = new ArrayList>(); + public List> skills = new ArrayList<>(); public Pair cool = null; public BanishInfo banish = null; public List loseItem = null; @@ -134,7 +130,7 @@ public class MapleMonsterStats { if (ret == null) { return 500; } - return ret.intValue(); + return ret; } public boolean isMobile() { @@ -271,7 +267,7 @@ public class MapleMonsterStats { public void addLoseItem(loseItem li) { if (loseItem == null) { - loseItem = new LinkedList(); + loseItem = new LinkedList<>(); } loseItem.add(li); } diff --git a/src/main/java/server/life/MaplePlayerNPC.java b/src/main/java/server/life/MaplePlayerNPC.java index c37b0efa37..5c801fccf7 100644 --- a/src/main/java/server/life/MaplePlayerNPC.java +++ b/src/main/java/server/life/MaplePlayerNPC.java @@ -514,9 +514,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject { e.printStackTrace(); } - for (Integer i : updateMapids) { - mapids.add(i); - } + mapids.addAll(updateMapids); return mapids; } diff --git a/src/main/java/server/life/MobAttackInfoFactory.java b/src/main/java/server/life/MobAttackInfoFactory.java index e80bc44cc6..b20c17a58d 100644 --- a/src/main/java/server/life/MobAttackInfoFactory.java +++ b/src/main/java/server/life/MobAttackInfoFactory.java @@ -21,21 +21,22 @@ */ package server.life; -import java.io.File; -import java.util.HashMap; -import java.util.Map; import provider.MapleData; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; import provider.MapleDataTool; import tools.StringUtil; +import java.io.File; +import java.util.HashMap; +import java.util.Map; + /** * * @author Danny (Leifde) */ public class MobAttackInfoFactory { - private static Map mobAttacks = new HashMap(); + private static Map mobAttacks = new HashMap<>(); private static MapleDataProvider dataSource = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Mob.wz")); public static MobAttackInfo getMobAttackInfo(MapleMonster mob, int attack) { @@ -46,7 +47,7 @@ public class MobAttackInfoFactory { synchronized (mobAttacks) { ret = mobAttacks.get(mob.getId() + "" + attack); if (ret == null) { - MapleData mobData = dataSource.getData(StringUtil.getLeftPaddedStr(Integer.toString(mob.getId()) + ".img", '0', 11)); + MapleData mobData = dataSource.getData(StringUtil.getLeftPaddedStr(mob.getId() + ".img", '0', 11)); if (mobData != null) { // MapleData infoData = mobData.getChildByPath("info"); String linkedmob = MapleDataTool.getString("link", mobData, ""); diff --git a/src/main/java/server/life/MobSkill.java b/src/main/java/server/life/MobSkill.java index 57eb5db6a5..a8ddcfb56b 100644 --- a/src/main/java/server/life/MobSkill.java +++ b/src/main/java/server/life/MobSkill.java @@ -21,25 +21,22 @@ */ package server.life; -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import client.MapleCharacter; import client.MapleDisease; import client.status.MonsterStatus; import constants.game.GameConstants; -import java.util.LinkedList; -import java.util.Map; -import net.server.services.type.ChannelServices; import net.server.services.task.channel.OverallService; -import tools.Randomizer; +import net.server.services.type.ChannelServices; import server.maps.MapleMap; import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; import server.maps.MapleMist; import tools.ArrayMap; +import tools.Randomizer; + +import java.awt.*; +import java.util.List; +import java.util.*; /** * @@ -48,7 +45,7 @@ import tools.ArrayMap; public class MobSkill { private int skillId, skillLevel, mpCon; - private List toSummon = new ArrayList(); + private List toSummon = new ArrayList<>(); private int spawnEffect, hp, x, y; private long duration, cooltime; private float prop; @@ -65,9 +62,7 @@ public class MobSkill { } public void addSummons(List toSummon) { - for (Integer summon : toSummon) { - this.toSummon.add(summon); - } + this.toSummon.addAll(toSummon); } public void setSpawnEffect(int spawnEffect) { @@ -108,12 +103,9 @@ public class MobSkill { } public void applyDelayedEffect(final MapleCharacter player, final MapleMonster monster, final boolean skill, int animationTime) { - Runnable toRun = new Runnable() { - @Override - public void run() { - if (monster.isAlive()) { - applyEffect(player, monster, skill, null); - } + Runnable toRun = () -> { + if (monster.isAlive()) { + applyEffect(player, monster, skill, null); } }; @@ -123,28 +115,28 @@ public class MobSkill { public void applyEffect(MapleCharacter player, MapleMonster monster, boolean skill, List banishPlayers) { MapleDisease disease = null; - Map stats = new ArrayMap(); - List reflection = new LinkedList(); + Map stats = new ArrayMap<>(); + List reflection = new LinkedList<>(); switch (skillId) { case 100: case 110: case 150: - stats.put(MonsterStatus.WEAPON_ATTACK_UP, Integer.valueOf(x)); + stats.put(MonsterStatus.WEAPON_ATTACK_UP, x); break; case 101: case 111: case 151: - stats.put(MonsterStatus.MAGIC_ATTACK_UP, Integer.valueOf(x)); + stats.put(MonsterStatus.MAGIC_ATTACK_UP, x); break; case 102: case 112: case 152: - stats.put(MonsterStatus.WEAPON_DEFENSE_UP, Integer.valueOf(x)); + stats.put(MonsterStatus.WEAPON_DEFENSE_UP, x); break; case 103: case 113: case 153: - stats.put(MonsterStatus.MAGIC_DEFENSE_UP, Integer.valueOf(x)); + stats.put(MonsterStatus.MAGIC_DEFENSE_UP, x); break; case 114: if (lt != null && rb != null && skill) { @@ -192,9 +184,7 @@ public class MobSkill { break; case 129: // Banish if (lt != null && rb != null && skill) { - for (MapleCharacter chr : getPlayersInRange(monster)) { - banishPlayers.add(chr); - } + banishPlayers.addAll(getPlayersInRange(monster)); } else { banishPlayers.add(player); } @@ -210,12 +200,12 @@ public class MobSkill { break; case 140: if (makeChanceResult() && !monster.isBuffed(MonsterStatus.MAGIC_IMMUNITY)) { - stats.put(MonsterStatus.WEAPON_IMMUNITY, Integer.valueOf(x)); + stats.put(MonsterStatus.WEAPON_IMMUNITY, x); } break; case 141: if (makeChanceResult() && !monster.isBuffed(MonsterStatus.WEAPON_IMMUNITY)) { - stats.put(MonsterStatus.MAGIC_IMMUNITY, Integer.valueOf(x)); + stats.put(MonsterStatus.MAGIC_IMMUNITY, x); } break; case 143: // Weapon Reflect @@ -236,13 +226,13 @@ public class MobSkill { reflection.add(x); break; case 154: - stats.put(MonsterStatus.ACC, Integer.valueOf(x)); + stats.put(MonsterStatus.ACC, x); break; case 155: - stats.put(MonsterStatus.AVOID, Integer.valueOf(x)); + stats.put(MonsterStatus.AVOID, x); break; case 156: - stats.put(MonsterStatus.SPEED, Integer.valueOf(x)); + stats.put(MonsterStatus.SPEED, x); break; case 200: // summon int skillLimit = this.getLimit(); @@ -283,7 +273,7 @@ public class MobSkill { case 8510100: //Pianus bomb if (Math.ceil(Math.random() * 5) == 1) { ypos = 78; - xpos = (int) Randomizer.nextInt(5) + (Randomizer.nextInt(2) == 1 ? 180 : 0); + xpos = Randomizer.nextInt(5) + (Randomizer.nextInt(2) == 1 ? 180 : 0); } else { xpos = (int) (monster.getPosition().getX() + Randomizer.nextInt(1000) - 500); } diff --git a/src/main/java/server/life/MobSkillFactory.java b/src/main/java/server/life/MobSkillFactory.java index 584b73d760..39b74f71c1 100644 --- a/src/main/java/server/life/MobSkillFactory.java +++ b/src/main/java/server/life/MobSkillFactory.java @@ -21,12 +21,6 @@ along with this program. If not, see . */ package server.life; -import java.awt.Point; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; @@ -38,13 +32,20 @@ import provider.MapleDataProvider; import provider.MapleDataProviderFactory; import provider.MapleDataTool; +import java.awt.*; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * * @author Danny (Leifde) */ public class MobSkillFactory { - private static Map mobSkills = new HashMap(); + private static Map mobSkills = new HashMap<>(); private final static MapleDataProvider dataSource = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Skill.wz")); private static MapleData skillRoot = dataSource.getData("MobSkill.img"); private final static MonitoredReentrantReadWriteLock dataLock = new MonitoredReentrantReadWriteLock(MonitoredLockType.MOBSKILL_FACTORY); @@ -70,12 +71,12 @@ public class MobSkillFactory { MapleData skillData = skillRoot.getChildByPath(skillId + "/level/" + level); if (skillData != null) { int mpCon = MapleDataTool.getInt(skillData.getChildByPath("mpCon"), 0); - List toSummon = new ArrayList(); + List toSummon = new ArrayList<>(); for (int i = 0; i > -1; i++) { if (skillData.getChildByPath(String.valueOf(i)) == null) { break; } - toSummon.add(Integer.valueOf(MapleDataTool.getInt(skillData.getChildByPath(String.valueOf(i)), 0))); + toSummon.add(MapleDataTool.getInt(skillData.getChildByPath(String.valueOf(i)), 0)); } int effect = MapleDataTool.getInt("summonEffect", skillData, 0); int hp = MapleDataTool.getInt("hp", skillData, 100); diff --git a/src/main/java/server/life/MonsterListener.java b/src/main/java/server/life/MonsterListener.java index f16f2103c3..9943ca42e6 100644 --- a/src/main/java/server/life/MonsterListener.java +++ b/src/main/java/server/life/MonsterListener.java @@ -3,7 +3,7 @@ import client.MapleCharacter; public interface MonsterListener { - public void monsterKilled(int aniTime); - public void monsterDamaged(MapleCharacter from, int trueDmg); - public void monsterHealed(int trueHeal); + void monsterKilled(int aniTime); + void monsterDamaged(MapleCharacter from, int trueDmg); + void monsterHealed(int trueHeal); } diff --git a/src/main/java/server/life/positioner/MaplePlayerNPCPodium.java b/src/main/java/server/life/positioner/MaplePlayerNPCPodium.java index 46bce9a406..3ac2eae064 100644 --- a/src/main/java/server/life/positioner/MaplePlayerNPCPodium.java +++ b/src/main/java/server/life/positioner/MaplePlayerNPCPodium.java @@ -20,12 +20,6 @@ package server.life.positioner; import config.YamlConfig; -import java.awt.Point; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; import net.server.Server; import net.server.channel.Channel; import server.life.MaplePlayerNPC; @@ -34,6 +28,11 @@ import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; import tools.MaplePacketCreator; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * * @author RonanLana @@ -92,11 +91,8 @@ public class MaplePlayerNPCPodium { playerNpcs.add((MaplePlayerNPC) mmo); } - Collections.sort(playerNpcs, new Comparator() { - @Override - public int compare(MaplePlayerNPC p1, MaplePlayerNPC p2) { - return p1.getScriptId() - p2.getScriptId(); // scriptid as playernpc history - } + playerNpcs.sort((p1, p2) -> { + return p1.getScriptId() - p2.getScriptId(); // scriptid as playernpc history }); for(Channel ch : Server.getInstance().getChannelsFromWorld(map.getWorld())) { diff --git a/src/main/java/server/life/positioner/MaplePlayerNPCPositioner.java b/src/main/java/server/life/positioner/MaplePlayerNPCPositioner.java index be57d3f139..15b70471d0 100644 --- a/src/main/java/server/life/positioner/MaplePlayerNPCPositioner.java +++ b/src/main/java/server/life/positioner/MaplePlayerNPCPositioner.java @@ -20,14 +20,6 @@ package server.life.positioner; import config.YamlConfig; -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; import net.server.Server; import net.server.channel.Channel; import server.life.MaplePlayerNPC; @@ -36,6 +28,12 @@ import server.maps.MapleMapObject; import server.maps.MapleMapObjectType; import tools.MaplePacketCreator; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + /** * * @author RonanLana @@ -145,11 +143,8 @@ public class MaplePlayerNPCPositioner { playerNpcs.add((MaplePlayerNPC) mmo); } - Collections.sort(playerNpcs, new Comparator() { - @Override - public int compare(MaplePlayerNPC p1, MaplePlayerNPC p2) { - return p1.getScriptId() - p2.getScriptId(); // scriptid as playernpc history - } + playerNpcs.sort((p1, p2) -> { + return p1.getScriptId() - p2.getScriptId(); // scriptid as playernpc history }); for(Channel ch : Server.getInstance().getChannelsFromWorld(map.getWorld())) { diff --git a/src/main/java/server/maps/MapMonitor.java b/src/main/java/server/maps/MapMonitor.java index 0243aa5784..8eabf27898 100644 --- a/src/main/java/server/maps/MapMonitor.java +++ b/src/main/java/server/maps/MapMonitor.java @@ -21,9 +21,10 @@ */ package server.maps; -import java.util.concurrent.ScheduledFuture; import server.TimerManager; +import java.util.concurrent.ScheduledFuture; + public class MapMonitor { private ScheduledFuture monitorSchedule; private MapleMap map; @@ -32,12 +33,9 @@ public class MapMonitor { public MapMonitor(final MapleMap map, String portal) { this.map = map; this.portal = map.getPortal(portal); - this.monitorSchedule = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - if (map.getCharacters().size() < 1) { - cancelAction(); - } + this.monitorSchedule = TimerManager.getInstance().register(() -> { + if (map.getCharacters().size() < 1) { + cancelAction(); } }, 5000); } diff --git a/src/main/java/server/maps/MapleDoor.java b/src/main/java/server/maps/MapleDoor.java index 89dd65b7ba..bc1be6183e 100644 --- a/src/main/java/server/maps/MapleDoor.java +++ b/src/main/java/server/maps/MapleDoor.java @@ -21,15 +21,14 @@ */ package server.maps; -import java.awt.Point; -import java.util.Collection; - +import client.MapleCharacter; import config.YamlConfig; +import net.server.services.task.channel.OverallService; +import net.server.services.type.ChannelServices; import tools.Pair; -import client.MapleCharacter; -import net.server.services.type.ChannelServices; -import net.server.services.task.channel.OverallService; +import java.awt.*; +import java.util.Collection; /** * @@ -134,11 +133,8 @@ public class MapleDoor { MapleMap town = destroyDoor.getTown(); OverallService service = (OverallService) town.getChannelServer().getServiceAccess(ChannelServices.OVERALL); - service.registerOverallAction(town.getId(), new Runnable() { - @Override - public void run() { - destroyDoor.broadcastRemoveDoor(owner); // thanks BHB88 for noticing doors crashing players when instantly cancelling buff - } + service.registerOverallAction(town.getId(), () -> { + destroyDoor.broadcastRemoveDoor(owner); // thanks BHB88 for noticing doors crashing players when instantly cancelling buff }, effectTimeLeft); } else { destroyDoor.broadcastRemoveDoor(owner); diff --git a/src/main/java/server/maps/MapleFootholdTree.java b/src/main/java/server/maps/MapleFootholdTree.java index ef077fdeb7..085d11d8d7 100644 --- a/src/main/java/server/maps/MapleFootholdTree.java +++ b/src/main/java/server/maps/MapleFootholdTree.java @@ -21,7 +21,7 @@ */ package server.maps; -import java.awt.Point; +import java.awt.*; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -35,7 +35,7 @@ public class MapleFootholdTree { private MapleFootholdTree ne = null; private MapleFootholdTree sw = null; private MapleFootholdTree se = null; - private List footholds = new LinkedList(); + private List footholds = new LinkedList<>(); private Point p1; private Point p2; private Point center; @@ -96,7 +96,7 @@ public class MapleFootholdTree { } private List getRelevants(Point p) { - return getRelevants(p, new LinkedList()); + return getRelevants(p, new LinkedList<>()); } private List getRelevants(Point p, List list) { @@ -161,7 +161,7 @@ public class MapleFootholdTree { public MapleFoothold findBelow(Point p) { List relevants = getRelevants(p); - List xMatches = new LinkedList(); + List xMatches = new LinkedList<>(); for (MapleFoothold fh : relevants) { if (fh.getX1() <= p.x && fh.getX2() >= p.x) { xMatches.add(fh); diff --git a/src/main/java/server/maps/MapleHiredMerchant.java b/src/main/java/server/maps/MapleHiredMerchant.java index a9ff095737..845e593fd3 100644 --- a/src/main/java/server/maps/MapleHiredMerchant.java +++ b/src/main/java/server/maps/MapleHiredMerchant.java @@ -609,7 +609,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject { if(!open.get()) return list; synchronized (items) { - for(MaplePlayerShopItem mpsi : items) all.add(mpsi); + all.addAll(items); } for(MaplePlayerShopItem mpsi : all) { @@ -629,9 +629,9 @@ public class MapleHiredMerchant extends AbstractMapleMapObject { short newBundle = pItems.getBundles(); if (shutdown) { //is "shutdown" really necessary? - newItem.setQuantity((short) (pItems.getItem().getQuantity())); + newItem.setQuantity(pItems.getItem().getQuantity()); } else { - newItem.setQuantity((short) (pItems.getItem().getQuantity())); + newItem.setQuantity(pItems.getItem().getQuantity()); } if (newBundle > 0) { itemsWithType.add(new Pair<>(newItem, newItem.getInventoryType())); @@ -679,9 +679,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject { public List> getMessages() { synchronized (messages) { List> msgList = new LinkedList<>(); - for(Pair m : messages) { - msgList.add(m); - } + msgList.addAll(messages); return msgList; } diff --git a/src/main/java/server/maps/MapleMap.java b/src/main/java/server/maps/MapleMap.java index 514f82a272..135f5753d2 100644 --- a/src/main/java/server/maps/MapleMap.java +++ b/src/main/java/server/maps/MapleMap.java @@ -34,27 +34,7 @@ import client.status.MonsterStatusEffect; import config.YamlConfig; import constants.game.GameConstants; import constants.inventory.ItemConstants; -import java.awt.Point; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.HashSet; -import java.util.Set; -import java.util.LinkedList; -import java.util.List; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.locks.Lock; +import net.server.Server; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; @@ -62,36 +42,22 @@ import net.server.audit.locks.MonitoredWriteLock; import net.server.audit.locks.factory.MonitoredReadLockFactory; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import net.server.audit.locks.factory.MonitoredWriteLockFactory; -import java.lang.ref.WeakReference; -import net.server.Server; -import net.server.coordinator.world.MapleMonsterAggroCoordinator; import net.server.channel.Channel; -import net.server.services.type.ChannelServices; +import net.server.coordinator.world.MapleMonsterAggroCoordinator; import net.server.services.task.channel.FaceExpressionService; import net.server.services.task.channel.MobMistService; import net.server.services.task.channel.OverallService; +import net.server.services.type.ChannelServices; import net.server.world.MapleParty; import net.server.world.World; +import scripting.event.EventInstanceManager; import scripting.map.MapScriptManager; import server.MapleItemInformationProvider; import server.MapleStatEffect; import server.TimerManager; -import server.events.gm.MapleCoconut; -import server.events.gm.MapleFitness; -import server.events.gm.MapleOla; -import server.events.gm.MapleOxQuiz; -import server.events.gm.MapleSnowball; -import server.life.MapleLifeFactory; +import server.events.gm.*; +import server.life.*; import server.life.MapleLifeFactory.selfDestruction; -import server.life.MapleMonster; -import server.life.MapleMonsterInformationProvider; -import server.life.MapleNPC; -import server.life.MonsterDropEntry; -import server.life.MonsterGlobalDropEntry; -import server.life.SpawnPoint; -import scripting.event.EventInstanceManager; -import server.life.MaplePlayerNPC; -import server.life.MonsterListener; import server.partyquest.GuardianSpawnPoint; import server.partyquest.MapleCarnivalFactory; import server.partyquest.MapleCarnivalFactory.MCSkill; @@ -100,6 +66,15 @@ import tools.MaplePacketCreator; import tools.Pair; import tools.Randomizer; +import java.awt.*; +import java.lang.ref.WeakReference; +import java.util.List; +import java.util.*; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; + public class MapleMap { private static final List rangedMapobjectTypes = Arrays.asList(MapleMapObjectType.SHOP, MapleMapObjectType.ITEM, MapleMapObjectType.NPC, MapleMapObjectType.MONSTER, MapleMapObjectType.DOOR, MapleMapObjectType.SUMMON, MapleMapObjectType.REACTOR); @@ -107,8 +82,8 @@ public class MapleMap { private Map mapobjects = new LinkedHashMap<>(); private Set selfDestructives = new LinkedHashSet<>(); - private Collection monsterSpawn = Collections.synchronizedList(new LinkedList()); - private Collection allMonsterSpawn = Collections.synchronizedList(new LinkedList()); + private Collection monsterSpawn = Collections.synchronizedList(new LinkedList<>()); + private Collection allMonsterSpawn = Collections.synchronizedList(new LinkedList<>()); private AtomicInteger spawnedMonstersOnMap = new AtomicInteger(0); private AtomicInteger droppedItemCount = new AtomicInteger(0); private Collection characters = new LinkedHashSet<>(); @@ -472,7 +447,7 @@ public class MapleMap { private int getUsableOID() { objectRLock.lock(); try { - Integer curOid; + int curOid; // clashes with playernpc on curOid >= 2147000000, developernpc uses >= 2147483000 do { @@ -490,7 +465,7 @@ public class MapleMap { public void removeMapObject(int num) { objectWLock.lock(); try { - this.mapobjects.remove(Integer.valueOf(num)); + this.mapobjects.remove(num); } finally { objectWLock.unlock(); } @@ -621,8 +596,8 @@ public class MapleMap { * @return correspondent coordinate. */ public static String getRoundedCoordinate(double angle) { - String directions[] = {"E", "SE", "S", "SW", "W", "NW", "N", "NE", "E"}; - return directions[ (int)Math.round(( ((double)angle % 360) / 45)) ]; + String[] directions = {"E", "SE", "S", "SW", "W", "NW", "N", "NE", "E"}; + return directions[ (int)Math.round(( (angle % 360) / 45)) ]; } public Pair getDoorPositionStatus(Point pos) { @@ -636,7 +611,7 @@ public class MapleMap { } distn = Math.sqrt(distn); - return new Pair<>(getRoundedCoordinate(angle), Integer.valueOf((int)distn)); + return new Pair<>(getRoundedCoordinate(angle), (int) distn); } private static void sortDropEntries(List from, List item, List visibleQuest, List otherQuest, MapleCharacter chr) { @@ -671,9 +646,9 @@ public class MapleMap { if (Randomizer.nextInt(999999) < dropChance) { if (droptype == 3) { - pos.x = (int) (mobpos + ((d % 2 == 0) ? (40 * ((d + 1) / 2)) : -(40 * (d / 2)))); + pos.x = mobpos + ((d % 2 == 0) ? (40 * ((d + 1) / 2)) : -(40 * (d / 2))); } else { - pos.x = (int) (mobpos + ((d % 2 == 0) ? (25 * ((d + 1) / 2)) : -(25 * (d / 2)))); + pos.x = mobpos + ((d % 2 == 0) ? (25 * ((d + 1) / 2)) : -(25 * (d / 2))); } if (de.itemId == 0) { // meso int mesos = Randomizer.nextInt(de.Maximum - de.Minimum) + de.Minimum; @@ -713,9 +688,9 @@ public class MapleMap { for (final MonsterGlobalDropEntry de : globalEntry) { if (Randomizer.nextInt(999999) < de.chance) { if (droptype == 3) { - pos.x = (int) (mobpos + (d % 2 == 0 ? (40 * (d + 1) / 2) : -(40 * (d / 2)))); + pos.x = mobpos + (d % 2 == 0 ? (40 * (d + 1) / 2) : -(40 * (d / 2))); } else { - pos.x = (int) (mobpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2)))); + pos.x = mobpos + ((d % 2 == 0) ? (25 * (d + 1) / 2) : -(25 * (d / 2))); } if (de.itemId != 0) { if (ItemConstants.getInventoryType(de.itemId) == MapleInventoryType.EQUIP) { @@ -823,49 +798,41 @@ public class MapleMap { return; } - itemMonitor = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - chrWLock.lock(); - try { - if (characters.isEmpty()) { - if(itemMonitorTimeout == 0) { - if(itemMonitor != null) { - stopItemMonitor(); - aggroMonitor.stopAggroCoordinator(); - } - - return; - } else { - itemMonitorTimeout--; + itemMonitor = TimerManager.getInstance().register(() -> { + chrWLock.lock(); + try { + if (characters.isEmpty()) { + if(itemMonitorTimeout == 0) { + if(itemMonitor != null) { + stopItemMonitor(); + aggroMonitor.stopAggroCoordinator(); } + + return; } else { - itemMonitorTimeout = 1; + itemMonitorTimeout--; } - } finally { - chrWLock.unlock(); - } - - boolean tryClean; - objectRLock.lock(); - try { - tryClean = registeredDrops.size() > 70; - } finally { - objectRLock.unlock(); - } - - if (tryClean) { - cleanItemMonitor(); + } else { + itemMonitorTimeout = 1; } + } finally { + chrWLock.unlock(); + } + + boolean tryClean; + objectRLock.lock(); + try { + tryClean = registeredDrops.size() > 70; + } finally { + objectRLock.unlock(); + } + + if (tryClean) { + cleanItemMonitor(); } }, YamlConfig.config.server.ITEM_MONITOR_TIME, YamlConfig.config.server.ITEM_MONITOR_TIME); - expireItemsTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - makeDisappearExpiredItemDrops(); - } - }, YamlConfig.config.server.ITEM_EXPIRE_CHECK, YamlConfig.config.server.ITEM_EXPIRE_CHECK); + expireItemsTask = TimerManager.getInstance().register(() -> makeDisappearExpiredItemDrops(), YamlConfig.config.server.ITEM_EXPIRE_CHECK, YamlConfig.config.server.ITEM_EXPIRE_CHECK); if(YamlConfig.config.server.USE_SPAWN_LOOT_ON_ANIMATION) { lootLock.lock(); @@ -875,20 +842,10 @@ public class MapleMap { lootLock.unlock(); } - mobSpawnLootTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - spawnMobItemDrops(); - } - }, 200, 200); + mobSpawnLootTask = TimerManager.getInstance().register(() -> spawnMobItemDrops(), 200, 200); } - characterStatUpdateTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - runCharacterStatUpdate(); - } - }, 200, 200); + characterStatUpdateTask = TimerManager.getInstance().register(() -> runCharacterStatUpdate(), 200, 200); itemMonitorTimeout = 1; } finally { @@ -933,7 +890,7 @@ public class MapleMap { objectWLock.lock(); try { registerItemDrop(mdrop); - registeredDrops.add(new WeakReference<>((MapleMapObject) mdrop)); + registeredDrops.add(new WeakReference<>(mdrop)); } finally { objectWLock.unlock(); } @@ -1145,18 +1102,15 @@ public class MapleMap { private void spawnDrop(final Item idrop, final Point dropPos, final MapleMapObject dropper, final MapleCharacter chr, final byte droptype, final short questid) { final MapleMapItem mdrop = new MapleMapItem(idrop, dropPos, dropper, chr, chr.getClient(), droptype, false, questid); mdrop.setDropTime(Server.getInstance().getCurrentTime()); - spawnAndAddRangedMapObject(mdrop, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - MapleCharacter chr = c.getPlayer(); - - if (chr.needQuestItem(questid, idrop.getItemId())) { - mdrop.lockItem(); - try { - c.announce(MaplePacketCreator.dropItemFromMapObject(chr, mdrop, dropper.getPosition(), dropPos, (byte) 1)); - } finally { - mdrop.unlockItem(); - } + spawnAndAddRangedMapObject(mdrop, c -> { + MapleCharacter chr1 = c.getPlayer(); + + if (chr1.needQuestItem(questid, idrop.getItemId())) { + mdrop.lockItem(); + try { + c.announce(MaplePacketCreator.dropItemFromMapObject(chr1, mdrop, dropper.getPosition(), dropPos, (byte) 1)); + } finally { + mdrop.unlockItem(); } } }, null); @@ -1170,15 +1124,12 @@ public class MapleMap { final MapleMapItem mdrop = new MapleMapItem(meso, droppos, dropper, owner, owner.getClient(), droptype, playerDrop); mdrop.setDropTime(Server.getInstance().getCurrentTime()); - spawnAndAddRangedMapObject(mdrop, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - mdrop.lockItem(); - try { - c.announce(MaplePacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1)); - } finally { - mdrop.unlockItem(); - } + spawnAndAddRangedMapObject(mdrop, c -> { + mdrop.lockItem(); + try { + c.announce(MaplePacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1)); + } finally { + mdrop.unlockItem(); } }, null); @@ -1655,13 +1606,13 @@ public class MapleMap { try { for (MapleMapObject o : mapobjects.values()) { if (o.getType() == MapleMapObjectType.REACTOR) { - points.add(((MapleReactor) o).getPosition()); + points.add(o.getPosition()); } } Collections.shuffle(points); for (MapleMapObject o : mapobjects.values()) { if (o.getType() == MapleMapObjectType.REACTOR) { - ((MapleReactor) o).setPosition(points.remove(points.size() - 1)); + o.setPosition(points.remove(points.size() - 1)); } } } finally { @@ -1779,7 +1730,7 @@ public class MapleMap { broadcastMessage(MaplePacketCreator.removeNPCController(obj.getObjectId())); broadcastMessage(MaplePacketCreator.removeNPC(obj.getObjectId())); - this.mapobjects.remove(Integer.valueOf(obj.getObjectId())); + this.mapobjects.remove(obj.getObjectId()); } } } finally { @@ -1916,12 +1867,7 @@ public class MapleMap { getEventInstance().registerMonster(monster); } - spawnAndAddRangedMapObject(monster, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - c.announce(MaplePacketCreator.spawnMonster(monster, false)); - } - }); + spawnAndAddRangedMapObject(monster, c -> c.announce(MaplePacketCreator.spawnMonster(monster, false))); monster.aggroUpdateController(); updateBossSpawn(monster); @@ -1937,21 +1883,11 @@ public class MapleMap { Runnable removeAfterAction; if (selfDestruction == null) { - removeAfterAction = new Runnable() { - @Override - public void run() { - killMonster(monster, null, false); - } - }; + removeAfterAction = () -> killMonster(monster, null, false); registerMapSchedule(removeAfterAction, monster.getStats().removeAfter() * 1000); } else { - removeAfterAction = new Runnable() { - @Override - public void run() { - killMonster(monster, null, false, selfDestruction.getAction()); - } - }; + removeAfterAction = () -> killMonster(monster, null, false, selfDestruction.getAction()); registerMapSchedule(removeAfterAction, selfDestruction.removeAfter() * 1000); } @@ -2018,12 +1954,7 @@ public class MapleMap { getEventInstance().registerMonster(monster); } - spawnAndAddRangedMapObject(monster, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - c.announce(MaplePacketCreator.spawnMonster(monster, true)); - } - }, null); + spawnAndAddRangedMapObject(monster, c -> c.announce(MaplePacketCreator.spawnMonster(monster, true)), null); monster.aggroUpdateController(); updateBossSpawn(monster); @@ -2084,12 +2015,7 @@ public class MapleMap { monster.setPosition(spos); monster.setSpawnEffect(effect); - spawnAndAddRangedMapObject(monster, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - c.announce(MaplePacketCreator.spawnMonster(monster, true, effect)); - } - }); + spawnAndAddRangedMapObject(monster, c -> c.announce(MaplePacketCreator.spawnMonster(monster, true, effect))); monster.aggroUpdateController(); updateBossSpawn(monster); @@ -2102,12 +2028,7 @@ public class MapleMap { public void spawnFakeMonster(final MapleMonster monster) { monster.setMap(this); monster.setFake(true); - spawnAndAddRangedMapObject(monster, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - c.announce(MaplePacketCreator.spawnFakeMonster(monster, 0)); - } - }); + spawnAndAddRangedMapObject(monster, c -> c.announce(MaplePacketCreator.spawnFakeMonster(monster, 0))); spawnedMonstersOnMap.incrementAndGet(); addSelfDestructive(monster); @@ -2122,30 +2043,17 @@ public class MapleMap { public void spawnReactor(final MapleReactor reactor) { reactor.setMap(this); - spawnAndAddRangedMapObject(reactor, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - c.announce(reactor.makeSpawnData()); - } - }); + spawnAndAddRangedMapObject(reactor, c -> c.announce(reactor.makeSpawnData())); } public void spawnDoor(final MapleDoorObject door) { - spawnAndAddRangedMapObject(door, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - MapleCharacter chr = c.getPlayer(); - if (chr != null) { - door.sendSpawnData(c, false); - chr.addVisibleMapObject(door); - } + spawnAndAddRangedMapObject(door, c -> { + MapleCharacter chr = c.getPlayer(); + if (chr != null) { + door.sendSpawnData(c, false); + chr.addVisibleMapObject(door); } - }, new SpawnCondition() { - @Override - public boolean canSpawn(MapleCharacter chr) { - return chr.getMapId() == door.getFrom().getId(); - } - }); + }, chr -> chr.getMapId() == door.getFrom().getId()); } public MaplePortal getDoorPortal(int doorid) { @@ -2159,12 +2067,9 @@ public class MapleMap { } public void spawnSummon(final MapleSummon summon) { - spawnAndAddRangedMapObject(summon, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - if (summon != null) { - c.announce(MaplePacketCreator.spawnSummon(summon, true)); - } + spawnAndAddRangedMapObject(summon, c -> { + if (summon != null) { + c.announce(MaplePacketCreator.spawnSummon(summon, true)); } }, null); } @@ -2175,30 +2080,24 @@ public class MapleMap { TimerManager tMan = TimerManager.getInstance(); final ScheduledFuture poisonSchedule; if (poison) { - Runnable poisonTask = new Runnable() { - @Override - public void run() { - List affectedMonsters = getMapObjectsInBox(mist.getBox(), Collections.singletonList(MapleMapObjectType.MONSTER)); - for (MapleMapObject mo : affectedMonsters) { - if (mist.makeChanceResult()) { - MonsterStatusEffect poisonEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.POISON, 1), mist.getSourceSkill(), null, false); - ((MapleMonster) mo).applyStatus(mist.getOwner(), poisonEffect, true, duration); - } + Runnable poisonTask = () -> { + List affectedMonsters = getMapObjectsInBox(mist.getBox(), Collections.singletonList(MapleMapObjectType.MONSTER)); + for (MapleMapObject mo : affectedMonsters) { + if (mist.makeChanceResult()) { + MonsterStatusEffect poisonEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.POISON, 1), mist.getSourceSkill(), null, false); + ((MapleMonster) mo).applyStatus(mist.getOwner(), poisonEffect, true, duration); } } }; poisonSchedule = tMan.register(poisonTask, 2000, 2500); } else if (recovery) { - Runnable poisonTask = new Runnable() { - @Override - public void run() { - List players = getMapObjectsInBox(mist.getBox(), Collections.singletonList(MapleMapObjectType.PLAYER)); - for (MapleMapObject mo : players) { - if (mist.makeChanceResult()) { - MapleCharacter chr = (MapleCharacter) mo; - if (mist.getOwner().getId() == chr.getId() || mist.getOwner().getParty() != null && mist.getOwner().getParty().containsMembers(chr.getMPC())) { - chr.addMP((int) mist.getSourceSkill().getEffect(chr.getSkillLevel(mist.getSourceSkill().getId())).getX() * chr.getMp() / 100); - } + Runnable poisonTask = () -> { + List players = getMapObjectsInBox(mist.getBox(), Collections.singletonList(MapleMapObjectType.PLAYER)); + for (MapleMapObject mo : players) { + if (mist.makeChanceResult()) { + MapleCharacter chr = (MapleCharacter) mo; + if (mist.getOwner().getId() == chr.getId() || mist.getOwner().getParty() != null && mist.getOwner().getParty().containsMembers(chr.getMPC())) { + chr.addMP(mist.getSourceSkill().getEffect(chr.getSkillLevel(mist.getSourceSkill().getId())).getX() * chr.getMp() / 100); } } } @@ -2208,15 +2107,12 @@ public class MapleMap { poisonSchedule = null; } - Runnable mistSchedule = new Runnable() { - @Override - public void run() { - removeMapObject(mist); - if (poisonSchedule != null) { - poisonSchedule.cancel(false); - } - broadcastMessage(mist.makeDestroyData()); + Runnable mistSchedule = () -> { + removeMapObject(mist); + if (poisonSchedule != null) { + poisonSchedule.cancel(false); } + broadcastMessage(mist.makeDestroyData()); }; MobMistService service = (MobMistService) this.getChannelServer().getServiceAccess(ChannelServices.MOB_MIST); @@ -2227,12 +2123,9 @@ public class MapleMap { addMapObject(kite); broadcastMessage(kite.makeSpawnData()); - Runnable expireKite = new Runnable() { - @Override - public void run() { - removeMapObject(kite); - broadcastMessage(kite.makeDestroyData()); - } + Runnable expireKite = () -> { + removeMapObject(kite); + broadcastMessage(kite.makeDestroyData()); }; getWorldServer().registerTimedMapObject(expireKite, YamlConfig.config.server.KITE_EXPIRE_TIME); @@ -2252,15 +2145,12 @@ public class MapleMap { final MapleMapItem mdrop = new MapleMapItem(item, droppos, dropper, owner, owner.getClient(), dropType, playerDrop); mdrop.setDropTime(Server.getInstance().getCurrentTime()); - spawnAndAddRangedMapObject(mdrop, new DelayedPacketCreation() { - @Override - public void sendPackets(MapleClient c) { - mdrop.lockItem(); - try { - c.announce(MaplePacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1)); - } finally { - mdrop.unlockItem(); - } + spawnAndAddRangedMapObject(mdrop, c -> { + mdrop.lockItem(); + try { + c.announce(MaplePacketCreator.dropItemFromMapObject(c.getPlayer(), mdrop, dropper.getPosition(), droppos, (byte) 1)); + } finally { + mdrop.unlockItem(); } }, null); @@ -2297,13 +2187,13 @@ public class MapleMap { final Point dropPos = new Point(pos); dropPos.x -= (12 * list.size()); - - for(int i = 0; i < list.size(); i++) { - if(list.get(i) == 0) { + + for (Integer integer : list) { + if (integer == 0) { spawnMesoDrop(owner != null ? 10 * owner.getMesoRate() : 10, calcDropPos(dropPos, pos), dropper, owner, playerDrop, (byte) (ffaDrop ? 2 : 0)); } else { final Item drop; - int randomedId = list.get(i); + int randomedId = integer; if (ItemConstants.getInventoryType(randomedId) != MapleInventoryType.EQUIP) { drop = new Item(randomedId, (short) 0, (short) (rnd.nextInt(copies) + minCopies)); @@ -2313,7 +2203,7 @@ public class MapleMap { spawnItemDrop(dropper, owner, drop, calcDropPos(dropPos, pos), ffaDrop, playerDrop); } - + dropPos.x += 25; } } @@ -2392,12 +2282,9 @@ public class MapleMap { mapEffect = new MapleMapEffect(msg, itemId); broadcastMessage(mapEffect.makeStartData()); - Runnable r = new Runnable() { - @Override - public void run() { - broadcastMessage(mapEffect.makeDestroyData()); - mapEffect = null; - } + Runnable r = () -> { + broadcastMessage(mapEffect.makeDestroyData()); + mapEffect = null; }; registerMapSchedule(r, time); @@ -2516,73 +2403,49 @@ public class MapleMap { if (mapid == 200090060) { // To Rien int travelTime = getWorldServer().getTransportationTime(1 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090060) { - chr.changeMap(140020300, 0); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090060) { + chr.changeMap(140020300, 0); } }, travelTime); } else if (mapid == 200090070) { // To Lith Harbor int travelTime = getWorldServer().getTransportationTime(1 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090070) { - chr.changeMap(104000000, 3); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090070) { + chr.changeMap(104000000, 3); } }, travelTime); } else if (mapid == 200090030) { // To Ereve (SkyFerry) int travelTime = getWorldServer().getTransportationTime(2 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090030) { - chr.changeMap(130000210, 0); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090030) { + chr.changeMap(130000210, 0); } }, travelTime); } else if (mapid == 200090031) { // To Victoria Island (SkyFerry) int travelTime = getWorldServer().getTransportationTime(2 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090031) { - chr.changeMap(101000400, 0); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090031) { + chr.changeMap(101000400, 0); } }, travelTime); } else if (mapid == 200090021) { // To Orbis (SkyFerry) int travelTime = getWorldServer().getTransportationTime(8 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090021) { - chr.changeMap(200000161, 0); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090021) { + chr.changeMap(200000161, 0); } }, travelTime); } else if (mapid == 200090020) { // To Ereve From Orbis (SkyFerry) int travelTime = getWorldServer().getTransportationTime(8 * 60 * 1000); chr.announce(MaplePacketCreator.getClock(travelTime / 1000)); - TimerManager.getInstance().schedule(new Runnable() { - - @Override - public void run() { - if (chr.getMapId() == 200090020) { - chr.changeMap(130000210, 0); - } + TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() == 200090020) { + chr.changeMap(130000210, 0); } }, travelTime); } else if (MapleMiniDungeonInfo.isDungeonMap(mapid)) { @@ -2596,10 +2459,10 @@ public class MapleMap { } MaplePet[] pets = chr.getPets(); - for (int i = 0; i < pets.length; i++) { - if (pets[i] != null) { - pets[i].setPos(getGroundBelow(chr.getPosition())); - chr.announce(MaplePacketCreator.showPet(chr, pets[i], false, false)); + for (MaplePet pet : pets) { + if (pet != null) { + pet.setPos(getGroundBelow(chr.getPosition())); + chr.announce(MaplePacketCreator.showPet(chr, pet, false, false)); } else { break; } @@ -2637,7 +2500,7 @@ public class MapleMap { broadcastGMSpawnPlayerMapObjectMessage(chr, chr, true); chr.announce(MaplePacketCreator.getGMEffect(0x10, (byte) 1)); - List> dsstat = Collections.singletonList(new Pair(MapleBuffStat.DARKSIGHT, 0)); + List> dsstat = Collections.singletonList(new Pair<>(MapleBuffStat.DARKSIGHT, 0)); broadcastGMMessage(chr, MaplePacketCreator.giveForeignBuff(chr.getId(), dsstat), false); } else { broadcastSpawnPlayerMapObjectMessage(chr, chr, true); @@ -2657,7 +2520,7 @@ public class MapleMap { } objectWLock.lock(); try { - this.mapobjects.put(Integer.valueOf(chr.getObjectId()), chr); + this.mapobjects.put(chr.getObjectId(), chr); } finally { objectWLock.unlock(); } @@ -3590,17 +3453,14 @@ public class MapleMap { MapleMap reactorMap = reactor.getMap(); OverallService service = (OverallService) reactorMap.getChannelServer().getServiceAccess(ChannelServices.OVERALL); - service.registerOverallAction(reactorMap.getId(), new Runnable() { - @Override - public void run() { - reactor.lockReactor(); - try { - reactor.resetReactorActions(0); - reactor.setAlive(true); - broadcastMessage(MaplePacketCreator.triggerReactor(reactor, 0)); - } finally { - reactor.unlockReactor(); - } + service.registerOverallAction(reactorMap.getId(), () -> { + reactor.lockReactor(); + try { + reactor.resetReactorActions(0); + reactor.setAlive(true); + broadcastMessage(MaplePacketCreator.triggerReactor(reactor, 0)); + } finally { + reactor.unlockReactor(); } }, reactor.getDelay()); } @@ -3805,12 +3665,12 @@ public class MapleMap { return retP + retI; } - private static interface DelayedPacketCreation { + private interface DelayedPacketCreation { void sendPackets(MapleClient c); } - private static interface SpawnCondition { + private interface SpawnCondition { boolean canSpawn(MapleCharacter chr); } @@ -4486,7 +4346,7 @@ public class MapleMap { } public final void addMobSpawn(int mobId, int spendCP) { - this.mobsToSpawn.add(new Pair(mobId, spendCP)); + this.mobsToSpawn.add(new Pair<>(mobId, spendCP)); } public final List> getMobsToSpawn() { diff --git a/src/main/java/server/maps/MapleMapFactory.java b/src/main/java/server/maps/MapleMapFactory.java index 3736c3b3b9..eb059597d1 100644 --- a/src/main/java/server/maps/MapleMapFactory.java +++ b/src/main/java/server/maps/MapleMapFactory.java @@ -141,7 +141,7 @@ public class MapleMapFactory { float monsterRate = 0; MapleData mobRate = infoData.getChildByPath("mobRate"); if (mobRate != null) { - monsterRate = ((Float) mobRate.getData()).floatValue(); + monsterRate = (Float) mobRate.getData(); } map = new MapleMap(mapid, world, channel, MapleDataTool.getInt("returnMap", infoData), monsterRate); map.setEventInstance(event); @@ -163,7 +163,7 @@ public class MapleMapFactory { map.setTimeMob(MapleDataTool.getInt(timeMob.getChildByPath("id")), MapleDataTool.getString(timeMob.getChildByPath("message"))); } - int bounds[] = new int[4]; + int[] bounds = new int[4]; bounds[0] = MapleDataTool.getInt(infoData.getChildByPath("VRTop")); bounds[1] = MapleDataTool.getInt(infoData.getChildByPath("VRBottom")); diff --git a/src/main/java/server/maps/MapleMapObject.java b/src/main/java/server/maps/MapleMapObject.java index 70c12b3e2d..c12be33e11 100644 --- a/src/main/java/server/maps/MapleMapObject.java +++ b/src/main/java/server/maps/MapleMapObject.java @@ -21,16 +21,17 @@ */ package server.maps; -import java.awt.Point; import client.MapleClient; +import java.awt.*; + public interface MapleMapObject { - public int getObjectId(); - public void setObjectId(int id); - public MapleMapObjectType getType(); - public Point getPosition(); - public void setPosition(Point position); - public void sendSpawnData(MapleClient client); - public void sendDestroyData(MapleClient client); - public void nullifyPosition(); + int getObjectId(); + void setObjectId(int id); + MapleMapObjectType getType(); + Point getPosition(); + void setPosition(Point position); + void sendSpawnData(MapleClient client); + void sendDestroyData(MapleClient client); + void nullifyPosition(); } \ No newline at end of file diff --git a/src/main/java/server/maps/MapleMapObjectType.java b/src/main/java/server/maps/MapleMapObjectType.java index aaec452ce1..2e6f2dbcc6 100644 --- a/src/main/java/server/maps/MapleMapObjectType.java +++ b/src/main/java/server/maps/MapleMapObjectType.java @@ -22,5 +22,5 @@ package server.maps; public enum MapleMapObjectType { - NPC, MONSTER, ITEM, PLAYER, DOOR, SUMMON, SHOP, MINI_GAME, MIST, REACTOR, HIRED_MERCHANT, PLAYER_NPC, DRAGON, KITE; + NPC, MONSTER, ITEM, PLAYER, DOOR, SUMMON, SHOP, MINI_GAME, MIST, REACTOR, HIRED_MERCHANT, PLAYER_NPC, DRAGON, KITE } diff --git a/src/main/java/server/maps/MapleMiniDungeon.java b/src/main/java/server/maps/MapleMiniDungeon.java index 125c2a8319..d001108b34 100644 --- a/src/main/java/server/maps/MapleMiniDungeon.java +++ b/src/main/java/server/maps/MapleMiniDungeon.java @@ -19,16 +19,16 @@ */ package server.maps; -import server.TimerManager; import client.MapleCharacter; - -import java.util.List; -import java.util.ArrayList; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.locks.Lock; -import tools.MaplePacketCreator; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; +import server.TimerManager; +import tools.MaplePacketCreator; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.locks.Lock; /** * @@ -46,12 +46,7 @@ public class MapleMiniDungeon { baseMap = base; expireTime = timeLimit * 1000; - timeoutTask = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - close(); - } - }, expireTime); + timeoutTask = TimerManager.getInstance().schedule(() -> close(), expireTime); expireTime += System.currentTimeMillis(); } diff --git a/src/main/java/server/maps/MapleMiniGame.java b/src/main/java/server/maps/MapleMiniGame.java index 30b7066fe2..bd4b00a1bb 100644 --- a/src/main/java/server/maps/MapleMiniGame.java +++ b/src/main/java/server/maps/MapleMiniGame.java @@ -24,10 +24,11 @@ package server.maps; import client.MapleCharacter; import client.MapleClient; import net.server.Server; +import tools.MaplePacketCreator; + import java.util.ArrayList; import java.util.Collections; import java.util.List; -import tools.MaplePacketCreator; /** * @@ -68,7 +69,7 @@ public class MapleMiniGame extends AbstractMapleMapObject { } public static enum MiniGameResult { - WIN, LOSS, TIE; + WIN, LOSS, TIE } public MapleMiniGame(MapleCharacter owner, String description, String password) { diff --git a/src/main/java/server/maps/MaplePlayerShop.java b/src/main/java/server/maps/MaplePlayerShop.java index f541c3a758..2550bdf114 100644 --- a/src/main/java/server/maps/MaplePlayerShop.java +++ b/src/main/java/server/maps/MaplePlayerShop.java @@ -28,21 +28,17 @@ import client.inventory.MapleInventory; import client.inventory.MapleInventoryType; import client.inventory.manipulator.MapleInventoryManipulator; import client.inventory.manipulator.MapleKarmaManipulator; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.locks.Lock; import net.opcodes.SendOpcode; -import tools.MaplePacketCreator; -import tools.Pair; -import tools.data.output.MaplePacketLittleEndianWriter; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; import server.MapleTrade; +import tools.MaplePacketCreator; +import tools.Pair; +import tools.data.output.MaplePacketLittleEndianWriter; + +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.Lock; /** * @@ -556,7 +552,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject { List all = new ArrayList<>(); synchronized (items) { - for(MaplePlayerShopItem mpsi : items) all.add(mpsi); + all.addAll(items); } for(MaplePlayerShopItem mpsi : all) { diff --git a/src/main/java/server/maps/MaplePortal.java b/src/main/java/server/maps/MaplePortal.java index 1cc9af4e41..012cadeb82 100644 --- a/src/main/java/server/maps/MaplePortal.java +++ b/src/main/java/server/maps/MaplePortal.java @@ -21,15 +21,16 @@ */ package server.maps; -import java.awt.Point; import client.MapleClient; +import java.awt.*; + public interface MaplePortal { - public final int TELEPORT_PORTAL = 1; - public final int MAP_PORTAL = 2; - public final int DOOR_PORTAL = 6; - public static boolean OPEN = true; - public static boolean CLOSED = false; + int TELEPORT_PORTAL = 1; + int MAP_PORTAL = 2; + int DOOR_PORTAL = 6; + boolean OPEN = true; + boolean CLOSED = false; int getType(); int getId(); Point getPosition(); diff --git a/src/main/java/server/maps/MapleReactor.java b/src/main/java/server/maps/MapleReactor.java index 0202127f7e..a8e127e8c1 100644 --- a/src/main/java/server/maps/MapleReactor.java +++ b/src/main/java/server/maps/MapleReactor.java @@ -23,22 +23,20 @@ package server.maps; import client.MapleClient; import config.YamlConfig; - -import java.awt.Rectangle; -import java.util.List; - -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.locks.Lock; +import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.factory.MonitoredReentrantLockFactory; - +import net.server.services.task.channel.OverallService; +import net.server.services.type.ChannelServices; import scripting.reactor.ReactorScriptManager; import server.TimerManager; +import server.partyquest.GuardianSpawnPoint; import tools.MaplePacketCreator; import tools.Pair; -import net.server.audit.locks.MonitoredLockType; -import net.server.services.type.ChannelServices; -import net.server.services.task.channel.OverallService; -import server.partyquest.GuardianSpawnPoint; + +import java.awt.*; +import java.util.List; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.locks.Lock; /** * @@ -232,23 +230,15 @@ public class MapleReactor extends AbstractMapleMapObject { if (timeOut > -1) { final byte nextState = stats.getTimeoutState(state); - timeoutTask = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - timeoutTask = null; - tryForceHitReactor(nextState); - } + timeoutTask = TimerManager.getInstance().schedule(() -> { + timeoutTask = null; + tryForceHitReactor(nextState); }, timeOut); } } public void delayedHitReactor(final MapleClient c, long delay) { - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - hitReactor(c); - } - }, delay); + TimerManager.getInstance().schedule(() -> hitReactor(c), delay); } public void hitReactor(MapleClient c) { @@ -371,12 +361,9 @@ public class MapleReactor extends AbstractMapleMapObject { } public void delayedRespawn() { - Runnable r = new Runnable() { - @Override - public void run() { - delayedRespawnRun = null; - respawn(); - } + Runnable r = () -> { + delayedRespawnRun = null; + respawn(); }; delayedRespawnRun = r; diff --git a/src/main/java/server/maps/MapleReactorFactory.java b/src/main/java/server/maps/MapleReactorFactory.java index 5fe4b10300..68ac4703c4 100644 --- a/src/main/java/server/maps/MapleReactorFactory.java +++ b/src/main/java/server/maps/MapleReactorFactory.java @@ -21,11 +21,6 @@ */ package server.maps; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import provider.MapleData; import provider.MapleDataProvider; import provider.MapleDataProviderFactory; @@ -34,24 +29,30 @@ import server.maps.MapleReactorStats.StateData; import tools.Pair; import tools.StringUtil; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class MapleReactorFactory { private static MapleDataProvider data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Reactor.wz")); - private static Map reactorStats = new HashMap(); + private static Map reactorStats = new HashMap<>(); public static final MapleReactorStats getReactorS(int rid) { - MapleReactorStats stats = reactorStats.get(Integer.valueOf(rid)); + MapleReactorStats stats = reactorStats.get(rid); if (stats == null) { int infoId = rid; - MapleData reactorData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(infoId) + ".img", '0', 11)); + MapleData reactorData = data.getData(StringUtil.getLeftPaddedStr(infoId + ".img", '0', 11)); MapleData link = reactorData.getChildByPath("info/link"); if (link != null) { infoId = MapleDataTool.getIntConvert("info/link", reactorData); - stats = reactorStats.get(Integer.valueOf(infoId)); + stats = reactorStats.get(infoId); } if (stats == null) { stats = new MapleReactorStats(); - reactorData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(infoId) + ".img", '0', 11)); + reactorData = data.getData(StringUtil.getLeftPaddedStr(infoId + ".img", '0', 11)); if (reactorData == null) { return stats; } @@ -69,7 +70,7 @@ public class MapleReactorFactory { Pair reactItem = null; int type = MapleDataTool.getIntConvert("type", reactorInfoData); if (type == 100) { //reactor waits for item - reactItem = new Pair(MapleDataTool.getIntConvert("0", reactorInfoData), MapleDataTool.getIntConvert("1", reactorInfoData, 1)); + reactItem = new Pair<>(MapleDataTool.getIntConvert("0", reactorInfoData), MapleDataTool.getIntConvert("1", reactorInfoData, 1)); if (!areaSet) { //only set area of effect for item-triggered reactors once stats.setTL(MapleDataTool.getPoint("lt", reactorInfoData)); stats.setBR(MapleDataTool.getPoint("rb", reactorInfoData)); @@ -82,26 +83,26 @@ public class MapleReactorFactory { stats.addState(i, 999, null, (byte) (foundState ? -1 : (i + 1)), 0, (byte) 0); } } - reactorStats.put(Integer.valueOf(infoId), stats); + reactorStats.put(infoId, stats); if (rid != infoId) { - reactorStats.put(Integer.valueOf(rid), stats); + reactorStats.put(rid, stats); } } else { // stats exist at infoId but not rid; add to map - reactorStats.put(Integer.valueOf(rid), stats); + reactorStats.put(rid, stats); } } return stats; } public static MapleReactorStats getReactor(int rid) { - MapleReactorStats stats = reactorStats.get(Integer.valueOf(rid)); + MapleReactorStats stats = reactorStats.get(rid); if (stats == null) { int infoId = rid; - MapleData reactorData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(infoId) + ".img", '0', 11)); + MapleData reactorData = data.getData(StringUtil.getLeftPaddedStr(infoId + ".img", '0', 11)); MapleData link = reactorData.getChildByPath("info/link"); if (link != null) { infoId = MapleDataTool.getIntConvert("info/link", reactorData); - stats = reactorStats.get(Integer.valueOf(infoId)); + stats = reactorStats.get(infoId); } MapleData activateOnTouch = reactorData.getChildByPath("info/activateByTouch"); boolean loadArea = false; @@ -109,7 +110,7 @@ public class MapleReactorFactory { loadArea = MapleDataTool.getInt("info/activateByTouch", reactorData, 0) != 0; } if (stats == null) { - reactorData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(infoId) + ".img", '0', 11)); + reactorData = data.getData(StringUtil.getLeftPaddedStr(infoId + ".img", '0', 11)); MapleData reactorInfoData = reactorData.getChildByPath("0"); stats = new MapleReactorStats(); List statedatas = new ArrayList<>(); @@ -128,7 +129,7 @@ public class MapleReactorFactory { Pair reactItem = null; int type = MapleDataTool.getIntConvert("type", fknexon); if (type == 100) { //reactor waits for item - reactItem = new Pair(MapleDataTool.getIntConvert("0", fknexon), MapleDataTool.getIntConvert("1", fknexon)); + reactItem = new Pair<>(MapleDataTool.getIntConvert("0", fknexon), MapleDataTool.getIntConvert("1", fknexon)); if (!areaSet || loadArea) { //only set area of effect for item-triggered reactors once stats.setTL(MapleDataTool.getPoint("lt", fknexon)); stats.setBR(MapleDataTool.getPoint("rb", fknexon)); @@ -138,7 +139,7 @@ public class MapleReactorFactory { MapleData activeSkillID = fknexon.getChildByPath("activeSkillID"); List skillids = null; if (activeSkillID != null) { - skillids = new ArrayList(); + skillids = new ArrayList<>(); for (MapleData skill : activeSkillID.getChildren()) { skillids.add(MapleDataTool.getInt(skill)); } @@ -158,13 +159,13 @@ public class MapleReactorFactory { statedatas.add(new StateData(999, null, null, (byte) 0)); stats.addState((byte) 0, statedatas, -1); } - reactorStats.put(Integer.valueOf(infoId), stats); + reactorStats.put(infoId, stats); if (rid != infoId) { - reactorStats.put(Integer.valueOf(rid), stats); + reactorStats.put(rid, stats); } } else // stats exist at infoId but not rid; add to map { - reactorStats.put(Integer.valueOf(rid), stats); + reactorStats.put(rid, stats); } } return stats; diff --git a/src/main/java/server/maps/MapleTVEffect.java b/src/main/java/server/maps/MapleTVEffect.java index 6198dd6e26..00f250b85c 100644 --- a/src/main/java/server/maps/MapleTVEffect.java +++ b/src/main/java/server/maps/MapleTVEffect.java @@ -22,11 +22,12 @@ package server.maps; import client.MapleCharacter; -import java.util.List; import net.server.Server; import server.TimerManager; import tools.MaplePacketCreator; +import java.util.List; + /* * MapleTVEffect * @author MrXotic (XoticStory) @@ -34,7 +35,7 @@ import tools.MaplePacketCreator; */ public class MapleTVEffect { - private final static boolean ACTIVE[] = new boolean[Server.getInstance().getWorldsSize()]; + private final static boolean[] ACTIVE = new boolean[Server.getInstance().getWorldsSize()]; public static synchronized boolean broadcastMapleTVIfNotActive(MapleCharacter player, MapleCharacter victim, List messages, int tvType){ int w = player.getWorld(); @@ -58,12 +59,7 @@ public class MapleTVEffect { } else if (type == 5) { delay = 60000; } - TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - broadcastTV(false, userWorld, null, null, -1, null); - } - }, delay); + TimerManager.getInstance().schedule(() -> broadcastTV(false, userWorld, null, null, -1, null), delay); } else { server.broadcastMessage(userWorld, MaplePacketCreator.removeTV()); } diff --git a/src/main/java/server/partyquest/AriantColiseum.java b/src/main/java/server/partyquest/AriantColiseum.java index 0addb32380..0b08f79b3d 100644 --- a/src/main/java/server/partyquest/AriantColiseum.java +++ b/src/main/java/server/partyquest/AriantColiseum.java @@ -19,12 +19,6 @@ */ package server.partyquest; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ScheduledFuture; import client.MapleCharacter; import constants.game.GameConstants; import server.TimerManager; @@ -33,6 +27,13 @@ import server.expeditions.MapleExpeditionType; import server.maps.MapleMap; import tools.MaplePacketCreator; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.concurrent.ScheduledFuture; + /** * * @author Ronan @@ -78,26 +79,11 @@ public class AriantColiseum { mc.announce(MaplePacketCreator.updateAriantPQRanking(score)); } - setAriantScoreBoard(TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - showArenaResults(); - } - }, pqTimerBoard)); + setAriantScoreBoard(TimerManager.getInstance().schedule(() -> showArenaResults(), pqTimerBoard)); - setArenaFinish(TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - enterKingsRoom(); - } - }, pqTimer)); + setArenaFinish(TimerManager.getInstance().schedule(() -> enterKingsRoom(), pqTimer)); - setArenaUpdate(TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - broadcastAriantScoreUpdate(); - } - }, 500, 500)); + setArenaUpdate(TimerManager.getInstance().register(() -> broadcastAriantScoreUpdate(), 500, 500)); } private void setArenaUpdate(ScheduledFuture ariantUpdate) { @@ -234,7 +220,7 @@ public class AriantColiseum { } public void distributeAriantPoints() { - Integer firstTop = -1, secondTop = -1; + int firstTop = -1, secondTop = -1; MapleCharacter winner = null; List runnerups = new ArrayList<>(); @@ -289,13 +275,10 @@ public class AriantColiseum { chr.changeMap(980010000, 0); } - map.getWorldServer().registerTimedMapObject(new Runnable() { - @Override - public void run() { - score.clear(); - exped = null; - map = null; - } + map.getWorldServer().registerTimedMapObject(() -> { + score.clear(); + exped = null; + map = null; }, 5 * 60 * 1000); } } diff --git a/src/main/java/server/partyquest/MapleCarnivalFactory.java b/src/main/java/server/partyquest/MapleCarnivalFactory.java index c8a3f6e67c..d6e4954bee 100644 --- a/src/main/java/server/partyquest/MapleCarnivalFactory.java +++ b/src/main/java/server/partyquest/MapleCarnivalFactory.java @@ -1,17 +1,18 @@ package server.partyquest; import client.MapleDisease; +import provider.MapleData; +import provider.MapleDataProvider; +import provider.MapleDataProviderFactory; +import provider.MapleDataTool; +import server.life.MobSkill; +import server.life.MobSkillFactory; + import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import server.life.MobSkillFactory; -import provider.MapleDataProvider; -import provider.MapleDataProviderFactory; -import provider.MapleData; -import provider.MapleDataTool; -import server.life.MobSkill; /** *@author Drago (Dragohe4rt) @@ -19,8 +20,8 @@ import server.life.MobSkill; public class MapleCarnivalFactory { private final static MapleCarnivalFactory instance = new MapleCarnivalFactory(); - private final Map skills = new HashMap(); - private final Map guardians = new HashMap(); + private final Map skills = new HashMap<>(); + private final Map guardians = new HashMap<>(); private final MapleDataProvider dataRoot = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("wzpath") + "/Skill.wz")); private final List singleTargetedSkills = new ArrayList<>(); diff --git a/src/main/java/server/partyquest/MonsterCarnival.java b/src/main/java/server/partyquest/MonsterCarnival.java index 2d68579d43..ea1064eac6 100644 --- a/src/main/java/server/partyquest/MonsterCarnival.java +++ b/src/main/java/server/partyquest/MonsterCarnival.java @@ -1,6 +1,5 @@ package server.partyquest; -import java.util.concurrent.ScheduledFuture; import client.MapleCharacter; import config.YamlConfig; import constants.string.LanguageConstants; @@ -13,6 +12,8 @@ import server.maps.MapleMap; import server.maps.MapleReactor; import tools.MaplePacketCreator; +import java.util.concurrent.ScheduledFuture; + /** * @author Drago (Dragohe4rt) */ @@ -95,24 +96,9 @@ public class MonsterCarnival { // thanks Atoot, Vcoc for noting double CPQ functional being sent to players in CPQ start - timer = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - timeUp(); - } - }, map.getTimeDefault() * 1000); // thanks Atoot for noticing an irregular "event extended" issue here - effectTimer = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - complete(); - } - }, map.getTimeDefault() * 1000 - 10 * 1000); - respawnTask = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - respawn(); - } - }, YamlConfig.config.server.RESPAWN_INTERVAL); + timer = TimerManager.getInstance().schedule(() -> timeUp(), map.getTimeDefault() * 1000); // thanks Atoot for noticing an irregular "event extended" issue here + effectTimer = TimerManager.getInstance().schedule(() -> complete(), map.getTimeDefault() * 1000 - 10 * 1000); + respawnTask = TimerManager.getInstance().register(() -> respawn(), YamlConfig.config.server.RESPAWN_INTERVAL); cs.initMonsterCarnival(cpq1, room); } catch (Exception e) { @@ -362,19 +348,8 @@ public class MonsterCarnival { map.broadcastMessage(MaplePacketCreator.getClock(3 * 60)); - timer = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - timeUp(); - } - }, map.getTimeExpand() * 1000); - effectTimer = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - complete(); - } - - }, map.getTimeExpand() * 1000 - 10 * 1000); // thanks Vcoc for noticing a time set issue here + timer = TimerManager.getInstance().schedule(() -> timeUp(), map.getTimeExpand() * 1000); + effectTimer = TimerManager.getInstance().schedule(() -> complete(), map.getTimeExpand() * 1000 - 10 * 1000); // thanks Vcoc for noticing a time set issue here } public void complete() { diff --git a/src/main/java/server/partyquest/Pyramid.java b/src/main/java/server/partyquest/Pyramid.java index fefa807126..7c9560afc1 100644 --- a/src/main/java/server/partyquest/Pyramid.java +++ b/src/main/java/server/partyquest/Pyramid.java @@ -23,12 +23,13 @@ package server.partyquest; import client.MapleCharacter; -import java.util.concurrent.ScheduledFuture; import net.server.world.MapleParty; import server.MapleItemInformationProvider; import server.TimerManager; import tools.MaplePacketCreator; +import java.util.concurrent.ScheduledFuture; + /** * * @author kevintjuh93 @@ -79,13 +80,10 @@ public class Pyramid extends PartyQuest { if (gaugeSchedule == null) { gauge = 100; count = 0; - gaugeSchedule = TimerManager.getInstance().register(new Runnable() { - @Override - public void run() { - gauge -= decrease; - if (gauge <= 0) warp(926010001); + gaugeSchedule = TimerManager.getInstance().register(() -> { + gauge -= decrease; + if (gauge <= 0) warp(926010001); - } }, 1000); } } @@ -125,13 +123,10 @@ public class Pyramid extends PartyQuest { else value = 120; - timer = TimerManager.getInstance().schedule(new Runnable() { - @Override - public void run() { - stage++; - warp(map + (stage * 100));//Should work :D - } - }, value * 1000);//, 4000 + timer = TimerManager.getInstance().schedule(() -> { + stage++; + warp(map + (stage * 100));//Should work :D + }, value * 1000);//, 4000 broadcastInfo("party", getParticipants().size() > 1 ? 1 : 0); broadcastInfo("hit", kill); broadcastInfo("miss", miss); diff --git a/src/main/java/server/quest/actions/ItemAction.java b/src/main/java/server/quest/actions/ItemAction.java index a76384904b..25271baa56 100644 --- a/src/main/java/server/quest/actions/ItemAction.java +++ b/src/main/java/server/quest/actions/ItemAction.java @@ -25,15 +25,10 @@ import client.MapleCharacter; import client.MapleClient; import client.inventory.Item; import client.inventory.MapleInventoryType; +import client.inventory.manipulator.MapleInventoryManipulator; import constants.inventory.ItemConstants; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; import provider.MapleData; import provider.MapleDataTool; -import client.inventory.manipulator.MapleInventoryManipulator; import server.MapleItemInformationProvider; import server.quest.MapleQuest; import server.quest.MapleQuestActionType; @@ -42,6 +37,11 @@ import tools.MaplePacketCreator; import tools.Pair; import tools.Randomizer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + /** * * @author Tyler (Twdtwd) @@ -79,14 +79,7 @@ public class ItemAction extends MapleQuestAction { items.add(new ItemData(Integer.parseInt(iEntry.getName()), id, count, prop, job, gender, period)); } - Collections.sort(items, new Comparator() - { - @Override - public int compare( ItemData o1, ItemData o2 ) - { - return o1.map - o2.map; - } - }); + items.sort((o1, o2) -> o1.map - o2.map); } @Override diff --git a/src/main/java/server/quest/actions/MapleQuestAction.java b/src/main/java/server/quest/actions/MapleQuestAction.java index 7dfd57f2bd..231057aeaa 100644 --- a/src/main/java/server/quest/actions/MapleQuestAction.java +++ b/src/main/java/server/quest/actions/MapleQuestAction.java @@ -23,8 +23,8 @@ import provider.MapleData; import server.quest.MapleQuest; import server.quest.MapleQuestActionType; -import java.util.List; import java.util.ArrayList; +import java.util.List; /** * @@ -51,7 +51,7 @@ public abstract class MapleQuestAction { } public static List getJobBy5ByteEncoding(int encoded) { - List ret = new ArrayList(); + List ret = new ArrayList<>(); if ((encoded & 0x1) != 0) { ret.add(0); } @@ -114,7 +114,7 @@ public abstract class MapleQuestAction { } public static List getJobBySimpleEncoding(int encoded) { - List ret = new ArrayList(); + List ret = new ArrayList<>(); if ((encoded & 0x1) != 0) { ret.add(200); } diff --git a/src/main/java/server/quest/requirements/BuffExceptRequirement.java b/src/main/java/server/quest/requirements/BuffExceptRequirement.java index 8cefbca776..49b6e52fa3 100644 --- a/src/main/java/server/quest/requirements/BuffExceptRequirement.java +++ b/src/main/java/server/quest/requirements/BuffExceptRequirement.java @@ -40,7 +40,7 @@ public class BuffExceptRequirement extends MapleQuestRequirement { @Override public void processData(MapleData data) { // item buffs are negative - buffId = -1 * Integer.valueOf(MapleDataTool.getString(data)); + buffId = -1 * Integer.parseInt(MapleDataTool.getString(data)); } @Override diff --git a/src/main/java/server/quest/requirements/BuffRequirement.java b/src/main/java/server/quest/requirements/BuffRequirement.java index 65acb054ad..12fb4be21d 100644 --- a/src/main/java/server/quest/requirements/BuffRequirement.java +++ b/src/main/java/server/quest/requirements/BuffRequirement.java @@ -40,7 +40,7 @@ public class BuffRequirement extends MapleQuestRequirement { @Override public void processData(MapleData data) { // item buffs are negative - buffId = -1 * Integer.valueOf(MapleDataTool.getString(data)); + buffId = -1 * Integer.parseInt(MapleDataTool.getString(data)); } @Override diff --git a/src/main/java/tools/BCrypt.java b/src/main/java/tools/BCrypt.java index bb4c01da0b..774027ef2c 100644 --- a/src/main/java/tools/BCrypt.java +++ b/src/main/java/tools/BCrypt.java @@ -14,9 +14,7 @@ package tools; import java.io.UnsupportedEncodingException; - import java.security.SecureRandom; - import java.util.Arrays; /** @@ -70,14 +68,14 @@ public class BCrypt { // Blowfish parameters private static final int BLOWFISH_NUM_ROUNDS = 16; // Initial contents of key schedule - private static final int P_orig[] = { + private static final int[] P_orig = { 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b }; - private static final int S_orig[] = { + private static final int[] S_orig = { 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, @@ -338,12 +336,12 @@ public class BCrypt { // bcrypt IV: "OrpheanBeholderScryDoubt". The C implementation calls // this "ciphertext", but it is really plaintext or an IV. We keep // the name to make code comparison easier. - static private final int bf_crypt_ciphertext[] = { + static private final int[] bf_crypt_ciphertext = { 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944, 0x6f756274 }; // Table for Base64 encoding - static private final char base64_code[] = { + static private final char[] base64_code = { '.', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', @@ -352,7 +350,7 @@ public class BCrypt { '6', '7', '8', '9' }; // Table for Base64 decoding - static private final byte index_64[] = { + static private final byte[] index_64 = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -368,8 +366,8 @@ public class BCrypt { 51, 52, 53, -1, -1, -1, -1, -1 }; // Expanded Blowfish key - private int P[]; - private int S[]; + private int[] P; + private int[] S; /** * Encode a byte array using bcrypt's slightly-modified base64 @@ -381,7 +379,7 @@ public class BCrypt { * @return base64-encoded string * @exception IllegalArgumentException if the length is invalid */ - private static String encode_base64(byte d[], int len) + private static String encode_base64(byte[] d, int len) throws IllegalArgumentException { int off = 0; StringBuilder rs = new StringBuilder(); @@ -425,7 +423,7 @@ public class BCrypt { if ((int) x < 0 || (int) x > index_64.length) { return -1; } - return index_64[(int) x]; + return index_64[x]; } /** @@ -441,7 +439,7 @@ public class BCrypt { throws IllegalArgumentException { StringBuilder rs = new StringBuilder(); int off = 0, slen = s.length(), olen = 0; - byte ret[]; + byte[] ret; byte c1, c2, c3, c4, o; if (maxolen <= 0) { @@ -490,7 +488,7 @@ public class BCrypt { * @param lr an array containing the two 32-bit half blocks * @param off the position in the array of the blocks */ - private final void encipher(int lr[], int off) { + private final void encipher(int[] lr, int off) { int i, n, l = lr[off], r = lr[off + 1]; l ^= P[0]; @@ -522,9 +520,9 @@ public class BCrypt { * cumulative flag for non-benign sign extension * @return correct and buggy next word of material from data as int[2] */ - private static int[] streamtowords(byte data[], int offp[], int signp[]) { + private static int[] streamtowords(byte[] data, int[] offp, int[] signp) { int i; - int words[] = { 0, 0 }; + int[] words = { 0, 0 }; int off = offp[0]; int sign = signp[0]; @@ -547,8 +545,8 @@ public class BCrypt { * current offset into data * @return the next word of material from data */ - private static int streamtoword(byte data[], int offp[]) { - int signp[] = { 0 }; + private static int streamtoword(byte[] data, int[] offp) { + int[] signp = { 0 }; return streamtowords(data, offp, signp)[0]; } @@ -559,8 +557,8 @@ public class BCrypt { * current offset into data * @return the next word of material from data */ - private static int streamtoword_bug(byte data[], int offp[]) { - int signp[] = { 0 }; + private static int streamtoword_bug(byte[] data, int[] offp) { + int[] signp = { 0 }; return streamtowords(data, offp, signp)[1]; } @@ -568,8 +566,8 @@ public class BCrypt { * Initialise the Blowfish key schedule */ private void init_key() { - P = (int[]) P_orig.clone(); - S = (int[]) S_orig.clone(); + P = P_orig.clone(); + S = S_orig.clone(); } /** @@ -577,10 +575,10 @@ public class BCrypt { * @param key an array containing the key * @param sign_ext_bug true to implement the 2x bug */ - private void key(byte key[], boolean sign_ext_bug) { + private void key(byte[] key, boolean sign_ext_bug) { int i; - int koffp[] = {0}; - int lr[] = {0, 0}; + int[] koffp = {0}; + int[] lr = {0, 0}; int plen = P.length, slen = S.length; for (i = 0; i < plen; i++) { @@ -612,17 +610,17 @@ public class BCrypt { * @param sign_ext_bug true to implement the 2x bug * @param safety bit 16 is set when the safety measure is requested */ - private void ekskey(byte data[], byte key[], - boolean sign_ext_bug, int safety) { + private void ekskey(byte[] data, byte[] key, + boolean sign_ext_bug, int safety) { int i; - int koffp[] = {0}, doffp[] = {0}; - int lr[] = {0, 0}; + int[] koffp = {0}, doffp = {0}; + int[] lr = {0, 0}; int plen = P.length, slen = S.length; - int signp[] = { 0 }; // non-benign sign-extension flag + int[] signp = { 0 }; // non-benign sign-extension flag int diff = 0; // zero iff correct and buggy are same for (i = 0; i < plen; i++) { - int words[] = streamtowords(key, koffp, signp); + int[] words = streamtowords(key, koffp, signp); diff |= words[0] ^ words[1]; P[i] = P[i] ^ words[sign_ext_bug ? 1 : 0]; } @@ -686,11 +684,11 @@ public class BCrypt { * @param cdata the plaintext to encrypt * @return an array containing the binary hashed password */ - private byte[] crypt_raw(byte password[], byte salt[], int log_rounds, - boolean sign_ext_bug, int safety, int cdata[]) { + private byte[] crypt_raw(byte[] password, byte[] salt, int log_rounds, + boolean sign_ext_bug, int safety, int[] cdata) { int rounds, i, j; int clen = cdata.length; - byte ret[]; + byte[] ret; if (log_rounds < 4 || log_rounds > 30) { throw new IllegalArgumentException("Bad number of rounds"); @@ -729,7 +727,7 @@ public class BCrypt { * @return Byte representation of given plaintext. */ private static byte[] stringToBytes(String plaintext) { - byte plaintextb[]; + byte[] plaintextb; try { plaintextb = plaintext.getBytes("UTF-8"); @@ -748,7 +746,7 @@ public class BCrypt { * @return the hashed password */ public static String hashpw(String password, String salt) { - byte passwordb[] = stringToBytes(password); + byte[] passwordb = stringToBytes(password); return hashpw(passwordb, salt); } @@ -760,10 +758,10 @@ public class BCrypt { * using BCrypt.gensalt) * @return the hashed password */ - public static String hashpw(byte passwordb[], String salt) { + public static String hashpw(byte[] passwordb, String salt) { BCrypt B; String real_salt; - byte saltb[], hashed[]; + byte[] saltb, hashed; char minor = (char) 0; int rounds, off = 0; StringBuilder rs = new StringBuilder(); @@ -799,7 +797,7 @@ public class BCrypt { hashed = B.crypt_raw(passwordb, saltb, rounds, minor == 'x', // true for sign extension bug ('2x') minor == 'a' ? 0x10000 : 0, // safety factor for '2a' - (int[])bf_crypt_ciphertext.clone()); + bf_crypt_ciphertext.clone()); rs.append("$2"); if (minor >= 'a') { @@ -813,7 +811,7 @@ public class BCrypt { throw new IllegalArgumentException( "rounds exceeds maximum (30)"); } - rs.append(Integer.toString(rounds)); + rs.append(rounds); rs.append("$"); rs.append(encode_base64(saltb, saltb.length)); rs.append(encode_base64(hashed, @@ -834,7 +832,7 @@ public class BCrypt { public static String gensalt(String prefix, int log_rounds, SecureRandom random) throws IllegalArgumentException { StringBuilder rs = new StringBuilder(); - byte rnd[] = new byte[BCRYPT_SALT_LEN]; + byte[] rnd = new byte[BCRYPT_SALT_LEN]; if (!prefix.startsWith("$2") || (prefix.charAt(2) != 'a' && prefix.charAt(2) != 'y') && @@ -857,7 +855,7 @@ public class BCrypt { throw new IllegalArgumentException( "log_rounds exceeds maximum (30)"); } - rs.append(Integer.toString(log_rounds)); + rs.append(log_rounds); rs.append("$"); rs.append(encode_base64(rnd, rnd.length)); return rs.toString(); @@ -924,7 +922,7 @@ public class BCrypt { * @return true if the passwords match, false otherwise */ public static boolean checkpw(String plaintext, String hashed) { - byte plaintextb[] = stringToBytes(plaintext); + byte[] plaintextb = stringToBytes(plaintext); return checkpw(plaintextb, hashed); } @@ -936,8 +934,8 @@ public class BCrypt { * @return true if the passwords match, false otherwise */ public static boolean checkpw(byte[] plaintext, String hashed) { - byte hashed_bytes[]; - byte try_bytes[]; + byte[] hashed_bytes; + byte[] try_bytes; try { String try_pw = hashpw(plaintext, hashed); hashed_bytes = hashed.getBytes("UTF-8"); diff --git a/src/main/java/tools/HexTool.java b/src/main/java/tools/HexTool.java index e2f1b23d9a..e610055e95 100644 --- a/src/main/java/tools/HexTool.java +++ b/src/main/java/tools/HexTool.java @@ -22,6 +22,7 @@ package tools; import constants.string.CharsetConstants; + import java.io.ByteArrayOutputStream; public class HexTool { @@ -35,8 +36,8 @@ public class HexTool { public static String toString(byte[] bytes) { StringBuilder hexed = new StringBuilder(); - for (int i = 0; i < bytes.length; i++) { - hexed.append(toString(bytes[i])); + for (byte aByte : bytes) { + hexed.append(toString(aByte)); hexed.append(' '); } return hexed.substring(0, hexed.length() - 1); @@ -44,8 +45,8 @@ public class HexTool { public static String toCompressedString(byte[] bytes) { StringBuilder hexed = new StringBuilder(); - for (int i = 0; i < bytes.length; i++) { - hexed.append(toString(bytes[i])); + for (byte aByte : bytes) { + hexed.append(toString(aByte)); } return hexed.substring(0, hexed.length()); } diff --git a/src/main/java/tools/IntervalBuilder.java b/src/main/java/tools/IntervalBuilder.java index 0e87949faa..b0d72b6d63 100644 --- a/src/main/java/tools/IntervalBuilder.java +++ b/src/main/java/tools/IntervalBuilder.java @@ -19,9 +19,6 @@ */ package tools; -import java.awt.geom.Line2D; -import java.util.ArrayList; -import java.util.List; import net.server.audit.locks.MonitoredLockType; import net.server.audit.locks.MonitoredReadLock; import net.server.audit.locks.MonitoredReentrantReadWriteLock; @@ -29,6 +26,10 @@ import net.server.audit.locks.MonitoredWriteLock; import net.server.audit.locks.factory.MonitoredReadLockFactory; import net.server.audit.locks.factory.MonitoredWriteLockFactory; +import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; + /** * * @author Ronan @@ -65,7 +66,7 @@ public class IntervalBuilder { newLimitX2 = newTo; } - intervalLimits.add(st, new Line2D.Float((float) newLimitX1, 0, (float) newLimitX2, 0)); + intervalLimits.add(st, new Line2D.Float(newLimitX1, 0, newLimitX2, 0)); } private int bsearchInterval(int point) { diff --git a/src/main/java/tools/LogHelper.java b/src/main/java/tools/LogHelper.java index 7d37d78a8c..3a7e83ccf6 100644 --- a/src/main/java/tools/LogHelper.java +++ b/src/main/java/tools/LogHelper.java @@ -1,16 +1,16 @@ package tools; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; - +import client.MapleCharacter; import client.MapleClient; +import client.inventory.Item; import net.server.Server; import server.MapleItemInformationProvider; import server.MapleTrade; import server.expeditions.MapleExpedition; -import client.MapleCharacter; -import client.inventory.Item; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; public class LogHelper { @@ -22,14 +22,14 @@ public class LogHelper { log += trade1.getExchangeMesos() + " mesos from " + name1 + " to " + name2 + " \r\n"; for (Item item : trade1.getItems()){ String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")"; - log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n";; - } + log += item.getQuantity() + " " + itemName + " from " + name1 + " to " + name2 + " \r\n"; + } //Trade 2 to trade 1 log += trade2.getExchangeMesos() + " mesos from " + name2 + " to " + name1 + " \r\n"; for (Item item : trade2.getItems()){ String itemName = MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "(" + item.getItemId() + ")"; - log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n";; - } + log += item.getQuantity() + " " + itemName + " from " + name2 + " to " + name1 + " \r\n"; + } log += "\r\n\r\n"; FilePrinter.print(FilePrinter.LOG_TRADE, log); } diff --git a/src/main/java/tools/MapleAESOFB.java b/src/main/java/tools/MapleAESOFB.java index 6b14b821e2..7ccfc16ac2 100644 --- a/src/main/java/tools/MapleAESOFB.java +++ b/src/main/java/tools/MapleAESOFB.java @@ -21,16 +21,16 @@ */ package tools; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; public class MapleAESOFB { - private byte iv[]; + private byte[] iv; private Cipher cipher; private short mapleVersion; private final static SecretKeySpec skey = new SecretKeySpec( @@ -54,7 +54,7 @@ public class MapleAESOFB { (byte) 0xD3, (byte) 0xAB, (byte) 0x91, (byte) 0xB9, (byte) 0x84, (byte) 0x7F, (byte) 0x61, (byte) 0x1E, (byte) 0xCF, (byte) 0xC5, (byte) 0xD1, (byte) 0x56, (byte) 0x3D, (byte) 0xCA, (byte) 0xF4, (byte) 0x05, (byte) 0xC6, (byte) 0xE5, (byte) 0x08, (byte) 0x49}; - public MapleAESOFB(byte iv[], short mapleVersion) { + public MapleAESOFB(byte[] iv, short mapleVersion) { try { cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skey); @@ -142,13 +142,13 @@ public class MapleAESOFB { } public boolean checkPacket(int packetHeader) { - byte packetHeaderBuf[] = new byte[2]; + byte[] packetHeaderBuf = new byte[2]; packetHeaderBuf[0] = (byte) ((packetHeader >> 24) & 0xFF); packetHeaderBuf[1] = (byte) ((packetHeader >> 16) & 0xFF); return checkPacket(packetHeaderBuf); } - public static byte[] getNewIv(byte oldIv[]) { + public static byte[] getNewIv(byte[] oldIv) { byte[] in = {(byte) 0xf2, 0x53, (byte) 0x50, (byte) 0xc6}; for (int x = 0; x < 4; x++) { funnyShit(oldIv[x], in); diff --git a/src/main/java/tools/MaplePacketCreator.java b/src/main/java/tools/MaplePacketCreator.java index 893c76d44b..453561979c 100644 --- a/src/main/java/tools/MaplePacketCreator.java +++ b/src/main/java/tools/MaplePacketCreator.java @@ -20,46 +20,12 @@ */ package tools; -import java.awt.Point; -import java.net.InetAddress; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import client.BuddylistEntry; -import client.MapleBuffStat; -import client.MapleCharacter; +import client.*; import client.MapleCharacter.SkillEntry; -import client.MapleClient; -import client.MapleDisease; -import client.MapleFamilyEntitlement; -import client.MapleFamilyEntry; +import client.inventory.*; +import client.inventory.Equip.ScrollResult; import client.keybind.MapleKeyBinding; import client.keybind.MapleQuickslotBinding; -import client.MapleMount; -import client.MapleQuestStatus; -import client.MapleRing; -import client.MapleStat; -import client.MonsterBook; -import client.Skill; -import client.SkillMacro; -import client.inventory.Equip; -import client.inventory.Equip.ScrollResult; -import client.inventory.Item; -import client.inventory.ItemFactory; -import client.inventory.MapleInventory; -import client.inventory.MapleInventoryType; -import client.inventory.MaplePet; -import client.inventory.ModifyInventory; import client.newyear.NewYearCardRecord; import client.status.MonsterStatus; import client.status.MonsterStatusEffect; @@ -67,7 +33,6 @@ import config.YamlConfig; import constants.game.ExpTable; import constants.game.GameConstants; import constants.inventory.ItemConstants; -import constants.net.ServerConstants; import constants.skills.Buccaneer; import constants.skills.Corsair; import constants.skills.ThunderBreaker; @@ -88,35 +53,26 @@ import net.server.world.World; import server.CashShop.CashItem; import server.CashShop.CashItemFactory; import server.CashShop.SpecialCashItem; -import server.DueyPackage; -import server.MTSItemInfo; -import server.MapleItemInformationProvider; -import server.MapleShopItem; -import server.MapleTrade; +import server.*; import server.events.gm.MapleSnowball; import server.life.MapleMonster; import server.life.MapleNPC; import server.life.MaplePlayerNPC; import server.life.MobSkill; -import server.maps.AbstractMapleMapObject; -import server.maps.MapleDoor; -import server.maps.MapleDoorObject; -import server.maps.MapleDragon; -import server.maps.MapleHiredMerchant; -import server.maps.MapleMap; -import server.maps.MapleMapItem; -import server.maps.MapleMiniGame; +import server.maps.*; import server.maps.MapleMiniGame.MiniGameResult; -import server.maps.MapleMist; -import server.maps.MaplePlayerShop; -import server.maps.MaplePlayerShopItem; -import server.maps.MapleReactor; -import server.maps.MapleSummon; import server.movement.LifeMovementFragment; import tools.data.input.SeekableLittleEndianAccessor; import tools.data.output.LittleEndianWriter; import tools.data.output.MaplePacketLittleEndianWriter; -import java.util.TimeZone; + +import java.awt.*; +import java.net.InetAddress; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; +import java.util.*; +import java.util.Map.Entry; /** * @@ -154,13 +110,13 @@ public class MaplePacketCreator { } private static void addRemainingSkillInfo(final MaplePacketLittleEndianWriter mplew, MapleCharacter chr) { - int remainingSp[] = chr.getRemainingSps(); + int[] remainingSp = chr.getRemainingSps(); int effectiveLength = 0; - for (int i = 0; i < remainingSp.length; i++) { - if (remainingSp[i] > 0) { - effectiveLength++; - } + for (int j : remainingSp) { + if (j > 0) { + effectiveLength++; } + } mplew.write(effectiveLength); for (int i = 0; i < remainingSp.length; i++) { @@ -494,9 +450,9 @@ public class MaplePacketCreator { List equippedCash = new ArrayList<>(equippedC.size()); for (Item item : equippedC) { if (item.getPosition() <= -100) { - equippedCash.add((Item) item); + equippedCash.add(item); } else { - equipped.add((Item) item); + equipped.add(item); } } for (Item item : equipped) { // equipped doesn't actually need sorting, thanks Pllsz @@ -533,25 +489,23 @@ public class MaplePacketCreator { Map skills = chr.getSkills(); int skillsSize = skills.size(); // We don't want to include any hidden skill in this, so subtract them from the size list and ignore them. - for (Iterator> it = skills.entrySet().iterator(); it.hasNext();) { - Entry skill = it.next(); - if (GameConstants.isHiddenSkills(skill.getKey().getId())) { - skillsSize--; - } + for (Entry skill : skills.entrySet()) { + if (GameConstants.isHiddenSkills(skill.getKey().getId())) { + skillsSize--; } + } mplew.writeShort(skillsSize); - for (Iterator> it = skills.entrySet().iterator(); it.hasNext();) { - Entry skill = it.next(); - if (GameConstants.isHiddenSkills(skill.getKey().getId())) { - continue; - } - mplew.writeInt(skill.getKey().getId()); - mplew.writeInt(skill.getValue().skillevel); - addExpirationTime(mplew, skill.getValue().expiration); - if (skill.getKey().isFourthJob()) { - mplew.writeInt(skill.getValue().masterlevel); - } + for (Entry skill : skills.entrySet()) { + if (GameConstants.isHiddenSkills(skill.getKey().getId())) { + continue; } + mplew.writeInt(skill.getKey().getId()); + mplew.writeInt(skill.getValue().skillevel); + addExpirationTime(mplew, skill.getValue().expiration); + if (skill.getKey().isFourthJob()) { + mplew.writeInt(skill.getValue().masterlevel); + } + } mplew.writeShort(chr.getAllCooldowns().size()); for (PlayerCoolDownValueHolder cooling : chr.getAllCooldowns()) { mplew.writeInt(cooling.skillId); @@ -1032,13 +986,10 @@ public class MaplePacketCreator { } List> mystats = stats; if (mystats.size() > 1) { - Collections.sort(mystats, new Comparator>() { - @Override - public int compare(Pair o1, Pair o2) { - int val1 = o1.getLeft().getValue(); - int val2 = o2.getLeft().getValue(); - return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1)); - } + mystats.sort((o1, o2) -> { + int val1 = o1.getLeft().getValue(); + int val2 = o2.getLeft().getValue(); + return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1)); }); } mplew.writeInt(updateMask); @@ -1061,7 +1012,7 @@ public class MaplePacketCreator { } else if (statupdate.getLeft().getValue() == 0x20000) { mplew.writeShort(statupdate.getRight().shortValue()); } else { - mplew.writeInt(statupdate.getRight().intValue()); + mplew.writeInt(statupdate.getRight()); } } } @@ -1932,7 +1883,7 @@ public class MaplePacketCreator { } if (chr.getBuffedValue(MapleBuffStat.COMBO) != null) { buffmask |= MapleBuffStat.COMBO.getValue(); - buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.COMBO).intValue()); + buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.COMBO)); } if (chr.getBuffedValue(MapleBuffStat.SHADOWPARTNER) != null) { buffmask |= MapleBuffStat.SHADOWPARTNER.getValue(); @@ -1941,7 +1892,7 @@ public class MaplePacketCreator { buffmask |= MapleBuffStat.SOULARROW.getValue(); } if (chr.getBuffedValue(MapleBuffStat.MORPH) != null) { - buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.MORPH).intValue()); + buffvalue = Integer.valueOf(chr.getBuffedValue(MapleBuffStat.MORPH)); } mplew.writeInt((int) ((buffmask >> 32) & 0xffffffffL)); if (buffvalue != null) { @@ -2465,13 +2416,13 @@ public class MaplePacketCreator { for (Integer oned : damage.keySet()) { List onedList = damage.get(oned); if (onedList != null) { - lew.writeInt(oned.intValue()); + lew.writeInt(oned); lew.write(0x0); if (skill == 4211006) { lew.write(onedList.size()); } for (Integer eachd : onedList) { - lew.writeInt(eachd.intValue()); + lew.writeInt(eachd); } } } @@ -2814,11 +2765,10 @@ public class MaplePacketCreator { final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendOpcode.RECOMMENDED_WORLD_MESSAGE.getValue()); mplew.write(worlds.size());//size - for (Iterator> it = worlds.iterator(); it.hasNext();) { - Pair world = it.next(); - mplew.writeInt(world.getLeft()); - mplew.writeMapleAsciiString(world.getRight()); - } + for (Pair world : worlds) { + mplew.writeInt(world.getLeft()); + mplew.writeMapleAsciiString(world.getRight()); + } return mplew.getPacket(); } @@ -3190,7 +3140,7 @@ public class MaplePacketCreator { } private static void writeLongEncodeTemporaryMask(final MaplePacketLittleEndianWriter mplew, Collection stati) { - int masks[] = new int[4]; + int[] masks = new int[4]; for (MonsterStatus statup : stati) { int pos = statup.isFirst() ? 0 : 2; @@ -3198,10 +3148,10 @@ public class MaplePacketCreator { masks[pos + i] |= statup.getValue() >> 32 * i; } } - - for (int i = 0; i < masks.length; i++) { - mplew.writeInt(masks[i]); - } + + for (int mask : masks) { + mplew.writeInt(mask); + } } public static byte[] cancelDebuff(long mask) { @@ -3417,7 +3367,7 @@ public class MaplePacketCreator { addCharLook(mplew, shop.getOwner(), false); mplew.writeMapleAsciiString(shop.getOwner().getName()); - MapleCharacter visitors[] = shop.getVisitors(); + MapleCharacter[] visitors = shop.getVisitors(); for(int i = 0; i < 3; i++) { if(visitors[i] != null) { mplew.write(i + 1); @@ -3521,7 +3471,7 @@ public class MaplePacketCreator { return mplew.getPacket(); } - public static byte[] getNPCTalkStyle(int npc, String talk, int styles[]) { + public static byte[] getNPCTalkStyle(int npc, String talk, int[] styles) { final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendOpcode.NPC_TALK.getValue()); mplew.write(4); // ? @@ -3530,9 +3480,9 @@ public class MaplePacketCreator { mplew.write(0); //speaker mplew.writeMapleAsciiString(talk); mplew.write(styles.length); - for (int i = 0; i < styles.length; i++) { - mplew.writeInt(styles[i]); - } + for (int style : styles) { + mplew.writeInt(style); + } return mplew.getPacket(); } @@ -3689,7 +3639,7 @@ public class MaplePacketCreator { mplew.writeShort(SendOpcode.KEYMAP.getValue()); mplew.write(0); for (int x = 0; x < 90; x++) { - MapleKeyBinding binding = keybindings.get(Integer.valueOf(x)); + MapleKeyBinding binding = keybindings.get(x); if (binding != null) { mplew.write(binding.getType()); mplew.writeInt(binding.getAction()); @@ -5633,9 +5583,9 @@ public class MaplePacketCreator { List> items = ItemFactory.MERCHANT.loadItems(chr.getId(), false); mplew.write(items.size()); - for (int i = 0; i < items.size(); i++) { - addItemInfo(mplew, items.get(i).getLeft(), true); - } + for (Pair item : items) { + addItemInfo(mplew, item.getLeft(), true); + } } catch (SQLException e) { e.printStackTrace(); } @@ -5805,7 +5755,7 @@ public class MaplePacketCreator { mplew.writeInt(hm.getItemId()); mplew.writeMapleAsciiString("Hired Merchant"); - MapleCharacter visitors[] = hm.getVisitors(); + MapleCharacter[] visitors = hm.getVisitors(); for (int i = 0; i < 3; i++) { if (visitors[i] != null) { mplew.write(i + 1); @@ -5818,10 +5768,10 @@ public class MaplePacketCreator { List> msgList = hm.getMessages(); mplew.writeShort(msgList.size()); - for (int i = 0; i < msgList.size(); i++) { - mplew.writeMapleAsciiString(msgList.get(i).getLeft()); - mplew.write(msgList.get(i).getRight()); - } + for (Pair stringBytePair : msgList) { + mplew.writeMapleAsciiString(stringBytePair.getLeft()); + mplew.write(stringBytePair.getRight()); + } } else { mplew.writeShort(0); } @@ -6089,20 +6039,19 @@ public class MaplePacketCreator { mplew.writeInt(page); mplew.write(1); mplew.write(1); - for (int i = 0; i < items.size(); i++) { - MTSItemInfo item = items.get(i); - addItemInfo(mplew, item.getItem(), true); - mplew.writeInt(item.getID()); //id - mplew.writeInt(item.getTaxes()); //this + below = price - mplew.writeInt(item.getPrice()); //price - mplew.writeInt(0); - mplew.writeLong(getTime(item.getEndingDate())); - mplew.writeMapleAsciiString(item.getSeller()); //account name (what was nexon thinking?) - mplew.writeMapleAsciiString(item.getSeller()); //char name - for (int j = 0; j < 28; j++) { - mplew.write(0); - } + for (MTSItemInfo item : items) { + addItemInfo(mplew, item.getItem(), true); + mplew.writeInt(item.getID()); //id + mplew.writeInt(item.getTaxes()); //this + below = price + mplew.writeInt(item.getPrice()); //price + mplew.writeInt(0); + mplew.writeLong(getTime(item.getEndingDate())); + mplew.writeMapleAsciiString(item.getSeller()); //account name (what was nexon thinking?) + mplew.writeMapleAsciiString(item.getSeller()); //char name + for (int j = 0; j < 28; j++) { + mplew.write(0); } + } mplew.write(1); return mplew.getPacket(); } @@ -6591,7 +6540,7 @@ public class MaplePacketCreator { final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendOpcode.FAMILY_CHART_RESULT.getValue()); mplew.writeInt(entry.getChrId()); //ID of viewed player's pedigree, can't be leader? - List superJuniors = new ArrayList(4); + List superJuniors = new ArrayList<>(4); boolean hasOtherJunior = false; int entryCount = 2; //2 guaranteed, leader and self entryCount += Math.min(2, entry.getTotalSeniors()); diff --git a/src/main/java/tools/StringUtil.java b/src/main/java/tools/StringUtil.java index b471e4aef2..65337f5bba 100644 --- a/src/main/java/tools/StringUtil.java +++ b/src/main/java/tools/StringUtil.java @@ -65,7 +65,7 @@ public class StringUtil { * @param start Starting from which string. * @return The joined strings. */ - public static String joinStringFrom(String arr[], int start) { + public static String joinStringFrom(String[] arr, int start) { return joinStringFrom(arr, start, " "); } @@ -77,7 +77,7 @@ public class StringUtil { * @param start Starting from which string. * @return The joined strings. */ - public static String joinStringFrom(String arr[], int start, String sep) { + public static String joinStringFrom(String[] arr, int start, String sep) { StringBuilder builder = new StringBuilder(); for (int i = start; i < arr.length; i++) { builder.append(arr[i]); diff --git a/src/main/java/tools/data/input/GenericLittleEndianAccessor.java b/src/main/java/tools/data/input/GenericLittleEndianAccessor.java index d08a9b8374..9718a830b5 100644 --- a/src/main/java/tools/data/input/GenericLittleEndianAccessor.java +++ b/src/main/java/tools/data/input/GenericLittleEndianAccessor.java @@ -21,7 +21,7 @@ */ package tools.data.input; -import java.awt.Point; +import java.awt.*; import java.io.ByteArrayOutputStream; /** @@ -129,7 +129,7 @@ public class GenericLittleEndianAccessor implements LittleEndianAccessor { * @return The string read. */ public final String readAsciiString(int n) { - char ret[] = new char[n]; + char[] ret = new char[n]; for (int x = 0; x < n; x++) { ret[x] = (char) readByte(); } diff --git a/src/main/java/tools/data/output/GenericLittleEndianWriter.java b/src/main/java/tools/data/output/GenericLittleEndianWriter.java index 7dd866c4f8..70965077ca 100644 --- a/src/main/java/tools/data/output/GenericLittleEndianWriter.java +++ b/src/main/java/tools/data/output/GenericLittleEndianWriter.java @@ -21,10 +21,11 @@ */ package tools.data.output; -import java.awt.Point; -import java.nio.charset.Charset; import constants.string.CharsetConstants.MapleLanguageType; +import java.awt.*; +import java.nio.charset.Charset; + /** * Provides a generic writer of a little-endian sequence of bytes. * @@ -59,8 +60,8 @@ public class GenericLittleEndianWriter implements LittleEndianWriter { */ @Override public void write(byte[] b) { - for (int x = 0; x < b.length; x++) { - bos.writeByte(b[x]); + for (byte value : b) { + bos.writeByte(value); } } diff --git a/src/main/java/tools/data/output/LittleEndianWriter.java b/src/main/java/tools/data/output/LittleEndianWriter.java index f17bd7c72e..0ec260fbaf 100644 --- a/src/main/java/tools/data/output/LittleEndianWriter.java +++ b/src/main/java/tools/data/output/LittleEndianWriter.java @@ -21,7 +21,7 @@ */ package tools.data.output; -import java.awt.Point; +import java.awt.*; /** * Provides an interface to a writer class that writes a little-endian sequence @@ -38,44 +38,44 @@ public interface LittleEndianWriter { * * @param b The bytes to write. */ - public void write(byte b[]); + void write(byte[] b); /** * Write a byte to the sequence. * * @param b The byte to write. */ - public void write(byte b); + void write(byte b); /** * Write a byte in integer form to the sequence. * * @param b The byte as an Integer to write. */ - public void write(int b); + void write(int b); - public void skip(int b); + void skip(int b); /** * Writes an integer to the sequence. * * @param i The integer to write. */ - public void writeInt(int i); + void writeInt(int i); /** * Write a short integer to the sequence. * * @param s The short integer to write. */ - public void writeShort(int s); + void writeShort(int s); /** * Write a long integer to the sequence. * * @param l The long integer to write. */ - public void writeLong(long l); + void writeLong(long l); /** * Writes an ASCII string the the sequence. diff --git a/src/main/java/tools/packets/Fishing.java b/src/main/java/tools/packets/Fishing.java index 8ea1a0fc49..d2daa766a6 100644 --- a/src/main/java/tools/packets/Fishing.java +++ b/src/main/java/tools/packets/Fishing.java @@ -139,7 +139,7 @@ public class Fishing { } private static void debugFishingLikelihood() { - long a[] = new long[365], b[] = new long[365]; + long[] a = new long[365], b = new long[365]; long hits = 0, hits10 = 0, total = 0; for (int i = 0; i < 365; i++) { diff --git a/tools/MapleArrowFetcher/src/life/MapleMonsterStats.java b/tools/MapleArrowFetcher/src/life/MapleMonsterStats.java index 42b091545d..ce2cacf6b3 100644 --- a/tools/MapleArrowFetcher/src/life/MapleMonsterStats.java +++ b/tools/MapleArrowFetcher/src/life/MapleMonsterStats.java @@ -21,17 +21,13 @@ */ package life; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import life.MapleLifeFactory.BanishInfo; import life.MapleLifeFactory.loseItem; import life.MapleLifeFactory.selfDestruction; import tools.Pair; +import java.util.*; + /** * @author Frz */ @@ -193,9 +189,7 @@ public class MapleMonsterStats { } public void setSkills(List> skills) { - for (Pair skill : skills) { - this.skills.add(skill); - } + this.skills.addAll(skills); } public List> getSkills() { diff --git a/tools/MapleArrowFetcher/src/maplearrowfetcher/MapleArrowFetcher.java b/tools/MapleArrowFetcher/src/maplearrowfetcher/MapleArrowFetcher.java index 69e332b885..308edb09b2 100644 --- a/tools/MapleArrowFetcher/src/maplearrowfetcher/MapleArrowFetcher.java +++ b/tools/MapleArrowFetcher/src/maplearrowfetcher/MapleArrowFetcher.java @@ -21,22 +21,15 @@ package maplearrowfetcher; import life.MapleLifeFactory; import life.MapleMonsterStats; +import tools.DatabaseConnection; +import tools.Pair; +import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; - -import java.io.*; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import tools.DatabaseConnection; -import tools.Pair; /** * @@ -123,14 +116,11 @@ public class MapleArrowFetcher { List>> listEntries = new ArrayList<>(existingEntries.entrySet()); - Collections.sort(listEntries, new Comparator>>() { - @Override - public int compare(Entry> o1, Entry> o2) { - int val1 = o1.getKey(); - int val2 = o2.getKey(); - return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1)); - } - }); + Collections.sort(listEntries, (o1, o2) -> { + int val1 = o1.getKey(); + int val2 = o2.getKey(); + return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1)); + }); for(Entry> ee : listEntries) { int mobid = ee.getKey(); diff --git a/tools/MapleArrowFetcher/src/provider/wz/WZTool.java b/tools/MapleArrowFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleArrowFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleArrowFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleCashCosmeticsChecker/src/maplecashcosmeticschecker/MapleCashCosmeticsChecker.java b/tools/MapleCashCosmeticsChecker/src/maplecashcosmeticschecker/MapleCashCosmeticsChecker.java index 6fee51c5b4..bec5033721 100644 --- a/tools/MapleCashCosmeticsChecker/src/maplecashcosmeticschecker/MapleCashCosmeticsChecker.java +++ b/tools/MapleCashCosmeticsChecker/src/maplecashcosmeticschecker/MapleCashCosmeticsChecker.java @@ -19,22 +19,9 @@ */ package maplecashcosmeticschecker; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.util.*; import java.util.Map.Entry; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Set; /** * @@ -591,29 +578,19 @@ public class MapleCashCosmeticsChecker { List, List>> list = new ArrayList<>(map.size()); for(Entry, Set> e : map.entrySet()) { List il = new ArrayList<>(2); - for(Integer i : e.getValue()) { - il.add(i); - } + il.addAll(e.getValue()); - Collections.sort(il, new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - return o1 - o2; - } - }); + Collections.sort(il, (o1, o2) -> o1 - o2); list.add(new Pair<>(e.getKey(), il)); } - Collections.sort(list, new Comparator, List>>() { - @Override - public int compare(Pair, List> o1, Pair, List> o2) { - int cmp = o1.getLeft().getLeft() - o2.getLeft().getLeft(); - if (cmp == 0) { - return o1.getLeft().getRight().compareTo(o2.getLeft().getRight()); - } else { - return cmp; - } + Collections.sort(list, (o1, o2) -> { + int cmp = o1.getLeft().getLeft() - o2.getLeft().getLeft(); + if (cmp == 0) { + return o1.getLeft().getRight().compareTo(o2.getLeft().getRight()); + } else { + return cmp; } }); diff --git a/tools/MapleCashCosmeticsFetcher/src/provider/wz/WZTool.java b/tools/MapleCashCosmeticsFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleCashCosmeticsFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleCashCosmeticsFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleCashCosmeticsFetcher/src/tools/MapleItemInformationProvider.java b/tools/MapleCashCosmeticsFetcher/src/tools/MapleItemInformationProvider.java index 37addfc389..905459fd8f 100644 --- a/tools/MapleCashCosmeticsFetcher/src/tools/MapleItemInformationProvider.java +++ b/tools/MapleCashCosmeticsFetcher/src/tools/MapleItemInformationProvider.java @@ -21,45 +21,10 @@ */ package tools; -import java.io.File; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import provider.*; -//import net.server.Server; -import provider.MapleData; -import provider.MapleDataDirectoryEntry; -import provider.MapleDataFileEntry; -import provider.MapleDataProvider; -import provider.MapleDataProviderFactory; -import provider.MapleDataTool; -import tools.DatabaseConnection; -//import tools.MaplePacketCreator; -import tools.Pair; -//import client.MapleCharacter; -//import client.MapleClient; -//import client.MapleJob; -//import client.Skill; -//import client.SkillFactory; -//import client.autoban.AutobanFactory; -//import client.inventory.Equip; -//import client.inventory.Item; -//import client.inventory.MapleInventory; -//import client.inventory.MapleInventoryType; -//import client.inventory.MapleWeaponType; -//import constants.ServerConstants; -//import constants.EquipSlot; -//import constants.ItemConstants; -//import constants.skills.Assassin; -//import constants.skills.Gunslinger; -//import constants.skills.NightWalker; -import java.sql.Connection; +import java.io.File; +import java.util.*; //import server.life.MapleMonsterInformationProvider; /** @@ -311,7 +276,7 @@ public class MapleItemInformationProvider { public short getSlotMax(int itemId) { Short slotMax = slotMaxCache.get(itemId); if (slotMax != null) { - return (short)(slotMax); + return slotMax; } short ret = 0; MapleData item = getItemData(itemId); @@ -325,7 +290,7 @@ public class MapleItemInformationProvider { } slotMaxCache.put(itemId, ret); - return (short)(ret); + return ret; } public int getMeso(int itemId) { @@ -378,7 +343,7 @@ public class MapleItemInformationProvider { try { pEntry = MapleDataTool.getDouble(pData); } catch (Exception e) { - pEntry = (double) MapleDataTool.getInt(pData); + pEntry = MapleDataTool.getInt(pData); } } else { pData = item.getChildByPath("info/price"); @@ -386,7 +351,7 @@ public class MapleItemInformationProvider { return -1; } try { - pEntry = (double) MapleDataTool.getInt(pData); + pEntry = MapleDataTool.getInt(pData); } catch(Exception e) { priceCache.put(itemId, 0.0); return 0; diff --git a/tools/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java b/tools/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java index 659a48550b..c646398bb1 100644 --- a/tools/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java +++ b/tools/MapleCouponInstaller/src/maplecouponinstaller/MapleCouponInstaller.java @@ -221,8 +221,8 @@ public class MapleCouponInstaller { if(d.contains("rate")) { String r = getNodeValue(token); - Double db = Double.parseDouble(r); - itemMultiplier = db.intValue(); + double db = Double.parseDouble(r); + itemMultiplier = (int) db; } } } diff --git a/tools/MapleGachaponItemidRetriever/src/maplegachaponitemidretriever/MapleGachaponItemidRetriever.java b/tools/MapleGachaponItemidRetriever/src/maplegachaponitemidretriever/MapleGachaponItemidRetriever.java index b490a31156..c539bd4f52 100644 --- a/tools/MapleGachaponItemidRetriever/src/maplegachaponitemidretriever/MapleGachaponItemidRetriever.java +++ b/tools/MapleGachaponItemidRetriever/src/maplegachaponitemidretriever/MapleGachaponItemidRetriever.java @@ -19,25 +19,9 @@ */ package maplegachaponitemidretriever; -import java.util.ArrayList; -import java.util.List; -import java.util.LinkedList; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Collections; +import java.io.*; +import java.sql.*; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -168,7 +152,7 @@ public class MapleGachaponItemidRetriever { @Override public int hashCode() { - int result = (int) (prop ^ (prop >>> 32)); + int result = prop ^ (prop >>> 32); result = 31 * result + (header != null ? header.hashCode() : 0); result = 31 * result + (target != null ? target.hashCode() : 0); result = 31 * result + (buff != null ? buff.hashCode() : 0); @@ -254,9 +238,9 @@ public class MapleGachaponItemidRetriever { ResultSet rs = ps.executeQuery(); while(rs.next()) { - Integer id = rs.getInt("id"); + int id = rs.getInt("id"); - str += id.toString(); + str += Integer.toString(id); str += " "; } diff --git a/tools/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java b/tools/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java index 7ac88eb733..e723de2ac0 100644 --- a/tools/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java +++ b/tools/MapleIdRetriever/src/mapleidretriever/MapleIdRetriever.java @@ -20,11 +20,7 @@ package mapleidretriever; import java.io.*; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.*; import java.util.ArrayList; /** @@ -175,9 +171,9 @@ public class MapleIdRetriever { String str = ""; while(rs.next()) { - Integer id = rs.getInt("id"); + int id = rs.getInt("id"); - str += id.toString(); + str += Integer.toString(id); str += " "; } diff --git a/tools/MapleInvalidItemWithNoNameFetcher/src/provider/wz/WZTool.java b/tools/MapleInvalidItemWithNoNameFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleInvalidItemWithNoNameFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleInvalidItemWithNoNameFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleMesoFetcher/src/life/MapleMonsterStats.java b/tools/MapleMesoFetcher/src/life/MapleMonsterStats.java index 42b091545d..ce2cacf6b3 100644 --- a/tools/MapleMesoFetcher/src/life/MapleMonsterStats.java +++ b/tools/MapleMesoFetcher/src/life/MapleMonsterStats.java @@ -21,17 +21,13 @@ */ package life; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import life.MapleLifeFactory.BanishInfo; import life.MapleLifeFactory.loseItem; import life.MapleLifeFactory.selfDestruction; import tools.Pair; +import java.util.*; + /** * @author Frz */ @@ -193,9 +189,7 @@ public class MapleMonsterStats { } public void setSkills(List> skills) { - for (Pair skill : skills) { - this.skills.add(skill); - } + this.skills.addAll(skills); } public List> getSkills() { diff --git a/tools/MapleMesoFetcher/src/provider/wz/WZTool.java b/tools/MapleMesoFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleMesoFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleMesoFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleQuestItemFetcher/src/maplequestitemfetcher/MapleQuestItemFetcher.java b/tools/MapleQuestItemFetcher/src/maplequestitemfetcher/MapleQuestItemFetcher.java index 53c6fd5120..5f32706f02 100644 --- a/tools/MapleQuestItemFetcher/src/maplequestitemfetcher/MapleQuestItemFetcher.java +++ b/tools/MapleQuestItemFetcher/src/maplequestitemfetcher/MapleQuestItemFetcher.java @@ -19,34 +19,15 @@ */ package maplequestitemfetcher; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - import org.apache.commons.io.FileUtils; -import java.io.File; import tools.MapleItemInformationProvider; - import tools.Pair; +import java.io.*; +import java.sql.*; +import java.util.*; +import java.util.Map.Entry; + /** * * @author RonanLana @@ -430,32 +411,18 @@ public class MapleQuestItemFetcher { private static List> getSortedMapEntries0(Map map) { List> list = new ArrayList<>(map.size()); - for(Entry e : map.entrySet()) { - list.add(e); - } + list.addAll(map.entrySet()); - Collections.sort(list, new Comparator>() { - @Override - public int compare(Entry o1, Entry o2) { - return o1.getKey() - o2.getKey(); - } - }); + Collections.sort(list, (o1, o2) -> o1.getKey() - o2.getKey()); return list; } private static List> getSortedMapEntries1(Map map) { List> list = new ArrayList<>(map.size()); - for(Entry e : map.entrySet()) { - list.add(e); - } + list.addAll(map.entrySet()); - Collections.sort(list, new Comparator>() { - @Override - public int compare(Entry o1, Entry o2) { - return o1.getKey() - o2.getKey(); - } - }); + Collections.sort(list, (o1, o2) -> o1.getKey() - o2.getKey()); return list; } @@ -464,26 +431,14 @@ public class MapleQuestItemFetcher { List>> list = new ArrayList<>(map.size()); for(Entry> e : map.entrySet()) { List il = new ArrayList<>(2); - for(Integer i : e.getValue()) { - il.add(i); - } + il.addAll(e.getValue()); - Collections.sort(il, new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - return o1 - o2; - } - }); + Collections.sort(il, (o1, o2) -> o1 - o2); list.add(new Pair<>(e.getKey(), il)); } - Collections.sort(list, new Comparator>>() { - @Override - public int compare(Pair> o1, Pair> o2) { - return o1.getLeft() - o2.getLeft(); - } - }); + Collections.sort(list, (o1, o2) -> o1.getLeft() - o2.getLeft()); return list; } diff --git a/tools/MapleQuestItemFetcher/src/provider/wz/WZTool.java b/tools/MapleQuestItemFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleQuestItemFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleQuestItemFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleQuestItemFetcher/src/tools/MapleItemInformationProvider.java b/tools/MapleQuestItemFetcher/src/tools/MapleItemInformationProvider.java index 30136be234..ec7519db34 100644 --- a/tools/MapleQuestItemFetcher/src/tools/MapleItemInformationProvider.java +++ b/tools/MapleQuestItemFetcher/src/tools/MapleItemInformationProvider.java @@ -21,45 +21,14 @@ */ package tools; +import provider.*; + import java.io.File; +import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -//import net.server.Server; -import provider.MapleData; -import provider.MapleDataDirectoryEntry; -import provider.MapleDataFileEntry; -import provider.MapleDataProvider; -import provider.MapleDataProviderFactory; -import provider.MapleDataTool; -import tools.DatabaseConnection; -//import tools.MaplePacketCreator; -import tools.Pair; -//import client.MapleCharacter; -//import client.MapleClient; -//import client.MapleJob; -//import client.Skill; -//import client.SkillFactory; -//import client.autoban.AutobanFactory; -//import client.inventory.Equip; -//import client.inventory.Item; -//import client.inventory.MapleInventory; -//import client.inventory.MapleInventoryType; -//import client.inventory.MapleWeaponType; -//import constants.ServerConstants; -//import constants.EquipSlot; -//import constants.ItemConstants; -//import constants.skills.Assassin; -//import constants.skills.Gunslinger; -//import constants.skills.NightWalker; -import java.sql.Connection; +import java.util.*; //import server.life.MapleMonsterInformationProvider; /** @@ -313,7 +282,7 @@ public class MapleItemInformationProvider { public short getSlotMax(int itemId) { Short slotMax = slotMaxCache.get(itemId); if (slotMax != null) { - return (short)(slotMax); + return slotMax; } short ret = 0; MapleData item = getItemData(itemId); @@ -327,7 +296,7 @@ public class MapleItemInformationProvider { } slotMaxCache.put(itemId, ret); - return (short)(ret); + return ret; } public int getMeso(int itemId) { @@ -380,7 +349,7 @@ public class MapleItemInformationProvider { try { pEntry = MapleDataTool.getDouble(pData); } catch (Exception e) { - pEntry = (double) MapleDataTool.getInt(pData); + pEntry = MapleDataTool.getInt(pData); } } else { pData = item.getChildByPath("info/price"); @@ -388,7 +357,7 @@ public class MapleItemInformationProvider { return -1; } try { - pEntry = (double) MapleDataTool.getInt(pData); + pEntry = MapleDataTool.getInt(pData); } catch(Exception e) { priceCache.put(itemId, 0.0); return 0; diff --git a/tools/MapleQuestMesoFetcher/src/maplequestmesofetcher/MapleQuestMesoFetcher.java b/tools/MapleQuestMesoFetcher/src/maplequestmesofetcher/MapleQuestMesoFetcher.java index e27ca90477..28b039024f 100644 --- a/tools/MapleQuestMesoFetcher/src/maplequestmesofetcher/MapleQuestMesoFetcher.java +++ b/tools/MapleQuestMesoFetcher/src/maplequestmesofetcher/MapleQuestMesoFetcher.java @@ -19,22 +19,10 @@ */ package maplequestmesofetcher; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; +import java.io.*; import java.sql.Connection; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.HashSet; -import java.util.Set; /** * @@ -248,12 +236,7 @@ public class MapleQuestMesoFetcher { if(!result.isEmpty() || !error.isEmpty()) { printWriter.println("MISMATCH INFORMATION ON '" + (testingCheck ? "check" : "act") + "':"); if(!result.isEmpty()) { - Collections.sort(result, new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - return o1 - o2; - } - }); + Collections.sort(result, (o1, o2) -> o1 - o2); printWriter.println("# MISSING"); @@ -271,12 +254,7 @@ public class MapleQuestMesoFetcher { } if(!error.isEmpty() && testingCheck) { - Collections.sort(error, new Comparator() { - @Override - public int compare(Integer o1, Integer o2) { - return o1 - o2; - } - }); + Collections.sort(error, (o1, o2) -> o1 - o2); printWriter.println("# WRONG VALUE"); diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java index c4f012fcab..520c17fe28 100644 --- a/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java +++ b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java @@ -19,15 +19,9 @@ */ package mapleskillmakerreagentindexer; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; +import java.io.*; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.List; /** @@ -154,12 +148,7 @@ public class MapleSkillMakerReagentIndexer { } private static void SortReagentList() { - Collections.sort(reagentList, new Comparator>>() { - @Override - public int compare(Pair> p1, Pair> p2) { - return p1.getLeft().compareTo(p2.getLeft()); - } - }); + Collections.sort(reagentList, (p1, p2) -> p1.getLeft().compareTo(p2.getLeft())); } private static void WriteMakerReagentTableFile() { diff --git a/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java b/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java index 42b091545d..ce2cacf6b3 100644 --- a/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java +++ b/tools/MapleSkillbookChanceFetcher/src/life/MapleMonsterStats.java @@ -21,17 +21,13 @@ */ package life; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import life.MapleLifeFactory.BanishInfo; import life.MapleLifeFactory.loseItem; import life.MapleLifeFactory.selfDestruction; import tools.Pair; +import java.util.*; + /** * @author Frz */ @@ -193,9 +189,7 @@ public class MapleMonsterStats { } public void setSkills(List> skills) { - for (Pair skill : skills) { - this.skills.add(skill); - } + this.skills.addAll(skills); } public List> getSkills() { diff --git a/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java b/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java index f4a4b5ae37..d8e6edfdc5 100644 --- a/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java +++ b/tools/MapleSkillbookChanceFetcher/src/mapleskillbookchancefetcher/MapleSkillbookChanceFetcher.java @@ -21,24 +21,17 @@ package mapleskillbookchancefetcher; import life.MapleLifeFactory; import life.MapleMonsterStats; +import tools.DatabaseConnection; +import tools.Pair; +import java.io.IOException; +import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; - -import java.io.*; -import java.util.Collections; -import java.util.Comparator; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import tools.DatabaseConnection; -import tools.Pair; - /** * * @author RonanLana @@ -63,15 +56,12 @@ public class MapleSkillbookChanceFetcher { private static List, Integer>> sortedSkillbookChances() { List, Integer>> skillbookChancesList = new ArrayList<>(skillbookChances.entrySet()); - Collections.sort(skillbookChancesList, new Comparator, Integer>>() { - @Override - public int compare(Entry, Integer> o1, Entry, Integer> o2) { - if (o1.getKey().getLeft().equals(o2.getKey().getLeft())) { - return o1.getKey().getRight() < o2.getKey().getRight() ? -1 : (o1.getKey().getRight().equals(o2.getKey().getRight()) ? 0 : 1); - } - - return (o1.getKey().getLeft() < o2.getKey().getLeft()) ? -1 : 1; + Collections.sort(skillbookChancesList, (o1, o2) -> { + if (o1.getKey().getLeft().equals(o2.getKey().getLeft())) { + return o1.getKey().getRight() < o2.getKey().getRight() ? -1 : (o1.getKey().getRight().equals(o2.getKey().getRight()) ? 0 : 1); } + + return (o1.getKey().getLeft() < o2.getKey().getLeft()) ? -1 : 1; }); return skillbookChancesList; diff --git a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java +++ b/tools/MapleSkillbookChanceFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } } diff --git a/tools/MapleWorldmapChecker/src/mapleworldmapchecker/MapleWorldmapChecker.java b/tools/MapleWorldmapChecker/src/mapleworldmapchecker/MapleWorldmapChecker.java index 8dbf72d27a..e4c4724518 100644 --- a/tools/MapleWorldmapChecker/src/mapleworldmapchecker/MapleWorldmapChecker.java +++ b/tools/MapleWorldmapChecker/src/mapleworldmapchecker/MapleWorldmapChecker.java @@ -19,21 +19,8 @@ */ package mapleworldmapchecker; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashSet; -import java.util.Set; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.util.*; import java.util.Map.Entry; /** @@ -282,22 +269,12 @@ public class MapleWorldmapChecker { List>>> unreferencedEntries = new ArrayList<>(20); for (Entry>> e : unreferencedMapids.entrySet()) { List> list = new ArrayList<>(e.getValue()); - Collections.sort(list, new Comparator>() { - @Override - public int compare(Pair o1, Pair o2) { - return o1.getLeft().compareTo(o2.getLeft()); - } - }); + Collections.sort(list, (o1, o2) -> o1.getLeft().compareTo(o2.getLeft())); unreferencedEntries.add(new Pair<>(e.getKey(), list)); } - Collections.sort(unreferencedEntries, new Comparator>>>() { - @Override - public int compare(Pair>> o1, Pair>> o2) { - return o1.getLeft().compareTo(o2.getLeft()); - } - }); + Collections.sort(unreferencedEntries, (o1, o2) -> o1.getLeft().compareTo(o2.getLeft())); printReportFileResults(unreferencedEntries); } diff --git a/tools/SpiderDropFetcher/src/provider/wz/WZTool.java b/tools/SpiderDropFetcher/src/provider/wz/WZTool.java index 85e1c8d90b..7f5452cd03 100644 --- a/tools/SpiderDropFetcher/src/provider/wz/WZTool.java +++ b/tools/SpiderDropFetcher/src/provider/wz/WZTool.java @@ -21,15 +21,16 @@ */ package provider.wz; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; -import tools.data.input.LittleEndianAccessor; -import tools.data.input.SeekableLittleEndianAccessor; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; /* * Ported Code, see WZFile.java for more info @@ -103,7 +104,7 @@ public class WZTool { if (b == 0x7F) { strLength = llea.readInt(); } else { - strLength = (int) b; + strLength = b; } if (strLength < 0) { return ""; @@ -172,7 +173,7 @@ public class WZTool { if (b == -128) { return lea.readInt(); } else { - return ((int) b); + return b; } }