diff --git a/config.yaml b/config.yaml
index 5156641d7f..c288ae3795 100644
--- a/config.yaml
+++ b/config.yaml
@@ -162,12 +162,13 @@ server:
USE_THREAD_TRACKER: true #[SEVERE] This deadlock auditing thing will bloat the memory as fast as the time frame one takes to lose track of a raindrop on a tempesting day. Only for debugging purposes.
#Database Configuration
- DB_URL: ""
- DB_USER: ""
+ DB_URL: "jdbc:mysql://localhost:3306/heavenms"
+ DB_USER: "root"
DB_PASS: ""
DB_CONNECTION_POOL: true #Installs a connection pool to hub DB connections. Set false to default.
#Login Configuration
+ WORLDS: 1 #Initial number of worlds on the server.
WLDLIST_SIZE: 21 #Max possible worlds on the server.
CHANNEL_SIZE: 20 #Max possible channels per world (which is 20, based on the channel list on login phase).
CHANNEL_LOAD: 100 #Max players per channel (limit actually used to calculate the World server capacity).
diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt
index a0a39b884b..09e8877a9d 100644
--- a/docs/mychanges_ptbr.txt
+++ b/docs/mychanges_ptbr.txt
@@ -2135,4 +2135,12 @@ Adicionado checagem por evidência de disponibilidade de scripts em quests.
Corrigido inscrição de itens no MTS levando a certos atributos de itens sendo perdidos no processo.
Adicionado ganho de MaxHP extra da skill para Thunderbreakers, em ambos casos de aumento de nível e de MaxHP usando AP.
Refatorado ação de autopots, permitindo o mesmo a agir imediatamente após detecção de perda suficiente de HP/MP ao usar itens ou skills.
-Adicionado efeito sonoro de portal ao atravessar Mystic Door.
\ No newline at end of file
+Adicionado efeito sonoro de portal ao atravessar Mystic Door.
+
+16 Setembro 2019,
+Adicionado checagem no uso de autopots ao usar HP/MP, limites são calculados baseado em estimativa detectada de uso dos autopots pelo lado cliente.
+
+20 Setembro 2019,
+Adicionado update de macros ao usar SP reset.
+Refatorado vários pacotes Java contendo classes diversificadas.
+Corrigido nomenclatura errônea de "worker" introduzida, querendo significar "task".
\ No newline at end of file
diff --git a/nbproject/project.properties b/nbproject/project.properties
index db7c8c2d82..0f9bb87365 100644
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -29,11 +29,16 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.HikariCP-java7-2.4.13.jar=cores/HikariCP-java7-2.4.13.jar
+file.reference.jackson-annotations-2.9.9.jar=cores/jackson-annotations-2.9.9.jar
+file.reference.jackson-core-2.9.9.jar=cores/jackson-core-2.9.9.jar
+file.reference.jackson-databind-2.9.9.3.jar=cores/jackson-databind-2.9.9.3.jar
+file.reference.jackson-dataformat-yaml-2.9.9.jar=cores/jackson-dataformat-yaml-2.9.9.jar
file.reference.MapleSolaxia-src=src
file.reference.mina-core-2.0.19.jar=cores/mina-core-2.0.19.jar
file.reference.mysql-connector-java-bin.jar=cores/mysql-connector-java-bin.jar
file.reference.slf4j-api-1.7.21.jar=cores/slf4j-api-1.7.21.jar
file.reference.slf4j-jdk14-1.7.5.jar=cores/slf4j-jdk14-1.7.5.jar
+file.reference.snakeyaml-1.25.jar=cores/snakeyaml-1.25.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
@@ -43,7 +48,12 @@ javac.classpath=\
${file.reference.slf4j-api-1.7.21.jar}:\
${file.reference.HikariCP-java7-2.4.13.jar}:\
${file.reference.mysql-connector-java-bin.jar}:\
- ${file.reference.slf4j-jdk14-1.7.5.jar}
+ ${file.reference.slf4j-jdk14-1.7.5.jar}:\
+ ${file.reference.jackson-annotations-2.9.9.jar}:\
+ ${file.reference.jackson-core-2.9.9.jar}:\
+ ${file.reference.jackson-databind-2.9.9.3.jar}:\
+ ${file.reference.jackson-dataformat-yaml-2.9.9.jar}:\
+ ${file.reference.snakeyaml-1.25.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
diff --git a/scripts/quest/3301.js b/scripts/quest/3301.js
index bcf0edca88..9bd68a33b7 100644
--- a/scripts/quest/3301.js
+++ b/scripts/quest/3301.js
@@ -45,8 +45,13 @@ function end(mode, type, selection) {
qm.dispose();
}
} else if (status == 0) {
+ if (!qm.haveItem(oreArray[selection], 2)) {
+ qm.sendNext("What's this, you haven't got the ores. No ores no deal!");
+ return;
+ }
+
qm.gainItem(oreArray[selection], -2); // Take 2 ores
- qm.sendNext("Then wait for awhile. I'll go and get the stuff to help you pass the test of Chief Zanumist.");
+ qm.sendNext("Then wait for awhile. I'll go and get the stuff to help you pass the test of Chief Zenumist.");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
diff --git a/scripts/quest/3303.js b/scripts/quest/3303.js
index a9d44c42fe..402f42317f 100644
--- a/scripts/quest/3303.js
+++ b/scripts/quest/3303.js
@@ -45,6 +45,11 @@ function end(mode, type, selection) {
qm.dispose();
}
} else if (status == 0) {
+ if (!qm.haveItem(oreArray[selection], 2)) { // thanks resinate for noticing a function missing here
+ qm.sendNext("What's this, you haven't got the ores. No ores no deal!");
+ return;
+ }
+
qm.gainItem(oreArray[selection], -2); // Take 2 ores
qm.sendNext("Then wait for awhile. I'll go and get the stuff to help you pass the test of Chief Alcadno.");
qm.forceCompleteQuest();
diff --git a/src/client/AbstractMapleCharacterObject.java b/src/client/AbstractMapleCharacterObject.java
index 5d95db4bb9..9605477475 100644
--- a/src/client/AbstractMapleCharacterObject.java
+++ b/src/client/AbstractMapleCharacterObject.java
@@ -20,8 +20,8 @@
package client;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java
index bfb185898f..3727d274df 100644
--- a/src/client/MapleCharacter.java
+++ b/src/client/MapleCharacter.java
@@ -58,7 +58,7 @@ import net.server.PlayerCoolDownValueHolder;
import net.server.Server;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
-import net.server.coordinator.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator;
import net.server.guild.MapleAlliance;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
@@ -137,12 +137,12 @@ import client.inventory.PetDataFactory;
import client.inventory.manipulator.MapleCashidGenerator;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.newyear.NewYearCardRecord;
-import client.processor.FredrickProcessor;
-import client.processor.PetAutopotProcessor;
-import constants.ExpTable;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import client.processor.npc.FredrickProcessor;
+import client.processor.action.PetAutopotProcessor;
+import constants.game.ExpTable;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import constants.skills.Aran;
import constants.skills.Beginner;
import constants.skills.Bishop;
@@ -212,6 +212,7 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
private int localchairrate;
private boolean hidden, equipchanged = true, berserk, hasMerchant, hasSandboxItem = false, whiteChat = false, canRecvPartySearchInvite = true;
private boolean equippedMesoMagnet = false, equippedItemPouch = false, equippedPetItemIgnore = false;
+ private float autopotHpAlert, autopotMpAlert;
private int linkedLevel = 0;
private String linkedName = null;
private boolean finishedDojoTutorial;
@@ -8815,6 +8816,10 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
// Always send the macro packet to fix a client side bug when switching characters.
client.announce(MaplePacketCreator.getMacros(skillMacros));
}
+
+ public SkillMacro[] getMacros() {
+ return skillMacros;
+ }
public void sendNote(String to, String msg, byte fame) throws SQLException {
sendNote(to, this.getName(), msg, fame);
@@ -9144,9 +9149,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
MapleKeyBinding autohpPot = this.getKeymap().get(91);
if (autohpPot != null) {
int autohpItemid = autohpPot.getAction();
- Item autohpItem = this.getInventory(MapleInventoryType.USE).findById(autohpItemid);
- if (autohpItem != null) {
- PetAutopotProcessor.runAutopotAction(client, autohpItem.getPosition(), autohpItemid);
+ if (((float) this.getHp()) / this.getMaxHp() <= this.getAutopotHpAlert()) { // try within user settings... thanks Lame, Optimist, Stealth2800
+ Item autohpItem = this.getInventory(MapleInventoryType.USE).findById(autohpItemid);
+ if (autohpItem != null) {
+ PetAutopotProcessor.runAutopotAction(client, autohpItem.getPosition(), autohpItemid);
+ }
}
}
}
@@ -9155,9 +9162,11 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
MapleKeyBinding autompPot = this.getKeymap().get(92);
if (autompPot != null) {
int autompItemid = autompPot.getAction();
- Item autompItem = this.getInventory(MapleInventoryType.USE).findById(autompItemid);
- if (autompItem != null) {
- PetAutopotProcessor.runAutopotAction(client, autompItem.getPosition(), autompItemid);
+ if (((float) this.getMp()) / this.getMaxMp() <= this.getAutopotMpAlert()) {
+ Item autompItem = this.getInventory(MapleInventoryType.USE).findById(autompItemid);
+ if (autompItem != null) {
+ PetAutopotProcessor.runAutopotAction(client, autompItem.getPosition(), autompItemid);
+ }
}
}
}
@@ -10629,6 +10638,22 @@ public class MapleCharacter extends AbstractMapleCharacterObject {
this.dragon = dragon;
}
+ public void setAutopotHpAlert(float hpPortion) {
+ autopotHpAlert = hpPortion;
+ }
+
+ public float getAutopotHpAlert() {
+ return autopotHpAlert;
+ }
+
+ public void setAutopotMpAlert(float mpPortion) {
+ autopotMpAlert = mpPortion;
+ }
+
+ public float getAutopotMpAlert() {
+ return autopotMpAlert;
+ }
+
public long getJailExpirationTimeLeft() {
return jailExpiration - System.currentTimeMillis();
}
diff --git a/src/client/MapleClient.java b/src/client/MapleClient.java
index b68f27460e..a3ea8f6986 100644
--- a/src/client/MapleClient.java
+++ b/src/client/MapleClient.java
@@ -49,8 +49,8 @@ import jdk.nashorn.api.scripting.NashornScriptEngine;
import tools.*;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import net.server.channel.Channel;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
@@ -63,8 +63,8 @@ import net.server.world.World;
import org.apache.mina.core.session.IoSession;
import client.inventory.MapleInventoryType;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import scripting.AbstractPlayerInteraction;
import scripting.event.EventInstanceManager;
import scripting.event.EventManager;
@@ -79,7 +79,7 @@ import server.quest.MapleQuest;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
-import net.server.coordinator.MapleLoginBypassCoordinator;
+import net.server.coordinator.login.MapleLoginBypassCoordinator;
public class MapleClient {
diff --git a/src/client/MapleDisease.java b/src/client/MapleDisease.java
index 14984e7293..4dd866f050 100644
--- a/src/client/MapleDisease.java
+++ b/src/client/MapleDisease.java
@@ -21,7 +21,7 @@
*/
package client;
-import constants.GameConstants;
+import constants.game.GameConstants;
public enum MapleDisease {
NULL(0x0),
diff --git a/src/client/MapleFamily.java b/src/client/MapleFamily.java
index efd017ffc6..bae907b941 100644
--- a/src/client/MapleFamily.java
+++ b/src/client/MapleFamily.java
@@ -216,7 +216,7 @@ public class MapleFamily {
int totalRep = rsEntries.getInt("totalreputation");
int repsToSenior = rsEntries.getInt("reptosenior");
String precepts = rsEntries.getString("precepts");
- //Timestamp lastResetTime = rsEntries.getTimestamp("lastresettime"); //taken care of by FamilyDailyResetWorker
+ //Timestamp lastResetTime = rsEntries.getTimestamp("lastresettime"); //taken care of by FamilyDailyResetTask
World wserv = Server.getInstance().getWorld(world);
if (wserv == null) {
continue;
@@ -278,7 +278,7 @@ public class MapleFamily {
}
}
- public void saveAllMembersRep() { //was used for autosave worker, but character autosave should be enough
+ public void saveAllMembersRep() { //was used for autosave task, but character autosave should be enough
try(Connection con = DatabaseConnection.getConnection()) {
con.setAutoCommit(false);
boolean success = true;
diff --git a/src/client/SkillMacro.java b/src/client/SkillMacro.java
index 7f4e38c319..b129c5feee 100644
--- a/src/client/SkillMacro.java
+++ b/src/client/SkillMacro.java
@@ -49,6 +49,18 @@ public class SkillMacro {
public int getSkill3() {
return skill3;
}
+
+ public void setSkill1(int skill) {
+ skill1 = skill;
+ }
+
+ public void setSkill2(int skill) {
+ skill2 = skill;
+ }
+
+ public void setSkill3(int skill) {
+ skill3 = skill;
+ }
public String getName() {
return name;
diff --git a/src/client/autoban/AutobanFactory.java b/src/client/autoban/AutobanFactory.java
index f5cac45c7e..dbca257ea4 100644
--- a/src/client/autoban/AutobanFactory.java
+++ b/src/client/autoban/AutobanFactory.java
@@ -24,7 +24,6 @@ package client.autoban;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
import net.server.Server;
import tools.FilePrinter;
import tools.MapleLogger;
diff --git a/src/client/autoban/AutobanManager.java b/src/client/autoban/AutobanManager.java
index 227790107e..1e46a0d6d7 100644
--- a/src/client/autoban/AutobanManager.java
+++ b/src/client/autoban/AutobanManager.java
@@ -7,7 +7,6 @@ package client.autoban;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.HashMap;
import java.util.Map;
import net.server.Server;
diff --git a/src/client/command/commands/gm0/BuyBackCommand.java b/src/client/command/commands/gm0/BuyBackCommand.java
index a08b578690..07b3139211 100644
--- a/src/client/command/commands/gm0/BuyBackCommand.java
+++ b/src/client/command/commands/gm0/BuyBackCommand.java
@@ -25,7 +25,7 @@ package client.command.commands.gm0;
import client.MapleClient;
import client.command.Command;
-import client.processor.BuybackProcessor;
+import client.processor.action.BuybackProcessor;
public class BuyBackCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/DropLimitCommand.java b/src/client/command/commands/gm0/DropLimitCommand.java
index c27d8ac26d..eae417cd36 100644
--- a/src/client/command/commands/gm0/DropLimitCommand.java
+++ b/src/client/command/commands/gm0/DropLimitCommand.java
@@ -26,7 +26,6 @@ package client.command.commands.gm0;
import client.MapleClient;
import client.command.Command;
import config.YamlConfig;
-import constants.ServerConstants;
public class DropLimitCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/EnableAuthCommand.java b/src/client/command/commands/gm0/EnableAuthCommand.java
index 55f8c460ba..3a4a21fba7 100644
--- a/src/client/command/commands/gm0/EnableAuthCommand.java
+++ b/src/client/command/commands/gm0/EnableAuthCommand.java
@@ -25,7 +25,7 @@ package client.command.commands.gm0;
import client.command.Command;
import client.MapleClient;
-import net.server.coordinator.MapleLoginBypassCoordinator;
+import net.server.coordinator.login.MapleLoginBypassCoordinator;
public class EnableAuthCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/MapOwnerClaimCommand.java b/src/client/command/commands/gm0/MapOwnerClaimCommand.java
index 352e7029a1..0af26ca355 100644
--- a/src/client/command/commands/gm0/MapOwnerClaimCommand.java
+++ b/src/client/command/commands/gm0/MapOwnerClaimCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import server.maps.MapleMap;
public class MapOwnerClaimCommand extends Command {
diff --git a/src/client/command/commands/gm0/RatesCommand.java b/src/client/command/commands/gm0/RatesCommand.java
index 103ad11365..bd2d428965 100644
--- a/src/client/command/commands/gm0/RatesCommand.java
+++ b/src/client/command/commands/gm0/RatesCommand.java
@@ -27,7 +27,6 @@ import client.MapleCharacter;
import client.command.Command;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
public class RatesCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/ShowRatesCommand.java b/src/client/command/commands/gm0/ShowRatesCommand.java
index dc10109280..c08092472d 100644
--- a/src/client/command/commands/gm0/ShowRatesCommand.java
+++ b/src/client/command/commands/gm0/ShowRatesCommand.java
@@ -27,7 +27,6 @@ import client.MapleCharacter;
import client.command.Command;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
public class ShowRatesCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/StatDexCommand.java b/src/client/command/commands/gm0/StatDexCommand.java
index 8dafe4c6b2..69fdbf842d 100644
--- a/src/client/command/commands/gm0/StatDexCommand.java
+++ b/src/client/command/commands/gm0/StatDexCommand.java
@@ -27,7 +27,6 @@ import client.MapleCharacter;
import client.MapleClient;
import client.command.Command;
import config.YamlConfig;
-import constants.ServerConstants;
public class StatDexCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/StatIntCommand.java b/src/client/command/commands/gm0/StatIntCommand.java
index 1c9e0bfeae..c539e56180 100644
--- a/src/client/command/commands/gm0/StatIntCommand.java
+++ b/src/client/command/commands/gm0/StatIntCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class StatIntCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/StatLukCommand.java b/src/client/command/commands/gm0/StatLukCommand.java
index 8d1719e9ad..cc5c47f481 100644
--- a/src/client/command/commands/gm0/StatLukCommand.java
+++ b/src/client/command/commands/gm0/StatLukCommand.java
@@ -27,7 +27,6 @@ import client.MapleCharacter;
import client.MapleClient;
import client.command.Command;
import config.YamlConfig;
-import constants.ServerConstants;
public class StatLukCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/StatStrCommand.java b/src/client/command/commands/gm0/StatStrCommand.java
index 3ab139946b..c706e94b4f 100644
--- a/src/client/command/commands/gm0/StatStrCommand.java
+++ b/src/client/command/commands/gm0/StatStrCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class StatStrCommand extends Command {
{
diff --git a/src/client/command/commands/gm0/TimeCommand.java b/src/client/command/commands/gm0/TimeCommand.java
index 9e4941dcf6..27115ed60c 100644
--- a/src/client/command/commands/gm0/TimeCommand.java
+++ b/src/client/command/commands/gm0/TimeCommand.java
@@ -25,7 +25,7 @@ package client.command.commands.gm0;
import client.MapleClient;
import client.command.Command;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
diff --git a/src/client/command/commands/gm1/GotoCommand.java b/src/client/command/commands/gm1/GotoCommand.java
index a5f1163b10..3dbf0fc991 100644
--- a/src/client/command/commands/gm1/GotoCommand.java
+++ b/src/client/command/commands/gm1/GotoCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm1;
import client.MapleCharacter;
import client.command.Command;
import client.MapleClient;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.util.ArrayList;
import java.util.Collections;
import net.server.Server;
diff --git a/src/client/command/commands/gm2/ApCommand.java b/src/client/command/commands/gm2/ApCommand.java
index e78512317f..fc2c58140d 100644
--- a/src/client/command/commands/gm2/ApCommand.java
+++ b/src/client/command/commands/gm2/ApCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class ApCommand extends Command {
{
diff --git a/src/client/command/commands/gm2/ItemCommand.java b/src/client/command/commands/gm2/ItemCommand.java
index 47463cb3c5..6276217eed 100644
--- a/src/client/command/commands/gm2/ItemCommand.java
+++ b/src/client/command/commands/gm2/ItemCommand.java
@@ -29,8 +29,7 @@ import client.MapleCharacter;
import client.inventory.MaplePet;
import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class ItemCommand extends Command {
diff --git a/src/client/command/commands/gm2/ItemDropCommand.java b/src/client/command/commands/gm2/ItemDropCommand.java
index f94d79f27b..cf1d253f97 100644
--- a/src/client/command/commands/gm2/ItemDropCommand.java
+++ b/src/client/command/commands/gm2/ItemDropCommand.java
@@ -30,8 +30,7 @@ import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class ItemDropCommand extends Command {
diff --git a/src/client/command/commands/gm2/LevelCommand.java b/src/client/command/commands/gm2/LevelCommand.java
index 4b51b80404..e1b9a8eeef 100644
--- a/src/client/command/commands/gm2/LevelCommand.java
+++ b/src/client/command/commands/gm2/LevelCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class LevelCommand extends Command {
{
diff --git a/src/client/command/commands/gm2/MaxStatCommand.java b/src/client/command/commands/gm2/MaxStatCommand.java
index 0136d4687a..6344f867d1 100644
--- a/src/client/command/commands/gm2/MaxStatCommand.java
+++ b/src/client/command/commands/gm2/MaxStatCommand.java
@@ -28,7 +28,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class MaxStatCommand extends Command {
{
diff --git a/src/client/command/commands/gm2/RechargeCommand.java b/src/client/command/commands/gm2/RechargeCommand.java
index 17e2245a94..ff496173fa 100644
--- a/src/client/command/commands/gm2/RechargeCommand.java
+++ b/src/client/command/commands/gm2/RechargeCommand.java
@@ -28,7 +28,7 @@ import client.command.Command;
import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class RechargeCommand extends Command {
diff --git a/src/client/command/commands/gm2/SpCommand.java b/src/client/command/commands/gm2/SpCommand.java
index eb890b8a29..1abe7fcaad 100644
--- a/src/client/command/commands/gm2/SpCommand.java
+++ b/src/client/command/commands/gm2/SpCommand.java
@@ -27,7 +27,6 @@ import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
public class SpCommand extends Command {
{
diff --git a/src/client/command/commands/gm3/FaceCommand.java b/src/client/command/commands/gm3/FaceCommand.java
index 64c52c03be..38a06ec0a8 100644
--- a/src/client/command/commands/gm3/FaceCommand.java
+++ b/src/client/command/commands/gm3/FaceCommand.java
@@ -27,7 +27,7 @@ import client.MapleStat;
import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class FaceCommand extends Command {
diff --git a/src/client/command/commands/gm3/HairCommand.java b/src/client/command/commands/gm3/HairCommand.java
index 3bc17f3566..147073d905 100644
--- a/src/client/command/commands/gm3/HairCommand.java
+++ b/src/client/command/commands/gm3/HairCommand.java
@@ -27,7 +27,7 @@ import client.MapleStat;
import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class HairCommand extends Command {
diff --git a/src/client/command/commands/gm3/MusicCommand.java b/src/client/command/commands/gm3/MusicCommand.java
index 988a3574e9..bff9061117 100644
--- a/src/client/command/commands/gm3/MusicCommand.java
+++ b/src/client/command/commands/gm3/MusicCommand.java
@@ -26,7 +26,7 @@ package client.command.commands.gm3;
import client.command.Command;
import client.MapleClient;
import client.MapleCharacter;
-import constants.GameConstants;
+import constants.game.GameConstants;
import tools.MaplePacketCreator;
public class MusicCommand extends Command {
diff --git a/src/client/command/commands/gm4/ProItemCommand.java b/src/client/command/commands/gm4/ProItemCommand.java
index 551a98b10c..48f7051fb7 100644
--- a/src/client/command/commands/gm4/ProItemCommand.java
+++ b/src/client/command/commands/gm4/ProItemCommand.java
@@ -30,7 +30,7 @@ import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
public class ProItemCommand extends Command {
diff --git a/src/client/command/commands/gm4/SetEqStatCommand.java b/src/client/command/commands/gm4/SetEqStatCommand.java
index e1f623bd14..93dc7ab930 100644
--- a/src/client/command/commands/gm4/SetEqStatCommand.java
+++ b/src/client/command/commands/gm4/SetEqStatCommand.java
@@ -29,7 +29,7 @@ import client.MapleCharacter;
import client.inventory.Equip;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
public class SetEqStatCommand extends Command {
{
diff --git a/src/client/command/commands/gm5/IpListCommand.java b/src/client/command/commands/gm5/IpListCommand.java
index 8442aac894..80675afe6c 100644
--- a/src/client/command/commands/gm5/IpListCommand.java
+++ b/src/client/command/commands/gm5/IpListCommand.java
@@ -23,7 +23,7 @@ import java.util.Collection;
import client.MapleClient;
import client.MapleCharacter;
import client.command.Command;
-import constants.GameConstants;
+import constants.game.GameConstants;
import net.server.Server;
import net.server.world.World;
diff --git a/src/client/command/commands/gm5/SetCommand.java b/src/client/command/commands/gm5/SetCommand.java
index 0de439bcee..53ee949184 100644
--- a/src/client/command/commands/gm5/SetCommand.java
+++ b/src/client/command/commands/gm5/SetCommand.java
@@ -26,7 +26,6 @@ package client.command.commands.gm5;
import client.command.Command;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
public class SetCommand extends Command {
{
diff --git a/src/client/command/commands/gm5/ShowMoveLifeCommand.java b/src/client/command/commands/gm5/ShowMoveLifeCommand.java
index df014eb882..6eca8abf06 100644
--- a/src/client/command/commands/gm5/ShowMoveLifeCommand.java
+++ b/src/client/command/commands/gm5/ShowMoveLifeCommand.java
@@ -26,7 +26,6 @@ package client.command.commands.gm5;
import client.command.Command;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
public class ShowMoveLifeCommand extends Command {
{
diff --git a/src/client/command/commands/gm5/ShowPacketsCommand.java b/src/client/command/commands/gm5/ShowPacketsCommand.java
index 2d6ebce1dc..55d2d87fdd 100644
--- a/src/client/command/commands/gm5/ShowPacketsCommand.java
+++ b/src/client/command/commands/gm5/ShowPacketsCommand.java
@@ -26,7 +26,6 @@ package client.command.commands.gm5;
import client.command.Command;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
public class ShowPacketsCommand extends Command {
{
diff --git a/src/client/command/commands/gm5/ShowSessionsCommand.java b/src/client/command/commands/gm5/ShowSessionsCommand.java
index f48d0cfd84..116dcc1a2a 100644
--- a/src/client/command/commands/gm5/ShowSessionsCommand.java
+++ b/src/client/command/commands/gm5/ShowSessionsCommand.java
@@ -21,7 +21,7 @@ package client.command.commands.gm5;
import client.MapleClient;
import client.command.Command;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
/**
*
diff --git a/src/client/command/commands/gm6/SupplyRateCouponCommand.java b/src/client/command/commands/gm6/SupplyRateCouponCommand.java
index 10ac8be42b..394ea5b467 100644
--- a/src/client/command/commands/gm6/SupplyRateCouponCommand.java
+++ b/src/client/command/commands/gm6/SupplyRateCouponCommand.java
@@ -23,7 +23,6 @@ import client.MapleCharacter;
import client.MapleClient;
import client.command.Command;
import config.YamlConfig;
-import constants.ServerConstants;
public class SupplyRateCouponCommand extends Command {
{
diff --git a/src/client/creator/CharacterFactory.java b/src/client/creator/CharacterFactory.java
index 54721932fb..51ba8e912b 100644
--- a/src/client/creator/CharacterFactory.java
+++ b/src/client/creator/CharacterFactory.java
@@ -26,7 +26,6 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ServerConstants;
import net.server.Server;
import server.MapleItemInformationProvider;
import tools.FilePrinter;
diff --git a/src/client/creator/CharacterFactoryRecipe.java b/src/client/creator/CharacterFactoryRecipe.java
index 8d121558f8..aaf3c6cfa8 100644
--- a/src/client/creator/CharacterFactoryRecipe.java
+++ b/src/client/creator/CharacterFactoryRecipe.java
@@ -24,7 +24,6 @@ import client.Skill;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.LinkedHashMap;
import java.util.LinkedList;
diff --git a/src/client/inventory/Equip.java b/src/client/inventory/Equip.java
index f78755ff59..39a5e91e4a 100644
--- a/src/client/inventory/Equip.java
+++ b/src/client/inventory/Equip.java
@@ -23,9 +23,8 @@ package client.inventory;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
-import constants.ExpTable;
-import constants.ItemConstants;
+import constants.game.ExpTable;
+import constants.inventory.ItemConstants;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/client/inventory/Item.java b/src/client/inventory/Item.java
index 49417464c9..0f33769d76 100644
--- a/src/client/inventory/Item.java
+++ b/src/client/inventory/Item.java
@@ -21,7 +21,7 @@ along with this program. If not, see .
*/
package client.inventory;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/client/inventory/MapleInventory.java b/src/client/inventory/MapleInventory.java
index eb2db975bd..a5d6529aed 100644
--- a/src/client/inventory/MapleInventory.java
+++ b/src/client/inventory/MapleInventory.java
@@ -37,7 +37,7 @@ import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import tools.Pair;
import client.MapleCharacter;
import client.MapleClient;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import server.MapleItemInformationProvider;
import client.inventory.manipulator.MapleInventoryManipulator;
import tools.FilePrinter;
diff --git a/src/client/inventory/MaplePet.java b/src/client/inventory/MaplePet.java
index acaa12c9bd..a3cd38cb42 100644
--- a/src/client/inventory/MaplePet.java
+++ b/src/client/inventory/MaplePet.java
@@ -21,7 +21,7 @@
*/
package client.inventory;
-import constants.ExpTable;
+import constants.game.ExpTable;
import java.awt.Point;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/src/client/inventory/manipulator/MapleInventoryManipulator.java b/src/client/inventory/manipulator/MapleInventoryManipulator.java
index 036bb74f8b..ed3338d7da 100644
--- a/src/client/inventory/manipulator/MapleInventoryManipulator.java
+++ b/src/client/inventory/manipulator/MapleInventoryManipulator.java
@@ -32,8 +32,7 @@ import client.inventory.MaplePet;
import client.inventory.ModifyInventory;
import client.newyear.NewYearCardRecord;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import java.awt.Point;
import java.util.ArrayList;
diff --git a/src/client/inventory/manipulator/MapleKarmaManipulator.java b/src/client/inventory/manipulator/MapleKarmaManipulator.java
index faf3d5fc89..66221a8df5 100644
--- a/src/client/inventory/manipulator/MapleKarmaManipulator.java
+++ b/src/client/inventory/manipulator/MapleKarmaManipulator.java
@@ -19,7 +19,7 @@
*/
package client.inventory.manipulator;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import client.inventory.Item;
/**
diff --git a/src/client/processor/BuybackProcessor.java b/src/client/processor/action/BuybackProcessor.java
similarity index 95%
rename from src/client/processor/BuybackProcessor.java
rename to src/client/processor/action/BuybackProcessor.java
index d6e7a3ac15..1920602e35 100644
--- a/src/client/processor/BuybackProcessor.java
+++ b/src/client/processor/action/BuybackProcessor.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.action; // thanks Alex for pointing out some package structures containing broad modules
import client.MapleClient;
import client.MapleCharacter;
diff --git a/src/client/processor/MakerProcessor.java b/src/client/processor/action/MakerProcessor.java
similarity index 99%
rename from src/client/processor/MakerProcessor.java
rename to src/client/processor/action/MakerProcessor.java
index fc48e30615..16f87cdfde 100644
--- a/src/client/processor/MakerProcessor.java
+++ b/src/client/processor/action/MakerProcessor.java
@@ -17,18 +17,17 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.action;
import client.MapleClient;
import client.MapleCharacter;
import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
import client.inventory.manipulator.MapleInventoryManipulator;
-import constants.GameConstants;
+import config.YamlConfig;
+import constants.inventory.ItemConstants;
+import constants.game.GameConstants;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/client/processor/PetAutopotProcessor.java b/src/client/processor/action/PetAutopotProcessor.java
similarity index 99%
rename from src/client/processor/PetAutopotProcessor.java
rename to src/client/processor/action/PetAutopotProcessor.java
index bca2d0e3a3..367b16e57d 100644
--- a/src/client/processor/PetAutopotProcessor.java
+++ b/src/client/processor/action/PetAutopotProcessor.java
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.action;
import client.MapleCharacter;
import client.MapleClient;
@@ -28,7 +28,6 @@ import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.List;
import server.MapleItemInformationProvider;
import server.MapleStatEffect;
diff --git a/src/client/processor/SpawnPetProcessor.java b/src/client/processor/action/SpawnPetProcessor.java
similarity index 99%
rename from src/client/processor/SpawnPetProcessor.java
rename to src/client/processor/action/SpawnPetProcessor.java
index f1c96f9d69..0c95d973ff 100644
--- a/src/client/processor/SpawnPetProcessor.java
+++ b/src/client/processor/action/SpawnPetProcessor.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.action;
import client.MapleCharacter;
import java.awt.Point;
diff --git a/src/client/processor/DueyProcessor.java b/src/client/processor/npc/DueyProcessor.java
similarity index 99%
rename from src/client/processor/DueyProcessor.java
rename to src/client/processor/npc/DueyProcessor.java
index 9630ddba57..a785335c19 100644
--- a/src/client/processor/DueyProcessor.java
+++ b/src/client/processor/npc/DueyProcessor.java
@@ -21,7 +21,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.npc;
import client.MapleCharacter;
import client.MapleClient;
@@ -33,8 +33,7 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/src/client/processor/FredrickProcessor.java b/src/client/processor/npc/FredrickProcessor.java
similarity index 99%
rename from src/client/processor/FredrickProcessor.java
rename to src/client/processor/npc/FredrickProcessor.java
index 9b2a14ce05..d92f2def05 100644
--- a/src/client/processor/FredrickProcessor.java
+++ b/src/client/processor/npc/FredrickProcessor.java
@@ -21,7 +21,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.npc;
import client.MapleCharacter;
import client.MapleClient;
diff --git a/src/client/processor/StorageProcessor.java b/src/client/processor/npc/StorageProcessor.java
similarity index 99%
rename from src/client/processor/StorageProcessor.java
rename to src/client/processor/npc/StorageProcessor.java
index f900b676a5..8251c9791c 100644
--- a/src/client/processor/StorageProcessor.java
+++ b/src/client/processor/npc/StorageProcessor.java
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.npc;
import client.MapleClient;
import client.MapleCharacter;
@@ -29,8 +29,7 @@ import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import client.inventory.manipulator.MapleInventoryManipulator;
import server.MapleItemInformationProvider;
import server.MapleStorage;
diff --git a/src/client/processor/AssignAPProcessor.java b/src/client/processor/stat/AssignAPProcessor.java
similarity index 99%
rename from src/client/processor/AssignAPProcessor.java
rename to src/client/processor/stat/AssignAPProcessor.java
index 9ba1c9fed1..4edb87bbb5 100644
--- a/src/client/processor/AssignAPProcessor.java
+++ b/src/client/processor/stat/AssignAPProcessor.java
@@ -21,7 +21,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.stat;
import client.MapleCharacter;
import client.MapleClient;
@@ -34,7 +34,6 @@ import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ServerConstants;
import constants.skills.BlazeWizard;
import constants.skills.Brawler;
import constants.skills.DawnWarrior;
diff --git a/src/client/processor/AssignSPProcessor.java b/src/client/processor/stat/AssignSPProcessor.java
similarity index 98%
rename from src/client/processor/AssignSPProcessor.java
rename to src/client/processor/stat/AssignSPProcessor.java
index 835c8369f3..d27522c05c 100644
--- a/src/client/processor/AssignSPProcessor.java
+++ b/src/client/processor/stat/AssignSPProcessor.java
@@ -21,14 +21,14 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package client.processor;
+package client.processor.stat;
import client.MapleCharacter;
import client.MapleClient;
import client.Skill;
import client.SkillFactory;
import client.autoban.AutobanFactory;
-import constants.GameConstants;
+import constants.game.GameConstants;
import constants.skills.Aran;
import server.ThreadManager;
import tools.FilePrinter;
diff --git a/src/config/ServerConfig.java b/src/config/ServerConfig.java
index d19727735e..18343598d6 100644
--- a/src/config/ServerConfig.java
+++ b/src/config/ServerConfig.java
@@ -11,6 +11,7 @@ public class ServerConfig {
public boolean DB_CONNECTION_POOL;
//Login Configuration
+ public int WORLDS;
public int WLDLIST_SIZE;
public int CHANNEL_SIZE;
public int CHANNEL_LOAD;
diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java
deleted file mode 100644
index 8e39808de2..0000000000
--- a/src/constants/ServerConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package constants;
-
-public class ServerConstants {
- //Server Version
- public static short VERSION = 83;
-
- //Java Configuration
- 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
-
- // https://github.com/openstreetmap/josm/blob/a3a6e8a6b657cf4c5b4c64ea14d6e87be6280d65/src/org/openstreetmap/josm/tools/Utils.java#L1566-L1585
- /**
- * Returns the Java version as an int value.
- * @return the Java version as an int value (8, 9, etc.)
- * @since 12130
- */
- public static int getJavaVersion() {
- String version = System.getProperty("java.version");
- if (version.startsWith("1.")) {
- version = version.substring(2);
- }
- // Allow these formats:
- // 1.8.0_72-ea
- // 9-ea
- // 9
- // 9.0.1
- int dotPos = version.indexOf('.');
- int dashPos = version.indexOf('-');
- return Integer.parseInt(version.substring(0,
- dotPos > -1 ? dotPos : dashPos > -1 ? dashPos : 1));
- }
-}
diff --git a/src/constants/ExpTable.java b/src/constants/game/ExpTable.java
similarity index 99%
rename from src/constants/ExpTable.java
rename to src/constants/game/ExpTable.java
index a7b4d2f22d..1b963bf68c 100644
--- a/src/constants/ExpTable.java
+++ b/src/constants/game/ExpTable.java
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package constants;
+package constants.game;
public final class ExpTable {
private static final int[] exp = {15, 15, 34, 57, 92, 135, 372, 560, 840, 1144, 1242, 1573, 2144, 2800, 3640, 4700, 5893, 7360, 9144, 11120, 13477, 16268, 19320, 22880, 27008, 31477, 36600, 42444, 48720, 55813, 63800, 86784, 98208, 110932, 124432, 139372, 155865, 173280, 192400, 213345, 235372, 259392, 285532, 312928, 342624, 374760, 408336, 445544, 483532, 524160, 567772, 598886, 631704, 666321, 702836, 741351, 781976, 824828, 870028, 917625, 967995, 1021041, 1076994, 1136013, 1198266, 1263930, 1333194, 1406252, 1483314, 1564600, 1650340, 1740778, 1836173, 1936794, 2042930, 2154882, 2272970, 2397528, 2528912, 2667496, 2813674, 2967863, 3130502, 3302053, 3483005, 3673873, 3875201, 4087562, 4311559, 4547832, 4797053, 5059931, 5337215, 5629694, 5938202, 6263614, 6606860, 6968915, 7350811, 7753635, 8178534, 8626718, 9099462, 9598112, 10124088, 10678888, 11264090, 11881362, 12532461, 13219239, 13943653, 14707765, 15513750, 16363902, 17260644, 18206527, 19204245, 20256637, 21366700, 22537594, 23772654, 25075395, 26449526, 27898960, 29427822, 31040466, 32741483, 34535716, 36428273, 38424542, 40530206, 42751262, 45094030, 47565183, 50171755, 52921167, 55821246, 58880250, 62106888, 65510344, 69100311, 72887008, 76881216, 81094306, 85594273, 90225770, 95170142, 100385466, 105886589, 111689174, 117809740, 124265714, 131075474, 138258410, 145834970, 153826726, 162256430, 171148082, 180526997, 190419876, 200854885, 211861732, 223471711, 223471711, 248635353, 262260570, 276632449, 291791906, 307782102, 324648562, 342439302, 361204976, 380999008, 401877754, 423900654, 447130410, 471633156, 497478653, 524740482, 553496261, 583827855, 615821622, 649568646, 685165008, 722712050, 762316670, 804091623, 848155844, 894634784, 943660770, 995373379, 1049919840, 1107455447, 1168144006, 1232158297, 1299680571, 1370903066, 1446028554, 1525246918, 1608855764, 1697021059};
diff --git a/src/constants/GameConstants.java b/src/constants/game/GameConstants.java
similarity index 99%
rename from src/constants/GameConstants.java
rename to src/constants/game/GameConstants.java
index e7b4017f96..a2af847905 100644
--- a/src/constants/GameConstants.java
+++ b/src/constants/game/GameConstants.java
@@ -1,4 +1,4 @@
-package constants;
+package constants.game;
import client.MapleDisease;
import java.util.ArrayList;
diff --git a/src/constants/ScriptableNPCConstants.java b/src/constants/game/ScriptableNPCConstants.java
similarity index 95%
rename from src/constants/ScriptableNPCConstants.java
rename to src/constants/game/ScriptableNPCConstants.java
index eac4db3caf..c2d47d84ba 100644
--- a/src/constants/ScriptableNPCConstants.java
+++ b/src/constants/game/ScriptableNPCConstants.java
@@ -1,4 +1,4 @@
-package constants;
+package constants.game;
/**
* @brief ScriptableNPCConstants
diff --git a/src/constants/EquipSlot.java b/src/constants/inventory/EquipSlot.java
similarity index 98%
rename from src/constants/EquipSlot.java
rename to src/constants/inventory/EquipSlot.java
index e1fb37c835..1bd6dd0a46 100644
--- a/src/constants/EquipSlot.java
+++ b/src/constants/inventory/EquipSlot.java
@@ -1,4 +1,4 @@
-package constants;
+package constants.inventory;
/**
*
diff --git a/src/constants/EquipType.java b/src/constants/inventory/EquipType.java
similarity index 98%
rename from src/constants/EquipType.java
rename to src/constants/inventory/EquipType.java
index 0ba3600744..37fe0363dd 100644
--- a/src/constants/EquipType.java
+++ b/src/constants/inventory/EquipType.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package constants;
+package constants.inventory;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/constants/ItemConstants.java b/src/constants/inventory/ItemConstants.java
similarity index 99%
rename from src/constants/ItemConstants.java
rename to src/constants/inventory/ItemConstants.java
index 1ae3d13507..6d2934b1b6 100644
--- a/src/constants/ItemConstants.java
+++ b/src/constants/inventory/ItemConstants.java
@@ -19,8 +19,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package constants;
+package constants.inventory;
+import constants.net.ServerConstants;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
diff --git a/src/constants/OpcodeConstants.java b/src/constants/net/OpcodeConstants.java
similarity index 98%
rename from src/constants/OpcodeConstants.java
rename to src/constants/net/OpcodeConstants.java
index 970be0c247..a1ad036189 100644
--- a/src/constants/OpcodeConstants.java
+++ b/src/constants/net/OpcodeConstants.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package constants;
+package constants.net;
import java.util.Map;
import java.util.HashMap;
diff --git a/src/constants/net/ServerConstants.java b/src/constants/net/ServerConstants.java
new file mode 100644
index 0000000000..f151bc3f31
--- /dev/null
+++ b/src/constants/net/ServerConstants.java
@@ -0,0 +1,332 @@
+package constants.net;
+
+public class ServerConstants {
+ //Server Version
+ public static short VERSION = 83;
+
+ //Java Configuration
+ 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).
+
+ //Login Configuration
+ public static final int WLDLIST_SIZE = 21; //Max possible worlds on the server.
+ public static final int CHANNEL_SIZE = 20; //Max possible channels per world (which is 20, based on the channel list on login phase).
+ public static final int CHANNEL_LOAD = 100; //Max players per channel (limit actually used to calculate the World server capacity).
+ public static final int CHANNEL_LOCKS = 20; //Total number of structure management locks each channel has.
+
+ public static final long RESPAWN_INTERVAL = 10 * 1000; //10 seconds, 10000.
+ public static final long PURGING_INTERVAL = 5 * 60 * 1000;
+ public static final long RANKING_INTERVAL = 60 * 60 * 1000; //60 minutes, 3600000.
+ public static final long COUPON_INTERVAL = 60 * 60 * 1000; //60 minutes, 3600000.
+ public static final long UPDATE_INTERVAL = 777; //Dictates the frequency on which the "centralized server time" is updated.
+
+ public static final boolean ENABLE_PIC = false; //Pick true/false to enable or disable Pic. Delete character requires PIC available.
+ public static final boolean ENABLE_PIN = false; //Pick true/false to enable or disable Pin.
+
+ public static final int BYPASS_PIC_EXPIRATION = 20; //Enables PIC bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable.
+ public static final int BYPASS_PIN_EXPIRATION = 15; //Enables PIN bypass, which will remain active for that account by that client machine for N minutes. Set 0 to disable.
+
+ public static final boolean AUTOMATIC_REGISTER = true; //Automatically register players when they login with a nonexistent username.
+ public static final boolean BCRYPT_MIGRATION = true; //Performs a migration from old SHA-1 and SHA-512 password to bcrypt.
+ public static final boolean COLLECTIVE_CHARSLOT = false; //Available character slots are contabilized globally rather than per world server.
+ public static final boolean DETERRED_MULTICLIENT = false; //Enables detection of multi-client and suspicious remote IP on the login system.
+
+ //Besides blocking logging in with several client sessions on the same machine, this also blocks suspicious login attempts for players that tries to login on an account using several diferent remote addresses.
+
+ //Multiclient Coordinator Configuration
+ public static final int MAX_ALLOWED_ACCOUNT_HWID = 4; //Allows up to N concurrent HWID's for an account. HWID's remains linked to an account longer the more times it's used to login.
+ public static final int MAX_ACCOUNT_LOGIN_ATTEMPT = 15; //After N tries on an account, login on that account gets disabled for a short period.
+ public static final int LOGIN_ATTEMPT_DURATION = 120; //Period in seconds the login attempt remains registered on the system.
+
+ //Ip Configuration
+ public static String HOST;
+ public static boolean LOCALSERVER;
+
+ //Other Configuration
+ public static boolean SHUTDOWNHOOK;
+
+ //Server Flags
+ public static final boolean USE_CUSTOM_KEYSET = true; //Enables auto-setup of the HeavenMS's custom keybindings when creating characters.
+ public static final boolean USE_DEBUG = false; //Will enable some text prints on the client, oriented for debugging purposes.
+ public static final boolean USE_DEBUG_SHOW_INFO_EQPEXP = false; //Prints on the cmd all equip exp gain info.
+ public static boolean USE_DEBUG_SHOW_RCVD_PACKET = false; //Prints on the cmd all received packet ids.
+ public static boolean USE_DEBUG_SHOW_RCVD_MVLIFE = false; //Prints on the cmd all received move life content.
+ public static final boolean USE_DEBUG_SHOW_PACKET = false;
+ public static boolean USE_SUPPLY_RATE_COUPONS = true; //Allows rate coupons to be sold through the Cash Shop.
+ public static final boolean USE_IP_VALIDATION = true; //Enables IP checking when logging in.
+
+ public static final boolean USE_MAXRANGE = true; //Will send and receive packets from all events on a map, rather than those of only view range.
+ public static final boolean USE_MAXRANGE_ECHO_OF_HERO = true;
+ public static final boolean USE_MTS = false;
+ public static final boolean USE_CPQ = true; //Renders the CPQ available or not.
+ public static final boolean USE_AUTOHIDE_GM = false; //When enabled, GMs are automatically hidden when joining. Thanks to Steven Deblois (steven1152).
+ public static final boolean USE_BUYBACK_SYSTEM = true; //Enables the HeavenMS-builtin buyback system, to be used by dead players when clicking the MTS button.
+ public static final boolean USE_FIXED_RATIO_HPMP_UPDATE = true; //Enables the HeavenMS-builtin HPMP update based on the current pool to max pool ratio.
+ public static final boolean USE_FAMILY_SYSTEM = true;
+ public static final boolean USE_DUEY = true;
+ public static final boolean USE_RANDOMIZE_HPMP_GAIN = true; //Enables randomizing on MaxHP/MaxMP gains and INT accounting for the MaxMP gain on level up.
+ public static final boolean USE_STORAGE_ITEM_SORT = true; //Enables storage "Arrange Items" feature.
+ public static final boolean USE_ITEM_SORT = true; //Enables inventory "Item Sort/Merge" feature.
+ public static final boolean USE_ITEM_SORT_BY_NAME = false; //Item sorting based on name rather than id.
+ public static final boolean USE_PARTY_FOR_STARTERS = true; //Players level 10 or below can create/invite other players on the given level range.
+ public static final boolean USE_AUTOASSIGN_STARTERS_AP = false; //Beginners level 10 or below have their AP autoassigned (they can't choose to levelup a stat). Set true ONLY if the localhost doesn't support AP assigning for beginners level 10 or below.
+ public static final boolean USE_AUTOASSIGN_SECONDARY_CAP = true;//Prevents AP autoassign from spending on secondary stats after the player class' cap (defined on the autoassign handler) has been reached.
+ public static final boolean USE_STARTING_AP_4 = true; //Use early-GMS 4/4/4/4 starting stats. To overcome AP shortage, this gives 4AP/5AP at 1st/2nd job advancements.
+ public static final boolean USE_AUTOBAN = false; //Commands the server to detect infractors automatically.
+ public static final boolean USE_AUTOBAN_LOG = true; //Log autoban related messages. Still logs even with USE_AUTOBAN disabled.
+ public static final boolean USE_AUTOSAVE = true; //Enables server autosaving feature (saves characters to DB each 1 hour).
+ public static final boolean USE_SERVER_AUTOASSIGNER = true; //HeavenMS-builtin autoassigner, uses algorithm based on distributing AP accordingly with required secondary stat on equipments.
+ public static final boolean USE_REFRESH_RANK_MOVE = true;
+ public static final boolean USE_ENFORCE_ADMIN_ACCOUNT = false; //Forces accounts having GM characters to be treated as a "GM account" by the client (localhost). Some of the GM account perks is the ability to FLY, but unable to TRADE.
+ public static final boolean USE_ENFORCE_NOVICE_EXPRATE = false; //Hardsets experience rate 1x for beginners level 10 or under. Ideal for roaming on novice areas without caring too much about losing some stats.
+ public static final boolean USE_ENFORCE_HPMP_SWAP = false; //Forces players to reuse stats (via AP Resetting) located on HP/MP pool only inside the HP/MP stats.
+ public static final boolean USE_ENFORCE_MOB_LEVEL_RANGE = true; //Players N levels below the killed mob will gain no experience from defeating it.
+ public static final boolean USE_ENFORCE_JOB_LEVEL_RANGE = false;//Caps the player level on the minimum required to advance their current jobs.
+ public static final boolean USE_ENFORCE_JOB_SP_RANGE = false; //Caps the player SP level on the total obtainable by their current jobs. After changing jobs, missing SP will be retrieved.
+ public static final boolean USE_ENFORCE_ITEM_SUGGESTION = false;//Forces the Owl of Minerva and the Cash Shop to always display the defined item array instead of those featured by the players.
+ public static final boolean USE_ENFORCE_UNMERCHABLE_CASH = true;//Forces players to not sell CASH items via merchants, drops of it disappears.
+ public static final boolean USE_ENFORCE_UNMERCHABLE_PET = true; //Forces players to not sell pets via merchants, drops of it disappears. (since non-named pets gets dirty name and other possible DB-related issues)
+ public static final boolean USE_ENFORCE_MERCHANT_SAVE = true; //Forces automatic DB save on merchant owners, at every item movement on shop.
+ public static final boolean USE_ENFORCE_MDOOR_POSITION = false; //Forces mystic door to be spawned near spawnpoints.
+ public static final boolean USE_SPAWN_CLEAN_MDOOR = false; //Makes mystic doors to be spawned without deploy animation. This clears disconnecting issues that may happen when trying to cancel doors a couple seconds after deployment.
+ public static final boolean USE_SPAWN_LOOT_ON_ANIMATION = false;//Makes loot appear some time after the mob has been killed (following the mob death animation, instead of instantly).
+ public static final boolean USE_SPAWN_RELEVANT_LOOT = true; //Forces to only spawn loots that are collectable by the player or any of their party members.
+ public static final boolean USE_ERASE_PERMIT_ON_OPENSHOP = true;//Forces "shop permit" item to be consumed when player deploy his/her player shop.
+ public static final boolean USE_ERASE_UNTRADEABLE_DROP = true; //Forces flagged untradeable items to disappear when dropped.
+ public static final boolean USE_ERASE_PET_ON_EXPIRATION = false;//Forces pets to be removed from inventory when expire time comes, rather than converting it to a doll.
+ public static final boolean USE_BUFF_MOST_SIGNIFICANT = true; //When applying buffs, the player will stick with the highest stat boost among the listed, rather than overwriting stats.
+ public static final boolean USE_BUFF_EVERLASTING = false; //Every applied buff on players holds expiration time so high it'd be considered permanent. Suggestion thanks to Vcoc.
+ public static final boolean USE_MULTIPLE_SAME_EQUIP_DROP = true;//Enables multiple drops by mobs of the same equipment, number of possible drops based on the quantities provided at the drop data.
+ public static final boolean USE_BANISHABLE_TOWN_SCROLL = true; //Enables town scrolls to act as if it's a "player banish", rendering the antibanish scroll effect available.
+ public static final boolean USE_ENABLE_FULL_RESPAWN = true; //At respawn task, always respawn missing mobs when they're available. Spawn count doesn't depend on how many players are currently there.
+ public static final boolean USE_ENABLE_CHAT_LOG = false; //Write in-game chat to log
+ public static final boolean USE_REBIRTH_SYSTEM = false; //Flag to enable/disable rebirth system
+ public static final boolean USE_MAP_OWNERSHIP_SYSTEM = true; //Flag to enable/disable map ownership system
+ public static final boolean USE_FISHING_SYSTEM = true; //Flag to enable/disable custom fishing system
+ public static final boolean USE_NPCS_SCRIPTABLE = true; //Flag to enable/disable serverside predefined script NPCs.
+
+ //Events/PQs Configuration
+ public static final boolean USE_OLD_GMS_STYLED_PQ_NPCS = true; //Enables PQ NPCs with similar behaviour to old GMS style, that skips info about the PQs and immediately tries to register the party in.
+ public static final boolean USE_ENABLE_SOLO_EXPEDITIONS = true; //Enables start expeditions with any number of players. This will also bypass all the Zakum prequest.
+ public static final boolean USE_ENABLE_DAILY_EXPEDITIONS = false;//Enables daily entry limitations in expeditions.
+ public static final boolean USE_ENABLE_RECALL_EVENT = false; //Enables a disconnected player to reaccess the last event instance they were in before logging out. Recall only works if the event isn't cleared or disposed yet. Suggestion thanks to Alisson (Goukken).
+
+ //Announcement Configuration
+ public static final boolean USE_ANNOUNCE_SHOPITEMSOLD = false; //Automatic message sent to owner when an item from the Player Shop or Hired Merchant is sold.
+ public static final boolean USE_ANNOUNCE_CHANGEJOB = false; //Automatic message sent to acquantainces when changing jobs.
+
+ //Cash Shop Configuration
+ public static final boolean USE_JOINT_CASHSHOP_INVENTORY = true;//Enables usage of a same cash shop inventory for explorers, cygnus and legends. Items from exclusive cash shop inventories won't show up on the shared inventory, though.
+ public static final boolean USE_CLEAR_OUTDATED_COUPONS = true; //Enables deletion of older code coupon registry from the DB, freeing so-long irrelevant data.
+ public static final boolean ALLOW_CASHSHOP_NAME_CHANGE = true; //Allows players to buy name changes in the cash shop.
+ public static final boolean ALLOW_CASHSHOP_WORLD_TRANSFER =true;//Allows players to buy world transfers in the cash shop.
+
+ //Maker Configuration
+ public static final boolean USE_MAKER_PERMISSIVE_ATKUP = true; //Allows players to use attack-based strengthening gems on non-weapon items.
+ public static final boolean USE_MAKER_FEE_HEURISTICS = true; //Apply compiled values for stimulants and reagents into the Maker fee calculations (max error revolves around 50k mesos). Set false to use basic constant values instead (results are never higher than requested by the client-side).
+
+ //Custom Configuration
+ public static final boolean USE_ENABLE_CUSTOM_NPC_SCRIPT = true;//Enables usage of custom HeavenMS NPC scripts (Agent E, Coco, etc). Will not disable Abdula (it's actually useful for the gameplay) or quests.
+ public static final boolean USE_STARTER_MERGE = false; //Allows any players to use the Equipment Merge custom mechanic (as opposed to the high-level, Maker lv3 requisites).
+
+ //Commands Configuration
+ public static final boolean BLOCK_GENERATE_CASH_ITEM = false; //Prevents creation of cash items with the item/drop command.
+ public static final boolean USE_WHOLE_SERVER_RANKING = false; //Enables a ranking pool made from every character registered on the server for the "ranks" command, instead of separated by worlds.
+
+ //Server Rates And Experience
+ public static final int EXP_RATE = 10; //NOTE: World-specific rates within "world.ini" OVERRIDES the default rates from here.
+ public static final int MESO_RATE = 10;
+ public static final int DROP_RATE = 10;
+ public static final int BOSS_DROP_RATE = 10; //NOTE: Boss drop rate OVERRIDES common drop rate, for bosses-only.
+ public static final int QUEST_RATE = 5; //Multiplier for Exp & Meso gains when completing a quest. Only available when USE_QUEST_RATE is true. Stacks with server Exp & Meso rates.
+ public static final int FISHING_RATE = 10; //Multiplier for success likelihood on meso thrown during fishing.
+ public static final int TRAVEL_RATE = 10; //Means of transportation rides/departs using 1/N of the default time.
+
+ public static final double EQUIP_EXP_RATE = 1.0; //Rate for equipment exp gain, grows linearly. Set 1.0 for default (about 100~200 same-level range mobs killed to pass equip from level 1 to 2).
+ public static final double PQ_BONUS_EXP_RATE = 0.5; //Rate for the PQ exp reward.
+
+ public static final byte EXP_SPLIT_LEVEL_INTERVAL = 5; //Non-contributing players must be within N level between the mob to receive EXP.
+ public static final byte EXP_SPLIT_LEECH_INTERVAL = 5; //Non-contributing players must be within N level between any contributing party member to receive EXP.
+ public static final float EXP_SPLIT_MVP_MOD = 0.2f;
+ public static final float EXP_SPLIT_COMMON_MOD = 0.8f;
+ public static final float PARTY_BONUS_EXP_RATE = 1.0f; //Rate for the party exp bonus reward.
+
+ //Miscellaneous Configuration
+ public static String TIMEZONE = "GMT-3";
+ public static boolean USE_DISPLAY_NUMBERS_WITH_COMMA = true; //Enforce comma on displayed strings (use this when USE_UNITPRICE_WITH_COMMA is active and you still want to display comma-separated values).
+ public static boolean USE_UNITPRICE_WITH_COMMA = true; //Set this accordingly with the layout of the unitPrices on Item.wz XML's, whether it's using commas or dots to represent fractions.
+ public static final byte MAX_MONITORED_BUFFSTATS = 5; //Limits accounting for "dormant" buff effects, that should take place when stronger stat buffs expires.
+ public static final int MAX_AP = 32767; //Max AP allotted on the auto-assigner.
+ public static final int MAX_EVENT_LEVELS = 8; //Event has different levels of rewarding system.
+ public static final long BLOCK_NPC_RACE_CONDT = (long)(0.5 * 1000); //Time the player client must wait before reopening a conversation with an NPC.
+ public static final long PET_LOOT_UPON_ATTACK = (long)(0.7 * 1000); //Time the pet must wait before trying to pick items up.
+ public static final int TOT_MOB_QUEST_REQUIREMENT = 77; //Overwrites old 999-mobs requirement for the ToT questline with new requirement value, set 0 for default.
+ public static final int MOB_REACTOR_REFRESH_TIME = 30 * 1000; //Overwrites refresh time for those reactors oriented to inflict damage to bosses (Ice Queen, Riche), set 0 for default.
+ public static final int PARTY_SEARCH_REENTRY_LIMIT = 10; //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).
+ public static final int NAME_CHANGE_COOLDOWN = 30*24*60*60*1000; //Cooldown for name changes, default (GMS) is 30 days.
+ public static final int WORLD_TRANSFER_COOLDOWN=NAME_CHANGE_COOLDOWN;//Cooldown for world tranfers, default is same as name change (30 days).
+ public static final boolean INSTANT_NAME_CHANGE = false; //Whether or not to wait for server restart to apply name changes. Does on reconnect otherwise (requires queries on every login).
+
+ //Dangling Items/Locks Configuration
+ public static final int ITEM_EXPIRE_TIME = 3 * 60 * 1000; //Time before items start disappearing. Recommended to be set up to 3 minutes.
+ public static final int KITE_EXPIRE_TIME = 60 * 60 * 1000; //Time before kites (cash item) disappears.
+ public static final int ITEM_MONITOR_TIME = 5 * 60 * 1000; //Interval between item monitoring tasks on maps, which checks for dangling (null) item objects on the map item history.
+ public static final int LOCK_MONITOR_TIME = 30 * 1000; //Waiting time for a lock to be released. If it reaches timeout, a critical server deadlock has made present.
+
+ //Map Monitor Configuration
+ public static final int ITEM_EXPIRE_CHECK = 10 * 1000; //Interval between item expiring tasks on maps, which checks and makes disappear expired items.
+ public static final int ITEM_LIMIT_ON_MAP = 200; //Max number of items allowed on a map.
+ public static final int MAP_VISITED_SIZE = 5; //Max length for last mapids visited by a player. This is used to recover and update drops on these maps accordingly with player actions.
+ public static final int MAP_DAMAGE_OVERTIME_INTERVAL = 5000;//Interval in milliseconds between map environment damage (e.g. El Nath and Aqua Road surrondings).
+
+ //Channel Mob Disease Monitor Configuration
+ public static final int MOB_STATUS_MONITOR_PROC = 200; //Frequency in milliseconds between each proc on the mob disease monitor schedule.
+ public static final int MOB_STATUS_MONITOR_LIFE = 84; //Idle proc count the mob disease monitor is allowed to be there before closing it due to inactivity.
+ public static final int MOB_STATUS_AGGRO_PERSISTENCE = 2; //Idle proc count on aggro update for a mob to keep following the current controller, given him/her is the leading damage dealer.
+ public static final int MOB_STATUS_AGGRO_INTERVAL = 5000; //Interval in milliseconds between aggro logistics update.
+
+ //Some Gameplay Enhancing Configurations
+ //Scroll Configuration
+ public static final boolean USE_PERFECT_GM_SCROLL = true; //Scrolls from GMs never uses up slots nor fails.
+ public static final boolean USE_PERFECT_SCROLLING = true; //Scrolls doesn't use slots upon failure.
+ public static final boolean USE_ENHANCED_CHSCROLL = true; //Equips even more powerful with chaos upgrade.
+ public static final boolean USE_ENHANCED_CRAFTING = true; //Apply chaos scroll on every equip crafted.
+ public static final boolean USE_ENHANCED_CLNSLATE = true; //Clean slates can be applied to recover successfully used slots as well.
+ public static final int SCROLL_CHANCE_ROLLS = 10; //Number of rolls for success on a scroll, set 1 for default.
+ public static final int CHSCROLL_STAT_ROLLS = 3; //Number of rolls of stat upgrade on a successfully applied chaos scroll, set 1 for default.
+ public static final int CHSCROLL_STAT_RANGE = 6; //Stat upgrade range (-N, N) on chaos scrolls.
+
+ //Beginner Skills Configuration
+ public static final boolean USE_ULTRA_NIMBLE_FEET = true; //Massive speed & jump upgrade.
+ public static final boolean USE_ULTRA_RECOVERY = true; //Massive recovery amounts overtime.
+ public static final boolean USE_ULTRA_THREE_SNAILS = true; //Massive damage on shell toss.
+
+ //Other Skills Configuration
+ public static final boolean USE_FULL_ARAN_SKILLSET = false; //Enables starter availability to all Aran job skills. Suggestion thanks to Masterrulax.
+ public static final boolean USE_FAST_REUSE_HERO_WILL = true;//Greatly reduce cooldown on Hero's Will.
+ public static final boolean USE_ANTI_IMMUNITY_CRASH = true; //Crash skills additionally removes the mob's invincibility buffs. Suggestion thanks to Celestial.
+ public static final boolean USE_UNDISPEL_HOLY_SHIELD = true;//Holy shield buff also prevents players from suffering dispel from mobs.
+ public static final boolean USE_FULL_HOLY_SYMBOL = true; //Holy symbol doesn't require EXP sharers to work in full.
+
+ //Character Configuration
+ public static final boolean USE_ADD_SLOTS_BY_LEVEL = true; //Slots are added each 20 levels.
+ public static final boolean USE_ADD_RATES_BY_LEVEL = true; //Rates are added each 20 levels.
+ public static final boolean USE_STACK_COUPON_RATES = false; //Multiple coupons effects builds up together.
+ public static final boolean USE_PERFECT_PITCH = true; //For lvl 30 or above, each lvlup grants player 1 perfect pitch.
+
+ //Quest Configuration
+ public static final boolean USE_QUEST_RATE = false; //Exp/Meso gained by quests uses fixed server exp/meso rate times quest rate as multiplier, instead of player rates.
+
+ //Quest Points Configuration
+ public static final int QUEST_POINT_REPEATABLE_INTERVAL = 24;//Minimum interval between repeatable quest completions for quest points to be awarded.
+ public static final int QUEST_POINT_REQUIREMENT = 16; //Exchange factor between N quest points to +1 fame, set 0 to disable the entire quest point mechanism.
+ public static final int QUEST_POINT_PER_QUEST_COMPLETE = 4; //Each completed quest awards N quest points, set 0 to disable.
+ public static final int QUEST_POINT_PER_EVENT_CLEAR = 1; //Each completed event instance awards N quest points, set 0 to disable.
+
+ //Guild Configuration
+ public static final int CREATE_GUILD_MIN_PARTNERS = 6; //Minimum number of members on Guild Headquarters to establish a new guild.
+ public static final int CREATE_GUILD_COST = 1500000;
+ public static final int CHANGE_EMBLEM_COST = 5000000;
+ public static final int EXPAND_GUILD_BASE_COST = 500000;
+ public static final int EXPAND_GUILD_TIER_COST = 1000000;
+ public static final int EXPAND_GUILD_MAX_COST = 5000000;
+
+ //Family Configuration
+ public static final int FAMILY_REP_PER_KILL = 4; //Amount of rep gained per monster kill.
+ public static final int FAMILY_REP_PER_BOSS_KILL = 20; //Amount of rep gained per boss kill.
+ public static final int FAMILY_REP_PER_LEVELUP = 200; //Amount of rep gained upon leveling up.
+ public static final int FAMILY_MAX_GENERATIONS = 1000; //Maximum depth of family tree. (Distance from leader to farthest junior)
+
+ //Equipment Configuration
+ public static final boolean USE_EQUIPMNT_LVLUP_SLOTS = true;//Equips can upgrade slots at level up.
+ public static final boolean USE_EQUIPMNT_LVLUP_POWER = true;//Enable more powerful stat upgrades at equip level up.
+ public static final boolean USE_EQUIPMNT_LVLUP_CASH = true; //Enable equip leveling up on cash equipments as well.
+ public static final boolean USE_SPIKES_AVOID_BANISH = true; //Shoes equipped with spikes prevents mobs from banishing wearer.
+ public static final int MAX_EQUIPMNT_LVLUP_STAT_UP = 10000; //Max stat upgrade an equipment can have on a levelup.
+ public static final int MAX_EQUIPMNT_STAT = 32767; //Max stat on an equipment by leveling up.
+ public static final int USE_EQUIPMNT_LVLUP = 7; //All equips lvlup at max level of N, set 1 to disable.
+
+ //Map-Chair Configuration
+ public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill).
+ public static final byte CHAIR_EXTRA_HEAL_MULTIPLIER = 10; //Due to only being able to be send up-to-255 heal values, values being actually updated is the one displayed times this.
+ public static final int CHAIR_EXTRA_HEAL_MAX_DELAY = 21; //Players are expected to recover fully after using this skill for N seconds.
+
+ //Player NPC Configuration
+ public static final int PLAYERNPC_INITIAL_X = 262; //Map frame width for putting PlayerNPCs.
+ public static final int PLAYERNPC_INITIAL_Y = 262; //Map frame height for putting PlayerNPCs.
+ public static final int PLAYERNPC_AREA_X = 320; //Initial width gap between PlayerNPCs.
+ public static final int PLAYERNPC_AREA_Y = 160; //Initial height gap between PlayerNPCs.
+ public static final int PLAYERNPC_AREA_STEPS = 4; //Max number of times gap is shortened to comport PlayerNPCs.
+ public static final boolean PLAYERNPC_ORGANIZE_AREA = true; //Automatically rearranges PlayerNPCs on the map if there is no space set the new NPC. Current distance gap between NPCs is decreased to solve this issue.
+ public static final boolean PLAYERNPC_AUTODEPLOY = true; //Makes PlayerNPC automatically deployed on the Hall of Fame at the instant one reaches max level. If false, eligible players must talk to 1st job instructor to deploy a NPC.
+
+ //Pet Auto-Pot Configuration
+ public static final boolean USE_COMPULSORY_AUTOPOT = true; //Pets will consume as many potions as needed to fulfill the AUTOHP/MP ratio threshold.
+ public static final boolean USE_EQUIPS_ON_AUTOPOT = true; //Player MaxHP and MaxMP check values on autopot handler will be updated by the HP/MP bonuses on equipped items.
+ public static final double PET_AUTOHP_RATIO = 0.99; //Will automatically consume potions until given ratio of the MaxHP/MaxMP is reached.
+ public static final double PET_AUTOMP_RATIO = 0.99;
+
+ //Pet & Mount Configuration
+ public static final byte PET_EXHAUST_COUNT = 3; //Number of proc counts (1 per minute) on the exhaust schedule for fullness.
+ public static final byte MOUNT_EXHAUST_COUNT = 1; //Number of proc counts (1 per minute) on the exhaust schedule for tiredness.
+
+ //Pet Hunger Configuration
+ public static final boolean PETS_NEVER_HUNGRY = false; //If true, pets and mounts will never grow hungry.
+ public static final boolean GM_PETS_NEVER_HUNGRY = true; //If true, pets and mounts owned by GMs will never grow hungry.
+
+ //Event Configuration
+ public static final int EVENT_MAX_GUILD_QUEUE = 10; //Max number of guilds in queue for GPQ.
+ public static final long EVENT_LOBBY_DELAY = 10; //Cooldown duration in seconds before reopening an event lobby.
+
+ //Dojo Configuration
+ public static final boolean USE_FAST_DOJO_UPGRADE = true; //Reduced Dojo training points amount required for a belt upgrade.
+ public static final boolean USE_DEADLY_DOJO = false; //Should bosses really use 1HP,1MP attacks in dojo?
+ public static final int DOJO_ENERGY_ATK = 100; //Dojo energy gain when deal attack
+ public static final int DOJO_ENERGY_DMG = 20; //Dojo energy gain when recv attack
+
+ //Wedding Configuration
+ public static final int WEDDING_RESERVATION_DELAY = 3; //Minimum idle slots before processing a wedding reservation.
+ public static final int WEDDING_RESERVATION_TIMEOUT = 10; //Limit time in minutes for the couple to show up before cancelling the wedding reservation.
+ public static final int WEDDING_RESERVATION_INTERVAL = 60; //Time between wedding starts in minutes.
+ public static final int WEDDING_BLESS_EXP = 30000; //Exp gained per bless count.
+ public static final int WEDDING_GIFT_LIMIT = 1; //Max number of gifts per person to same wishlist on marriage instances.
+ public static final boolean WEDDING_BLESSER_SHOWFX = true; //Pops bubble sprite effect on players blessing the couple. Setting this false shows the blessing effect on the couple instead.
+
+ //Buyback Configuration
+ public static final boolean USE_BUYBACK_WITH_MESOS = true; //Enables usage of either mesos or NX for the buyback fee.
+ public static final float BUYBACK_FEE = 77.70f; //Sets the base amount needed to buyback (level 30 or under will use the base value).
+ public static final float BUYBACK_LEVEL_STACK_FEE = 85.47f; //Sets the level-stacking portion of the amount needed to buyback (fee will sum up linearly until level 120, when it reaches the peak).
+ public static final int BUYBACK_MESO_MULTIPLIER = 1000; //Sets a multiplier for the fee when using meso as the charge unit.
+ public static final int BUYBACK_RETURN_MINUTES = 1; //Sets the maximum amount of time the player can wait before decide to buyback.
+ public static final int BUYBACK_COOLDOWN_MINUTES = 7; //Sets the time the player must wait before using buyback again.
+
+ // Login timeout by shavit
+ public static long TIMEOUT_DURATION = 3600000L; // Kicks clients who don't send any packet to the game server in due time (in millisseconds).
+
+ //Event End Timestamp
+ public static final long EVENT_END_TIMESTAMP = 1428897600000L;
+
+ //Debug Variables
+ 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
+ /**
+ * Returns the Java version as an int value.
+ * @return the Java version as an int value (8, 9, etc.)
+ * @since 12130
+ */
+ public static int getJavaVersion() {
+ String version = System.getProperty("java.version");
+ if (version.startsWith("1.")) {
+ version = version.substring(2);
+ }
+ // Allow these formats:
+ // 1.8.0_72-ea
+ // 9-ea
+ // 9
+ // 9.0.1
+ int dotPos = version.indexOf('.');
+ int dashPos = version.indexOf('-');
+ return Integer.parseInt(version.substring(0,
+ dotPos > -1 ? dotPos : dashPos > -1 ? dashPos : 1));
+ }
+}
diff --git a/src/constants/CharsetConstants.java b/src/constants/string/CharsetConstants.java
similarity index 97%
rename from src/constants/CharsetConstants.java
rename to src/constants/string/CharsetConstants.java
index a00bc90bd2..45c9c6ce4e 100644
--- a/src/constants/CharsetConstants.java
+++ b/src/constants/string/CharsetConstants.java
@@ -4,7 +4,7 @@
* and open the template in the editor.
*/
-package constants;
+package constants.string;
/*
* Thanks to GabrielSin (EllinMS) - gabrielsin@playellin.net
diff --git a/src/constants/LanguageConstants.java b/src/constants/string/LanguageConstants.java
similarity index 99%
rename from src/constants/LanguageConstants.java
rename to src/constants/string/LanguageConstants.java
index 45ab0fe9a2..4bbf48d4d1 100644
--- a/src/constants/LanguageConstants.java
+++ b/src/constants/string/LanguageConstants.java
@@ -1,4 +1,4 @@
-package constants;
+package constants.string;
import client.MapleCharacter;
diff --git a/src/net/MapleServerHandler.java b/src/net/MapleServerHandler.java
index 5b16e0ae02..6e8aad2b22 100644
--- a/src/net/MapleServerHandler.java
+++ b/src/net/MapleServerHandler.java
@@ -35,14 +35,14 @@ import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import client.MapleClient;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import java.net.InetSocketAddress;
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.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import tools.FilePrinter;
import tools.MapleAESOFB;
diff --git a/src/net/mina/MaplePacketDecoder.java b/src/net/mina/MaplePacketDecoder.java
index b08116fc23..ad90d7dc1e 100644
--- a/src/net/mina/MaplePacketDecoder.java
+++ b/src/net/mina/MaplePacketDecoder.java
@@ -22,10 +22,9 @@
package net.mina;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleClient;
-import constants.OpcodeConstants;
-import net.server.coordinator.MapleSessionCoordinator;
+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;
diff --git a/src/net/mina/MaplePacketEncoder.java b/src/net/mina/MaplePacketEncoder.java
index 8aafcf2e60..2bd7fda9b4 100644
--- a/src/net/mina/MaplePacketEncoder.java
+++ b/src/net/mina/MaplePacketEncoder.java
@@ -22,10 +22,9 @@ along with this program. If not, see .
package net.mina;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleClient;
-import constants.OpcodeConstants;
-import net.server.coordinator.MapleSessionCoordinator;
+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.ProtocolEncoder;
diff --git a/src/net/server/Server.java b/src/net/server/Server.java
index 25d4c77cc3..bc7023394c 100644
--- a/src/net/server/Server.java
+++ b/src/net/server/Server.java
@@ -55,22 +55,22 @@ import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import net.MapleServerHandler;
import net.mina.MapleCodecFactory;
import net.server.channel.Channel;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import net.server.guild.MapleAlliance;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
-import net.server.worker.BossLogWorker;
-import net.server.worker.CharacterDiseaseWorker;
-import net.server.worker.CouponWorker;
-import net.server.worker.EventRecallCoordinatorWorker;
-import net.server.worker.DueyFredrickWorker;
-import net.server.worker.InvitationWorker;
-import net.server.worker.LoginCoordinatorWorker;
-import net.server.worker.LoginStorageWorker;
-import net.server.worker.RankingCommandWorker;
-import net.server.worker.RankingLoginWorker;
-import net.server.worker.ReleaseLockWorker;
-import net.server.worker.RespawnWorker;
+import net.server.task.BossLogTask;
+import net.server.task.CharacterDiseaseTask;
+import net.server.task.CouponTask;
+import net.server.task.EventRecallCoordinatorTask;
+import net.server.task.DueyFredrickTask;
+import net.server.task.InvitationTask;
+import net.server.task.LoginCoordinatorTask;
+import net.server.task.LoginStorageTask;
+import net.server.task.RankingCommandTask;
+import net.server.task.RankingLoginTask;
+import net.server.task.ReleaseLockTask;
+import net.server.task.RespawnTask;
import net.server.world.World;
import org.apache.mina.core.buffer.IoBuffer;
@@ -91,10 +91,10 @@ import client.inventory.ItemFactory;
import client.inventory.MaplePet;
import client.inventory.manipulator.MapleCashidGenerator;
import client.newyear.NewYearCardRecord;
-import constants.ItemConstants;
-import constants.GameConstants;
-import constants.OpcodeConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
+import constants.game.GameConstants;
+import constants.net.OpcodeConstants;
+import constants.net.ServerConstants;
import java.util.TimeZone;
import server.CashShop.CashItemFactory;
import server.MapleSkillbookInformationProvider;
@@ -877,21 +877,21 @@ public class Server {
disconnectIdlesOnLoginTask();
long timeLeft = getTimeLeftForNextHour();
- tMan.register(new CharacterDiseaseWorker(), YamlConfig.config.server.UPDATE_INTERVAL, YamlConfig.config.server.UPDATE_INTERVAL);
- tMan.register(new ReleaseLockWorker(), 2 * 60 * 1000, 2 * 60 * 1000);
- tMan.register(new CouponWorker(), YamlConfig.config.server.COUPON_INTERVAL, timeLeft);
- tMan.register(new RankingCommandWorker(), 5 * 60 * 1000, 5 * 60 * 1000);
- tMan.register(new RankingLoginWorker(), YamlConfig.config.server.RANKING_INTERVAL, timeLeft);
- tMan.register(new LoginCoordinatorWorker(), 60 * 60 * 1000, timeLeft);
- tMan.register(new EventRecallCoordinatorWorker(), 60 * 60 * 1000, timeLeft);
- tMan.register(new LoginStorageWorker(), 2 * 60 * 1000, 2 * 60 * 1000);
- tMan.register(new DueyFredrickWorker(), 60 * 60 * 1000, timeLeft);
- tMan.register(new InvitationWorker(), 30 * 1000, 30 * 1000);
- tMan.register(new RespawnWorker(), YamlConfig.config.server.RESPAWN_INTERVAL, YamlConfig.config.server.RESPAWN_INTERVAL);
+ tMan.register(new CharacterDiseaseTask(), ServerConstants.UPDATE_INTERVAL, ServerConstants.UPDATE_INTERVAL);
+ tMan.register(new ReleaseLockTask(), 2 * 60 * 1000, 2 * 60 * 1000);
+ tMan.register(new CouponTask(), ServerConstants.COUPON_INTERVAL, timeLeft);
+ tMan.register(new RankingCommandTask(), 5 * 60 * 1000, 5 * 60 * 1000);
+ tMan.register(new RankingLoginTask(), ServerConstants.RANKING_INTERVAL, timeLeft);
+ tMan.register(new LoginCoordinatorTask(), 60 * 60 * 1000, timeLeft);
+ tMan.register(new EventRecallCoordinatorTask(), 60 * 60 * 1000, timeLeft);
+ tMan.register(new LoginStorageTask(), 2 * 60 * 1000, 2 * 60 * 1000);
+ tMan.register(new DueyFredrickTask(), 60 * 60 * 1000, timeLeft);
+ tMan.register(new InvitationTask(), 30 * 1000, 30 * 1000);
+ tMan.register(new RespawnTask(), ServerConstants.RESPAWN_INTERVAL, ServerConstants.RESPAWN_INTERVAL);
timeLeft = getTimeLeftForNextDay();
MapleExpeditionBossLog.resetBossLogTable();
- tMan.register(new BossLogWorker(), 24 * 60 * 60 * 1000, timeLeft);
+ tMan.register(new BossLogTask(), 24 * 60 * 60 * 1000, timeLeft);
long timeToTake = System.currentTimeMillis();
SkillFactory.loadAllSkills();
@@ -911,7 +911,7 @@ public class Server {
if(YamlConfig.config.server.USE_THREAD_TRACKER) ThreadTracker.getInstance().registerThreadTrackerTask();
try {
- Integer worldCount = Math.min(GameConstants.WORLD_NAMES.length, YamlConfig.config.worlds.size());
+ Integer worldCount = Math.min(GameConstants.WORLD_NAMES.length, YamlConfig.config.server.WORLDS);
for (int i = 0; i < worldCount; i++) {
initWorld();
diff --git a/src/net/server/audit/locks/active/TrackerReadLock.java b/src/net/server/audit/locks/active/TrackerReadLock.java
index 4b05805d0a..fccd60b85b 100644
--- a/src/net/server/audit/locks/active/TrackerReadLock.java
+++ b/src/net/server/audit/locks/active/TrackerReadLock.java
@@ -20,7 +20,6 @@
package net.server.audit.locks.active;
import config.YamlConfig;
-import constants.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/audit/locks/active/TrackerReentrantLock.java b/src/net/server/audit/locks/active/TrackerReentrantLock.java
index 3f1432465e..119916bd29 100644
--- a/src/net/server/audit/locks/active/TrackerReentrantLock.java
+++ b/src/net/server/audit/locks/active/TrackerReentrantLock.java
@@ -25,7 +25,6 @@ import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.ScheduledFuture;
import config.YamlConfig;
-import constants.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/audit/locks/active/TrackerWriteLock.java b/src/net/server/audit/locks/active/TrackerWriteLock.java
index e77aaec924..a492cbf1e2 100644
--- a/src/net/server/audit/locks/active/TrackerWriteLock.java
+++ b/src/net/server/audit/locks/active/TrackerWriteLock.java
@@ -20,7 +20,6 @@
package net.server.audit.locks.active;
import config.YamlConfig;
-import constants.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/audit/locks/empty/EmptyReadLock.java b/src/net/server/audit/locks/empty/EmptyReadLock.java
index 9e98b776bf..18d3d66c5d 100644
--- a/src/net/server/audit/locks/empty/EmptyReadLock.java
+++ b/src/net/server/audit/locks/empty/EmptyReadLock.java
@@ -19,7 +19,7 @@
*/
package net.server.audit.locks.empty;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/audit/locks/empty/EmptyReentrantLock.java b/src/net/server/audit/locks/empty/EmptyReentrantLock.java
index dd2916c1e9..be1889e7da 100644
--- a/src/net/server/audit/locks/empty/EmptyReentrantLock.java
+++ b/src/net/server/audit/locks/empty/EmptyReentrantLock.java
@@ -19,7 +19,7 @@
*/
package net.server.audit.locks.empty;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/audit/locks/empty/EmptyWriteLock.java b/src/net/server/audit/locks/empty/EmptyWriteLock.java
index c1615f2fa3..cbfa163f74 100644
--- a/src/net/server/audit/locks/empty/EmptyWriteLock.java
+++ b/src/net/server/audit/locks/empty/EmptyWriteLock.java
@@ -19,7 +19,7 @@
*/
package net.server.audit.locks.empty;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/src/net/server/channel/Channel.java b/src/net/server/channel/Channel.java
index aaa7aa64e2..3ee7013f8b 100644
--- a/src/net/server/channel/Channel.java
+++ b/src/net/server/channel/Channel.java
@@ -21,6 +21,13 @@ along with this program. If not, see .
*/
package net.server.channel;
+import net.server.channel.task.FaceExpressionScheduler;
+import net.server.channel.task.MobMistScheduler;
+import net.server.channel.task.OverallScheduler;
+import net.server.channel.task.MobAnimationScheduler;
+import net.server.channel.task.MobStatusScheduler;
+import net.server.channel.task.MobClearSkillScheduler;
+import net.server.channel.task.EventScheduler;
import java.io.File;
import java.net.InetSocketAddress;
import java.util.ArrayList;
@@ -50,7 +57,6 @@ import net.mina.MapleCodecFactory;
import net.server.PlayerStorage;
import net.server.Server;
-import net.server.channel.worker.*;
import net.server.world.World;
import net.server.world.MapleParty;
@@ -78,7 +84,7 @@ import tools.MaplePacketCreator;
import tools.Pair;
import client.MapleCharacter;
import client.status.MonsterStatusEffect;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import server.maps.MapleMiniDungeonInfo;
public final class Channel {
diff --git a/src/net/server/channel/handlers/AbstractDealDamageHandler.java b/src/net/server/channel/handlers/AbstractDealDamageHandler.java
index ec977f1501..dd9124d1a5 100644
--- a/src/net/server/channel/handlers/AbstractDealDamageHandler.java
+++ b/src/net/server/channel/handlers/AbstractDealDamageHandler.java
@@ -55,8 +55,8 @@ import client.SkillFactory;
import client.autoban.AutobanFactory;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import constants.skills.Aran;
import constants.skills.Assassin;
import constants.skills.Bandit;
diff --git a/src/net/server/channel/handlers/AcceptFamilyHandler.java b/src/net/server/channel/handlers/AcceptFamilyHandler.java
index 670f37fec4..ebe120fb11 100644
--- a/src/net/server/channel/handlers/AcceptFamilyHandler.java
+++ b/src/net/server/channel/handlers/AcceptFamilyHandler.java
@@ -22,7 +22,6 @@
package net.server.channel.handlers;
import config.YamlConfig;
-import constants.ServerConstants;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -33,10 +32,10 @@ import client.MapleClient;
import client.MapleFamily;
import client.MapleFamilyEntry;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import tools.DatabaseConnection;
import tools.FilePrinter;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/AdminChatHandler.java b/src/net/server/channel/handlers/AdminChatHandler.java
index 35be0f800b..40acfc9259 100644
--- a/src/net/server/channel/handlers/AdminChatHandler.java
+++ b/src/net/server/channel/handlers/AdminChatHandler.java
@@ -2,7 +2,6 @@ package net.server.channel.handlers;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.LogHelper;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/AranComboHandler.java b/src/net/server/channel/handlers/AranComboHandler.java
index 5490843b6a..1f5de34084 100644
--- a/src/net/server/channel/handlers/AranComboHandler.java
+++ b/src/net/server/channel/handlers/AranComboHandler.java
@@ -24,7 +24,7 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
import client.SkillFactory;
-import constants.GameConstants;
+import constants.game.GameConstants;
import constants.skills.Aran;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/AutoAssignHandler.java b/src/net/server/channel/handlers/AutoAssignHandler.java
index b9e2717c4f..41b5582263 100644
--- a/src/net/server/channel/handlers/AutoAssignHandler.java
+++ b/src/net/server/channel/handlers/AutoAssignHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.AssignAPProcessor;
+import client.processor.stat.AssignAPProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/CashOperationHandler.java b/src/net/server/channel/handlers/CashOperationHandler.java
index ca25e216fb..62e92cdf0e 100644
--- a/src/net/server/channel/handlers/CashOperationHandler.java
+++ b/src/net/server/channel/handlers/CashOperationHandler.java
@@ -29,7 +29,7 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.List;
@@ -40,7 +40,7 @@ import server.CashShop;
import server.CashShop.CashItem;
import server.CashShop.CashItemFactory;
import client.inventory.manipulator.MapleInventoryManipulator;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import server.MapleItemInformationProvider;
import tools.FilePrinter;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/CloseRangeDamageHandler.java b/src/net/server/channel/handlers/CloseRangeDamageHandler.java
index 3f23247fac..b9240062d8 100644
--- a/src/net/server/channel/handlers/CloseRangeDamageHandler.java
+++ b/src/net/server/channel/handlers/CloseRangeDamageHandler.java
@@ -36,8 +36,8 @@ import client.MapleClient;
import client.MapleJob;
import client.Skill;
import client.SkillFactory;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import constants.skills.Crusader;
import constants.skills.DawnWarrior;
import constants.skills.DragonKnight;
diff --git a/src/net/server/channel/handlers/DenyPartyRequestHandler.java b/src/net/server/channel/handlers/DenyPartyRequestHandler.java
index 2da154845b..748804377d 100644
--- a/src/net/server/channel/handlers/DenyPartyRequestHandler.java
+++ b/src/net/server/channel/handlers/DenyPartyRequestHandler.java
@@ -24,9 +24,9 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/DistributeAPHandler.java b/src/net/server/channel/handlers/DistributeAPHandler.java
index 3831a15e5d..c83c64158b 100644
--- a/src/net/server/channel/handlers/DistributeAPHandler.java
+++ b/src/net/server/channel/handlers/DistributeAPHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.AssignAPProcessor;
+import client.processor.stat.AssignAPProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/DistributeSPHandler.java b/src/net/server/channel/handlers/DistributeSPHandler.java
index 8e1e570c03..22b6042445 100644
--- a/src/net/server/channel/handlers/DistributeSPHandler.java
+++ b/src/net/server/channel/handlers/DistributeSPHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.AssignSPProcessor;
+import client.processor.stat.AssignSPProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/DueyHandler.java b/src/net/server/channel/handlers/DueyHandler.java
index 71c0bdd390..0e67dc43e7 100644
--- a/src/net/server/channel/handlers/DueyHandler.java
+++ b/src/net/server/channel/handlers/DueyHandler.java
@@ -22,9 +22,8 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.DueyProcessor;
+import client.processor.npc.DueyProcessor;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/EnterMTSHandler.java b/src/net/server/channel/handlers/EnterMTSHandler.java
index 8de629d4e9..402e84ead9 100644
--- a/src/net/server/channel/handlers/EnterMTSHandler.java
+++ b/src/net/server/channel/handlers/EnterMTSHandler.java
@@ -29,12 +29,11 @@ import java.util.ArrayList;
import java.util.List;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleCharacter;
import client.MapleClient;
import client.inventory.Equip;
import client.inventory.Item;
-import client.processor.BuybackProcessor;
+import client.processor.action.BuybackProcessor;
import net.AbstractMaplePacketHandler;
import net.server.Server;
import server.MTSItemInfo;
diff --git a/src/net/server/channel/handlers/FaceExpressionHandler.java b/src/net/server/channel/handlers/FaceExpressionHandler.java
index b5be532a12..6a463dd726 100644
--- a/src/net/server/channel/handlers/FaceExpressionHandler.java
+++ b/src/net/server/channel/handlers/FaceExpressionHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.MapleCharacter;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/FamilyAddHandler.java b/src/net/server/channel/handlers/FamilyAddHandler.java
index 1553908173..6c9e0d7fcd 100644
--- a/src/net/server/channel/handlers/FamilyAddHandler.java
+++ b/src/net/server/channel/handlers/FamilyAddHandler.java
@@ -22,12 +22,11 @@
package net.server.channel.handlers;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleCharacter;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/FamilySeparateHandler.java b/src/net/server/channel/handlers/FamilySeparateHandler.java
index 1dee691f5c..93597f53d1 100644
--- a/src/net/server/channel/handlers/FamilySeparateHandler.java
+++ b/src/net/server/channel/handlers/FamilySeparateHandler.java
@@ -23,7 +23,6 @@ import client.MapleClient;
import client.MapleFamily;
import client.MapleFamilyEntry;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/FamilySummonResponseHandler.java b/src/net/server/channel/handlers/FamilySummonResponseHandler.java
index 0bbaa58830..9f39b745f8 100644
--- a/src/net/server/channel/handlers/FamilySummonResponseHandler.java
+++ b/src/net/server/channel/handlers/FamilySummonResponseHandler.java
@@ -5,12 +5,11 @@ import client.MapleClient;
import client.MapleFamilyEntitlement;
import client.MapleFamilyEntry;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import server.maps.MapleMap;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/FamilyUseHandler.java b/src/net/server/channel/handlers/FamilyUseHandler.java
index 24b2abc758..344f8b541d 100644
--- a/src/net/server/channel/handlers/FamilyUseHandler.java
+++ b/src/net/server/channel/handlers/FamilyUseHandler.java
@@ -26,10 +26,9 @@ import client.MapleClient;
import client.MapleFamilyEntitlement;
import client.MapleFamilyEntry;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
import server.maps.FieldLimit;
import server.maps.MapleMap;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/FieldDamageMobHandler.java b/src/net/server/channel/handlers/FieldDamageMobHandler.java
index 4ae3153e96..0a6942319d 100644
--- a/src/net/server/channel/handlers/FieldDamageMobHandler.java
+++ b/src/net/server/channel/handlers/FieldDamageMobHandler.java
@@ -21,7 +21,7 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
-import constants.GameConstants;
+import constants.game.GameConstants;
import net.AbstractMaplePacketHandler;
import server.life.MapleMonster;
import server.life.MapleMonsterInformationProvider;
diff --git a/src/net/server/channel/handlers/FredrickHandler.java b/src/net/server/channel/handlers/FredrickHandler.java
index ef516098a0..1e035ded11 100644
--- a/src/net/server/channel/handlers/FredrickHandler.java
+++ b/src/net/server/channel/handlers/FredrickHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
-import client.processor.FredrickProcessor;
+import client.processor.npc.FredrickProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/GeneralChatHandler.java b/src/net/server/channel/handlers/GeneralChatHandler.java
index dcf8b66b85..6f56b1a16b 100644
--- a/src/net/server/channel/handlers/GeneralChatHandler.java
+++ b/src/net/server/channel/handlers/GeneralChatHandler.java
@@ -26,7 +26,6 @@ import client.MapleClient;
import client.autoban.AutobanFactory;
import client.command.CommandsExecutor;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.FilePrinter;
import tools.LogHelper;
diff --git a/src/net/server/channel/handlers/GuildOperationHandler.java b/src/net/server/channel/handlers/GuildOperationHandler.java
index ac5f0b3b70..92991f4269 100644
--- a/src/net/server/channel/handlers/GuildOperationHandler.java
+++ b/src/net/server/channel/handlers/GuildOperationHandler.java
@@ -24,8 +24,8 @@ package net.server.channel.handlers;
import config.YamlConfig;
import net.server.guild.MapleGuildResponse;
import net.server.guild.MapleGuild;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/HiredMerchantRequest.java b/src/net/server/channel/handlers/HiredMerchantRequest.java
index 19e7f4dc35..160cdfff0d 100644
--- a/src/net/server/channel/handlers/HiredMerchantRequest.java
+++ b/src/net/server/channel/handlers/HiredMerchantRequest.java
@@ -26,7 +26,7 @@ import client.MapleCharacter;
import java.sql.SQLException;
import java.util.Arrays;
import client.MapleClient;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.awt.Point;
import net.AbstractMaplePacketHandler;
import server.maps.MaplePortal;
diff --git a/src/net/server/channel/handlers/InventoryMergeHandler.java b/src/net/server/channel/handlers/InventoryMergeHandler.java
index 1e87fa2e23..ae8c2feb3b 100644
--- a/src/net/server/channel/handlers/InventoryMergeHandler.java
+++ b/src/net/server/channel/handlers/InventoryMergeHandler.java
@@ -22,7 +22,6 @@
package net.server.channel.handlers;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import client.inventory.manipulator.MapleInventoryManipulator;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/InventorySortHandler.java b/src/net/server/channel/handlers/InventorySortHandler.java
index 5d2b32db38..d7510405f8 100644
--- a/src/net/server/channel/handlers/InventorySortHandler.java
+++ b/src/net/server/channel/handlers/InventorySortHandler.java
@@ -35,7 +35,7 @@ import client.inventory.Equip;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.ModifyInventory;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import server.MapleItemInformationProvider;
import net.server.Server;
diff --git a/src/net/server/channel/handlers/ItemRewardHandler.java b/src/net/server/channel/handlers/ItemRewardHandler.java
index 2794c1aedd..6fc7586ecf 100644
--- a/src/net/server/channel/handlers/ItemRewardHandler.java
+++ b/src/net/server/channel/handlers/ItemRewardHandler.java
@@ -24,7 +24,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.util.List;
import net.AbstractMaplePacketHandler;
import net.server.Server;
diff --git a/src/net/server/channel/handlers/KeymapChangeHandler.java b/src/net/server/channel/handlers/KeymapChangeHandler.java
index 5613ddaef6..7d97aa108c 100644
--- a/src/net/server/channel/handlers/KeymapChangeHandler.java
+++ b/src/net/server/channel/handlers/KeymapChangeHandler.java
@@ -21,7 +21,7 @@
*/
package net.server.channel.handlers;
-import constants.GameConstants;
+import constants.game.GameConstants;
import client.MapleClient;
import client.MapleKeyBinding;
import client.Skill;
diff --git a/src/net/server/channel/handlers/MTSHandler.java b/src/net/server/channel/handlers/MTSHandler.java
index 3ccdc2f007..50ca166f63 100644
--- a/src/net/server/channel/handlers/MTSHandler.java
+++ b/src/net/server/channel/handlers/MTSHandler.java
@@ -44,7 +44,7 @@ import client.MapleClient;
import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
public final class MTSHandler extends AbstractMaplePacketHandler {
diff --git a/src/net/server/channel/handlers/MagicDamageHandler.java b/src/net/server/channel/handlers/MagicDamageHandler.java
index cd562e5d63..1065f4eeb3 100644
--- a/src/net/server/channel/handlers/MagicDamageHandler.java
+++ b/src/net/server/channel/handlers/MagicDamageHandler.java
@@ -30,7 +30,7 @@ import client.MapleCharacter;
import client.MapleClient;
import client.Skill;
import client.SkillFactory;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import constants.skills.Bishop;
import constants.skills.Evan;
import constants.skills.FPArchMage;
diff --git a/src/net/server/channel/handlers/MakerSkillHandler.java b/src/net/server/channel/handlers/MakerSkillHandler.java
index 77062f96fb..2a108e64d0 100644
--- a/src/net/server/channel/handlers/MakerSkillHandler.java
+++ b/src/net/server/channel/handlers/MakerSkillHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.MakerProcessor;
+import client.processor.action.MakerProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/MessengerHandler.java b/src/net/server/channel/handlers/MessengerHandler.java
index 5b835df3c8..e30b9a8aca 100644
--- a/src/net/server/channel/handlers/MessengerHandler.java
+++ b/src/net/server/channel/handlers/MessengerHandler.java
@@ -24,10 +24,10 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import net.server.world.MapleMessenger;
import net.server.world.MapleMessengerCharacter;
import net.server.world.World;
diff --git a/src/net/server/channel/handlers/MoveLifeHandler.java b/src/net/server/channel/handlers/MoveLifeHandler.java
index 5c4581fa1f..a3d1053ac0 100644
--- a/src/net/server/channel/handlers/MoveLifeHandler.java
+++ b/src/net/server/channel/handlers/MoveLifeHandler.java
@@ -28,7 +28,6 @@ import java.util.LinkedList;
import java.util.List;
import config.YamlConfig;
-import constants.ServerConstants;
import server.life.MapleMonster;
import server.life.MapleMonsterInformationProvider;
//import server.life.MobAttackInfo;
diff --git a/src/net/server/channel/handlers/MultiChatHandler.java b/src/net/server/channel/handlers/MultiChatHandler.java
index a31c265d17..87515bb2c8 100644
--- a/src/net/server/channel/handlers/MultiChatHandler.java
+++ b/src/net/server/channel/handlers/MultiChatHandler.java
@@ -25,7 +25,6 @@ import client.MapleCharacter;
import client.MapleClient;
import client.autoban.AutobanFactory;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import net.server.Server;
import net.server.world.World;
diff --git a/src/net/server/channel/handlers/NPCShopHandler.java b/src/net/server/channel/handlers/NPCShopHandler.java
index 1598df933c..48475b441f 100644
--- a/src/net/server/channel/handlers/NPCShopHandler.java
+++ b/src/net/server/channel/handlers/NPCShopHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.autoban.AutobanFactory;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import tools.FilePrinter;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/NPCTalkHandler.java b/src/net/server/channel/handlers/NPCTalkHandler.java
index e9ca76240a..4c0b978115 100644
--- a/src/net/server/channel/handlers/NPCTalkHandler.java
+++ b/src/net/server/channel/handlers/NPCTalkHandler.java
@@ -22,9 +22,8 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.DueyProcessor;
+import client.processor.npc.DueyProcessor;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import scripting.npc.NPCScriptManager;
import server.life.MapleNPC;
diff --git a/src/net/server/channel/handlers/NewYearCardHandler.java b/src/net/server/channel/handlers/NewYearCardHandler.java
index 126deb16f5..a2c4d8587e 100644
--- a/src/net/server/channel/handlers/NewYearCardHandler.java
+++ b/src/net/server/channel/handlers/NewYearCardHandler.java
@@ -19,7 +19,7 @@
*/
package net.server.channel.handlers;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import client.MapleCharacter;
import client.MapleClient;
diff --git a/src/net/server/channel/handlers/OpenFamilyHandler.java b/src/net/server/channel/handlers/OpenFamilyHandler.java
index 242b510bb3..39dcdeeaf4 100644
--- a/src/net/server/channel/handlers/OpenFamilyHandler.java
+++ b/src/net/server/channel/handlers/OpenFamilyHandler.java
@@ -20,7 +20,6 @@
package net.server.channel.handlers;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleCharacter;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
diff --git a/src/net/server/channel/handlers/OpenFamilyPedigreeHandler.java b/src/net/server/channel/handlers/OpenFamilyPedigreeHandler.java
index c6a57a78d7..2a24be3cda 100644
--- a/src/net/server/channel/handlers/OpenFamilyPedigreeHandler.java
+++ b/src/net/server/channel/handlers/OpenFamilyPedigreeHandler.java
@@ -20,7 +20,6 @@
package net.server.channel.handlers;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleCharacter;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
diff --git a/src/net/server/channel/handlers/OwlWarpHandler.java b/src/net/server/channel/handlers/OwlWarpHandler.java
index f8be4608e0..25f6c8baa1 100644
--- a/src/net/server/channel/handlers/OwlWarpHandler.java
+++ b/src/net/server/channel/handlers/OwlWarpHandler.java
@@ -19,7 +19,7 @@
*/
package net.server.channel.handlers;
-import constants.GameConstants;
+import constants.game.GameConstants;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
import server.maps.MaplePlayerShop;
diff --git a/src/net/server/channel/handlers/PartyOperationHandler.java b/src/net/server/channel/handlers/PartyOperationHandler.java
index 562cb04136..e73fe55966 100644
--- a/src/net/server/channel/handlers/PartyOperationHandler.java
+++ b/src/net/server/channel/handlers/PartyOperationHandler.java
@@ -31,11 +31,11 @@ import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import client.MapleCharacter;
import client.MapleClient;
-import constants.ServerConstants;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import constants.net.ServerConstants;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import java.util.List;
diff --git a/src/net/server/channel/handlers/PetAutoPotHandler.java b/src/net/server/channel/handlers/PetAutoPotHandler.java
index c27d06a802..f1ea8a7518 100644
--- a/src/net/server/channel/handlers/PetAutoPotHandler.java
+++ b/src/net/server/channel/handlers/PetAutoPotHandler.java
@@ -21,9 +21,12 @@
*/
package net.server.channel.handlers;
+import client.MapleCharacter;
import client.MapleClient;
-import client.processor.PetAutopotProcessor;
+import client.processor.action.PetAutopotProcessor;
import net.AbstractMaplePacketHandler;
+import server.MapleItemInformationProvider;
+import server.MapleStatEffect;
import tools.data.input.SeekableLittleEndianAccessor;
public final class PetAutoPotHandler extends AbstractMaplePacketHandler {
@@ -36,6 +39,18 @@ public final class PetAutoPotHandler extends AbstractMaplePacketHandler {
short slot = slea.readShort();
int itemId = slea.readInt();
+ MapleCharacter chr = c.getPlayer();
+ MapleStatEffect stat = MapleItemInformationProvider.getInstance().getItemEffect(itemId);
+ if (stat.getHp() > 0 || stat.getHpRate() > 0.0) {
+ float estimatedHp = ((float) chr.getHp()) / chr.getMaxHp();
+ chr.setAutopotHpAlert(estimatedHp);
+ }
+
+ if (stat.getMp() > 0 || stat.getMpRate() > 0.0) {
+ float estimatedMp = ((float) chr.getMp()) / chr.getMaxMp();
+ chr.setAutopotMpAlert(estimatedMp);
+ }
+
PetAutopotProcessor.runAutopotAction(c, slot, itemId);
}
diff --git a/src/net/server/channel/handlers/PetChatHandler.java b/src/net/server/channel/handlers/PetChatHandler.java
index abb21c849d..b18db64dbb 100644
--- a/src/net/server/channel/handlers/PetChatHandler.java
+++ b/src/net/server/channel/handlers/PetChatHandler.java
@@ -24,7 +24,6 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.autoban.AutobanFactory;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.FilePrinter;
import tools.LogHelper;
diff --git a/src/net/server/channel/handlers/PetLootHandler.java b/src/net/server/channel/handlers/PetLootHandler.java
index c20ba61a2d..9cd57414a5 100644
--- a/src/net/server/channel/handlers/PetLootHandler.java
+++ b/src/net/server/channel/handlers/PetLootHandler.java
@@ -32,7 +32,7 @@ import server.maps.MapleMapItem;
import server.maps.MapleMapObject;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
/**
* @author TheRamon
diff --git a/src/net/server/channel/handlers/PlayerInteractionHandler.java b/src/net/server/channel/handlers/PlayerInteractionHandler.java
index a3d98705b6..ac4010e3f5 100644
--- a/src/net/server/channel/handlers/PlayerInteractionHandler.java
+++ b/src/net/server/channel/handlers/PlayerInteractionHandler.java
@@ -30,14 +30,13 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import server.MapleItemInformationProvider;
import server.maps.MaplePortal;
import server.MapleTrade;
-import constants.GameConstants;
+import constants.game.GameConstants;
import server.maps.FieldLimit;
import server.maps.MapleHiredMerchant;
import server.maps.MapleMapObject;
diff --git a/src/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/net/server/channel/handlers/PlayerLoggedinHandler.java
index a4ab1d0221..379ffeb5ab 100644
--- a/src/net/server/channel/handlers/PlayerLoggedinHandler.java
+++ b/src/net/server/channel/handlers/PlayerLoggedinHandler.java
@@ -61,16 +61,16 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet;
-import constants.GameConstants;
-import constants.ScriptableNPCConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.game.ScriptableNPCConstants;
+import constants.net.ServerConstants;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import net.server.coordinator.MapleEventRecallCoordinator;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.world.MapleEventRecallCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import org.apache.mina.core.session.IoSession;
import server.life.MobSkill;
import scripting.event.EventInstanceManager;
diff --git a/src/net/server/channel/handlers/RangedAttackHandler.java b/src/net/server/channel/handlers/RangedAttackHandler.java
index 5b371a2f1e..bf45884a52 100644
--- a/src/net/server/channel/handlers/RangedAttackHandler.java
+++ b/src/net/server/channel/handlers/RangedAttackHandler.java
@@ -37,8 +37,8 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import constants.skills.Aran;
import constants.skills.Buccaneer;
import constants.skills.NightLord;
diff --git a/src/net/server/channel/handlers/RemoteGachaponHandler.java b/src/net/server/channel/handlers/RemoteGachaponHandler.java
index c7b9382857..e06eb3704f 100644
--- a/src/net/server/channel/handlers/RemoteGachaponHandler.java
+++ b/src/net/server/channel/handlers/RemoteGachaponHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.autoban.AutobanFactory;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import scripting.npc.NPCScriptManager;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/RingActionHandler.java b/src/net/server/channel/handlers/RingActionHandler.java
index 3f2290119c..41da5441c5 100644
--- a/src/net/server/channel/handlers/RingActionHandler.java
+++ b/src/net/server/channel/handlers/RingActionHandler.java
@@ -33,7 +33,7 @@ import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
-import client.processor.DueyProcessor;
+import client.processor.npc.DueyProcessor;
import net.AbstractMaplePacketHandler;
import net.server.world.World;
import net.server.channel.Channel;
diff --git a/src/net/server/channel/handlers/ScriptedItemHandler.java b/src/net/server/channel/handlers/ScriptedItemHandler.java
index 1c95735b17..73678c9025 100644
--- a/src/net/server/channel/handlers/ScriptedItemHandler.java
+++ b/src/net/server/channel/handlers/ScriptedItemHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.inventory.Item;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import scripting.item.ItemScriptManager;
import server.MapleItemInformationProvider;
diff --git a/src/net/server/channel/handlers/ScrollHandler.java b/src/net/server/channel/handlers/ScrollHandler.java
index 9655473d52..d485609288 100644
--- a/src/net/server/channel/handlers/ScrollHandler.java
+++ b/src/net/server/channel/handlers/ScrollHandler.java
@@ -31,7 +31,7 @@ import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.ModifyInventory;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
diff --git a/src/net/server/channel/handlers/SkillMacroHandler.java b/src/net/server/channel/handlers/SkillMacroHandler.java
index de88635f34..148d93a986 100644
--- a/src/net/server/channel/handlers/SkillMacroHandler.java
+++ b/src/net/server/channel/handlers/SkillMacroHandler.java
@@ -27,6 +27,8 @@ import tools.data.input.SeekableLittleEndianAccessor;
import net.AbstractMaplePacketHandler;
public final class SkillMacroHandler extends AbstractMaplePacketHandler {
+
+ @Override
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
int num = slea.readByte();
for (int i = 0; i < num; i++) {
diff --git a/src/net/server/channel/handlers/SpawnPetHandler.java b/src/net/server/channel/handlers/SpawnPetHandler.java
index 6ebcff6dc5..be1a203ad7 100644
--- a/src/net/server/channel/handlers/SpawnPetHandler.java
+++ b/src/net/server/channel/handlers/SpawnPetHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.SpawnPetProcessor;
+import client.processor.action.SpawnPetProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/SpecialMoveHandler.java b/src/net/server/channel/handlers/SpecialMoveHandler.java
index 16891585a2..c1c8b3abae 100644
--- a/src/net/server/channel/handlers/SpecialMoveHandler.java
+++ b/src/net/server/channel/handlers/SpecialMoveHandler.java
@@ -33,7 +33,7 @@ import client.MapleCharacter;
import client.MapleClient;
import client.Skill;
import client.SkillFactory;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import constants.skills.Brawler;
import constants.skills.Corsair;
import constants.skills.DarkKnight;
diff --git a/src/net/server/channel/handlers/SpouseChatHandler.java b/src/net/server/channel/handlers/SpouseChatHandler.java
index 9fe17fc769..46d4bff57f 100644
--- a/src/net/server/channel/handlers/SpouseChatHandler.java
+++ b/src/net/server/channel/handlers/SpouseChatHandler.java
@@ -24,7 +24,6 @@ package net.server.channel.handlers;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.LogHelper;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/StorageHandler.java b/src/net/server/channel/handlers/StorageHandler.java
index 6f353a5b4b..7289db93ba 100644
--- a/src/net/server/channel/handlers/StorageHandler.java
+++ b/src/net/server/channel/handlers/StorageHandler.java
@@ -22,7 +22,7 @@
package net.server.channel.handlers;
import client.MapleClient;
-import client.processor.StorageProcessor;
+import client.processor.npc.StorageProcessor;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/TakeDamageHandler.java b/src/net/server/channel/handlers/TakeDamageHandler.java
index dfe19296e9..054e6f780c 100644
--- a/src/net/server/channel/handlers/TakeDamageHandler.java
+++ b/src/net/server/channel/handlers/TakeDamageHandler.java
@@ -32,9 +32,8 @@ import client.inventory.MapleInventoryType;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
import constants.skills.Aran;
import java.awt.Point;
diff --git a/src/net/server/channel/handlers/TransferNameHandler.java b/src/net/server/channel/handlers/TransferNameHandler.java
index 0feae06b18..b574e450a7 100644
--- a/src/net/server/channel/handlers/TransferNameHandler.java
+++ b/src/net/server/channel/handlers/TransferNameHandler.java
@@ -30,7 +30,6 @@ import java.sql.Connection;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import tools.DatabaseConnection;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/TransferWorldHandler.java b/src/net/server/channel/handlers/TransferWorldHandler.java
index d6f46343fb..446752f544 100644
--- a/src/net/server/channel/handlers/TransferWorldHandler.java
+++ b/src/net/server/channel/handlers/TransferWorldHandler.java
@@ -29,7 +29,6 @@ import java.sql.Timestamp;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import net.server.Server;
import tools.DatabaseConnection;
diff --git a/src/net/server/channel/handlers/UseCashItemHandler.java b/src/net/server/channel/handlers/UseCashItemHandler.java
index f88582c9a3..117c5342ae 100644
--- a/src/net/server/channel/handlers/UseCashItemHandler.java
+++ b/src/net/server/channel/handlers/UseCashItemHandler.java
@@ -25,6 +25,7 @@ import client.MapleCharacter;
import client.MapleClient;
import client.Skill;
import client.SkillFactory;
+import client.SkillMacro;
import client.creator.veteran.*;
import client.inventory.Equip;
import client.inventory.Equip.ScrollResult;
@@ -35,13 +36,12 @@ import client.inventory.MaplePet;
import client.inventory.ModifyInventory;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
-import client.processor.AssignAPProcessor;
-import client.processor.AssignSPProcessor;
-import client.processor.DueyProcessor;
+import client.processor.stat.AssignAPProcessor;
+import client.processor.stat.AssignSPProcessor;
+import client.processor.npc.DueyProcessor;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -170,6 +170,33 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler {
if ((curLevel < skillSPTo.getMaxLevel()) && curLevelSPFrom > 0) {
player.changeSkillLevel(skillSPFrom, (byte) (curLevelSPFrom - 1), player.getMasterLevel(skillSPFrom), -1);
player.changeSkillLevel(skillSPTo, (byte) (curLevel + 1), player.getMasterLevel(skillSPTo), -1);
+
+ // update macros, thanks to Arnah
+ if((curLevelSPFrom - 1) == 0){
+ boolean updated = false;
+ for(SkillMacro macro : player.getMacros()){
+ if(macro == null) continue;
+
+ boolean update = false;// cleaner?
+ if(macro.getSkill1() == SPFrom){
+ update = true;
+ macro.setSkill1(0);
+ }
+ if(macro.getSkill2() == SPFrom){
+ update = true;
+ macro.setSkill2(0);
+ }
+ if(macro.getSkill3() == SPFrom){
+ update = true;
+ macro.setSkill3(0);
+ }
+ if(update){
+ updated = true;
+ player.updateMacros(macro.getPosition(), macro);
+ }
+ }
+ if(updated) player.sendMacros();
+ }
}
} else {
int APTo = slea.readInt();
diff --git a/src/net/server/channel/handlers/UseCatchItemHandler.java b/src/net/server/channel/handlers/UseCatchItemHandler.java
index 97e55b0ff3..ef3ee4b444 100644
--- a/src/net/server/channel/handlers/UseCatchItemHandler.java
+++ b/src/net/server/channel/handlers/UseCatchItemHandler.java
@@ -25,7 +25,7 @@ import client.MapleCharacter;
import client.MapleClient;
import client.inventory.MapleInventoryType;
import client.autoban.AutobanManager;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import net.server.Server;
import client.inventory.manipulator.MapleInventoryManipulator;
diff --git a/src/net/server/channel/handlers/UseChairHandler.java b/src/net/server/channel/handlers/UseChairHandler.java
index 353b36f087..93de1bd830 100644
--- a/src/net/server/channel/handlers/UseChairHandler.java
+++ b/src/net/server/channel/handlers/UseChairHandler.java
@@ -23,7 +23,7 @@ package net.server.channel.handlers;
import client.MapleClient;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/channel/handlers/UseItemHandler.java b/src/net/server/channel/handlers/UseItemHandler.java
index 182aef2062..29878407f3 100644
--- a/src/net/server/channel/handlers/UseItemHandler.java
+++ b/src/net/server/channel/handlers/UseItemHandler.java
@@ -27,8 +27,7 @@ import client.MapleDisease;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import client.inventory.manipulator.MapleInventoryManipulator;
import server.MapleItemInformationProvider;
diff --git a/src/net/server/channel/handlers/UseMountFoodHandler.java b/src/net/server/channel/handlers/UseMountFoodHandler.java
index a626d5ec1c..dde7452092 100644
--- a/src/net/server/channel/handlers/UseMountFoodHandler.java
+++ b/src/net/server/channel/handlers/UseMountFoodHandler.java
@@ -27,7 +27,7 @@ import client.MapleMount;
import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
-import constants.ExpTable;
+import constants.game.ExpTable;
import net.AbstractMaplePacketHandler;
import client.inventory.manipulator.MapleInventoryManipulator;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/UseOwlOfMinervaHandler.java b/src/net/server/channel/handlers/UseOwlOfMinervaHandler.java
index ac5df67148..5c81060879 100644
--- a/src/net/server/channel/handlers/UseOwlOfMinervaHandler.java
+++ b/src/net/server/channel/handlers/UseOwlOfMinervaHandler.java
@@ -30,7 +30,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
-import constants.GameConstants;
+import constants.game.GameConstants;
/**
* @author Ronan
diff --git a/src/net/server/channel/handlers/WeddingHandler.java b/src/net/server/channel/handlers/WeddingHandler.java
index 19ef488948..6fca323515 100644
--- a/src/net/server/channel/handlers/WeddingHandler.java
+++ b/src/net/server/channel/handlers/WeddingHandler.java
@@ -15,8 +15,7 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import net.AbstractMaplePacketHandler;
import server.MapleMarriage;
import tools.MaplePacketCreator;
diff --git a/src/net/server/channel/handlers/WhisperHandler.java b/src/net/server/channel/handlers/WhisperHandler.java
index 2c7dded0cf..816bf60d5f 100644
--- a/src/net/server/channel/handlers/WhisperHandler.java
+++ b/src/net/server/channel/handlers/WhisperHandler.java
@@ -26,7 +26,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import config.YamlConfig;
-import constants.ServerConstants;
import net.AbstractMaplePacketHandler;
import net.server.world.World;
import tools.DatabaseConnection;
diff --git a/src/net/server/channel/worker/BaseScheduler.java b/src/net/server/channel/task/BaseScheduler.java
similarity index 99%
rename from src/net/server/channel/worker/BaseScheduler.java
rename to src/net/server/channel/task/BaseScheduler.java
index 248e66cac5..57579386c4 100644
--- a/src/net/server/channel/worker/BaseScheduler.java
+++ b/src/net/server/channel/task/BaseScheduler.java
@@ -17,10 +17,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
diff --git a/src/net/server/channel/worker/EventScheduler.java b/src/net/server/channel/task/EventScheduler.java
similarity index 97%
rename from src/net/server/channel/worker/EventScheduler.java
rename to src/net/server/channel/task/EventScheduler.java
index 7cb0545004..6cb5b2539f 100644
--- a/src/net/server/channel/worker/EventScheduler.java
+++ b/src/net/server/channel/task/EventScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/FaceExpressionScheduler.java b/src/net/server/channel/task/FaceExpressionScheduler.java
similarity index 97%
rename from src/net/server/channel/worker/FaceExpressionScheduler.java
rename to src/net/server/channel/task/FaceExpressionScheduler.java
index 6dd247020d..b4ecc857a4 100644
--- a/src/net/server/channel/worker/FaceExpressionScheduler.java
+++ b/src/net/server/channel/task/FaceExpressionScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import java.util.Collections;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/MobAnimationScheduler.java b/src/net/server/channel/task/MobAnimationScheduler.java
similarity index 98%
rename from src/net/server/channel/worker/MobAnimationScheduler.java
rename to src/net/server/channel/task/MobAnimationScheduler.java
index ca22e9986a..b83e634c2c 100644
--- a/src/net/server/channel/worker/MobAnimationScheduler.java
+++ b/src/net/server/channel/task/MobAnimationScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/MobClearSkillScheduler.java b/src/net/server/channel/task/MobClearSkillScheduler.java
similarity index 97%
rename from src/net/server/channel/worker/MobClearSkillScheduler.java
rename to src/net/server/channel/task/MobClearSkillScheduler.java
index 0f95e4ccc9..7c1880269d 100644
--- a/src/net/server/channel/worker/MobClearSkillScheduler.java
+++ b/src/net/server/channel/task/MobClearSkillScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/MobMistScheduler.java b/src/net/server/channel/task/MobMistScheduler.java
similarity index 97%
rename from src/net/server/channel/worker/MobMistScheduler.java
rename to src/net/server/channel/task/MobMistScheduler.java
index eb0822e3b4..f7494b879e 100644
--- a/src/net/server/channel/worker/MobMistScheduler.java
+++ b/src/net/server/channel/task/MobMistScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/MobStatusScheduler.java b/src/net/server/channel/task/MobStatusScheduler.java
similarity index 98%
rename from src/net/server/channel/worker/MobStatusScheduler.java
rename to src/net/server/channel/task/MobStatusScheduler.java
index 434a49a4c4..8de9577e7a 100644
--- a/src/net/server/channel/worker/MobStatusScheduler.java
+++ b/src/net/server/channel/task/MobStatusScheduler.java
@@ -17,11 +17,10 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import client.status.MonsterStatusEffect;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/net/server/channel/worker/OverallScheduler.java b/src/net/server/channel/task/OverallScheduler.java
similarity index 97%
rename from src/net/server/channel/worker/OverallScheduler.java
rename to src/net/server/channel/task/OverallScheduler.java
index 4b34c589da..ffcf9d0e9e 100644
--- a/src/net/server/channel/worker/OverallScheduler.java
+++ b/src/net/server/channel/task/OverallScheduler.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/channel/worker/SchedulerListener.java b/src/net/server/channel/task/SchedulerListener.java
similarity index 96%
rename from src/net/server/channel/worker/SchedulerListener.java
rename to src/net/server/channel/task/SchedulerListener.java
index 8e910df12c..fa3e82688b 100644
--- a/src/net/server/channel/worker/SchedulerListener.java
+++ b/src/net/server/channel/task/SchedulerListener.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.channel.worker;
+package net.server.channel.task;
import java.util.List;
diff --git a/src/net/server/coordinator/LoginStorage.java b/src/net/server/coordinator/login/LoginStorage.java
similarity index 98%
rename from src/net/server/coordinator/LoginStorage.java
rename to src/net/server/coordinator/login/LoginStorage.java
index 377bd113ee..f3d0ccd2ff 100644
--- a/src/net/server/coordinator/LoginStorage.java
+++ b/src/net/server/coordinator/login/LoginStorage.java
@@ -17,10 +17,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.login;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/net/server/coordinator/MapleLoginBypassCoordinator.java b/src/net/server/coordinator/login/MapleLoginBypassCoordinator.java
similarity index 98%
rename from src/net/server/coordinator/MapleLoginBypassCoordinator.java
rename to src/net/server/coordinator/login/MapleLoginBypassCoordinator.java
index cb90d84588..c52cd34732 100644
--- a/src/net/server/coordinator/MapleLoginBypassCoordinator.java
+++ b/src/net/server/coordinator/login/MapleLoginBypassCoordinator.java
@@ -17,10 +17,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.login;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/net/server/coordinator/MapleMatchCheckerCoordinator.java b/src/net/server/coordinator/matchchecker/MapleMatchCheckerCoordinator.java
similarity index 99%
rename from src/net/server/coordinator/MapleMatchCheckerCoordinator.java
rename to src/net/server/coordinator/matchchecker/MapleMatchCheckerCoordinator.java
index 79cef27403..5bfe6cf0c8 100644
--- a/src/net/server/coordinator/MapleMatchCheckerCoordinator.java
+++ b/src/net/server/coordinator/matchchecker/MapleMatchCheckerCoordinator.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.matchchecker;
import client.MapleCharacter;
import net.server.PlayerStorage;
diff --git a/src/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java b/src/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
index 8941dcc587..613c6cf18f 100644
--- a/src/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
+++ b/src/net/server/coordinator/matchchecker/listener/MatchCheckerCPQChallenge.java
@@ -20,7 +20,7 @@
package net.server.coordinator.matchchecker.listener;
import client.MapleCharacter;
-import constants.LanguageConstants;
+import constants.string.LanguageConstants;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
diff --git a/src/net/server/coordinator/matchchecker/listener/MatchCheckerGuildCreation.java b/src/net/server/coordinator/matchchecker/listener/MatchCheckerGuildCreation.java
index e5a481f296..6f4899d1d5 100644
--- a/src/net/server/coordinator/matchchecker/listener/MatchCheckerGuildCreation.java
+++ b/src/net/server/coordinator/matchchecker/listener/MatchCheckerGuildCreation.java
@@ -21,8 +21,7 @@ package net.server.coordinator.matchchecker.listener;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
import net.server.coordinator.matchchecker.AbstractMatchCheckerListener;
import net.server.coordinator.matchchecker.MatchCheckerListenerRecipe;
import net.server.guild.MapleGuild;
diff --git a/src/net/server/coordinator/MaplePartySearchCoordinator.java b/src/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java
similarity index 98%
rename from src/net/server/coordinator/MaplePartySearchCoordinator.java
rename to src/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java
index 866f76ac65..eec3116494 100644
--- a/src/net/server/coordinator/MaplePartySearchCoordinator.java
+++ b/src/net/server/coordinator/partysearch/MaplePartySearchCoordinator.java
@@ -17,15 +17,14 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.partysearch;
import client.MapleCharacter;
import client.MapleJob;
import config.YamlConfig;
-import constants.ServerConstants;
import java.io.File;
import net.server.world.MapleParty;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
import net.server.coordinator.partysearch.PartySearchEchelon;
import net.server.coordinator.partysearch.PartySearchStorage;
import tools.MaplePacketCreator;
@@ -44,6 +43,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.MonitoredReentrantReadWriteLock;
+import net.server.coordinator.world.MapleInviteCoordinator;
import provider.MapleData;
import provider.MapleDataProviderFactory;
import provider.MapleDataTool;
diff --git a/src/net/server/coordinator/partysearch/PartySearchCharacter.java b/src/net/server/coordinator/partysearch/PartySearchCharacter.java
index e7cdf50d07..b70ed0cc3a 100644
--- a/src/net/server/coordinator/partysearch/PartySearchCharacter.java
+++ b/src/net/server/coordinator/partysearch/PartySearchCharacter.java
@@ -20,7 +20,6 @@
package net.server.coordinator.partysearch;
import client.MapleCharacter;
-import net.server.coordinator.MaplePartySearchCoordinator;
import java.lang.ref.WeakReference;
diff --git a/src/net/server/coordinator/MapleSessionCoordinator.java b/src/net/server/coordinator/session/MapleSessionCoordinator.java
similarity index 99%
rename from src/net/server/coordinator/MapleSessionCoordinator.java
rename to src/net/server/coordinator/session/MapleSessionCoordinator.java
index f9e30e1f02..a071247052 100644
--- a/src/net/server/coordinator/MapleSessionCoordinator.java
+++ b/src/net/server/coordinator/session/MapleSessionCoordinator.java
@@ -17,12 +17,12 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.session;
+import net.server.coordinator.login.LoginStorage;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import net.server.Server;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/net/server/coordinator/MapleEventRecallCoordinator.java b/src/net/server/coordinator/world/MapleEventRecallCoordinator.java
similarity index 97%
rename from src/net/server/coordinator/MapleEventRecallCoordinator.java
rename to src/net/server/coordinator/world/MapleEventRecallCoordinator.java
index 6acb64be38..21b294a172 100644
--- a/src/net/server/coordinator/MapleEventRecallCoordinator.java
+++ b/src/net/server/coordinator/world/MapleEventRecallCoordinator.java
@@ -17,10 +17,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.world;
import config.YamlConfig;
-import constants.ServerConstants;
import scripting.event.EventInstanceManager;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/net/server/coordinator/MapleInviteCoordinator.java b/src/net/server/coordinator/world/MapleInviteCoordinator.java
similarity index 99%
rename from src/net/server/coordinator/MapleInviteCoordinator.java
rename to src/net/server/coordinator/world/MapleInviteCoordinator.java
index e2436795f3..ed0c1596df 100644
--- a/src/net/server/coordinator/MapleInviteCoordinator.java
+++ b/src/net/server/coordinator/world/MapleInviteCoordinator.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.world;
import client.MapleCharacter;
import tools.Pair;
diff --git a/src/net/server/coordinator/MapleMonsterAggroCoordinator.java b/src/net/server/coordinator/world/MapleMonsterAggroCoordinator.java
similarity index 99%
rename from src/net/server/coordinator/MapleMonsterAggroCoordinator.java
rename to src/net/server/coordinator/world/MapleMonsterAggroCoordinator.java
index 06a163d0d9..e95739cf00 100644
--- a/src/net/server/coordinator/MapleMonsterAggroCoordinator.java
+++ b/src/net/server/coordinator/world/MapleMonsterAggroCoordinator.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.coordinator;
+package net.server.coordinator.world;
import java.util.ArrayList;
import java.util.Collections;
@@ -31,7 +31,6 @@ import java.util.List;
import java.util.Set;
import config.YamlConfig;
-import constants.ServerConstants;
import client.MapleCharacter;
import java.util.concurrent.ScheduledFuture;
import net.server.Server;
diff --git a/src/net/server/guild/MapleAlliance.java b/src/net/server/guild/MapleAlliance.java
index 2a696b4b38..56a44597a4 100644
--- a/src/net/server/guild/MapleAlliance.java
+++ b/src/net/server/guild/MapleAlliance.java
@@ -31,9 +31,9 @@ import java.util.List;
import client.MapleCharacter;
import client.MapleClient;
import net.server.Server;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import net.server.world.MapleParty;
import net.server.world.MaplePartyCharacter;
import tools.DatabaseConnection;
diff --git a/src/net/server/guild/MapleGuild.java b/src/net/server/guild/MapleGuild.java
index c4776c2f1c..a682cda6d7 100644
--- a/src/net/server/guild/MapleGuild.java
+++ b/src/net/server/guild/MapleGuild.java
@@ -24,7 +24,6 @@ package net.server.guild;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -48,10 +47,10 @@ import net.server.channel.Channel;
import tools.DatabaseConnection;
import tools.MaplePacketCreator;
import net.server.audit.locks.MonitoredLockType;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
-import net.server.coordinator.MapleMatchCheckerCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
+import net.server.coordinator.matchchecker.MapleMatchCheckerCoordinator;
public class MapleGuild {
diff --git a/src/net/server/handlers/login/AfterLoginHandler.java b/src/net/server/handlers/login/AfterLoginHandler.java
index 5b2536e16c..f3acb93bf0 100644
--- a/src/net/server/handlers/login/AfterLoginHandler.java
+++ b/src/net/server/handlers/login/AfterLoginHandler.java
@@ -23,7 +23,7 @@ package net.server.handlers.login;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/handlers/login/CharSelectedHandler.java b/src/net/server/handlers/login/CharSelectedHandler.java
index b5e7ba5d48..00d2cbc22c 100644
--- a/src/net/server/handlers/login/CharSelectedHandler.java
+++ b/src/net/server/handlers/login/CharSelectedHandler.java
@@ -26,8 +26,8 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import net.AbstractMaplePacketHandler;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.apache.mina.core.session.IoSession;
import tools.MaplePacketCreator;
diff --git a/src/net/server/handlers/login/CharSelectedWithPicHandler.java b/src/net/server/handlers/login/CharSelectedWithPicHandler.java
index 31ac500d9f..5ee43ec4b5 100644
--- a/src/net/server/handlers/login/CharSelectedWithPicHandler.java
+++ b/src/net/server/handlers/login/CharSelectedWithPicHandler.java
@@ -5,8 +5,8 @@ import java.net.UnknownHostException;
import net.AbstractMaplePacketHandler;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.apache.mina.core.session.IoSession;
import tools.MaplePacketCreator;
diff --git a/src/net/server/handlers/login/LoginPasswordHandler.java b/src/net/server/handlers/login/LoginPasswordHandler.java
index 04756fe491..aff6fdce2d 100644
--- a/src/net/server/handlers/login/LoginPasswordHandler.java
+++ b/src/net/server/handlers/login/LoginPasswordHandler.java
@@ -27,7 +27,6 @@ import java.sql.SQLException;
import java.util.Calendar;
import config.YamlConfig;
-import constants.ServerConstants;
import net.MaplePacketHandler;
import net.server.Server;
import tools.BCrypt;
@@ -41,7 +40,7 @@ import java.sql.Statement;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import org.apache.mina.core.session.IoSession;
public final class LoginPasswordHandler implements MaplePacketHandler {
diff --git a/src/net/server/handlers/login/RegisterPicHandler.java b/src/net/server/handlers/login/RegisterPicHandler.java
index ed76cee00d..759eacf26a 100644
--- a/src/net/server/handlers/login/RegisterPicHandler.java
+++ b/src/net/server/handlers/login/RegisterPicHandler.java
@@ -9,8 +9,8 @@ import net.server.world.World;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import client.MapleClient;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import org.apache.mina.core.session.IoSession;
public final class RegisterPicHandler extends AbstractMaplePacketHandler {
diff --git a/src/net/server/handlers/login/RegisterPinHandler.java b/src/net/server/handlers/login/RegisterPinHandler.java
index 4d325996bc..65a3e667a9 100644
--- a/src/net/server/handlers/login/RegisterPinHandler.java
+++ b/src/net/server/handlers/login/RegisterPinHandler.java
@@ -23,7 +23,7 @@ package net.server.handlers.login;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/handlers/login/ServerlistRequestHandler.java b/src/net/server/handlers/login/ServerlistRequestHandler.java
index ba29947a4c..9391bafac4 100644
--- a/src/net/server/handlers/login/ServerlistRequestHandler.java
+++ b/src/net/server/handlers/login/ServerlistRequestHandler.java
@@ -22,7 +22,7 @@
package net.server.handlers.login;
import client.MapleClient;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.util.List;
import net.AbstractMaplePacketHandler;
import net.server.Server;
diff --git a/src/net/server/handlers/login/SetGenderHandler.java b/src/net/server/handlers/login/SetGenderHandler.java
index adaed709ac..3cf57342f8 100644
--- a/src/net/server/handlers/login/SetGenderHandler.java
+++ b/src/net/server/handlers/login/SetGenderHandler.java
@@ -25,7 +25,7 @@ package net.server.handlers.login;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
diff --git a/src/net/server/handlers/login/ViewAllCharHandler.java b/src/net/server/handlers/login/ViewAllCharHandler.java
index fb695f4474..edf3a5f7dc 100644
--- a/src/net/server/handlers/login/ViewAllCharHandler.java
+++ b/src/net/server/handlers/login/ViewAllCharHandler.java
@@ -24,7 +24,6 @@ package net.server.handlers.login;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.List;
import net.AbstractMaplePacketHandler;
import net.server.Server;
diff --git a/src/net/server/handlers/login/ViewAllCharRegisterPicHandler.java b/src/net/server/handlers/login/ViewAllCharRegisterPicHandler.java
index b308b8ad3c..008913d9ad 100644
--- a/src/net/server/handlers/login/ViewAllCharRegisterPicHandler.java
+++ b/src/net/server/handlers/login/ViewAllCharRegisterPicHandler.java
@@ -5,8 +5,8 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import net.AbstractMaplePacketHandler;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.apache.mina.core.session.IoSession;
import tools.MaplePacketCreator;
diff --git a/src/net/server/handlers/login/ViewAllCharSelectedHandler.java b/src/net/server/handlers/login/ViewAllCharSelectedHandler.java
index 66dae5c4ad..3a829a314d 100644
--- a/src/net/server/handlers/login/ViewAllCharSelectedHandler.java
+++ b/src/net/server/handlers/login/ViewAllCharSelectedHandler.java
@@ -26,8 +26,8 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import net.AbstractMaplePacketHandler;
import net.server.Server;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import net.server.world.World;
import org.apache.mina.core.session.IoSession;
import tools.MaplePacketCreator;
diff --git a/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java b/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java
index 21cb544776..b736856482 100644
--- a/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java
+++ b/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java
@@ -10,8 +10,8 @@ import tools.MaplePacketCreator;
import tools.Randomizer;
import tools.data.input.SeekableLittleEndianAccessor;
import client.MapleClient;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleSessionCoordinator.AntiMulticlientResult;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator.AntiMulticlientResult;
import org.apache.mina.core.session.IoSession;
public class ViewAllCharSelectedWithPicHandler extends AbstractMaplePacketHandler {
diff --git a/src/net/server/worker/BaseWorker.java b/src/net/server/task/BaseTask.java
similarity index 89%
rename from src/net/server/worker/BaseWorker.java
rename to src/net/server/task/BaseTask.java
index 1b40005331..f9b2775864 100644
--- a/src/net/server/worker/BaseWorker.java
+++ b/src/net/server/task/BaseTask.java
@@ -17,20 +17,20 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public abstract class BaseWorker implements Runnable {
+public abstract class BaseTask implements Runnable {
protected World wserv;
@Override
public void run() {}
- public BaseWorker(World world) {
+ public BaseTask(World world) {
wserv = world;
}
}
diff --git a/src/net/server/worker/BossLogWorker.java b/src/net/server/task/BossLogTask.java
similarity index 93%
rename from src/net/server/worker/BossLogWorker.java
rename to src/net/server/task/BossLogTask.java
index 0711e9d3b4..1a9b1b055e 100644
--- a/src/net/server/worker/BossLogWorker.java
+++ b/src/net/server/task/BossLogTask.java
@@ -17,14 +17,14 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import server.expeditions.MapleExpeditionBossLog;
/**
* @author Ronan
*/
-public class BossLogWorker implements Runnable {
+public class BossLogTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/CharacterAutosaverWorker.java b/src/net/server/task/CharacterAutosaverTask.java
similarity index 85%
rename from src/net/server/worker/CharacterAutosaverWorker.java
rename to src/net/server/task/CharacterAutosaverTask.java
index 32e5617ef5..8f9611a15a 100644
--- a/src/net/server/worker/CharacterAutosaverWorker.java
+++ b/src/net/server/task/CharacterAutosaverTask.java
@@ -17,18 +17,17 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import config.YamlConfig;
import net.server.world.World;
import client.MapleCharacter;
-import constants.ServerConstants;
import net.server.PlayerStorage;
/**
* @author Ronan
*/
-public class CharacterAutosaverWorker extends BaseWorker implements Runnable {
+public class CharacterAutosaverTask extends BaseTask implements Runnable { // thanks Alex (Alex09) for noticing these runnable classes are tasks, "workers" runs them
@Override
public void run() {
@@ -42,7 +41,7 @@ public class CharacterAutosaverWorker extends BaseWorker implements Runnable {
}
}
- public CharacterAutosaverWorker(World world) {
+ public CharacterAutosaverTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/CharacterDiseaseWorker.java b/src/net/server/task/CharacterDiseaseTask.java
similarity index 93%
rename from src/net/server/worker/CharacterDiseaseWorker.java
rename to src/net/server/task/CharacterDiseaseTask.java
index c9c5c2f7de..7e9c65692c 100644
--- a/src/net/server/worker/CharacterDiseaseWorker.java
+++ b/src/net/server/task/CharacterDiseaseTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.Server;
@@ -25,7 +25,7 @@ import net.server.Server;
* @author Ronan
* @info Thread responsible for announcing other players diseases when one enters into a map
*/
-public class CharacterDiseaseWorker implements Runnable {
+public class CharacterDiseaseTask implements Runnable {
@Override
public void run() {
Server serv = Server.getInstance();
diff --git a/src/net/server/worker/CouponWorker.java b/src/net/server/task/CouponTask.java
similarity index 94%
rename from src/net/server/worker/CouponWorker.java
rename to src/net/server/task/CouponTask.java
index 484c4b225f..ef97a4019f 100644
--- a/src/net/server/worker/CouponWorker.java
+++ b/src/net/server/task/CouponTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import java.sql.SQLException;
import net.server.Server;
@@ -27,7 +27,7 @@ import tools.FilePrinter;
* @author Ronan
* @info Thread responsible for maintaining coupons EXP & DROP effects active
*/
-public class CouponWorker implements Runnable {
+public class CouponTask implements Runnable {
@Override
public void run() {
try {
diff --git a/src/net/server/worker/DueyFredrickWorker.java b/src/net/server/task/DueyFredrickTask.java
similarity index 86%
rename from src/net/server/worker/DueyFredrickWorker.java
rename to src/net/server/task/DueyFredrickTask.java
index 5287140931..17a356134a 100644
--- a/src/net/server/worker/DueyFredrickWorker.java
+++ b/src/net/server/task/DueyFredrickTask.java
@@ -17,15 +17,15 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
-import client.processor.DueyProcessor;
-import client.processor.FredrickProcessor;
+import client.processor.npc.DueyProcessor;
+import client.processor.npc.FredrickProcessor;
/**
* @author Ronan
*/
-public class DueyFredrickWorker implements Runnable {
+public class DueyFredrickTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/EventRecallCoordinatorWorker.java b/src/net/server/task/EventRecallCoordinatorTask.java
similarity index 87%
rename from src/net/server/worker/EventRecallCoordinatorWorker.java
rename to src/net/server/task/EventRecallCoordinatorTask.java
index 35a6517fc2..370d930122 100644
--- a/src/net/server/worker/EventRecallCoordinatorWorker.java
+++ b/src/net/server/task/EventRecallCoordinatorTask.java
@@ -17,15 +17,15 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
-import net.server.coordinator.MapleEventRecallCoordinator;
+import net.server.coordinator.world.MapleEventRecallCoordinator;
/**
*
* @author Ronan
*/
-public class EventRecallCoordinatorWorker implements Runnable {
+public class EventRecallCoordinatorTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/FamilyDailyResetWorker.java b/src/net/server/task/FamilyDailyResetTask.java
similarity index 94%
rename from src/net/server/worker/FamilyDailyResetWorker.java
rename to src/net/server/task/FamilyDailyResetTask.java
index 92dc8e2672..6e18c6212b 100644
--- a/src/net/server/worker/FamilyDailyResetWorker.java
+++ b/src/net/server/task/FamilyDailyResetTask.java
@@ -1,4 +1,4 @@
-package net.server.worker;
+package net.server.task;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -10,11 +10,11 @@ import net.server.world.World;
import tools.DatabaseConnection;
import tools.FilePrinter;
-public class FamilyDailyResetWorker implements Runnable {
+public class FamilyDailyResetTask implements Runnable {
private final World world;
- public FamilyDailyResetWorker(World world) {
+ public FamilyDailyResetTask(World world) {
this.world = world;
}
diff --git a/src/net/server/worker/FishingWorker.java b/src/net/server/task/FishingTask.java
similarity index 88%
rename from src/net/server/worker/FishingWorker.java
rename to src/net/server/task/FishingTask.java
index 56eeb5fe46..ba154ecc60 100644
--- a/src/net/server/worker/FishingWorker.java
+++ b/src/net/server/task/FishingTask.java
@@ -17,21 +17,21 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class FishingWorker extends BaseWorker implements Runnable {
+public class FishingTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runCheckFishingSchedule();
}
- public FishingWorker(World world) {
+ public FishingTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/HiredMerchantWorker.java b/src/net/server/task/HiredMerchantTask.java
similarity index 87%
rename from src/net/server/worker/HiredMerchantWorker.java
rename to src/net/server/task/HiredMerchantTask.java
index 67a066ac56..cf0ca17386 100644
--- a/src/net/server/worker/HiredMerchantWorker.java
+++ b/src/net/server/task/HiredMerchantTask.java
@@ -17,21 +17,21 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class HiredMerchantWorker extends BaseWorker implements Runnable {
+public class HiredMerchantTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runHiredMerchantSchedule();
}
- public HiredMerchantWorker(World world) {
+ public HiredMerchantTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/InvitationWorker.java b/src/net/server/task/InvitationTask.java
similarity index 88%
rename from src/net/server/worker/InvitationWorker.java
rename to src/net/server/task/InvitationTask.java
index 87a171bef4..6aa153f0d0 100644
--- a/src/net/server/worker/InvitationWorker.java
+++ b/src/net/server/task/InvitationTask.java
@@ -17,14 +17,14 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
-import net.server.coordinator.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator;
/**
* @author Ronan
*/
-public class InvitationWorker implements Runnable {
+public class InvitationTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/LoginCoordinatorWorker.java b/src/net/server/task/LoginCoordinatorTask.java
similarity index 87%
rename from src/net/server/worker/LoginCoordinatorWorker.java
rename to src/net/server/task/LoginCoordinatorTask.java
index 0bb2345547..b51d312069 100644
--- a/src/net/server/worker/LoginCoordinatorWorker.java
+++ b/src/net/server/task/LoginCoordinatorTask.java
@@ -17,15 +17,15 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
-import net.server.coordinator.MapleSessionCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
/**
*
* @author Ronan
*/
-public class LoginCoordinatorWorker implements Runnable {
+public class LoginCoordinatorTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/LoginStorageWorker.java b/src/net/server/task/LoginStorageTask.java
similarity index 84%
rename from src/net/server/worker/LoginStorageWorker.java
rename to src/net/server/task/LoginStorageTask.java
index e71c533ffc..4975dd37da 100644
--- a/src/net/server/worker/LoginStorageWorker.java
+++ b/src/net/server/task/LoginStorageTask.java
@@ -17,16 +17,16 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
-import net.server.coordinator.MapleSessionCoordinator;
-import net.server.coordinator.MapleLoginBypassCoordinator;
+import net.server.coordinator.session.MapleSessionCoordinator;
+import net.server.coordinator.login.MapleLoginBypassCoordinator;
/**
*
* @author Ronan
*/
-public class LoginStorageWorker implements Runnable {
+public class LoginStorageTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/MapOwnershipWorker.java b/src/net/server/task/MapOwnershipTask.java
similarity index 88%
rename from src/net/server/worker/MapOwnershipWorker.java
rename to src/net/server/task/MapOwnershipTask.java
index adc201de26..cc61e18554 100644
--- a/src/net/server/worker/MapOwnershipWorker.java
+++ b/src/net/server/task/MapOwnershipTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
import net.server.channel.Channel;
@@ -25,7 +25,7 @@ import net.server.channel.Channel;
/**
* @author Ronan
*/
-public class MapOwnershipWorker extends BaseWorker implements Runnable {
+public class MapOwnershipTask extends BaseTask implements Runnable {
@Override
public void run() {
@@ -34,7 +34,7 @@ public class MapOwnershipWorker extends BaseWorker implements Runnable {
}
}
- public MapOwnershipWorker(World world) {
+ public MapOwnershipTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/MountTirednessWorker.java b/src/net/server/task/MountTirednessTask.java
similarity index 87%
rename from src/net/server/worker/MountTirednessWorker.java
rename to src/net/server/task/MountTirednessTask.java
index a0244af19d..1b5277eea0 100644
--- a/src/net/server/worker/MountTirednessWorker.java
+++ b/src/net/server/task/MountTirednessTask.java
@@ -17,21 +17,21 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class MountTirednessWorker extends BaseWorker implements Runnable {
+public class MountTirednessTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runMountSchedule();
}
- public MountTirednessWorker(World world) {
+ public MountTirednessTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/PartySearchWorker.java b/src/net/server/task/PartySearchTask.java
similarity index 88%
rename from src/net/server/worker/PartySearchWorker.java
rename to src/net/server/task/PartySearchTask.java
index aefa89325d..6adea657b8 100644
--- a/src/net/server/worker/PartySearchWorker.java
+++ b/src/net/server/task/PartySearchTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
@@ -25,14 +25,14 @@ import net.server.world.World;
*
* @author Ronan
*/
-public class PartySearchWorker extends BaseWorker implements Runnable {
+public class PartySearchTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runPartySearchUpdateSchedule();
}
- public PartySearchWorker(World world) {
+ public PartySearchTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/PetFullnessWorker.java b/src/net/server/task/PetFullnessTask.java
similarity index 88%
rename from src/net/server/worker/PetFullnessWorker.java
rename to src/net/server/task/PetFullnessTask.java
index 23c9f2b23a..5fe6a58fc9 100644
--- a/src/net/server/worker/PetFullnessWorker.java
+++ b/src/net/server/task/PetFullnessTask.java
@@ -17,21 +17,21 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class PetFullnessWorker extends BaseWorker implements Runnable {
+public class PetFullnessTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runPetSchedule();
}
- public PetFullnessWorker(World world) {
+ public PetFullnessTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/RankingCommandWorker.java b/src/net/server/task/RankingCommandTask.java
similarity index 92%
rename from src/net/server/worker/RankingCommandWorker.java
rename to src/net/server/task/RankingCommandTask.java
index de0077021a..61a5dd0c93 100644
--- a/src/net/server/worker/RankingCommandWorker.java
+++ b/src/net/server/task/RankingCommandTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.Server;
@@ -25,7 +25,7 @@ import net.server.Server;
*
* @author Ronan
*/
-public class RankingCommandWorker implements Runnable {
+public class RankingCommandTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/RankingLoginWorker.java b/src/net/server/task/RankingLoginTask.java
similarity index 97%
rename from src/net/server/worker/RankingLoginWorker.java
rename to src/net/server/task/RankingLoginTask.java
index 6288fef75f..c56a9ea4db 100644
--- a/src/net/server/worker/RankingLoginWorker.java
+++ b/src/net/server/task/RankingLoginTask.java
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -28,7 +28,7 @@ import java.sql.SQLException;
import client.MapleJob;
import config.YamlConfig;
import tools.DatabaseConnection;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import net.server.Server;
/**
@@ -36,7 +36,7 @@ import net.server.Server;
* @author Quit
* @author Ronan
*/
-public class RankingLoginWorker implements Runnable {
+public class RankingLoginTask implements Runnable {
private Connection con;
private long lastUpdate = System.currentTimeMillis();
diff --git a/src/net/server/worker/ReleaseLockWorker.java b/src/net/server/task/ReleaseLockTask.java
similarity index 93%
rename from src/net/server/worker/ReleaseLockWorker.java
rename to src/net/server/task/ReleaseLockTask.java
index ee567ee02c..c887d5059e 100644
--- a/src/net/server/worker/ReleaseLockWorker.java
+++ b/src/net/server/task/ReleaseLockTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.audit.LockCollector;
@@ -25,7 +25,7 @@ import net.server.audit.LockCollector;
* @author Ronan
* @info Thread responsible for expiring locks signalized for dispose.
*/
-public class ReleaseLockWorker implements Runnable {
+public class ReleaseLockTask implements Runnable {
@Override
public void run() {
LockCollector.getInstance().runLockCollector();
diff --git a/src/net/server/worker/RespawnWorker.java b/src/net/server/task/RespawnTask.java
similarity index 89%
rename from src/net/server/worker/RespawnWorker.java
rename to src/net/server/task/RespawnTask.java
index f5eda668fa..0a3c74078d 100644
--- a/src/net/server/worker/RespawnWorker.java
+++ b/src/net/server/task/RespawnTask.java
@@ -1,4 +1,4 @@
-package net.server.worker;
+package net.server.task;
import net.server.PlayerStorage;
import net.server.Server;
@@ -8,7 +8,7 @@ import server.maps.MapleMapManager;
/**
* @author Resinate
*/
-public class RespawnWorker implements Runnable {
+public class RespawnTask implements Runnable {
@Override
public void run() {
diff --git a/src/net/server/worker/ServerMessageWorker.java b/src/net/server/task/ServerMessageTask.java
similarity index 89%
rename from src/net/server/worker/ServerMessageWorker.java
rename to src/net/server/task/ServerMessageTask.java
index aab7456b64..bac3de329d 100644
--- a/src/net/server/worker/ServerMessageWorker.java
+++ b/src/net/server/task/ServerMessageTask.java
@@ -17,14 +17,14 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class ServerMessageWorker extends BaseWorker implements Runnable {
+public class ServerMessageTask extends BaseTask implements Runnable {
@Override
public void run() {
@@ -34,7 +34,7 @@ public class ServerMessageWorker extends BaseWorker implements Runnable {
wserv.runDisabledServerMessagesSchedule();
}
- public ServerMessageWorker(World world) {
+ public ServerMessageTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/TimedMapObjectWorker.java b/src/net/server/task/TimedMapObjectTask.java
similarity index 87%
rename from src/net/server/worker/TimedMapObjectWorker.java
rename to src/net/server/task/TimedMapObjectTask.java
index 9f1576567e..ece2abd337 100644
--- a/src/net/server/worker/TimedMapObjectWorker.java
+++ b/src/net/server/task/TimedMapObjectTask.java
@@ -17,21 +17,21 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import net.server.world.World;
/**
* @author Ronan
*/
-public class TimedMapObjectWorker extends BaseWorker implements Runnable {
+public class TimedMapObjectTask extends BaseTask implements Runnable {
@Override
public void run() {
wserv.runTimedMapObjectSchedule();
}
- public TimedMapObjectWorker(World world) {
+ public TimedMapObjectTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/TimeoutWorker.java b/src/net/server/task/TimeoutTask.java
similarity index 82%
rename from src/net/server/worker/TimeoutWorker.java
rename to src/net/server/task/TimeoutTask.java
index f9c7b921b6..1ecdfc5d35 100644
--- a/src/net/server/worker/TimeoutWorker.java
+++ b/src/net/server/task/TimeoutTask.java
@@ -1,8 +1,7 @@
-package net.server.worker;
+package net.server.task;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
import net.server.world.World;
import tools.FilePrinter;
@@ -12,7 +11,7 @@ import java.util.Collection;
*
* @author Shavit
*/
-public class TimeoutWorker extends BaseWorker implements Runnable {
+public class TimeoutTask extends BaseTask implements Runnable {
@Override
public void run() {
long time = System.currentTimeMillis();
@@ -25,7 +24,7 @@ public class TimeoutWorker extends BaseWorker implements Runnable {
}
}
- public TimeoutWorker(World world) {
+ public TimeoutTask(World world) {
super(world);
}
}
diff --git a/src/net/server/worker/WeddingReservationWorker.java b/src/net/server/task/WeddingReservationTask.java
similarity index 92%
rename from src/net/server/worker/WeddingReservationWorker.java
rename to src/net/server/task/WeddingReservationTask.java
index 8ee90890c4..b7a9b0bcf0 100644
--- a/src/net/server/worker/WeddingReservationWorker.java
+++ b/src/net/server/task/WeddingReservationTask.java
@@ -17,7 +17,7 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package net.server.worker;
+package net.server.task;
import java.util.Set;
import net.server.world.World;
@@ -27,7 +27,7 @@ import tools.Pair;
/**
* @author Ronan
*/
-public class WeddingReservationWorker extends BaseWorker implements Runnable {
+public class WeddingReservationTask extends BaseTask implements Runnable {
@Override
public void run() {
@@ -50,7 +50,7 @@ public class WeddingReservationWorker extends BaseWorker implements Runnable {
}
}
- public WeddingReservationWorker(World world) {
+ public WeddingReservationTask(World world) {
super(world);
}
}
diff --git a/src/net/server/world/MapleParty.java b/src/net/server/world/MapleParty.java
index d6758c77e4..ec7aaa167e 100644
--- a/src/net/server/world/MapleParty.java
+++ b/src/net/server/world/MapleParty.java
@@ -24,7 +24,6 @@ package net.server.world;
import client.MapleCharacter;
import client.MapleClient;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
@@ -37,7 +36,7 @@ import net.server.audit.LockCollector;
import net.server.audit.locks.MonitoredReentrantLock;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
-import net.server.coordinator.MapleMatchCheckerCoordinator;
+import net.server.coordinator.matchchecker.MapleMatchCheckerCoordinator;
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
import scripting.event.EventInstanceManager;
import server.maps.MapleDoor;
diff --git a/src/net/server/world/World.java b/src/net/server/world/World.java
index cd9c159c7e..b46b42a884 100644
--- a/src/net/server/world/World.java
+++ b/src/net/server/world/World.java
@@ -28,10 +28,10 @@ import client.BuddylistEntry;
import client.MapleCharacter;
import client.MapleFamily;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ServerConstants;
-import java.sql.Connection;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -79,26 +79,26 @@ import net.server.audit.locks.MonitoredReentrantReadWriteLock;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import net.server.channel.Channel;
import net.server.channel.CharacterIdChannelPair;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleMatchCheckerCoordinator;
-import net.server.coordinator.MaplePartySearchCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.matchchecker.MapleMatchCheckerCoordinator;
+import net.server.coordinator.partysearch.MaplePartySearchCoordinator;
import net.server.guild.MapleGuild;
import net.server.guild.MapleGuildCharacter;
import net.server.guild.MapleGuildSummary;
-import net.server.worker.CharacterAutosaverWorker;
-import net.server.worker.FamilyDailyResetWorker;
-import net.server.worker.FishingWorker;
-import net.server.worker.HiredMerchantWorker;
-import net.server.worker.MapOwnershipWorker;
-import net.server.worker.MountTirednessWorker;
-import net.server.worker.PartySearchWorker;
-import net.server.worker.PetFullnessWorker;
-import net.server.worker.ServerMessageWorker;
-import net.server.worker.TimedMapObjectWorker;
-import net.server.worker.TimeoutWorker;
-import net.server.worker.WeddingReservationWorker;
+import net.server.task.CharacterAutosaverTask;
+import net.server.task.FamilyDailyResetTask;
+import net.server.task.FishingTask;
+import net.server.task.HiredMerchantTask;
+import net.server.task.MapOwnershipTask;
+import net.server.task.MountTirednessTask;
+import net.server.task.PartySearchTask;
+import net.server.task.PetFullnessTask;
+import net.server.task.ServerMessageTask;
+import net.server.task.TimedMapObjectTask;
+import net.server.task.TimeoutTask;
+import net.server.task.WeddingReservationTask;
import tools.DatabaseConnection;
import tools.MaplePacketCreator;
import tools.Pair;
@@ -206,22 +206,22 @@ public class World {
}
TimerManager tman = TimerManager.getInstance();
- petsSchedule = tman.register(new PetFullnessWorker(this), 60 * 1000, 60 * 1000);
- srvMessagesSchedule = tman.register(new ServerMessageWorker(this), 10 * 1000, 10 * 1000);
- mountsSchedule = tman.register(new MountTirednessWorker(this), 60 * 1000, 60 * 1000);
- merchantSchedule = tman.register(new HiredMerchantWorker(this), 10 * 60 * 1000, 10 * 60 * 1000);
- timedMapObjectsSchedule = tman.register(new TimedMapObjectWorker(this), 60 * 1000, 60 * 1000);
- charactersSchedule = tman.register(new CharacterAutosaverWorker(this), 60 * 60 * 1000, 60 * 60 * 1000);
- marriagesSchedule = tman.register(new WeddingReservationWorker(this), YamlConfig.config.server.WEDDING_RESERVATION_INTERVAL * 60 * 1000, YamlConfig.config.server.WEDDING_RESERVATION_INTERVAL * 60 * 1000);
- mapOwnershipSchedule = tman.register(new MapOwnershipWorker(this), 20 * 1000, 20 * 1000);
- fishingSchedule = tman.register(new FishingWorker(this), 10 * 1000, 10 * 1000);
- partySearchSchedule = tman.register(new PartySearchWorker(this), 10 * 1000, 10 * 1000);
- timeoutSchedule = tman.register(new TimeoutWorker(this), 10 * 1000, 10 * 1000);
+ petsSchedule = tman.register(new PetFullnessTask(this), 60 * 1000, 60 * 1000);
+ srvMessagesSchedule = tman.register(new ServerMessageTask(this), 10 * 1000, 10 * 1000);
+ mountsSchedule = tman.register(new MountTirednessTask(this), 60 * 1000, 60 * 1000);
+ merchantSchedule = tman.register(new HiredMerchantTask(this), 10 * 60 * 1000, 10 * 60 * 1000);
+ timedMapObjectsSchedule = tman.register(new TimedMapObjectTask(this), 60 * 1000, 60 * 1000);
+ charactersSchedule = tman.register(new CharacterAutosaverTask(this), 60 * 60 * 1000, 60 * 60 * 1000);
+ marriagesSchedule = tman.register(new WeddingReservationTask(this), ServerConstants.WEDDING_RESERVATION_INTERVAL * 60 * 1000, ServerConstants.WEDDING_RESERVATION_INTERVAL * 60 * 1000);
+ mapOwnershipSchedule = tman.register(new MapOwnershipTask(this), 20 * 1000, 20 * 1000);
+ fishingSchedule = tman.register(new FishingTask(this), 10 * 1000, 10 * 1000);
+ partySearchSchedule = tman.register(new PartySearchTask(this), 10 * 1000, 10 * 1000);
+ timeoutSchedule = tman.register(new TimeoutTask(this), 10 * 1000, 10 * 1000);
if(YamlConfig.config.server.USE_FAMILY_SYSTEM) {
long timeLeft = Server.getTimeLeftForNextDay();
- FamilyDailyResetWorker.resetEntitlementUsage(this);
- tman.register(new FamilyDailyResetWorker(this), 24 * 60 * 60 * 1000, timeLeft);
+ FamilyDailyResetTask.resetEntitlementUsage(this);
+ tman.register(new FamilyDailyResetTask(this), 24 * 60 * 60 * 1000, timeLeft);
}
}
diff --git a/src/provider/wz/XMLDomMapleData.java b/src/provider/wz/XMLDomMapleData.java
index 13606f3e07..b24ec2726a 100644
--- a/src/provider/wz/XMLDomMapleData.java
+++ b/src/provider/wz/XMLDomMapleData.java
@@ -21,7 +21,7 @@
*/
package provider.wz;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.awt.Point;
import java.io.File;
import java.io.FileInputStream;
diff --git a/src/scripting/AbstractPlayerInteraction.java b/src/scripting/AbstractPlayerInteraction.java
index 3f59073190..7ea9a0ec04 100644
--- a/src/scripting/AbstractPlayerInteraction.java
+++ b/src/scripting/AbstractPlayerInteraction.java
@@ -66,9 +66,9 @@ import client.inventory.MapleInventoryType;
import client.inventory.MaplePet;
import client.inventory.ModifyInventory;
import client.inventory.manipulator.MapleInventoryManipulator;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import server.MapleMarriage;
import server.expeditions.MapleExpeditionBossLog;
import server.life.MapleNPC;
diff --git a/src/scripting/AbstractScriptManager.java b/src/scripting/AbstractScriptManager.java
index 0b0ceeafde..ec9ad7f043 100644
--- a/src/scripting/AbstractScriptManager.java
+++ b/src/scripting/AbstractScriptManager.java
@@ -29,7 +29,7 @@ import java.io.IOException;
import javax.script.*;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
import jdk.nashorn.api.scripting.NashornScriptEngine;
import tools.FilePrinter;
diff --git a/src/scripting/event/EventInstanceManager.java b/src/scripting/event/EventInstanceManager.java
index 2f888ac7ba..cf08ac3ed4 100644
--- a/src/scripting/event/EventInstanceManager.java
+++ b/src/scripting/event/EventInstanceManager.java
@@ -51,8 +51,8 @@ import server.maps.MapleReactor;
import client.MapleCharacter;
import client.SkillFactory;
import client.Skill;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import java.awt.Point;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -60,9 +60,9 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
import java.util.logging.Level;
import java.util.logging.Logger;
-import net.server.coordinator.MapleEventRecallCoordinator;
+import net.server.coordinator.world.MapleEventRecallCoordinator;
import scripting.AbstractPlayerInteraction;
-import scripting.event.worker.EventScriptScheduler;
+import scripting.event.scheduler.EventScriptScheduler;
import server.MapleItemInformationProvider;
import server.ThreadManager;
import server.life.MapleLifeFactory;
diff --git a/src/scripting/event/EventManager.java b/src/scripting/event/EventManager.java
index d7245805b5..d9661a6239 100644
--- a/src/scripting/event/EventManager.java
+++ b/src/scripting/event/EventManager.java
@@ -34,8 +34,8 @@ import java.util.logging.Logger;
import javax.script.ScriptException;
-import constants.ServerConstants;
-import constants.GameConstants;
+import constants.net.ServerConstants;
+import constants.game.GameConstants;
import client.MapleCharacter;
import net.server.Server;
import net.server.world.World;
@@ -43,7 +43,7 @@ import net.server.channel.Channel;
import net.server.guild.MapleGuild;
import net.server.world.MapleParty;
import net.server.world.MaplePartyCharacter;
-import scripting.event.worker.EventScriptScheduler;
+import scripting.event.scheduler.EventScriptScheduler;
import server.MapleMarriage;
import server.expeditions.MapleExpedition;
import server.maps.MapleMap;
@@ -925,7 +925,7 @@ public class EventManager {
}
private void fillEimQueue() {
- ThreadManager.getInstance().newTask(new EventManagerWorker()); //call new thread to fill up readied instances queue
+ ThreadManager.getInstance().newTask(new EventManagerTask()); //call new thread to fill up readied instances queue
}
private EventInstanceManager getReadyInstance() {
@@ -974,7 +974,7 @@ public class EventManager {
instantiateQueuedInstance(); // keep filling the queue until reach threshold.
}
- private class EventManagerWorker implements Runnable {
+ private class EventManagerTask implements Runnable {
@Override
public void run() {
diff --git a/src/scripting/event/EventScheduledFuture.java b/src/scripting/event/EventScheduledFuture.java
index c653a17f61..647b74675b 100644
--- a/src/scripting/event/EventScheduledFuture.java
+++ b/src/scripting/event/EventScheduledFuture.java
@@ -19,7 +19,7 @@
*/
package scripting.event;
-import scripting.event.worker.EventScriptScheduler;
+import scripting.event.scheduler.EventScriptScheduler;
/**
*
diff --git a/src/scripting/event/worker/EventScriptScheduler.java b/src/scripting/event/scheduler/EventScriptScheduler.java
similarity index 98%
rename from src/scripting/event/worker/EventScriptScheduler.java
rename to src/scripting/event/scheduler/EventScriptScheduler.java
index fc935e0572..94830ecfac 100644
--- a/src/scripting/event/worker/EventScriptScheduler.java
+++ b/src/scripting/event/scheduler/EventScriptScheduler.java
@@ -17,10 +17,9 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
-package scripting.event.worker;
+package scripting.event.scheduler;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
diff --git a/src/scripting/npc/NPCConversationManager.java b/src/scripting/npc/NPCConversationManager.java
index 549c5e3c02..1d59e12836 100644
--- a/src/scripting/npc/NPCConversationManager.java
+++ b/src/scripting/npc/NPCConversationManager.java
@@ -25,7 +25,6 @@ import java.io.File;
import java.sql.SQLException;
import config.YamlConfig;
-import constants.ServerConstants;
import net.server.Server;
import net.server.guild.MapleAlliance;
import net.server.guild.MapleGuild;
@@ -58,9 +57,9 @@ import client.SkillFactory;
import client.inventory.Item;
import client.inventory.ItemFactory;
import client.inventory.MaplePet;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.LanguageConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
+import constants.string.LanguageConstants;
import net.server.PlayerStorage;
import net.server.channel.Channel;
import net.server.coordinator.matchchecker.MatchCheckerListenerFactory.MatchCheckerType;
diff --git a/src/scripting/quest/QuestScriptManager.java b/src/scripting/quest/QuestScriptManager.java
index 8d9628769e..6116cbbfbc 100644
--- a/src/scripting/quest/QuestScriptManager.java
+++ b/src/scripting/quest/QuestScriptManager.java
@@ -29,7 +29,7 @@ import jdk.nashorn.api.scripting.NashornScriptEngine;
import scripting.AbstractScriptManager;
import server.quest.MapleQuest;
import tools.FilePrinter;
-import constants.GameConstants;
+import constants.game.GameConstants;
import client.MapleClient;
import client.MapleQuestStatus;
diff --git a/src/scripting/reactor/ReactorActionManager.java b/src/scripting/reactor/ReactorActionManager.java
index 67c8d1f602..dd43569083 100644
--- a/src/scripting/reactor/ReactorActionManager.java
+++ b/src/scripting/reactor/ReactorActionManager.java
@@ -27,8 +27,7 @@ import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/src/server/CashShop.java b/src/server/CashShop.java
index 8a245e3167..19b99e9b03 100644
--- a/src/server/CashShop.java
+++ b/src/server/CashShop.java
@@ -48,8 +48,8 @@ import client.inventory.Item;
import client.inventory.ItemFactory;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import java.util.Collections;
import net.server.audit.locks.MonitoredLockType;
diff --git a/src/server/MakerItemFactory.java b/src/server/MakerItemFactory.java
index c7201b1fe7..25591b71f9 100644
--- a/src/server/MakerItemFactory.java
+++ b/src/server/MakerItemFactory.java
@@ -22,8 +22,7 @@
package server;
import config.YamlConfig;
-import constants.EquipType;
-import constants.ServerConstants;
+import constants.inventory.EquipType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
diff --git a/src/server/MapleItemInformationProvider.java b/src/server/MapleItemInformationProvider.java
index c2206724c2..4a2148e8c5 100644
--- a/src/server/MapleItemInformationProvider.java
+++ b/src/server/MapleItemInformationProvider.java
@@ -60,9 +60,9 @@ 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.net.ServerConstants;
+import constants.inventory.EquipSlot;
+import constants.inventory.ItemConstants;
import constants.skills.Assassin;
import constants.skills.Gunslinger;
import constants.skills.NightWalker;
diff --git a/src/server/MapleShop.java b/src/server/MapleShop.java
index 3364e36ee8..3c75335311 100644
--- a/src/server/MapleShop.java
+++ b/src/server/MapleShop.java
@@ -26,7 +26,7 @@ import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.inventory.MaplePet;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/src/server/MapleStatEffect.java b/src/server/MapleStatEffect.java
index b3044446c8..6270afd3d9 100644
--- a/src/server/MapleStatEffect.java
+++ b/src/server/MapleStatEffect.java
@@ -59,8 +59,8 @@ import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import constants.skills.Aran;
import constants.skills.Assassin;
import constants.skills.Bandit;
diff --git a/src/server/MapleStorageInventory.java b/src/server/MapleStorageInventory.java
index d224e89b5d..767ce4caa2 100644
--- a/src/server/MapleStorageInventory.java
+++ b/src/server/MapleStorageInventory.java
@@ -26,8 +26,7 @@ import java.util.List;
import java.util.Map;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import client.MapleClient;
import client.inventory.Equip;
diff --git a/src/server/MapleTrade.java b/src/server/MapleTrade.java
index dea46307ad..c5a6a50d1a 100644
--- a/src/server/MapleTrade.java
+++ b/src/server/MapleTrade.java
@@ -35,12 +35,12 @@ import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
-import constants.GameConstants;
-import constants.ServerConstants;
-import net.server.coordinator.MapleInviteCoordinator;
-import net.server.coordinator.MapleInviteCoordinator.InviteResult;
-import net.server.coordinator.MapleInviteCoordinator.InviteType;
-import net.server.coordinator.MapleInviteCoordinator.MapleInviteResult;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
+import net.server.coordinator.world.MapleInviteCoordinator;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteResult;
+import net.server.coordinator.world.MapleInviteCoordinator.InviteType;
+import net.server.coordinator.world.MapleInviteCoordinator.MapleInviteResult;
import tools.Pair;
/**
diff --git a/src/server/expeditions/MapleExpeditionBossLog.java b/src/server/expeditions/MapleExpeditionBossLog.java
index 8dadc6001b..87c91bf828 100644
--- a/src/server/expeditions/MapleExpeditionBossLog.java
+++ b/src/server/expeditions/MapleExpeditionBossLog.java
@@ -29,7 +29,6 @@ import java.util.LinkedList;
import java.util.List;
import config.YamlConfig;
-import constants.ServerConstants;
import tools.DatabaseConnection;
import tools.Pair;
diff --git a/src/server/expeditions/MapleExpeditionType.java b/src/server/expeditions/MapleExpeditionType.java
index 3b1c2f96f6..ca2cefd457 100644
--- a/src/server/expeditions/MapleExpeditionType.java
+++ b/src/server/expeditions/MapleExpeditionType.java
@@ -23,7 +23,6 @@
package server.expeditions;
import config.YamlConfig;
-import constants.ServerConstants;
/**
*
diff --git a/src/server/life/ChangeableStats.java b/src/server/life/ChangeableStats.java
index 61b3de01af..876cc7b553 100644
--- a/src/server/life/ChangeableStats.java
+++ b/src/server/life/ChangeableStats.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package server.life;
-import constants.GameConstants;
+import constants.game.GameConstants;
public class ChangeableStats extends OverrideMonsterStats {
diff --git a/src/server/life/MapleMonster.java b/src/server/life/MapleMonster.java
index b6e4f44380..931ee5a0f2 100644
--- a/src/server/life/MapleMonster.java
+++ b/src/server/life/MapleMonster.java
@@ -31,7 +31,6 @@ import client.SkillFactory;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
import config.YamlConfig;
-import constants.ServerConstants;
import constants.skills.Crusader;
import constants.skills.FPMage;
import constants.skills.Hermit;
@@ -73,7 +72,7 @@ import tools.Randomizer;
import net.server.audit.LockCollector;
import net.server.audit.locks.MonitoredLockType;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
-import net.server.coordinator.MapleMonsterAggroCoordinator;
+import net.server.coordinator.world.MapleMonsterAggroCoordinator;
import server.MapleStatEffect;
import server.loot.MapleLootManager;
import server.maps.MapleSummon;
diff --git a/src/server/life/MapleMonsterInformationProvider.java b/src/server/life/MapleMonsterInformationProvider.java
index 45d6f7fa6e..66e0d385b6 100644
--- a/src/server/life/MapleMonsterInformationProvider.java
+++ b/src/server/life/MapleMonsterInformationProvider.java
@@ -21,8 +21,7 @@
package server.life;
import config.YamlConfig;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.inventory.ItemConstants;
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
diff --git a/src/server/life/MaplePlayerNPC.java b/src/server/life/MaplePlayerNPC.java
index 9b31d70235..bddfba1b71 100644
--- a/src/server/life/MaplePlayerNPC.java
+++ b/src/server/life/MaplePlayerNPC.java
@@ -43,8 +43,8 @@ import client.MapleCharacter;
import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import constants.GameConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.net.ServerConstants;
import net.server.Server;
import net.server.channel.Channel;
import net.server.world.World;
diff --git a/src/server/life/MobSkill.java b/src/server/life/MobSkill.java
index db3c18ffcd..0808dda53b 100644
--- a/src/server/life/MobSkill.java
+++ b/src/server/life/MobSkill.java
@@ -29,7 +29,7 @@ import java.util.List;
import client.MapleCharacter;
import client.MapleDisease;
import client.status.MonsterStatus;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.util.LinkedList;
import java.util.Map;
import tools.Randomizer;
diff --git a/src/server/life/positioner/MaplePlayerNPCPodium.java b/src/server/life/positioner/MaplePlayerNPCPodium.java
index ffe33daaf9..65dce56641 100644
--- a/src/server/life/positioner/MaplePlayerNPCPodium.java
+++ b/src/server/life/positioner/MaplePlayerNPCPodium.java
@@ -20,7 +20,6 @@
package server.life.positioner;
import config.YamlConfig;
-import constants.ServerConstants;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/server/life/positioner/MaplePlayerNPCPositioner.java b/src/server/life/positioner/MaplePlayerNPCPositioner.java
index 7fcd145489..4945ab0935 100644
--- a/src/server/life/positioner/MaplePlayerNPCPositioner.java
+++ b/src/server/life/positioner/MaplePlayerNPCPositioner.java
@@ -20,7 +20,6 @@
package server.life.positioner;
import config.YamlConfig;
-import constants.ServerConstants;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.ArrayList;
diff --git a/src/server/maps/MapleDoor.java b/src/server/maps/MapleDoor.java
index de2749548c..d2860450bf 100644
--- a/src/server/maps/MapleDoor.java
+++ b/src/server/maps/MapleDoor.java
@@ -28,7 +28,7 @@ import config.YamlConfig;
import tools.Pair;
import client.MapleCharacter;
-import constants.ServerConstants;
+import constants.net.ServerConstants;
/**
*
diff --git a/src/server/maps/MapleGenericPortal.java b/src/server/maps/MapleGenericPortal.java
index cd0d6856a3..38d4301808 100644
--- a/src/server/maps/MapleGenericPortal.java
+++ b/src/server/maps/MapleGenericPortal.java
@@ -23,7 +23,7 @@ package server.maps;
import client.MapleClient;
import client.MapleCharacter;
-import constants.GameConstants;
+import constants.game.GameConstants;
import java.awt.Point;
import scripting.portal.PortalScriptManager;
import tools.MaplePacketCreator;
diff --git a/src/server/maps/MapleHiredMerchant.java b/src/server/maps/MapleHiredMerchant.java
index f3681be2d9..a1870dd6ae 100644
--- a/src/server/maps/MapleHiredMerchant.java
+++ b/src/server/maps/MapleHiredMerchant.java
@@ -29,10 +29,9 @@ import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.manipulator.MapleInventoryManipulator;
import client.inventory.manipulator.MapleKarmaManipulator;
-import client.processor.FredrickProcessor;
+import client.processor.npc.FredrickProcessor;
import com.mysql.jdbc.Statement;
import config.YamlConfig;
-import constants.ServerConstants;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
diff --git a/src/server/maps/MapleMap.java b/src/server/maps/MapleMap.java
index bcdcb3f25e..5c6f6ffbb6 100644
--- a/src/server/maps/MapleMap.java
+++ b/src/server/maps/MapleMap.java
@@ -32,9 +32,8 @@ import client.inventory.MaplePet;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.ArrayList;
@@ -64,7 +63,7 @@ import net.server.audit.locks.MonitoredReentrantReadWriteLock;
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
import java.lang.ref.WeakReference;
import net.server.Server;
-import net.server.coordinator.MapleMonsterAggroCoordinator;
+import net.server.coordinator.world.MapleMonsterAggroCoordinator;
import net.server.channel.Channel;
import net.server.world.World;
import scripting.map.MapScriptManager;
diff --git a/src/server/maps/MapleReactor.java b/src/server/maps/MapleReactor.java
index 81cc1327f4..e517ca43f2 100644
--- a/src/server/maps/MapleReactor.java
+++ b/src/server/maps/MapleReactor.java
@@ -22,9 +22,7 @@
package server.maps;
import client.MapleClient;
-import client.status.MonsterStatus;
import config.YamlConfig;
-import constants.ServerConstants;
import java.awt.Rectangle;
import java.util.List;
diff --git a/src/server/partyquest/AriantColiseum.java b/src/server/partyquest/AriantColiseum.java
index 4032332343..12e7989d37 100644
--- a/src/server/partyquest/AriantColiseum.java
+++ b/src/server/partyquest/AriantColiseum.java
@@ -26,7 +26,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ScheduledFuture;
import client.MapleCharacter;
-import constants.GameConstants;
+import constants.game.GameConstants;
import server.TimerManager;
import server.expeditions.MapleExpedition;
import server.expeditions.MapleExpeditionType;
diff --git a/src/server/partyquest/MonsterCarnival.java b/src/server/partyquest/MonsterCarnival.java
index 69443fda2f..b4c78da264 100644
--- a/src/server/partyquest/MonsterCarnival.java
+++ b/src/server/partyquest/MonsterCarnival.java
@@ -3,8 +3,7 @@ package server.partyquest;
import java.util.concurrent.ScheduledFuture;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.LanguageConstants;
-import constants.ServerConstants;
+import constants.string.LanguageConstants;
import net.server.Server;
import net.server.channel.Channel;
import net.server.world.MapleParty;
diff --git a/src/server/quest/MapleQuest.java b/src/server/quest/MapleQuest.java
index 8f560169f5..9760847427 100644
--- a/src/server/quest/MapleQuest.java
+++ b/src/server/quest/MapleQuest.java
@@ -32,7 +32,6 @@ import client.MapleCharacter.DelayedQuestUpdate;
import client.MapleQuestStatus;
import client.MapleQuestStatus.Status;
import config.YamlConfig;
-import constants.ServerConstants;
import java.util.EnumMap;
import java.util.Set;
import provider.MapleData;
diff --git a/src/server/quest/actions/ExpAction.java b/src/server/quest/actions/ExpAction.java
index 4022e7982b..a617e91422 100644
--- a/src/server/quest/actions/ExpAction.java
+++ b/src/server/quest/actions/ExpAction.java
@@ -23,7 +23,6 @@ package server.quest.actions;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
import provider.MapleData;
import provider.MapleDataTool;
import server.quest.MapleQuest;
diff --git a/src/server/quest/actions/ItemAction.java b/src/server/quest/actions/ItemAction.java
index a4e2d0a21e..600fac086b 100644
--- a/src/server/quest/actions/ItemAction.java
+++ b/src/server/quest/actions/ItemAction.java
@@ -26,7 +26,7 @@ import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
diff --git a/src/server/quest/actions/MesoAction.java b/src/server/quest/actions/MesoAction.java
index 139888d38f..df8e5d8af3 100644
--- a/src/server/quest/actions/MesoAction.java
+++ b/src/server/quest/actions/MesoAction.java
@@ -23,7 +23,6 @@ package server.quest.actions;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.ServerConstants;
import provider.MapleData;
import provider.MapleDataTool;
import server.quest.MapleQuest;
diff --git a/src/server/quest/actions/PetSkillAction.java b/src/server/quest/actions/PetSkillAction.java
index b99fdb1ea1..2e058e7f9f 100644
--- a/src/server/quest/actions/PetSkillAction.java
+++ b/src/server/quest/actions/PetSkillAction.java
@@ -23,7 +23,7 @@ package server.quest.actions;
import client.MapleCharacter;
import client.MapleQuestStatus;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
import provider.MapleData;
import provider.MapleDataTool;
import server.quest.MapleQuest;
diff --git a/src/server/quest/requirements/ItemRequirement.java b/src/server/quest/requirements/ItemRequirement.java
index 7481a2056a..6308ce28f2 100644
--- a/src/server/quest/requirements/ItemRequirement.java
+++ b/src/server/quest/requirements/ItemRequirement.java
@@ -32,7 +32,7 @@ import server.quest.MapleQuestRequirementType;
import client.MapleCharacter;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
-import constants.ItemConstants;
+import constants.inventory.ItemConstants;
/**
*
diff --git a/src/tools/HexTool.java b/src/tools/HexTool.java
index d1853edfcc..e2f1b23d9a 100644
--- a/src/tools/HexTool.java
+++ b/src/tools/HexTool.java
@@ -21,7 +21,7 @@
*/
package tools;
-import constants.CharsetConstants;
+import constants.string.CharsetConstants;
import java.io.ByteArrayOutputStream;
public class HexTool {
diff --git a/src/tools/MaplePacketCreator.java b/src/tools/MaplePacketCreator.java
index 8f9ff19d30..a91e7db1b8 100644
--- a/src/tools/MaplePacketCreator.java
+++ b/src/tools/MaplePacketCreator.java
@@ -63,10 +63,9 @@ import client.newyear.NewYearCardRecord;
import client.status.MonsterStatus;
import client.status.MonsterStatusEffect;
import config.YamlConfig;
-import constants.ExpTable;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.ExpTable;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
import constants.skills.Buccaneer;
import constants.skills.Corsair;
import constants.skills.ThunderBreaker;
diff --git a/src/tools/data/output/GenericLittleEndianWriter.java b/src/tools/data/output/GenericLittleEndianWriter.java
index 91779e4d57..7dd866c4f8 100644
--- a/src/tools/data/output/GenericLittleEndianWriter.java
+++ b/src/tools/data/output/GenericLittleEndianWriter.java
@@ -23,7 +23,7 @@ package tools.data.output;
import java.awt.Point;
import java.nio.charset.Charset;
-import constants.CharsetConstants.MapleLanguageType;
+import constants.string.CharsetConstants.MapleLanguageType;
/**
* Provides a generic writer of a little-endian sequence of bytes.
diff --git a/src/tools/packets/Fishing.java b/src/tools/packets/Fishing.java
index c658548b60..b9fcdcfac9 100644
--- a/src/tools/packets/Fishing.java
+++ b/src/tools/packets/Fishing.java
@@ -21,9 +21,9 @@ package tools.packets;
import client.MapleCharacter;
import config.YamlConfig;
-import constants.GameConstants;
-import constants.ItemConstants;
-import constants.ServerConstants;
+import constants.game.GameConstants;
+import constants.inventory.ItemConstants;
+import constants.net.ServerConstants;
import server.MapleItemInformationProvider;
import tools.MaplePacketCreator;
diff --git a/wz/Quest.wz/Check.img.xml b/wz/Quest.wz/Check.img.xml
index 47010ff93e..d19084770e 100644
--- a/wz/Quest.wz/Check.img.xml
+++ b/wz/Quest.wz/Check.img.xml
@@ -44000,7 +44000,12 @@
-
+
+
+
+
+
+