From fcbb8d89374b51a489527ae9f96acbf55f7a7db0 Mon Sep 17 00:00:00 2001 From: KrewsOrg Date: Sat, 9 May 2020 19:02:37 +0100 Subject: [PATCH] Updated for 2.4.0 --- .idea/.gitignore | 3 + .idea/compiler.xml | 2 +- .idea/jarRepositories.xml | 20 ++ .../Maven__com_eu_habbo_Habbo_2_4_0.xml | 13 + ...Maven__io_netty_netty_all_4_1_36_Final.xml | 13 + ...en__io_netty_netty_buffer_4_1_36_Final.xml | 13 + ...ven__io_netty_netty_codec_4_1_36_Final.xml | 13 + ...o_netty_netty_codec_http2_4_1_36_Final.xml | 13 + ...io_netty_netty_codec_http_4_1_36_Final.xml | 13 + ...en__io_netty_netty_common_4_1_36_Final.xml | 13 + ...n__io_netty_netty_handler_4_1_36_Final.xml | 13 + ...__io_netty_netty_resolver_4_1_36_Final.xml | 13 + ..._io_netty_netty_transport_4_1_36_Final.xml | 13 + ...Maven__org_fusesource_jansi_jansi_1_18.xml | 13 + .idea/modules.xml | 2 +- .idea/workspace.xml | 276 ++++++------------ Apollyon.iml | 35 +++ pom.xml | 2 +- src/main/java/org/krews/apollyon/Main.java | 12 +- .../incoming/CameraPublishToWebEvent.java | 7 +- .../incoming/CameraPurchaseEvent.java | 77 +++-- .../incoming/CameraRoomPictureEvent.java | 10 +- target/Apollyon-1.jar | Bin 17056 -> 17215 bytes target/classes/org/krews/apollyon/Main.class | Bin 4031 -> 4202 bytes .../krews/apollyon/ftp/FTPUploadService.class | Bin 0 -> 1657 bytes .../incoming/CameraPublishToWebEvent.class | Bin 4648 -> 4511 bytes .../incoming/CameraPurchaseEvent.class | Bin 4634 -> 4995 bytes .../incoming/CameraRoomPictureEvent.class | Bin 4344 -> 5164 bytes .../incoming/CameraRoomThumbnailEvent.class | Bin 3337 -> 4078 bytes .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 11 +- 31 files changed, 356 insertions(+), 245 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/Maven__com_eu_habbo_Habbo_2_4_0.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_all_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_buffer_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_codec_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_codec_http2_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_codec_http_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_common_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_handler_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_resolver_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__io_netty_netty_transport_4_1_36_Final.xml create mode 100644 .idea/libraries/Maven__org_fusesource_jansi_jansi_1_18.xml create mode 100644 Apollyon.iml create mode 100644 target/classes/org/krews/apollyon/ftp/FTPUploadService.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index c13476c..0f617c2 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -11,7 +11,7 @@ - + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_eu_habbo_Habbo_2_4_0.xml b/.idea/libraries/Maven__com_eu_habbo_Habbo_2_4_0.xml new file mode 100644 index 0000000..14ae39d --- /dev/null +++ b/.idea/libraries/Maven__com_eu_habbo_Habbo_2_4_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_all_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_all_4_1_36_Final.xml new file mode 100644 index 0000000..f1d5d7c --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_all_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_36_Final.xml new file mode 100644 index 0000000..d605075 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_1_36_Final.xml new file mode 100644 index 0000000..444f2a9 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_36_Final.xml new file mode 100644 index 0000000..748c6c9 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_http2_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_36_Final.xml new file mode 100644 index 0000000..40ee5e3 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_1_36_Final.xml new file mode 100644 index 0000000..a156330 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_common_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_1_36_Final.xml new file mode 100644 index 0000000..12fdd31 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_handler_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_resolver_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_36_Final.xml new file mode 100644 index 0000000..8bdbb73 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_resolver_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_1_36_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_1_36_Final.xml new file mode 100644 index 0000000..b46e0c3 --- /dev/null +++ b/.idea/libraries/Maven__io_netty_netty_transport_4_1_36_Final.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_fusesource_jansi_jansi_1_18.xml b/.idea/libraries/Maven__org_fusesource_jansi_jansi_1_18.xml new file mode 100644 index 0000000..8191a34 --- /dev/null +++ b/.idea/libraries/Maven__org_fusesource_jansi_jansi_1_18.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 4eb973c..7d49018 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/.idea/workspace.xml b/.idea/workspace.xml index eea95c5..d72736b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -3,7 +3,6 @@ - - + - + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -91,11 +39,8 @@ - - - - - + + @@ -109,35 +54,15 @@ - - - messageHandler. - - - this. - - - @@ -147,11 +72,6 @@ - @@ -169,47 +89,48 @@ - + + + - + @@ -304,58 +222,61 @@ - + + - + + + + + + - - - - - + + + - - + + - - - + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - + - - - - - - - - - - - - + + @@ -364,47 +285,18 @@ - - - - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/Apollyon.iml b/Apollyon.iml new file mode 100644 index 0000000..9cb517f --- /dev/null +++ b/Apollyon.iml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index dcc3cc2..5e86f30 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ com.eu.habbo Habbo - 1.16.0 + 2.4.0 \ No newline at end of file diff --git a/src/main/java/org/krews/apollyon/Main.java b/src/main/java/org/krews/apollyon/Main.java index 5854799..3d6756f 100644 --- a/src/main/java/org/krews/apollyon/Main.java +++ b/src/main/java/org/krews/apollyon/Main.java @@ -13,8 +13,12 @@ import org.krews.apollyon.incoming.CameraPublishToWebEvent; import org.krews.apollyon.incoming.CameraPurchaseEvent; import org.krews.apollyon.incoming.CameraRoomPictureEvent; import org.krews.apollyon.incoming.CameraRoomThumbnailEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.lang.reflect.Field; + /** * Apollyon * The Official Camera Plugin for Morningstar. Credits to John, Beny, Ovflowd, and Alejandro @@ -22,7 +26,7 @@ import java.lang.reflect.Field; */ public class Main extends HabboPlugin implements EventListener { - + private static final Logger LOGGER = LoggerFactory.getLogger(Emulator.class); @Override public void onEnable() throws Exception { Emulator.getPluginManager().registerEvents(this, this); @@ -48,15 +52,14 @@ public class Main extends HabboPlugin implements EventListener { incoming.remove(Incoming.CameraPublishToWebEvent, CameraPublishToWebEvent.class); incoming.remove(Incoming.CameraPurchaseEvent, CameraPurchaseEvent.class); incoming.remove(Incoming.CameraRoomThumbnailEvent, CameraRoomThumbnailEvent.class); - Emulator.getLogging().logStart("[Apollyon] Bye Bye."); } - @EventHandler public void onEmulatorLoadedEvent(EmulatorLoadedEvent e) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException, Exception { // Adds missing sqls if they are not found. + Emulator.getConfig().register("apollyon.cooldown.amount", "250"); Emulator.getConfig().register("ftp.enabled", "0"); Emulator.getConfig().register("ftp.user", "root"); Emulator.getConfig().register("ftp.password", "password123"); @@ -83,8 +86,7 @@ public class Main extends HabboPlugin implements EventListener { packetManager.registerHandler(Incoming.CameraRoomThumbnailEvent, CameraRoomThumbnailEvent.class); // Send the message to the Emulator that PNGCamera has started. - Emulator.getLogging().logStart("[Apollyon] Apollyon Preview 1 has hijacked the Arcturus Camera packets, and is ready to use!!"); - Emulator.getLogging().logStart("[Apollyon] Please ensure this plugin was downloaded from Krews.org and is the latest version."); + LOGGER.info("Official Plugin - Rawr. Apollyon Preview 2 has officially loaded!"); } diff --git a/src/main/java/org/krews/apollyon/incoming/CameraPublishToWebEvent.java b/src/main/java/org/krews/apollyon/incoming/CameraPublishToWebEvent.java index 8412e2a..fd69478 100644 --- a/src/main/java/org/krews/apollyon/incoming/CameraPublishToWebEvent.java +++ b/src/main/java/org/krews/apollyon/incoming/CameraPublishToWebEvent.java @@ -43,11 +43,10 @@ public class CameraPublishToWebEvent extends MessageHandler this.client.getHabbo().getHabboInfo().setWebPublishTimestamp(timestamp); this.client.getHabbo().givePixels(-Emulator.getConfig().getInt("camera.price.points.publish")); published = true; + } catch (SQLException throwables) { + throwables.printStackTrace(); } - catch (SQLException e) - { - Emulator.getLogging().logSQLException(e); - } + } else { return; diff --git a/src/main/java/org/krews/apollyon/incoming/CameraPurchaseEvent.java b/src/main/java/org/krews/apollyon/incoming/CameraPurchaseEvent.java index 3a7e21e..dd3e97c 100644 --- a/src/main/java/org/krews/apollyon/incoming/CameraPurchaseEvent.java +++ b/src/main/java/org/krews/apollyon/incoming/CameraPurchaseEvent.java @@ -2,49 +2,64 @@ package org.krews.apollyon.incoming; import com.eu.habbo.Emulator; import com.eu.habbo.habbohotel.achievements.AchievementManager; -import com.eu.habbo.habbohotel.catalog.CatalogManager; +import com.eu.habbo.habbohotel.users.Habbo; import com.eu.habbo.habbohotel.users.HabboItem; import com.eu.habbo.messages.incoming.MessageHandler; import com.eu.habbo.messages.outgoing.camera.CameraPurchaseSuccesfullComposer; -import com.eu.habbo.messages.outgoing.catalog.AlertPurchaseFailedComposer; import com.eu.habbo.messages.outgoing.catalog.NotEnoughPointsTypeComposer; -import com.eu.habbo.messages.outgoing.generic.alerts.HotelWillCloseInMinutesComposer; import com.eu.habbo.messages.outgoing.inventory.AddHabboItemComposer; import com.eu.habbo.messages.outgoing.inventory.InventoryRefreshComposer; -import com.eu.habbo.threading.runnables.ShutdownEmulator; +import com.eu.habbo.plugin.events.users.UserPurchasePictureEvent; +import gnu.trove.map.hash.THashMap; -public class CameraPurchaseEvent extends MessageHandler -{ +public class CameraPurchaseEvent extends MessageHandler { + public static int CAMERA_PURCHASE_CREDITS = 5; + public static int CAMERA_PURCHASE_POINTS = 5; + public static int CAMERA_PURCHASE_POINTS_TYPE = 0; + public THashMap lastRanTimestamps = new THashMap(); + public int getRatelimit() { + return Emulator.getConfig().getInt("apollyon.cooldown.amount"); + } @Override public void handle() { - if (Emulator.getIntUnixTimestamp() - this.client.getHabbo().getHabboStats().lastPurchaseTimestamp >= CatalogManager.PURCHASE_COOLDOWN) { - this.client.getHabbo().getHabboStats().lastPurchaseTimestamp = Emulator.getIntUnixTimestamp(); - if (ShutdownEmulator.timestamp > 0) { - this.client.sendResponse(new HotelWillCloseInMinutesComposer((ShutdownEmulator.timestamp - Emulator.getIntUnixTimestamp()) / 60)); - } else if (this.client.getHabbo().getHabboInfo().getCredits() < Emulator.getConfig().getInt("camera.price.credits") || this.client.getHabbo().getHabboInfo().getCurrencyAmount(0) < Emulator.getConfig().getInt("camera.price.points")) { - this.client.sendResponse(new NotEnoughPointsTypeComposer(this.client.getHabbo().getHabboInfo().getCredits() < Emulator.getConfig().getInt("camera.price.credits"), this.client.getHabbo().getHabboInfo().getCurrencyAmount(0) < Emulator.getConfig().getInt("camera.price.points"), 0)); - } else if (this.client.getHabbo().getHabboInfo().getPhotoTimestamp() != 0) { - HabboItem photoItem = Emulator.getGameEnvironment().getItemManager().createItem(this.client.getHabbo().getHabboInfo().getId(), Emulator.getGameEnvironment().getItemManager().getItem(Emulator.getConfig().getInt("camera.item_id")), 0, 0, this.client.getHabbo().getHabboInfo().getPhotoJSON()); - if (photoItem != null) { - photoItem.setExtradata(photoItem.getExtradata().replace("%id%", photoItem.getId() + "")); - photoItem.needsUpdate(true); - this.client.getHabbo().getInventory().getItemsComponent().addItem(photoItem); - this.client.sendResponse(new CameraPurchaseSuccesfullComposer()); - this.client.sendResponse(new AddHabboItemComposer(photoItem)); - this.client.sendResponse(new InventoryRefreshComposer()); - - this.client.getHabbo().giveCredits(-Emulator.getConfig().getInt("camera.price.credits")); - this.client.getHabbo().givePixels(-Emulator.getConfig().getInt("camera.price.points")); - - AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("CameraPhotoCount")); - } - } + if (this.client.getHabbo().getHabboInfo().getCredits() < CameraPurchaseEvent.CAMERA_PURCHASE_CREDITS) { + this.client.sendResponse(new NotEnoughPointsTypeComposer(true, false, 0)); + return; } - else - { - this.client.sendResponse(new AlertPurchaseFailedComposer(AlertPurchaseFailedComposer.SERVER_ERROR).compose()); + + if (this.client.getHabbo().getHabboInfo().getCurrencyAmount(CameraPurchaseEvent.CAMERA_PURCHASE_POINTS_TYPE) < CameraPurchaseEvent.CAMERA_PURCHASE_POINTS) { + this.client.sendResponse(new NotEnoughPointsTypeComposer(false, true, CameraPurchaseEvent.CAMERA_PURCHASE_POINTS_TYPE)); + return; + } + + if (this.client.getHabbo().getHabboInfo().getPhotoTimestamp() == 0) return; + if (this.client.getHabbo().getHabboInfo().getPhotoJSON().isEmpty()) return; + if (!this.client.getHabbo().getHabboInfo().getPhotoJSON().contains(this.client.getHabbo().getHabboInfo().getPhotoTimestamp() + "")) + return; + + if (Emulator.getPluginManager().fireEvent(new UserPurchasePictureEvent(this.client.getHabbo(), this.client.getHabbo().getHabboInfo().getPhotoURL(), this.client.getHabbo().getHabboInfo().getCurrentRoom().getId(), this.client.getHabbo().getHabboInfo().getPhotoTimestamp())).isCancelled()) { + return; + } + + + + HabboItem photoItem = Emulator.getGameEnvironment().getItemManager().createItem(this.client.getHabbo().getHabboInfo().getId(), Emulator.getGameEnvironment().getItemManager().getItem(Emulator.getConfig().getInt("camera.item_id")), 0, 0, this.client.getHabbo().getHabboInfo().getPhotoJSON()); + + if (photoItem != null) { + photoItem.setExtradata(photoItem.getExtradata().replace("%id%", photoItem.getId() + "")); + photoItem.needsUpdate(true); + + this.client.getHabbo().getInventory().getItemsComponent().addItem(photoItem); + + this.client.sendResponse(new CameraPurchaseSuccesfullComposer()); + this.client.sendResponse(new AddHabboItemComposer(photoItem)); + this.client.sendResponse(new InventoryRefreshComposer()); + this.client.getHabbo().giveCredits(-CameraPurchaseEvent.CAMERA_PURCHASE_CREDITS); + this.client.getHabbo().givePoints(CameraPurchaseEvent.CAMERA_PURCHASE_POINTS_TYPE, -CameraPurchaseEvent.CAMERA_PURCHASE_POINTS); + + AchievementManager.progressAchievement(this.client.getHabbo(), Emulator.getGameEnvironment().getAchievementManager().getAchievement("CameraPhotoCount")); } } } \ No newline at end of file diff --git a/src/main/java/org/krews/apollyon/incoming/CameraRoomPictureEvent.java b/src/main/java/org/krews/apollyon/incoming/CameraRoomPictureEvent.java index 7343b5c..ed4447f 100644 --- a/src/main/java/org/krews/apollyon/incoming/CameraRoomPictureEvent.java +++ b/src/main/java/org/krews/apollyon/incoming/CameraRoomPictureEvent.java @@ -8,6 +8,7 @@ import com.eu.habbo.messages.outgoing.camera.CameraURLComposer; import com.eu.habbo.messages.outgoing.generic.alerts.GenericAlertComposer; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufInputStream; +import javafx.scene.Camera; import org.krews.apollyon.ftp.FTPUploadService; import javax.imageio.ImageIO; @@ -21,9 +22,7 @@ public class CameraRoomPictureEvent extends MessageHandler { @Override public void handle() { - if (Emulator.getIntUnixTimestamp() - this.client.getHabbo().getHabboStats().lastPurchaseTimestamp >= CatalogManager.PURCHASE_COOLDOWN) { - this.client.getHabbo().getHabboStats().lastPurchaseTimestamp = Emulator.getIntUnixTimestamp(); - if (!this.client.getHabbo().hasPermission("acc_camera")) { + if (!this.client.getHabbo().hasPermission("acc_camera")) { this.client.sendResponse(new GenericAlertComposer(Emulator.getTexts().getValue("camera.permission"))); return; } @@ -53,6 +52,8 @@ public class CameraRoomPictureEvent extends MessageHandler this.client.getHabbo().getHabboInfo().setPhotoTimestamp(timestamp); this.client.getHabbo().getHabboInfo().setPhotoRoomId(room.getId()); this.client.getHabbo().getHabboInfo().setPhotoJSON(json); + CameraPurchaseEvent lol = new CameraPurchaseEvent(); + lol.lastRanTimestamps.put(this.client.getHabbo(), Emulator.getIntUnixTimestamp()); try { if(Emulator.getConfig().getInt("ftp.enabled") == 1) { @@ -75,5 +76,4 @@ public class CameraRoomPictureEvent extends MessageHandler this.client.sendResponse(new CameraURLComposer(URL)); } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/target/Apollyon-1.jar b/target/Apollyon-1.jar index bf9298ee248422c55a67d186a79be04462d7398d..ee22caa238bd54ae3877e4cca5f6ee02e0bdf6a7 100644 GIT binary patch delta 11530 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 delta 11452 zcmaKS1yo!=^Y-HI4#nMVaSFxVy*S0)oo=DH647BIA{aEa$>+`dSL@^DJ zMyYJaCns`c@T3tQy2vNf%rKp`zR;7NZ1OC?j;n*t7Z6?giQ~_)^=sOq~ zvA(Uot$_b3PlF_?{WZ!zKk(13i@Ocy{~PgpQoj)nU^Eyk_}`NPQ^2tQ-BE+#{<{+j z!w;YQtQy=2L;ZJW7lsQ%i2+$HOu{(Z5*7e>1XIBhf?QU(@CP>;Per6POg(1Q{bLka z8)jBNm1Ex!Wb9!plZ(`oBmTG%!8~5^`da3c$H~Zj_3&$geTmVg+{jmHE}V7wl6L9# zWpb2a>zMG9uP4rn2b&T~@$5Yob_9P#o0?Z5^RY^BqB4j=hWVkA

Ofh|XTk2I(+h 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 diff --git a/target/classes/org/krews/apollyon/Main.class b/target/classes/org/krews/apollyon/Main.class index 92284835bf6485c9c36915f1a8477288594cf537..f1e125a4705221d8c069858f789e0f9ac36b1cc3 100644 GIT binary patch delta 1751 zcmZWpYg<%R6n^*2z&;#K1V;q9$w5U1gc(GX60`_`Gzdh5#L5oCVHiBjp}ByNHKt`{ zS3KRcq?_H)ETs^w=z02BJ$=p}(3gHhwf4*rDCc=*?RTxcZu73S=cm%Yw8Sre-&_Jv zj~`{!Vn9X>4$F8Hk7W>gT!*lq^-fEAAfjJA+zFl2P1s~yKJImwE`$WM-e9G~eg3s}Vf-f=0 zP-I)KB0K1*PQRq!GQP5BJq_ts@HN9WJ11?E{f}ol@eQsrtkcIW)10!xzJO(!L)K*2 zr;l0jaE!rSx4o9*nu2+J%aA!78}}Jueb6+97+5WXBrNf$5n=E|EQ=x(VHww>(Mc;p zPMNpi*1Bzu`-l}Kzf9wpKE}sQgNlyX$J2J&OKEe7E0|O89TpVSf&81hhKECekZx+- zW;_@QYc*PrJ{j?8%}&Q!cf^k1ZegJCVz@f&gf zh(0)I`CG^0rXI5*95)qwj~^KFX@d4ePqw|6|2khSC0yPLZ-ugP;FIDD0i_)eCsE;YyfS?ge?G8iv>e4MH z(b-se=Zc|>_OliYTj^UUD5FP}PM8*mK^xE zCut0g6zjqcdzZ2$A$(PMNNSL<0lCR3?*Ysaq$R@My*ZC=;E#(1JZA8Cp}Fk?l8f7hUz((p{wq<@_SD)tm*W z{WUpKu29ybl#CIfv44a`djeKt{ zB2Ud%*DatxphC6CLB(o`gVw914${;z2W?O{<~wkcTJE6DY6T&?FUy(TQpLPdiO~oTb}Y9KalUv4Dg48GZO2hwujuC+V+G z@wB`nx5$4#G2D-n$w9a%>vVDsZpwQ!IfoI?@*q;CPMV<@giL1-73-yr50WlkO&^^S hrMvxh%E%@@8EVZUeDkOhKbEc9-4fCsA)5<_{sphOSBd}t delta 1577 zcmb_c-&a&s6#nk~;9M?OlnD?-;7*ASf=r582?>N60tSXksg#$Q>&(C~m+s6!6gFAf z4^z^vWf_$|v{ny2)N;jQ^yK#lotbf1JoMI@HGA*7_dfgV?>qaP zzl|T8bHD!c!#x0WtzjI`Yj^>t zq&O{bMqon2i+D*xCC&<%8p<D|z9SaSV26)_cY4GB!Cm{yTgn=qpyC4;t#Sq(44 zQIQtN2xJB3uK#senZKJ-j(fx_0t*7Ky1#h)2edIe>qM->iKL~V{HU2obxfIarjG5{ zA@G`xMVuFST}KXY=(vD4b-X1-FZy&`#3g~Zb-aUj-7~&W?Rz>d<9&fEI<8_##|OBk zput`AG`QdU+AFW?_z()eU z#|jt2T?*>|GpImK+Oe^W>0}htgofq$hLdJ079N?LvLczT){_WwFtZlv|;q3DsyuJ=s_TMmNMZ6tBk=s+VG2oZfJ(H|iGBeYHt%QRsu63A7; zko4^=04O3Byme3DNrK$SySX1-1l-6=-;JlZ*#YLuV=8!h=vl`yZ!cY>SxHd)nS6g0 zn*()$`W0-ERzqNG(P|7d(Q<#U4CSiE>wRl{(Jm22`+sF@70m%-1wpAFrp_~%%TqYW z@dEK_=plQ(9I>Z4wf*GsAh|n4`~&FYtMcU-Cel7A)ua^|11dJiq;37Qd7y*jFOB;OXJfNP;!$gKXk3kMkLR%Ud%* Lt*{|EmxKQTI)pZU diff --git a/target/classes/org/krews/apollyon/ftp/FTPUploadService.class b/target/classes/org/krews/apollyon/ftp/FTPUploadService.class new file mode 100644 index 0000000000000000000000000000000000000000..62884300fdd59c913889cb7304245bde233571da GIT binary patch literal 1657 zcma)6Yj@j35WVtCvZ6fdG)WDVcT(GJBHpA#WUY@L4gFbs zNps-PAHa{|aAi5fA^y-0-klxI+?jiK$AACx$4da8;1?Zve4yh)e5B!Hot{rMe5T=Z z6{{NVs;FvM({T^?bv(cqDjw>X#Fz21u44mV>Da_pynL-7_cZLcd{;rCek`5|(-mIV zY=pk!b=MS3Zb&Z(g%|D%H?kRh&+(k_fr50Yyssd$ArI-Dt~;K+6ZH;kzbOt}dJ1)E z33p%kPJA9ZGvSdFC@9yZ-!*^r?UTS1ed)T-rDw7WbE~=6>bp`LHf;ZyW7(`f5e*!* zp6C*Fq10Kw+GX5G)=45#opl9zlC&qnBer-XgOFPk*gm(u2-reCiD*5llSve_pGt5& zJ2dHK<%}ggPr;2#eyZWwR_I8N5r&MyeiTwGTl5snCy|accSrn;(>H&!?0%dSsQ8BG zhKzj6-g080=KfE5CB6j%^H@+(Gw?0GQ=n0um6(T$x`A!%3|$E)BmNrmI+6aNf?Kbs zF1azWYMP5dbuoCj7|>V?pZD$ij)Iwsx3GI~Ov;qF)!bTMRk3Se58tbJWT1g2Wf+7G zg^L?+8Q8}UDjpkX<3|-815faifuFIUV0I8qk!rjD$wCz@*)#3PJQ4>7(%kGtt_UTs zE8n$4YW~#eDyWpo^-E!v^ldZw8u=pDcUyRTCq6Y_dbLRE$O^-^y;MqWaC8F7S6$~E zhKx5oi!;DpbN0YeusR0kD$H2q5!sUwjOSDOJwg5Nj)Cor;3oI9HWqhoOl~|jQ?hS+ z7mr%OYZQ6(J}ZlOUdJ0e<#7{l z5`@W$#<;l1@flKu^eHmiv5}>*6B{`i)l5NC|3bcZV5*ucGH<%77S&VCRJEd3NmpK;;#yHVMd6~u3UpSUX8joyaE-mqVx1(n zNv=tH9d>w#A{=svSv*NP#anorC-zKK!6xh_=k%3hflke*w5%nXCW+ literal 0 HcmV?d00001 diff --git a/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class b/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class index 09ac57c76a880b3fd8e0e9bae38bb78adb596016..c49670cd1db19ccb858dd365308cc978503079dc 100644 GIT binary patch delta 1423 zcmZXSYgCj~6o#Mk%?xMenxhnd$;_@=mf6KFmS$`9H`nT4k+ct*E^XG#d(Phb-TUnQ&Tb#H=KRF& zqg%EEIUIHwNqLA7Om(@1X)d=i-Q_lBxWt$lq{3wum73WuA*w8=+J@|5OjSEkl0 zHLEnwc&^%??#8Pd>lemm)>bwt`gwayKkpy4s;|VGH7!y`vs&^s&uX6YI-JOmT=ER9 zJTET88eY(>HN416nwJf)uujuvXy?@xzVkvIhSzvqQRuA=^z{mSktw;nVR)0b3~!S( ztfy1z8aA*|o}UwIjzw!@byd;Qcw2tMSx+uI4DYj3^MT<*J~DjFM#Cq3s@Y}O&1ag=4SV>)o8X_EXfb@rUc*-; zWmv;LzBYWrcteqeZ~4x!pYIJn*eXBrli`4cpUG2Xob0*mKP3&na8Qxi6Ka}Y8!as< z9=oWbvLRkmUuQUE^Tt)w&x=+rh*rnEjzBMwChUz44EE*nYiD)fh`%%LcB#zX4WdH4 zG#;y%Ths1%8YO!fW2HJO#gru zGOU@xm%^XotTqCD`fTFz6yYRcwOB1t%ZMtYnpErYbDcc3UTs#}#BNpX%Gw9iZ|Zkx z`Ka2bx{jSrKqflV>F=B^yo@eKTL(v+;ZBaMu#bFi&>01ZBV;SX1!^FJRfHibp9@tH zL)9dPsp(v#=5w)XA|j7x%R><Yf1%C0^#ujMe^$=6Jv=9$vd5S zf}PeaeFRUhM^C*|N~QmwBNCiiC+#E$3N>Y+zog+J&Na!6f%Y UKyzcaNG4rR?Af`S1RZYv7rpx%+yDRo delta 1485 zcmZ{jd2kd}5XOH!o88%+JcyQDu{g9ent)~tFoYxsN(_Pq2oO;Ll}%h0Fk}OSLp)X# z5$|IZC5WJi;04A&xD;;`6u}emB7%xXQDv3?h*lB%g%k+t)XdkfyTAUXU(cJRXRJCi zwf*p>EkJL6_2|o(2>Fcl7{^r}S96WWcw!zERED|MBhCbughzylmNUtwCtJAAqlzgm z)gBp)v5*W?W9?K6(`U@>WHQI*Z}7O0n>=nNW!+mm=5njY zZOjXEdph&E!}1rTb0>F2wCHXN_gJ{s#_qFlzok52`+v~754rdrQ69GC>O5kF7kWI( zV=iWqM;>)9i(MY~gRO zqtMY`7VdbuVH2ALtbN7sD(ekfc+K#-EqH@<{?qfw&5MNy1Z+6k8Lj7 z4eztj@BuqqJ~ZrPm&-?nkNLzOmNqiA#PBJf89ry7ZqKlrFARIQ#4yCdmwaXTnr{r> zT9v&t8NRcyk3!*;$+4NSXjQB_5iOrMEjcSzQ584r=X;@jOKSSms_3W@r6sc~<2ALD zlGTPE_|fHn;U|6;237heg}eHB!JI$=zcj>xzokj0-xO#UESVXvu5B3Z9hQ`rh}V`T z6NyRH3871NPHAOwN;EzrIx$vJk&IR*r^TbK=^`QXf0IH+RWk9Cov@6TkKf+!PqBAa3EK)D3RzD8G?(32ImUKVGP)o24=j+-WA<&-z>IoMd zDfYLU-$RXbtCRAEt!;{>!^wrA4fM{`*m)~StM9%RXES+z=ZwykeHuxxCtc>qT$x8y zB2puDt#-L;u8~IBsD7QS5bN)eCfTpO{Utl)&=Ko6+Im~3z0*l~hnzI)bI{3kdeVyk z{rtrl15yXck_cx>SI(9mWJ_Oiq=fD=lpZpcbEKMcrG{L6cb2{SH^R3iopb#C;RNd z(@D*jCN8B^N4`*YF;rs#7Re5V=_*aPlW3jka648y^=M`RL6&I-z4680d1D`BNJn pOxI)m>qbV0onpO3nst9iH>R~m6E2rG>&Ue0vX--Tg`&fie*+chGiLw* diff --git a/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class b/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class index 47afef85a2fae9b0c8933aa6771372498d627f46..20604867a48a680f9d701922b6763d700bb925a5 100644 GIT binary patch literal 4995 zcmb7Id3+Pc75>I{SbJH(*fF8yXdp580G0qHfE-#Q1QxZ8D;rXqwqz}>LPvRATXoIgC8dGqF--+MFb zNB?)<{Q!30-!i&!Ov1Be)ZkbHo{s0pcrK3D;|3WTMwyb7k%BH`3~3qTFqn3ugcCBB zAj5lErkK2E@hr!)lRVfm9JmtlGFIRi4-@q`#lJW4Fv;7`V|~w;@B%*YLLOcu2@H!c<#~bQ#Gyl>#2XExrn|OFLoBb9U zZ^heWydCe5@J^ZBCXe4GV<&EraI1`6Y}*)a*9HD_EM>Y=eu%S8kl2930-xp`X`xPCs~uHK}TRrNec z7#+2OaolqCjGA|J+fjR%9O=DLo6yvZW~SA+>FR0Sj_f5Zi@FTcaQ6z-wzVG>sEb-D z(zmSFF!la?c2u{Aw9yPvntH9ImN}}~2CoamI(OV4Pp;{;?6i8q)=xRAma{UMNy}6X zldLjGTU5*Hwl{^eSnc0zyU_S;O_UQ*;-NYi5eIHRQ+vEAHx9f%b*C z$E+lE$)KwxPf+}P10{SwpuQ`aDYz&PT4aTOz+e?CE7-M#W2E2^ooB*tl%T~sDh8-E(v!l_&7cx;gbr^;+%x@3hqHd z!9GL<_LU@&VB%^{~rjf)aKt>AtlVTwc;xhu^--i@DjEf3B zi_a-|1fLh!U1DV}lTRC_s&h`A0@{v{A;n}57)i#jpK}FYU{PPhqY}QP;LB{#A$&!` zR~38>Usv!AJfPq)d{e@=6nq=s5m=h^p|i!Hn!#L$wUCgZX4qcgFIW zOfk*^*Ih!8VRA?;ds6LArTqG1fELfQ<77?uf`!D3;u89ptvlnhg8qmvBWJ3+F92$fU%0lw#u9$NBhBeWL0z|$ zaK^Ivj7AZo+NaJCwahUiEzr?cR{crK*41D)Z)>h$nSGi`g<@0jZzvI1m6O^GX`mh` z(9#y_ia`}b+PM!=%b@%TY^~aR(ge+b%TW)~JnEkyE2sxlZpM{QP=g|Ce27r+%H6FT zKhknlH7%i*A2itjedd@Y(77=2abhMF3(BM~SLTe_ddhI=GFa3$G7{&jL~(R8mC&7> zWjfSvx3`tXa&Gk%pcE~1vj_`W&Z6_St((coZoj8e!MDXZNxU_{K%co(1BZRup~1ub z0+*A+V;NQM*3=G;mDCK@3xv|NtN7g$Zo=Ex|tN)olX5`yO8uXn8gXO#D( zWxASSQp{F`r9{Uydr&`_Cztg|JK566j{2RpfOUb^@=O*waS0olx40OiBZ*$>r!&EH z6P86+>xObMA-vhd;i$|S zOc`sC3+{t6Dcw9zF8Bg;)DSzVYA*>>D8_S`3Ei9-lEEE@;C$(mBwtS2I=#<=W2v_I zLQciwbD$rot}X-y)r42$EAiO{%R*F4_Yb};9yf(t%YD0c7n6XFOntZaU zIcHmGdc-*;;zt$~*vJ!C*nSl2=xe>3{tr-x2L9BbSp$C*_`md-K)>W34${~|^BTm7 zQ}9O+jlD$Ki&~lijU7`E9n+{8o*gt}_i)vNSnJ_xR(%1j z9yWwoHU=aPWE%z2Lwjv)c%O{!==U=xo|lu$LB_OU&HjLG7&buyy9}H6FGR z+jb^QV+VQpR0?LW+Bw`gg==S)yJ&NFVMS4(Jh&eA6eLk}Dd0qi6bQb>T}{_{*n0s_ zWBkj?s_xB(mBVk3QRx8Y87;Bj=)_s&+a0oz0e zwu?UO5DDxQN$e6Qv0I$R9&s}w;&yb2yRlb1L>0ieToFJgfEAs-14B4Musce7jgVT~ z8=JTN2M7O)$0S^jdOWKLJ8bsB2`s5U4~71kYR{vQ9T2_)OUV%yQHSMptcj?@w64L( F{{fjN+{pj{ delta 2001 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 ZO5@buNVc?TtZvs>GhU!;MJ>X*zW^QbzmWg{ delta 1094 zcmYL{?NiiM6vsbzpYHPGG6+-P0xN++h_GwfBV~dWm}X>9Mwak%+h}=Ma6x)*vqz|; z?3z7TR90G9)K;@FGQ&*y#_2`9?SF8lSG{nisLpTI>CHXo-h0mXd(L;hf7H%YWqmvxvQu-HLpOJa+2wE#Jq{syy^4Fi@B18fbH76$4}{s{ zbwB9v5PKc^8SpaKVIK)EdsvfnsNfNYK_1nl93t!(3Nx%3(TqAo>GG)3Va6QBJ*p`C zJ?xB^O@x{B;sJ*mZ-POlG>1SOL`{V#PCjcyw}|~ zlGHq@d8$zPw2<2azIanBF~c)FtH~Ok@I(# z>1~c`-Z8w(dz$wR$N0eTA#*aL;Uhjae8O=>z3uQ-+E}2ZxRp;epBX;qgdGU1u0Baj z;U7;AD$I~O<;GKE@y^spQc-EQ6juffU+|^<)xWk;^OfNgUmL#hNKP@Y2*jk*@GZv; z-;q;vUfl6_5%8F*F^W)PB$Z50DmL0O9kJ&^6+iqIn)CZ=nryo-V$T=vSyeioNu?(X zGWTZOMA8mBNn2MuWP8l^e(J;xE#fWkp+u6HoN>9uB`S%*<^@!)@V!yaP~owZt0XrU z3bLqIWmWcK( zux63k@+y$LbZuAvhrDO5W<^;@C`_)DO diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index e83837b..ee87fb6 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,4 +1,5 @@ org\krews\apollyon\Main.class +org\krews\apollyon\ftp\FTPUploadService.class org\krews\apollyon\incoming\CameraPurchaseEvent.class org\krews\apollyon\incoming\CameraPublishToWebEvent.class org\krews\apollyon\incoming\CameraRoomThumbnailEvent.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 2f20a10..1a4f39f 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,5 +1,6 @@ -C:\Users\John\Desktop\PNGCameraMorningStar\src\main\java\org\krews\pngcamera\incoming\CameraPurchaseEvent.java -C:\Users\John\Desktop\PNGCameraMorningStar\src\main\java\org\krews\pngcamera\Main.java -C:\Users\John\Desktop\PNGCameraMorningStar\src\main\java\org\krews\pngcamera\incoming\CameraPublishToWebEvent.java -C:\Users\John\Desktop\PNGCameraMorningStar\src\main\java\org\krews\pngcamera\incoming\CameraRoomThumbnailEvent.java -C:\Users\John\Desktop\PNGCameraMorningStar\src\main\java\org\krews\pngcamera\incoming\CameraRoomPictureEvent.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\Main.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\ftp\FTPUploadService.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\incoming\CameraRoomPictureEvent.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\incoming\CameraRoomThumbnailEvent.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\incoming\CameraPurchaseEvent.java +C:\Users\John\Desktop\apollyon-master2\src\main\java\org\krews\apollyon\incoming\CameraPublishToWebEvent.java