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(); + } }