Merge branch 'add-rank-currency-timers' into 'master'

Add rank currency timers

See merge request morningstar/Arcturus-Community!48
This commit is contained in:
Harmonic 2019-07-22 06:24:26 -04:00
commit 259cb0a8c2
11 changed files with 154 additions and 95 deletions

View File

@ -6,7 +6,7 @@
<groupId>com.eu.habbo</groupId> <groupId>com.eu.habbo</groupId>
<artifactId>Habbo</artifactId> <artifactId>Habbo</artifactId>
<version>2.1.0</version> <version>2.2.0</version>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@ -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');

View File

@ -34,13 +34,13 @@ public final class Emulator {
public final static int MAJOR = 2; 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; public static final String version = "Arcturus Morningstar" + " " + MAJOR + "." + MINOR + "." + BUILD + " " + PREVIEW;
private static final String logo = private static final String logo =
@ -137,15 +137,12 @@ public final class Emulator {
} }
Emulator.getThreading().run(new Runnable() { Emulator.getThreading().run(() -> {
@Override 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.");
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("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("https://discord.gg/syuqgN");
Emulator.getLogging().logStart("Please report bugs on our git at Krews.org. Not on our discord!!"); Emulator.getLogging().logStart("Please report bugs on our git at Krews.org. Not on our discord!!");
System.out.println("Waiting for commands: "); System.out.println("Waiting for commands: ");
}
}, 3500); }, 3500);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
@ -169,24 +166,14 @@ public final class Emulator {
} }
private static void setBuild() { private static void setBuild() {
if (Emulator.class.getProtectionDomain().getCodeSource() == null) {
build = "UNKNOWN";
return;
}
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
try { try {
String filepath = new File(Emulator.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getAbsolutePath();
MessageDigest md = MessageDigest.getInstance("MD5");// MD5 MessageDigest md = MessageDigest.getInstance("MD5");// MD5
FileInputStream fis = new FileInputStream(filepath);
byte[] dataBytes = new byte[1024]; byte[] dataBytes = new byte[1024];
int nread = 0; int nread = 0;
while ((nread = fis.read(dataBytes)) != -1)
md.update(dataBytes, 0, nread); md.update(dataBytes, 0, nread);
byte[] mdbytes = md.digest(); byte[] mdbytes = md.digest();
for (int i = 0; i < mdbytes.length; i++) for (int i = 0; i < mdbytes.length; i++)
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
} catch (Exception e) { } catch (Exception e) {

View File

@ -8,14 +8,10 @@ import java.util.Map;
public class CreditsScheduler extends Scheduler { public class CreditsScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW; public static boolean IGNORE_HOTEL_VIEW;
public static boolean IGNORE_IDLED; public static boolean IGNORE_IDLED;
public static int CREDITS;
public CreditsScheduler() { public CreditsScheduler() {
super(Emulator.getConfig().getInt("hotel.auto.credits.interval")); super(Emulator.getConfig().getInt("hotel.auto.credits.interval"));
this.reloadConfig(); this.reloadConfig();
} }
@ -24,7 +20,6 @@ public class CreditsScheduler extends Scheduler {
if (Emulator.getConfig().getBoolean("hotel.auto.credits.enabled")) { if (Emulator.getConfig().getBoolean("hotel.auto.credits.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.hotelview"); IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.idled"); IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.credits.ignore.idled");
CREDITS = Emulator.getConfig().getInt("hotel.auto.credits.amount");
if (this.disposed) { if (this.disposed) {
this.disposed = false; this.disposed = false;
this.run(); this.run();
@ -50,7 +45,7 @@ public class CreditsScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED) if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue; continue;
habbo.giveCredits(CREDITS); habbo.giveCredits(habbo.getHabboInfo().getRank().getCreditsTimerAmount());
} }
} catch (Exception e) { } catch (Exception e) {
Emulator.getLogging().logErrorLine(e); Emulator.getLogging().logErrorLine(e);

View File

@ -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<Integer, Habbo> 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;
}
}

View File

@ -8,47 +8,17 @@ import java.util.Map;
public class PixelScheduler extends Scheduler { public class PixelScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW; public static boolean IGNORE_HOTEL_VIEW;
public static boolean IGNORE_IDLED; public static boolean IGNORE_IDLED;
private static int PIXELS;
public PixelScheduler() { public PixelScheduler() {
super(Emulator.getConfig().getInt("hotel.auto.pixels.interval")); super(Emulator.getConfig().getInt("hotel.auto.pixels.interval"));
this.reloadConfig(); 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() { public void reloadConfig() {
if (Emulator.getConfig().getBoolean("hotel.auto.pixels.enabled")) { if (Emulator.getConfig().getBoolean("hotel.auto.pixels.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.hotelview"); IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.idled"); IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.pixels.ignore.idled");
PIXELS = Emulator.getConfig().getInt("hotel.auto.pixels.amount");
if (this.disposed) { if (this.disposed) {
this.disposed = false; this.disposed = false;
this.run(); this.run();
@ -65,7 +35,6 @@ public class PixelScheduler extends Scheduler {
Habbo habbo; Habbo habbo;
for (Map.Entry<Integer, Habbo> map : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) { for (Map.Entry<Integer, Habbo> map : Emulator.getGameEnvironment().getHabboManager().getOnlineHabbos().entrySet()) {
habbo = map.getValue(); habbo = map.getValue();
try { try {
if (habbo != null) { if (habbo != null) {
if (habbo.getHabboInfo().getCurrentRoom() == null && IGNORE_HOTEL_VIEW) if (habbo.getHabboInfo().getCurrentRoom() == null && IGNORE_HOTEL_VIEW)
@ -74,7 +43,7 @@ public class PixelScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED) if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue; continue;
habbo.givePixels(PIXELS); habbo.givePixels(habbo.getHabboInfo().getRank().getPixelsTimerAmount());
} }
} catch (Exception e) { } catch (Exception e) {
Emulator.getLogging().logErrorLine(e); Emulator.getLogging().logErrorLine(e);

View File

@ -8,47 +8,18 @@ import java.util.Map;
public class PointsScheduler extends Scheduler { public class PointsScheduler extends Scheduler {
public static boolean IGNORE_HOTEL_VIEW; public static boolean IGNORE_HOTEL_VIEW;
public static boolean IGNORE_IDLED; public static boolean IGNORE_IDLED;
private static int POINTS;
public PointsScheduler() { public PointsScheduler() {
super(Emulator.getConfig().getInt("hotel.auto.points.interval")); super(Emulator.getConfig().getInt("hotel.auto.points.interval"));
this.reloadConfig(); 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() { public void reloadConfig() {
if (Emulator.getConfig().getBoolean("hotel.auto.points.enabled")) { if (Emulator.getConfig().getBoolean("hotel.auto.points.enabled")) {
IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.hotelview"); IGNORE_HOTEL_VIEW = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.hotelview");
IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.idled"); IGNORE_IDLED = Emulator.getConfig().getBoolean("hotel.auto.points.ignore.idled");
POINTS = Emulator.getConfig().getInt("hotel.auto.points.amount");
if (this.disposed) { if (this.disposed) {
this.disposed = false; this.disposed = false;
this.run(); this.run();
@ -74,7 +45,8 @@ public class PointsScheduler extends Scheduler {
if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED) if (habbo.getRoomUnit().isIdle() && IGNORE_IDLED)
continue; continue;
habbo.givePoints(POINTS); //habbo.givePoints(POINTS);
habbo.givePoints(habbo.getHabboInfo().getRank().getDiamondsTimerAmount());
} }
} catch (Exception e) { } catch (Exception e) {
Emulator.getLogging().logErrorLine(e); Emulator.getLogging().logErrorLine(e);

View File

@ -2,6 +2,7 @@ package com.eu.habbo.habbohotel;
import com.eu.habbo.Emulator; import com.eu.habbo.Emulator;
import com.eu.habbo.core.CreditsScheduler; import com.eu.habbo.core.CreditsScheduler;
import com.eu.habbo.core.GotwPointsScheduler;
import com.eu.habbo.core.PixelScheduler; import com.eu.habbo.core.PixelScheduler;
import com.eu.habbo.core.PointsScheduler; import com.eu.habbo.core.PointsScheduler;
import com.eu.habbo.habbohotel.achievements.AchievementManager; import com.eu.habbo.habbohotel.achievements.AchievementManager;
@ -26,6 +27,7 @@ public class GameEnvironment {
public CreditsScheduler creditsScheduler; public CreditsScheduler creditsScheduler;
public PixelScheduler pixelScheduler; public PixelScheduler pixelScheduler;
public PointsScheduler pointsScheduler; public PointsScheduler pointsScheduler;
public GotwPointsScheduler gotwPointsScheduler;
private HabboManager habboManager; private HabboManager habboManager;
private NavigatorManager navigatorManager; private NavigatorManager navigatorManager;
private GuildManager guildManager; private GuildManager guildManager;
@ -76,6 +78,9 @@ public class GameEnvironment {
Emulator.getThreading().run(this.pixelScheduler); Emulator.getThreading().run(this.pixelScheduler);
this.pointsScheduler = new PointsScheduler(); this.pointsScheduler = new PointsScheduler();
Emulator.getThreading().run(this.pointsScheduler); Emulator.getThreading().run(this.pointsScheduler);
this.gotwPointsScheduler = new GotwPointsScheduler();
Emulator.getThreading().run(this.gotwPointsScheduler);
Emulator.getLogging().logStart("GameEnvironment -> Loaded!"); Emulator.getLogging().logStart("GameEnvironment -> Loaded!");
} }
@ -84,6 +89,7 @@ public class GameEnvironment {
this.pointsScheduler.setDisposed(true); this.pointsScheduler.setDisposed(true);
this.pixelScheduler.setDisposed(true); this.pixelScheduler.setDisposed(true);
this.creditsScheduler.setDisposed(true); this.creditsScheduler.setDisposed(true);
this.gotwPointsScheduler.setDisposed(true);
this.craftingManager.dispose(); this.craftingManager.dispose();
this.habboManager.dispose(); this.habboManager.dispose();
this.commandHandler.dispose(); this.commandHandler.dispose();
@ -171,7 +177,9 @@ public class GameEnvironment {
return this.pixelScheduler; return this.pixelScheduler;
} }
public PointsScheduler getPointsScheduler() { public PointsScheduler getPointsScheduler() { return this.pointsScheduler;
return this.pointsScheduler; }
public GotwPointsScheduler getGotwPointsScheduler() { return this.gotwPointsScheduler;
} }
} }

View File

@ -29,12 +29,20 @@ public class Rank {
private boolean hasPrefix; private boolean hasPrefix;
private int diamondsTimerAmount;
private int creditsTimerAmount;
private int pixelsTimerAmount;
private int gotwTimerAmount;
public Rank(ResultSet set) throws SQLException { public Rank(ResultSet set) throws SQLException {
this.permissions = new THashMap<>(); this.permissions = new THashMap<>();
this.variables = new THashMap<>(); this.variables = new THashMap<>();
this.id = set.getInt("id"); this.id = set.getInt("id");
this.level = set.getInt("level"); this.level = set.getInt("level");
this.diamondsTimerAmount = 1;
this.creditsTimerAmount = 1;
this.pixelsTimerAmount = 1;
this.gotwTimerAmount = 1;
this.load(set); this.load(set);
} }
@ -47,6 +55,10 @@ public class Rank {
this.logCommands = set.getString("log_commands").equals("1"); this.logCommands = set.getString("log_commands").equals("1");
this.prefix = set.getString("prefix"); this.prefix = set.getString("prefix");
this.prefixColor = set.getString("prefix_color"); 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(); this.hasPrefix = !this.prefix.isEmpty();
for (int i = 1; i < meta.getColumnCount() + 1; i++) { for (int i = 1; i < meta.getColumnCount() + 1; i++) {
String columnName = meta.getColumnName(i); String columnName = meta.getColumnName(i);
@ -115,4 +127,13 @@ public class Rank {
public boolean hasPrefix() { public boolean hasPrefix() {
return this.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; }
} }

View File

@ -50,6 +50,21 @@ public class FloorPlanEditorSaveEvent extends MessageHandler {
errors.add("${notification.floorplan_editor.error.title}"); errors.add("${notification.floorplan_editor.error.title}");
} }
boolean rowCountCorrect = true;
int rowCount = 0;
String[] splitMap = map.split(((char) 13) + "");
for (String s : splitMap) {
if(rowCount > 0 && rowCount != s.length()) {
rowCountCorrect = false;
}
rowCount = s.length();
}
if (!rowCountCorrect && Emulator.getConfig().getBoolean("hotel.room.floorplan.check.enabled"))
{
errors.add("${notification.floorplan_editor.error.title}");
}
if (map.isEmpty() || map.replace("x", "").replace(((char) 13) + "", "").length() == 0) { if (map.isEmpty() || map.replace("x", "").replace(((char) 13) + "", "").length() == 0) {
errors.add("${notification.floorplan_editor.error.message.effective_height_is_0}"); errors.add("${notification.floorplan_editor.error.message.effective_height_is_0}");

View File

@ -126,6 +126,8 @@ public class PluginManager {
Emulator.getGameEnvironment().getCreditsScheduler().reloadConfig(); Emulator.getGameEnvironment().getCreditsScheduler().reloadConfig();
Emulator.getGameEnvironment().getPointsScheduler().reloadConfig(); Emulator.getGameEnvironment().getPointsScheduler().reloadConfig();
Emulator.getGameEnvironment().getPixelScheduler().reloadConfig(); Emulator.getGameEnvironment().getPixelScheduler().reloadConfig();
Emulator.getGameEnvironment().getGotwPointsScheduler().reloadConfig();
} }
} }