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 bf9298e..ee22caa 100644 Binary files a/target/Apollyon-1.jar and b/target/Apollyon-1.jar differ diff --git a/target/classes/org/krews/apollyon/Main.class b/target/classes/org/krews/apollyon/Main.class index 9228483..f1e125a 100644 Binary files a/target/classes/org/krews/apollyon/Main.class and b/target/classes/org/krews/apollyon/Main.class differ 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 0000000..6288430 Binary files /dev/null and b/target/classes/org/krews/apollyon/ftp/FTPUploadService.class differ diff --git a/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class b/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class index 09ac57c..c49670c 100644 Binary files a/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class and b/target/classes/org/krews/apollyon/incoming/CameraPublishToWebEvent.class differ diff --git a/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class b/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class index 47afef8..2060486 100644 Binary files a/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class and b/target/classes/org/krews/apollyon/incoming/CameraPurchaseEvent.class differ diff --git a/target/classes/org/krews/apollyon/incoming/CameraRoomPictureEvent.class b/target/classes/org/krews/apollyon/incoming/CameraRoomPictureEvent.class index 1f3eeb6..3608a9f 100644 Binary files a/target/classes/org/krews/apollyon/incoming/CameraRoomPictureEvent.class and b/target/classes/org/krews/apollyon/incoming/CameraRoomPictureEvent.class differ diff --git a/target/classes/org/krews/apollyon/incoming/CameraRoomThumbnailEvent.class b/target/classes/org/krews/apollyon/incoming/CameraRoomThumbnailEvent.class index 50e2e34..90a739e 100644 Binary files a/target/classes/org/krews/apollyon/incoming/CameraRoomThumbnailEvent.class and b/target/classes/org/krews/apollyon/incoming/CameraRoomThumbnailEvent.class differ 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