diff --git a/pom.xml b/pom.xml
index 51d02e18..33253bbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.eu.habbo
Habbo
- 2.1.0
+ 2.2.0
UTF-8
diff --git a/sqlupdates/2_1_1_TO_2_2_0-RC-1.sql b/sqlupdates/2_1_1_TO_2_2_0-RC-1.sql
new file mode 100644
index 00000000..63c682f3
--- /dev/null
+++ b/sqlupdates/2_1_1_TO_2_2_0-RC-1.sql
@@ -0,0 +1,12 @@
+ALTER TABLE `permissions`
+ADD COLUMN `auto_credits_amount` INT DEFAULT '0';
+ADD COLUMN `auto_pixels_amount` INT DEFAULT '0';
+ADD COLUMN `auto_gotw_amount` INT DEFAULT '0';
+ADD COLUMN `auto_points_amount` INT DEFAULT '0';
+
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.enabled', '0');
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.interval', '600');
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.ignore.idled', '1');
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.ignore.hotelview', '1');
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.type', '4');
+INSERT INTO `emulator_settings`(`key`, `value`) VALUES ('hotel.auto.gotwpoints.name', 'shell');
diff --git a/src/main/java/com/eu/habbo/Emulator.java b/src/main/java/com/eu/habbo/Emulator.java
index bdebafe6..9cdd1324 100644
--- a/src/main/java/com/eu/habbo/Emulator.java
+++ b/src/main/java/com/eu/habbo/Emulator.java
@@ -34,13 +34,13 @@ public final class Emulator {
public final static int MAJOR = 2;
- public final static int MINOR = 1;
+ public final static int MINOR = 2;
- public final static int BUILD = 1;
+ public final static int BUILD = 0;
- public final static String PREVIEW = "Stable";
+ public final static String PREVIEW = "RC-1";
public static final String version = "Arcturus Morningstar" + " " + MAJOR + "." + MINOR + "." + BUILD + " " + PREVIEW;
private static final String logo =
@@ -137,15 +137,12 @@ public final class Emulator {
}
- Emulator.getThreading().run(new Runnable() {
- @Override
- public void run() {
- Emulator.getLogging().logStart("Thankyou for downloading Arcturus Morningstar! This is a stable 2.1.0 build, it should be more than stable for daily use on hotels, if you find any bugs please place them on our git repository.");
- Emulator.getLogging().logStart("Please note, Arcturus Emulator is a project by TheGeneral, we take no credit for the original work, and only the work we have continued. If you'd like to support the project, join our discord at: ");
- Emulator.getLogging().logStart("https://discord.gg/syuqgN");
- Emulator.getLogging().logStart("Please report bugs on our git at Krews.org. Not on our discord!!");
- System.out.println("Waiting for commands: ");
- }
+ Emulator.getThreading().run(() -> {
+ Emulator.getLogging().logStart("Thankyou for downloading Arcturus Morningstar! This is a 2.2.0 RC-1 Build. If you find any bugs please place them on our git repository.");
+ Emulator.getLogging().logStart("Please note, Arcturus Emulator is a project by TheGeneral, we take no credit for the original work, and only the work we have continued. If you'd like to support the project, join our discord at: ");
+ Emulator.getLogging().logStart("https://discord.gg/syuqgN");
+ Emulator.getLogging().logStart("Please report bugs on our git at Krews.org. Not on our discord!!");
+ System.out.println("Waiting for commands: ");
}, 3500);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
@@ -169,24 +166,14 @@ public final class Emulator {
}
private static void setBuild() {
- if (Emulator.class.getProtectionDomain().getCodeSource() == null) {
- build = "UNKNOWN";
- return;
- }
StringBuilder sb = new StringBuilder();
try {
- String filepath = new File(Emulator.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getAbsolutePath();
MessageDigest md = MessageDigest.getInstance("MD5");// MD5
- FileInputStream fis = new FileInputStream(filepath);
byte[] dataBytes = new byte[1024];
int nread = 0;
-
- while ((nread = fis.read(dataBytes)) != -1)
md.update(dataBytes, 0, nread);
-
byte[] mdbytes = md.digest();
-
for (int i = 0; i < mdbytes.length; i++)
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
} catch (Exception e) {
diff --git a/src/main/java/com/eu/habbo/core/CreditsScheduler.java b/src/main/java/com/eu/habbo/core/CreditsScheduler.java
index 4c2a44a1..ce136ede 100644
--- a/src/main/java/com/eu/habbo/core/CreditsScheduler.java
+++ b/src/main/java/com/eu/habbo/core/CreditsScheduler.java
@@ -8,14 +8,10 @@ import java.util.Map;
public class CreditsScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW;
-
-
public static boolean IGNORE_IDLED;
-
- public static int CREDITS;
-
public CreditsScheduler() {
+
super(Emulator.getConfig().getInt("hotel.auto.credits.interval"));
this.reloadConfig();
}
@@ -24,7 +20,6 @@ public class CreditsScheduler extends Scheduler {
if (Emulator.getConfig().getBoolean("hotel.auto.credits.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.idled");
- CREDITS = Emulator.getConfig().getInt("hotel.auto.credits.amount");
if (this.disposed) {
this.disposed = false;
this.run();
@@ -50,7 +45,7 @@ public class CreditsScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue;
- habbo.giveCredits(CREDITS);
+ habbo.giveCredits(habbo.getHabboInfo().getRank().getCreditsTimerAmount());
}
} catch (Exception e) {
Emulator.getLogging().logErrorLine(e);
diff --git a/src/main/java/com/eu/habbo/core/GotwPointsScheduler.java b/src/main/java/com/eu/habbo/core/GotwPointsScheduler.java
new file mode 100644
index 00000000..4a85969e
--- /dev/null
+++ b/src/main/java/com/eu/habbo/core/GotwPointsScheduler.java
@@ -0,0 +1,78 @@
+package com.eu.habbo.core;
+
+import com.eu.habbo.Emulator;
+import com.eu.habbo.habbohotel.users.Habbo;
+
+import java.util.Map;
+
+public class GotwPointsScheduler extends Scheduler {
+
+ public static boolean IGNORE_HOTEL_VIEW;
+ public static boolean IGNORE_IDLED;
+ public static String GOTW_POINTS_NAME;
+
+ public GotwPointsScheduler() { //TODO MOVE TO A PLUGIN. IS NOT PART OF OFFICIAL HABBO.
+
+ super(Emulator.getConfig().getInt("hotel.auto.gotwpoints.interval"));
+ this.reloadConfig();
+ }
+
+ public void reloadConfig() {
+ if (Emulator.getConfig().getBoolean("hotel.auto.gotwpoints.enabled")) {
+ IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.gotwpoints.ignore.hotelview");
+ IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.gotwpoints.ignore.idled");
+ GOTW_POINTS_NAME = Emulator.getConfig().getValue("hotel.auto.gotwpoints.name");
+
+ if (this.disposed) {
+ this.disposed = false;
+ this.run();
+ }
+ } else {
+ this.disposed = true;
+ }
+ }
+
+ @Override
+ public void run() {
+ super.run();
+
+ Habbo habbo;
+ for (Map.Entry map : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) {
+ habbo = map.getValue();
+
+ try {
+ if (habbo != null) {
+ if (habbo.getHabboInfo().getCurrentRoom() == null && IGNORE_HOTEL_VIEW)
+ continue;
+
+ if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
+ continue;
+
+ int type;
+ boolean found = false;
+ for (String s : Emulator.getConfig().getValue("seasonal.currency.names").split(";")) {
+ if (s.equalsIgnoreCase(GOTW_POINTS_NAME) || (GOTW_POINTS_NAME.startsWith(s) && Math.abs(s.length() - GOTW_POINTS_NAME.length()) < 3)) {
+ found = true;
+ break;
+ }
+ }
+ type = Emulator.getConfig().getInt("seasonal.currency." + GOTW_POINTS_NAME, -1);
+ if (found || type != -1) {
+
+ habbo.givePoints(type, habbo.getHabboInfo().getRank().getGotwTimerAmount());
+ }
+ }
+ } catch (Exception e) {
+ Emulator.getLogging().logErrorLine(e);
+ }
+ }
+ }
+
+ public boolean isDisposed() {
+ return this.disposed;
+ }
+
+ public void setDisposed(boolean disposed) {
+ this.disposed = disposed;
+ }
+}
diff --git a/src/main/java/com/eu/habbo/core/PixelScheduler.java b/src/main/java/com/eu/habbo/core/PixelScheduler.java
index 285df17c..13a0cf3d 100644
--- a/src/main/java/com/eu/habbo/core/PixelScheduler.java
+++ b/src/main/java/com/eu/habbo/core/PixelScheduler.java
@@ -8,47 +8,17 @@ import java.util.Map;
public class PixelScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW;
-
-
public static boolean IGNORE_IDLED;
-
- private static int PIXELS;
-
public PixelScheduler() {
super(Emulator.getConfig().getInt("hotel.auto.pixels.interval"));
this.reloadConfig();
}
- public static boolean isIgnoreHotelView() {
- return IGNORE_HOTEL_VIEW;
- }
-
- public static void setIgnoreHotelView(boolean ignoreHotelView) {
- IGNORE_HOTEL_VIEW = ignoreHotelView;
- }
-
- public static boolean isIgnoreIdled() {
- return IGNORE_IDLED;
- }
-
- public static void setIgnoreIdled(boolean ignoreIdled) {
- IGNORE_IDLED = ignoreIdled;
- }
-
- public static int getPIXELS() {
- return PIXELS;
- }
-
- public static void setPIXELS(int PIXELS) {
- PixelScheduler.PIXELS = PIXELS;
- }
-
public void reloadConfig() {
if (Emulator.getConfig().getBoolean("hotel.auto.pixels.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.idled");
- PIXELS = Emulator.getConfig().getInt("hotel.auto.pixels.amount");
if (this.disposed) {
this.disposed = false;
this.run();
@@ -65,7 +35,6 @@ public class PixelScheduler extends Scheduler {
Habbo habbo;
for (Map.Entry map : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) {
habbo = map.getValue();
-
try {
if (habbo != null) {
if (habbo.getHabboInfo().getCurrentRoom() == null && IGNORE_HOTEL_VIEW)
@@ -74,7 +43,7 @@ public class PixelScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue;
- habbo.givePixels(PIXELS);
+ habbo.givePixels(habbo.getHabboInfo().getRank().getPixelsTimerAmount());
}
} catch (Exception e) {
Emulator.getLogging().logErrorLine(e);
diff --git a/src/main/java/com/eu/habbo/core/PointsScheduler.java b/src/main/java/com/eu/habbo/core/PointsScheduler.java
index 529d004d..f5c8042d 100644
--- a/src/main/java/com/eu/habbo/core/PointsScheduler.java
+++ b/src/main/java/com/eu/habbo/core/PointsScheduler.java
@@ -8,47 +8,18 @@ import java.util.Map;
public class PointsScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW;
-
-
public static boolean IGNORE_IDLED;
-
- private static int POINTS;
-
public PointsScheduler() {
+
super(Emulator.getConfig().getInt("hotel.auto.points.interval"));
this.reloadConfig();
}
- public static boolean isIgnoreHotelView() {
- return IGNORE_HOTEL_VIEW;
- }
-
- public static void setIgnoreHotelView(boolean ignoreHotelView) {
- IGNORE_HOTEL_VIEW = ignoreHotelView;
- }
-
- public static boolean isIgnoreIdled() {
- return IGNORE_IDLED;
- }
-
- public static void setIgnoreIdled(boolean ignoreIdled) {
- IGNORE_IDLED = ignoreIdled;
- }
-
- public static int getPOINTS() {
- return POINTS;
- }
-
- public static void setPOINTS(int POINTS) {
- PointsScheduler.POINTS = POINTS;
- }
-
public void reloadConfig() {
if (Emulator.getConfig().getBoolean("hotel.auto.points.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.idled");
- POINTS = Emulator.getConfig().getInt("hotel.auto.points.amount");
if (this.disposed) {
this.disposed = false;
this.run();
@@ -74,7 +45,8 @@ public class PointsScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue;
- habbo.givePoints(POINTS);
+ //habbo.givePoints(POINTS);
+ habbo.givePoints(habbo.getHabboInfo().getRank().getDiamondsTimerAmount());
}
} catch (Exception e) {
Emulator.getLogging().logErrorLine(e);
diff --git a/src/main/java/com/eu/habbo/habbohotel/GameEnvironment.java b/src/main/java/com/eu/habbo/habbohotel/GameEnvironment.java
index 99302c6a..02704bd3 100644
--- a/src/main/java/com/eu/habbo/habbohotel/GameEnvironment.java
+++ b/src/main/java/com/eu/habbo/habbohotel/GameEnvironment.java
@@ -2,6 +2,7 @@ package com.eu.habbo.habbohotel;
import com.eu.habbo.Emulator;
import com.eu.habbo.core.CreditsScheduler;
+import com.eu.habbo.core.GotwPointsScheduler;
import com.eu.habbo.core.PixelScheduler;
import com.eu.habbo.core.PointsScheduler;
import com.eu.habbo.habbohotel.achievements.AchievementManager;
@@ -26,6 +27,7 @@ public class GameEnvironment {
public CreditsScheduler creditsScheduler;
public PixelScheduler pixelScheduler;
public PointsScheduler pointsScheduler;
+ public GotwPointsScheduler gotwPointsScheduler;
private HabboManager habboManager;
private NavigatorManager navigatorManager;
private GuildManager guildManager;
@@ -76,6 +78,9 @@ public class GameEnvironment {
Emulator.getThreading().run(this.pixelScheduler);
this.pointsScheduler = new PointsScheduler();
Emulator.getThreading().run(this.pointsScheduler);
+ this.gotwPointsScheduler = new GotwPointsScheduler();
+ Emulator.getThreading().run(this.gotwPointsScheduler);
+
Emulator.getLogging().logStart("GameEnvironment -> Loaded!");
}
@@ -84,6 +89,7 @@ public class GameEnvironment {
this.pointsScheduler.setDisposed(true);
this.pixelScheduler.setDisposed(true);
this.creditsScheduler.setDisposed(true);
+ this.gotwPointsScheduler.setDisposed(true);
this.craftingManager.dispose();
this.habboManager.dispose();
this.commandHandler.dispose();
@@ -171,7 +177,9 @@ public class GameEnvironment {
return this.pixelScheduler;
}
- public PointsScheduler getPointsScheduler() {
- return this.pointsScheduler;
+ public PointsScheduler getPointsScheduler() { return this.pointsScheduler;
+ }
+
+ public GotwPointsScheduler getGotwPointsScheduler() { return this.gotwPointsScheduler;
}
}
diff --git a/src/main/java/com/eu/habbo/habbohotel/permissions/Rank.java b/src/main/java/com/eu/habbo/habbohotel/permissions/Rank.java
index 068f050e..20929cd7 100644
--- a/src/main/java/com/eu/habbo/habbohotel/permissions/Rank.java
+++ b/src/main/java/com/eu/habbo/habbohotel/permissions/Rank.java
@@ -29,12 +29,20 @@ public class Rank {
private boolean hasPrefix;
+ private int diamondsTimerAmount;
+ private int creditsTimerAmount;
+ private int pixelsTimerAmount;
+ private int gotwTimerAmount;
public Rank(ResultSet set) throws SQLException {
this.permissions = new THashMap<>();
this.variables = new THashMap<>();
this.id = set.getInt("id");
this.level = set.getInt("level");
+ this.diamondsTimerAmount = 1;
+ this.creditsTimerAmount = 1;
+ this.pixelsTimerAmount = 1;
+ this.gotwTimerAmount = 1;
this.load(set);
}
@@ -47,6 +55,10 @@ public class Rank {
this.logCommands = set.getString("log_commands").equals("1");
this.prefix = set.getString("prefix");
this.prefixColor = set.getString("prefix_color");
+ this.diamondsTimerAmount = set.getInt("auto_points_amount");
+ this.creditsTimerAmount = set.getInt("auto_credits_amount");
+ this.pixelsTimerAmount = set.getInt("auto_pixels_amount");
+ this.gotwTimerAmount = set.getInt("auto_gotw_amount");
this.hasPrefix = !this.prefix.isEmpty();
for (int i = 1; i < meta.getColumnCount() + 1; i++) {
String columnName = meta.getColumnName(i);
@@ -115,4 +127,13 @@ public class Rank {
public boolean hasPrefix() {
return this.hasPrefix;
}
+
+ public int getDiamondsTimerAmount() { return this.diamondsTimerAmount; }
+
+ public int getCreditsTimerAmount() { return this.creditsTimerAmount; }
+
+ public int getPixelsTimerAmount() { return this.pixelsTimerAmount; }
+
+ public int getGotwTimerAmount() { return this.gotwTimerAmount; }
}
+
diff --git a/src/main/java/com/eu/habbo/plugin/PluginManager.java b/src/main/java/com/eu/habbo/plugin/PluginManager.java
index 80f56a9b..d1ecfbef 100644
--- a/src/main/java/com/eu/habbo/plugin/PluginManager.java
+++ b/src/main/java/com/eu/habbo/plugin/PluginManager.java
@@ -126,6 +126,8 @@ public class PluginManager {
Emulator.getGameEnvironment().getCreditsScheduler().reloadConfig();
Emulator.getGameEnvironment().getPointsScheduler().reloadConfig();
Emulator.getGameEnvironment().getPixelScheduler().reloadConfig();
+ Emulator.getGameEnvironment().getGotwPointsScheduler().reloadConfig();
+
}
}