From 49e796c39d4d5c28757fe133a417ac185800d255 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Wed, 6 Nov 2013 20:19:56 -0800 Subject: [PATCH] Fixed Game.Core build issue. Cleaned up a lot. Added missing files for Mineplexer --- .../me/chiss/Core/ClientData/ClientAcc.java | 123 ----- .../me/chiss/Core/ClientData/ClientBan.java | 62 --- .../chiss/Core/ClientData/ClientBanEntry.java | 103 ---- .../Core/ClientData/ClientCondition.java | 44 -- .../Core/ClientData/ClientConditionEntry.java | 5 - .../me/chiss/Core/ClientData/ClientDonor.java | 443 ----------------- .../me/chiss/Core/ClientData/ClientGame.java | 282 ----------- .../chiss/Core/ClientData/ClientIgnore.java | 69 --- .../me/chiss/Core/ClientData/ClientMute.java | 116 ----- .../chiss/Core/ClientData/ClientPlayer.java | 101 ---- .../Core/ClientData/ClientPlayer.java.orig | 90 ---- .../me/chiss/Core/ClientData/ClientRank.java | 62 --- .../me/chiss/Core/ClientData/ClientWiki.java | 103 ---- .../Core/ClientData/IClientDataLoad.java | 6 - .../me/chiss/Core/Shop/CustomBuildShop.java | 127 ----- .../src/me/chiss/Core/Shop/DonatorShop.java | 57 --- .../Core/src/me/chiss/Core/Shop/GameShop.java | 71 --- .../Core/src/me/chiss/Core/Shop/IButton.java | 8 - .../src/me/chiss/Core/Shop/PvpBuildShop.java | 73 --- .../me/chiss/Core/Shop/PvpDonatorShop.java | 51 -- .../src/me/chiss/Core/Shop/PvpItemShop.java | 61 --- Plugins/Core/src/me/chiss/Core/Shop/Shop.java | 444 ------------------ .../Core/Shop/actions/ChangeCurrency.java | 32 -- .../me/chiss/Core/Shop/actions/NextPage.java | 31 -- .../chiss/Core/Shop/actions/PreviousPage.java | 31 -- .../me/chiss/Core/Shop/actions/Purchase.java | 42 -- .../me/chiss/Core/Shop/actions/PvpReturn.java | 150 ------ .../src/me/chiss/Core/Shop/actions/Reset.java | 32 -- .../me/chiss/Core/Shop/actions/Return.java | 100 ---- .../Core/Shop/actions/ShopActionBase.java | 23 - .../Core/Shop/currency/CreditHandler.java | 57 --- .../Core/Shop/currency/EconomyHandler.java | 58 --- .../Core/Shop/currency/ICurrencyHandler.java | 19 - .../Core/Shop/currency/ItemTokenHandler.java | 58 --- .../Core/Shop/currency/PointHandler.java | 57 --- .../Core/Shop/currency/SkillTokenHandler.java | 58 --- .../Shop/events/PurchasePackageEvent.java | 63 --- .../Shop/listeners/IPurchaseListener.java | 8 - .../Core/Shop/listeners/IResetListener.java | 6 - .../Core/Shop/listeners/IReturnListener.java | 8 - .../src/me/chiss/Core/Shop/page/IPage.java | 26 - .../me/chiss/Core/Shop/page/IShopPage.java | 22 - .../src/me/chiss/Core/Shop/page/PageBase.java | 86 ---- .../me/chiss/Core/Shop/page/ShopPageBase.java | 208 -------- .../Core/Shop/page/game/CustomBuildPage.java | 270 ----------- .../chiss/Core/Shop/page/game/ItemPage.java | 24 - .../Shop/page/game/PvpCustomBuildPage.java | 24 - .../Core/Shop/page/game/ShopItemPage.java | 35 -- .../chiss/Core/Shop/page/game/SkillsPage.java | 340 -------------- .../chiss/Core/Shop/page/game/WeaponPage.java | 78 --- .../page/game/purchase/ArmorPurchasePage.java | 81 ---- .../page/game/purchase/ConfirmationPage.java | 387 --------------- .../page/game/purchase/ItemPurchasePage.java | 51 -- .../game/purchase/SkillsPurchasePage.java | 109 ----- .../game/purchase/WeaponPurchasePage.java | 52 -- .../Core/Shop/pagebuilder/IPageBuilder.java | 9 - .../Shop/pagebuilder/PageBuilderBase.java | 54 --- .../game/CustomBuildPageBuilder.java | 89 ---- .../pagebuilder/game/ItemPageBuilder.java | 121 ----- .../game/PvpCustomBuildPageBuilder.java | 22 - .../pagebuilder/game/PvpShopPageBuilder.java | 63 --- .../pagebuilder/game/SkillsPageBuilder.java | 191 -------- .../pagebuilder/game/WeaponPageBuilder.java | 120 ----- .../purchase/ArmorPurchasePageBuilder.java | 57 --- .../purchase/ItemPurchasePageBuilder.java | 51 -- .../purchase/SkillsPurchasePageBuilder.java | 64 --- .../purchase/WeaponPurchasePageBuilder.java | 54 --- .../itemwrapper/DonationWrapper.java | 13 - .../pagebuilder/itemwrapper/IItemWrapper.java | 8 - .../pagebuilder/itemwrapper/NoWrapper.java | 12 - .../Core/Shop/salespackage/ArmorPackage.java | 219 --------- .../salespackage/DefaultClassPackage.java | 293 ------------ .../Shop/salespackage/DonationPackage.java | 97 ---- .../Core/Shop/salespackage/ISalesPackage.java | 22 - .../Core/Shop/salespackage/ItemPackage.java | 186 -------- .../Shop/salespackage/PvpItemPackage.java | 176 ------- .../Core/Shop/salespackage/PvpShopItem.java | 39 -- .../Core/Shop/salespackage/ShopItem.java | 173 ------- .../Core/Shop/salespackage/SkillPackage.java | 153 ------ Plugins/Libraries/craftbukkit.jar | Bin 15226994 -> 15226909 bytes .../.project | 4 +- .../src/mineplex/bungee/motd/MotdManager.java | 41 ++ .../mineplex/bungee/motd/MotdRepository.java | 127 +++++ .../classcombat/Skill/Shifter/Polysmash.java | 2 +- .../classcombat/Skill/Shifter/Shifter.java | 2 +- .../classcombat/item/Throwable/Pistol.java | 3 +- .../minecraft/core/log/LogManager.java | 6 - .../nautilus/minecraft/core/player/Home.java | 163 ------- .../minecraft/core/player/HomeManager.java | 52 -- .../minecraft/core/utils/ColorUtil.java | 18 - .../core/utils/GenericActionListener.java | 19 - .../core/utils/GenericRunnable3.java | 20 - .../minecraft/core/utils/PacketUtils.java | 234 --------- .../minecraft/core/utils/TntUtil.java | 75 --- .../minecraft/core/utils/ZombieSpeedUtil.java | 49 -- .../token/Wiki/GameClassWikiToken.java | 8 - .../webserver/token/Wiki/ItemWikiToken.java | 11 - .../webserver/token/Wiki/ServerWikiToken.java | 11 - .../webserver/token/Wiki/SkillWikiToken.java | 8 - .../webserver/token/Wiki/WeaponWikiToken.java | 8 - .../token/Wiki/WikiRevisionToken.java | 10 - .../Nautilus.Game.CaptureThePig/.classpath | 14 - .../CaptureThePig.launch | 17 - .../.settings/org.eclipse.jdt.core.prefs | 11 - .../CaptureThePig.xml | 111 ----- .../Nautilus.Game.CaptureThePig/plugin.yml | 3 - .../game/capturethepig/CaptureThePig.java | 56 --- .../arena/CaptureThePigArena.java | 58 --- .../arena/CaptureThePigArenaParser.java | 88 ---- .../arena/ICaptureThePigArena.java | 20 - .../arena/property/BluePigPen.java | 20 - .../arena/property/PigSpawnLocation.java | 19 - .../arena/property/RedPigPen.java | 20 - .../engine/CaptureThePigGameEngine.java | 258 ---------- .../engine/CaptureThePigNotifier.java | 77 --- .../capturethepig/event/PigCapturedEvent.java | 21 - .../capturethepig/event/PigDroppedEvent.java | 21 - .../game/capturethepig/event/PigEvent.java | 12 - .../capturethepig/event/PigPickedUpEvent.java | 21 - .../capturethepig/event/PigStolenEvent.java | 29 -- .../capturethepig/game/CaptureThePigGame.java | 254 ---------- .../capturethepig/game/CaptureThePigTeam.java | 90 ---- .../game/ICaptureThePigGame.java | 10 - .../game/ICaptureThePigTeam.java | 20 - .../player/CaptureThePigPlayer.java | 30 -- .../player/ICaptureThePigPlayer.java | 10 - .../repository/CaptureThePigRepository.java | 34 -- .../repository/ICaptureThePigRepository.java | 14 - .../scoreboard/CaptureThePigScoreHandler.java | 35 -- .../CaptureThePigTabScoreboard.java | 142 ------ .../ICaptureThePigScoreHandler.java | 10 - .../scoreboard/PlayerSorter.java | 34 -- .../stats/CaptureThePigGameStatsToken.java | 10 - .../stats/CaptureThePigPlayerStats.java | 9 - .../stats/CaptureThePigPlayerStatsToken.java | 9 - .../stats/CaptureThePigStatsReporter.java | 94 ---- .../game/core/engine/TeamGameEngine.java | 6 +- Plugins/Nautilus.Game.Deathmatch/.classpath | 13 - Plugins/Nautilus.Game.Deathmatch/.project | 17 - .../.settings/org.eclipse.jdt.core.prefs | 11 - .../nautilus/game/deathmatch/Deathmatch.java | 45 -- .../game/deathmatch/DeathmatchArena.java | 11 - .../deathmatch/DeathmatchArenaParser.java | 14 - .../game/deathmatch/DeathmatchEngine.java | 44 -- .../game/deathmatch/DeathmatchGame.java | 26 - .../game/deathmatch/DeathmatchNotifier.java | 12 - .../game/deathmatch/DeathmatchPlayer.java | 13 - .../deathmatch/DeathmatchScoreHandler.java | 18 - .../game/deathmatch/IDeathmatchArena.java | 8 - .../game/deathmatch/IDeathmatchGame.java | 8 - .../repository/DeathmatchRepository.java | 11 - 151 files changed, 177 insertions(+), 10045 deletions(-) delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientAcc.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientBan.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientBanEntry.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientCondition.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientConditionEntry.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientDonor.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientGame.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientIgnore.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientMute.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java.orig delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientRank.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/ClientWiki.java delete mode 100644 Plugins/Core/src/me/chiss/Core/ClientData/IClientDataLoad.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/CustomBuildShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/DonatorShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/GameShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/IButton.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/PvpBuildShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/PvpDonatorShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/PvpItemShop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/Shop.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/ChangeCurrency.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/NextPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/PreviousPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/Purchase.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/PvpReturn.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/Reset.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/Return.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/actions/ShopActionBase.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/CreditHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/EconomyHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/ICurrencyHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/ItemTokenHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/PointHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/currency/SkillTokenHandler.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/events/PurchasePackageEvent.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/listeners/IPurchaseListener.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/listeners/IResetListener.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/listeners/IReturnListener.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/IPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/IShopPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/PageBase.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/ShopPageBase.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/CustomBuildPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/ItemPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/PvpCustomBuildPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/ShopItemPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/SkillsPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/WeaponPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ArmorPurchasePage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ConfirmationPage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ItemPurchasePage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/SkillsPurchasePage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/WeaponPurchasePage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/IPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/PageBuilderBase.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/CustomBuildPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/ItemPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpCustomBuildPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpShopPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/SkillsPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/WeaponPageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ArmorPurchasePageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ItemPurchasePageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/SkillsPurchasePageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/WeaponPurchasePageBuilder.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/DonationWrapper.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/IItemWrapper.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/NoWrapper.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/ArmorPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/DefaultClassPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/DonationPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/ISalesPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/ItemPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpItemPackage.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpShopItem.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/ShopItem.java delete mode 100644 Plugins/Core/src/me/chiss/Core/Shop/salespackage/SkillPackage.java rename Plugins/{Nautilus.Game.CaptureThePig => Mineplex.Bungee.Mineplexer}/.project (83%) create mode 100644 Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdManager.java create mode 100644 Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdRepository.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/log/LogManager.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/Home.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/HomeManager.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ColorUtil.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericActionListener.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericRunnable3.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/PacketUtils.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/TntUtil.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ZombieSpeedUtil.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/GameClassWikiToken.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ItemWikiToken.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ServerWikiToken.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/SkillWikiToken.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WeaponWikiToken.java delete mode 100644 Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WikiRevisionToken.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/.classpath delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/.externalToolBuilders/CaptureThePig.launch delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/CaptureThePig.xml delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/plugin.yml delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/CaptureThePig.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArena.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArenaParser.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/ICaptureThePigArena.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/BluePigPen.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/PigSpawnLocation.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/RedPigPen.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigGameEngine.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigNotifier.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigCapturedEvent.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigDroppedEvent.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigEvent.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigPickedUpEvent.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigStolenEvent.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigGame.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigTeam.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigGame.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigTeam.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/CaptureThePigPlayer.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/ICaptureThePigPlayer.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/CaptureThePigRepository.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/ICaptureThePigRepository.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigScoreHandler.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigTabScoreboard.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/ICaptureThePigScoreHandler.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/PlayerSorter.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigGameStatsToken.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStats.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStatsToken.java delete mode 100644 Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigStatsReporter.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/.classpath delete mode 100644 Plugins/Nautilus.Game.Deathmatch/.project delete mode 100644 Plugins/Nautilus.Game.Deathmatch/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/Deathmatch.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArena.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArenaParser.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchEngine.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchGame.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchNotifier.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchPlayer.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchScoreHandler.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchArena.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchGame.java delete mode 100644 Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/repository/DeathmatchRepository.java diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientAcc.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientAcc.java deleted file mode 100644 index f0e208edd..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientAcc.java +++ /dev/null @@ -1,123 +0,0 @@ -package me.chiss.Core.ClientData; - -import java.util.HashSet; - -import nautilus.minecraft.core.webserver.token.Account.AccountToken; - -import mineplex.core.account.CoreClient; -import mineplex.core.server.IRepository; - -public class ClientAcc extends ClientDataBase -{ - private long _playTime = 0; - - private long _loginLast = 0; - private int _loginCount = 0; - - private String _ip = "Unknown"; - private String _mac = "Unknown"; - - private HashSet _listIP = new HashSet(); - private HashSet _listMAC = new HashSet(); - - private HashSet _aliasIP = new HashSet(); - private HashSet _aliasMAC = new HashSet(); - - public ClientAcc(CoreClient client, IRepository repository) - { - super(client, "Account", repository); - } - - public ClientAcc(CoreClient client, IRepository repository, AccountToken token) - { - super(client, "Account", repository, token); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(AccountToken token) - { - _playTime = token.TotalPlayingTime; - _loginLast = token.LastLogin; - _loginCount = token.LoginCount; - - _listIP = new HashSet(); - _listMAC = new HashSet(); - - _aliasIP = new HashSet(); - _aliasMAC = new HashSet(); - - _listIP.addAll(token.IpAddresses); - _listMAC.addAll(token.MacAddresses); - _aliasIP.addAll(token.IpAliases); - _aliasMAC.addAll(token.MacAliases); - } - - public void SetIP(String ip) - { - _ip = ip; - } - - public String GetIP() - { - return _ip; - } - - public void SetMac(String mac) - { - _mac = mac; - } - - public String GetMac() - { - return _mac; - } - - public long GetPlayTime() - { - return _playTime; - } - - public long GetLoginLast() - { - if (_loginLast == 0) - _loginLast = System.currentTimeMillis(); - - return _loginLast; - } - - public void SetLoginLast(long loginLast) - { - _loginLast = loginLast; - } - - public int GetLoginCount() - { - return _loginCount; - } - - public HashSet GetListIP() - { - return _listIP; - } - - public HashSet GetListMAC() - { - return _listMAC; - } - - public HashSet GetAliasIP() - { - return _aliasIP; - } - - public HashSet GetAliasMAC() - { - return _aliasMAC; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientBan.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientBan.java deleted file mode 100644 index a27b2cf96..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientBan.java +++ /dev/null @@ -1,62 +0,0 @@ -package me.chiss.Core.ClientData; - -import mineplex.core.account.CoreClient; -import mineplex.core.server.IRepository; -import mineplex.minecraft.punish.Tokens.PunishToken; - -public class ClientBan extends ClientDataBase -{ - private PunishToken _activeBan; - - public ClientBan(CoreClient client, IRepository repository) - { - super(client, "Ban", repository); - //_bans = new LinkedList(); - } - - public ClientBan(CoreClient client, IRepository repository, PunishToken banToken) - { - super(client, "Ban", repository, banToken); - //_bans = new LinkedList(); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(PunishToken banToken) - { - _activeBan = banToken; - } - - public boolean IsBanned() - { - return _activeBan != null; - } - - public ClientBanEntry GetBan() - { - /* - for (ClientBanEntry cur : _bans) - if (cur.Active()) - return cur; - - */ - return null; - } - - public String Reason() - { - String reason = "Unknown"; - - if (_activeBan != null) - { - //reason = C.consoleBody + _activeBan.Reason + C.consoleFill + " - " + C.consoleBody + "Remaining : " + C.cGreen + UtilTime.convertString((long)(_activeBan.Hours * 3600000), 1, TimeUnit.FIT) + "."; - } - - return "Banned > " + reason; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientBanEntry.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientBanEntry.java deleted file mode 100644 index 01f0cd980..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientBanEntry.java +++ /dev/null @@ -1,103 +0,0 @@ -package me.chiss.Core.ClientData; - -import mineplex.core.common.Rank; -import mineplex.core.common.util.UtilTime; -import mineplex.core.common.util.UtilTime.TimeUnit; - -public class ClientBanEntry -{ - public ClientBan _ban; - public ClientBanEntry(ClientBan ban, String admin, Rank rank, String reason, - long banTime, long banDuration, boolean alias, String ip, String mac) - { - _ban = ban; - - _admin = admin; - _rank = rank; - _reason = reason; - _banTime = banTime; - _banDuration = banDuration; - _aliasBan = alias; - _ip = ip; - _mac = mac; - } - - private boolean _unbanned = false; - - private String _admin = ""; - private Rank _rank = Rank.ALL; - private String _reason = ""; - - private long _banTime = 0; - private long _banDuration = 0; - - private boolean _aliasBan = false; - private String _ip = ""; - private String _mac = ""; - - public boolean Active() - { - if (_unbanned) - return false; - - if (_banDuration == 0) - return true; - - return UtilTime.elapsed(_banTime, _banDuration); - } - - public boolean Alias() - { - return _aliasBan; - } - - public long Remaining() - { - return _banDuration - (System.currentTimeMillis() - _banTime); - } - - public String GetAdmin() { - return _admin; - } - - public String GetReason() { - return _reason; - } - - public long GetBanTime() { - return _banTime; - } - - public long GetBanDuration() { - return _banDuration; - } - - public boolean IsAliasBan() { - return _aliasBan; - } - - public String GetIP() { - return _ip; - } - - public String GetMac() { - return _mac; - } - - public Rank GetRank() { - return _rank; - } - - public boolean GetUnbanned() { - return _unbanned; - } - - public void SetUnbanned(boolean _unbanned) { - this._unbanned = _unbanned; - } - - public String RemainingString() - { - return UtilTime.convertString(Remaining(), 1, TimeUnit.FIT) + " Remaining"; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientCondition.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientCondition.java deleted file mode 100644 index e22069fc9..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientCondition.java +++ /dev/null @@ -1,44 +0,0 @@ -package me.chiss.Core.ClientData; - -import java.util.HashMap; - - -import org.bukkit.potion.PotionEffectType; - -import mineplex.core.account.CoreClient; -import mineplex.core.server.IRepository; - -public class ClientCondition extends ClientDataBase -{ - private HashMap _conditions; - - public ClientCondition(CoreClient client, IRepository repository) - { - super(client, "Condition", repository); - } - - public ClientCondition(CoreClient client, IRepository repository, String token) - { - super(client, "Condition", repository, token); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(String token) - { - - } - - public HashMap get_conditions() { - return _conditions; - } - - public void set_conditions(HashMap _conditions) { - this._conditions = _conditions; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientConditionEntry.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientConditionEntry.java deleted file mode 100644 index e166a62a5..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientConditionEntry.java +++ /dev/null @@ -1,5 +0,0 @@ -package me.chiss.Core.ClientData; - -public class ClientConditionEntry { - -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientDonor.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientDonor.java deleted file mode 100644 index 844c89402..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientDonor.java +++ /dev/null @@ -1,443 +0,0 @@ -package me.chiss.Core.ClientData; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -import nautilus.minecraft.core.webserver.token.Account.DonorToken; - -import org.bukkit.entity.EntityType; -import org.bukkit.inventory.ItemStack; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.core.CurrencyType; -import mineplex.core.Rank; -import mineplex.core.server.IRepository; -import mineplex.core.common.util.C; -import mineplex.core.common.util.NautHashMap; -import mineplex.minecraft.account.CoreClient; -import mineplex.minecraft.game.classcombat.Class.repository.token.CustomBuildToken; -import mineplex.minecraft.game.classcombat.Class.repository.token.SlotToken; -import me.chiss.Core.Pet.repository.token.PetToken; -import me.chiss.Core.Skill.ISkill; -import me.chiss.Core.Skill.ISkill.SkillType; - -public class ClientDonor -{ - private DonationRepository - private int _blueGems; - private int _greenGems; - private boolean _donated; - private List _salesPackagesOwned; - - public ClientDonor(CoreClient client, IRepository repository) - { - super(client, "Donor", repository); - } - - public ClientDonor(CoreClient client, IRepository repository, DonorToken token) - { - super(client, "Donor", repository, token); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(DonorToken token) - { - int creditChange = token.BlueGems - _blueGems; - int pointChange = token.GreenGems - _greenGems; - _blueGems = token.BlueGems; - _greenGems = token.GreenGems; - _donated = token.Donated; - - _salesPackagesOwned = token.SalesPackages; - - - - _customBuilds = new NautHashMap>(); - _activeCustomBuilds = new NautHashMap(); - - if (Client.Manager().Classes() != null && Client.Manager.Skills() != null) - { - for (IPvpClass pvpClass : Client.Manager().Classes().GetAllClasses()) - { - _customBuilds.put(pvpClass, new HashMap()); - } - - for (CustomBuildToken buildToken : token.CustomBuilds) - { - IPvpClass pvpClass = Client.Manager().Classes().GetClass(buildToken.PvpClassId); - - int skillTokenCount = buildToken.SkillTokensBalance; - - Entry swordSkill = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.SwordSkillId); - Entry axeSkill = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.AxeSkillId); - Entry bowSkill = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.BowSkillId); - Entry classPassiveASkill = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.ClassPassiveASkillId); - Entry classPassiveBSkill = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.ClassPassiveBSkillId); - Entry globalPassiveA = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.GlobalPassiveASkillId); - Entry globalPassiveB = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.GlobalPassiveBSkillId); - Entry globalPassiveC = Client.Manager.Skills().GetSkillBySalesPackageId(buildToken.GlobalPassiveCSkillId); - - if (buildToken.SwordSkillId != -1 && (swordSkill == null || swordSkill.getKey().GetSkillType() != SkillType.Sword - || (!swordSkill.getKey().IsFree(swordSkill.getValue()) && !Owns(buildToken.SwordSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.AxeSkillId != -1 && (axeSkill == null || axeSkill.getKey().GetSkillType() != SkillType.Axe - || (!axeSkill.getKey().IsFree(axeSkill.getValue()) && !Owns(buildToken.AxeSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.BowSkillId != -1 && (bowSkill == null || bowSkill.getKey().GetSkillType() != SkillType.Bow - || (!bowSkill.getKey().IsFree(bowSkill.getValue()) && !Owns(buildToken.BowSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.ClassPassiveASkillId != -1 && (classPassiveASkill == null || classPassiveASkill.getKey().GetSkillType() != SkillType.PassiveA - || (!classPassiveASkill.getKey().IsFree(classPassiveASkill.getValue()) && !Owns(buildToken.ClassPassiveASkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.ClassPassiveBSkillId != -1 && (classPassiveBSkill == null || classPassiveBSkill.getKey().GetSkillType() != SkillType.PassiveB - || (!classPassiveBSkill.getKey().IsFree(classPassiveBSkill.getValue()) && !Owns(buildToken.ClassPassiveBSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.GlobalPassiveASkillId != -1 && (globalPassiveA == null || globalPassiveA.getKey().GetSkillType() != SkillType.PassiveC - || (!globalPassiveA.getKey().IsFree(globalPassiveA.getValue()) && !Owns(buildToken.GlobalPassiveASkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.GlobalPassiveBSkillId != -1 && (globalPassiveB == null || globalPassiveB.getKey().GetSkillType() != SkillType.PassiveD - || (!globalPassiveB.getKey().IsFree(globalPassiveB.getValue()) && !Owns(buildToken.GlobalPassiveBSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - if (buildToken.GlobalPassiveCSkillId != -1 && (globalPassiveC == null || globalPassiveC.getKey().GetSkillType() != SkillType.PassiveE - || (!globalPassiveC.getKey().IsFree(globalPassiveC.getValue()) && !Owns(buildToken.GlobalPassiveCSkillId) && !Client.Rank().Has(Rank.DIAMOND, false)))) - continue; - - if (buildToken.SwordSkillId != -1) - skillTokenCount += swordSkill.getKey().GetTokenCost() * swordSkill.getValue(); - - if (buildToken.AxeSkillId != -1) - skillTokenCount += axeSkill.getKey().GetTokenCost() * axeSkill.getValue(); - - if (buildToken.BowSkillId != -1) - skillTokenCount += bowSkill.getKey().GetTokenCost() * bowSkill.getValue(); - - if (buildToken.ClassPassiveASkillId != -1) - skillTokenCount += classPassiveASkill.getKey().GetTokenCost() * classPassiveASkill.getValue(); - - if (buildToken.ClassPassiveBSkillId != -1) - skillTokenCount += classPassiveBSkill.getKey().GetTokenCost() * classPassiveBSkill.getValue(); - - if (buildToken.GlobalPassiveASkillId != -1) - skillTokenCount += globalPassiveA.getKey().GetTokenCost() * globalPassiveA.getValue(); - - if (buildToken.GlobalPassiveBSkillId != -1) - skillTokenCount += globalPassiveB.getKey().GetTokenCost() * globalPassiveB.getValue(); - - if (buildToken.GlobalPassiveCSkillId != -1) - skillTokenCount += globalPassiveC.getKey().GetTokenCost() * globalPassiveC.getValue(); - - if (skillTokenCount <= 120) - { - _customBuilds.get(pvpClass).put(buildToken.CustomBuildNumber, buildToken); - - if (buildToken.Active) - { - _activeCustomBuilds.put(pvpClass, buildToken); - } - } - } - } - - if (Client.GetPlayer() != null) - { - if (creditChange > 0) - { - Client.GetPlayer().sendMessage(C.cGray + "You've received " + C.cAqua + pointChange + C.cGray + " credits. Thanks for donating!"); - } - else if (creditChange < 0) - { - Client.GetPlayer().sendMessage(C.cGray + "Your credit balance is now : " + C.cAqua + pointChange + C.cGray + "."); - } - - if (pointChange > 0) - { - Client.GetPlayer().sendMessage(C.cGray + "You've received " + C.cGreen + pointChange + C.cGray + " points. Thanks for playing!"); - } - else if (pointChange < 0) - { - Client.GetPlayer().sendMessage(C.cGray + "Your point balance is now : " + C.cGreen + pointChange + C.cGray + "."); - } - } - } - - public int GetBlueGems() - { - return _blueGems; - } - - public int GetGreenGems() - { - return _greenGems; - } - - public void AddPoints(int points) - { - _greenGems += points; - } - - public List GetSalesPackagesOwned() - { - return _salesPackagesOwned; - } - - public HashMap GetCustomBuilds(IPvpClass pvpClass) - { - return _customBuilds.get(pvpClass); - } - - public void PurchaseItem(int cost) - { - _itemTokens -= cost; - } - - public void PurchaseSkill(int cost) - { - _skillTokens -= cost; - } - - public void ReturnSkill(int cost) - { - _skillTokens += cost; - } - - public void ReturnItem(int cost) - { - _itemTokens += cost; - } - - public void SetCredits(int credits) - { - _blueGems = credits; - } - - public void DeductCost(int cost, CurrencyType currencyType, boolean premium) - { - switch (currencyType) - { - case Coins: - Client.Game().SetEconomyBalance(Client.Game().GetEconomyBalance() - cost); - break; - case Gems: - if (premium) - _blueGems -= cost; - else - _greenGems -= cost; - break; - default: - break; - } - } - - public boolean Owns(Integer salesPackageId) - { - return salesPackageId == -1 || _salesPackagesOwned.contains(salesPackageId); - } - - public void SetTokens(int skillTokens, int itemTokens) - { - _skillTokens = skillTokens; - _itemTokens = itemTokens; - } - - public void SetDefaultTokens(int skillTokens, int itemTokens) - { - _defaultSkillTokens = skillTokens; - _defaultItemTokens = itemTokens; - } - - public int GetSkillTokens() - { - return _skillTokens; - } - - public int GetItemTokens() - { - return _itemTokens; - } - - public void ResetItemTokens() - { - _itemTokens = _defaultItemTokens; - } - - public void ResetSkillTokens() - { - _skillTokens = _defaultSkillTokens; - } - - public void AddSalesPackagesOwned(int salesPackageId) - { - _salesPackagesOwned.add(salesPackageId); - } - - public void SetItemTokens(int itemTokens) - { - _itemTokens = itemTokens; - } - - public void SetSkillTokens(int skillTokens) - { - _skillTokens = skillTokens; - } - - public void SetPoints(int points) - { - _greenGems = points; - } - - public boolean HasDonated() - { - return _donated; - } - - public void SaveActiveCustomBuild(boolean saveItems) - { - if (Client == null || Client.Class().GetGameClass() == null) - return; - - _savingCustomBuild.PvpClassId = Client.Class().GetGameClass().GetSalesPackageId(); - _savingCustomBuild.PlayerName = Client.GetPlayerName(); - _savingCustomBuild.SkillTokensBalance = _skillTokens; - _savingCustomBuild.ItemTokensBalance = _itemTokens; - - ISkill swordSkill = Client.Class().GetSkillByType(SkillType.Sword); - - if (swordSkill != null) - _savingCustomBuild.SwordSkillId = swordSkill.GetSalesPackageId(Client.Class().GetSkillLevel(swordSkill)); - else - _savingCustomBuild.SwordSkillId = -1; - - ISkill axeSkill = Client.Class().GetSkillByType(SkillType.Axe); - - if (axeSkill != null) - _savingCustomBuild.AxeSkillId = axeSkill.GetSalesPackageId(Client.Class().GetSkillLevel(axeSkill)); - else - _savingCustomBuild.AxeSkillId = -1; - - ISkill bowSkill = Client.Class().GetSkillByType(SkillType.Bow); - - if (bowSkill != null) - _savingCustomBuild.BowSkillId = bowSkill.GetSalesPackageId(Client.Class().GetSkillLevel(bowSkill)); - else - _savingCustomBuild.BowSkillId = -1; - - ISkill passiveASkill = Client.Class().GetSkillByType(SkillType.PassiveA); - - if (passiveASkill != null) - _savingCustomBuild.ClassPassiveASkillId = passiveASkill.GetSalesPackageId(Client.Class().GetSkillLevel(passiveASkill)); - else - _savingCustomBuild.ClassPassiveASkillId = -1; - - ISkill passiveBSkill = Client.Class().GetSkillByType(SkillType.PassiveB); - - if (passiveBSkill != null) - _savingCustomBuild.ClassPassiveBSkillId = passiveBSkill.GetSalesPackageId(Client.Class().GetSkillLevel(passiveBSkill)); - else - _savingCustomBuild.ClassPassiveBSkillId = -1; - - ISkill passiveCSkill = Client.Class().GetSkillByType(SkillType.PassiveC); - - if (passiveCSkill != null) - _savingCustomBuild.GlobalPassiveASkillId = passiveCSkill.GetSalesPackageId(Client.Class().GetSkillLevel(passiveCSkill)); - else - _savingCustomBuild.GlobalPassiveASkillId = -1; - - ISkill passiveDSkill = Client.Class().GetSkillByType(SkillType.PassiveD); - - if (passiveDSkill != null) - _savingCustomBuild.GlobalPassiveBSkillId = passiveDSkill.GetSalesPackageId(Client.Class().GetSkillLevel(passiveDSkill)); - else - _savingCustomBuild.GlobalPassiveBSkillId = -1; - - ISkill passiveESkill = Client.Class().GetSkillByType(SkillType.PassiveE); - - if (passiveESkill != null) - _savingCustomBuild.GlobalPassiveCSkillId = passiveESkill.GetSalesPackageId(Client.Class().GetSkillLevel(passiveESkill)); - else - _savingCustomBuild.GlobalPassiveCSkillId = -1; - - _savingCustomBuild.Slots = new ArrayList(9); - - if (saveItems) - { - for (int i=0; i < 9; i++) - { - SlotToken slotToken = new SlotToken(); - ItemStack itemStack = Client.Class().GetInventory().getItem(i); - slotToken.Material = itemStack == null ? org.bukkit.Material.AIR.toString() : itemStack.getType().toString(); - slotToken.Amount = itemStack == null ? 1 : itemStack.getAmount(); - - _savingCustomBuild.Slots.add(slotToken); - } - } - - Repository.SaveCustomBuild(_savingCustomBuild); - _savingCustomBuild = null; - } - - public void SetSavingCustomBuild(int i, IPvpClass pvpClass, CustomBuildToken customBuild) - { - _savingCustomBuild = customBuild; - _savingCustomBuild.CustomBuildNumber = i; - _customBuilds.get(pvpClass).put(i, _savingCustomBuild); - } - - public void SetActiveCustomBuild(int i, IPvpClass pvpClass, CustomBuildToken customBuild) - { - customBuild.Active = true; - _activeCustomBuilds.put(pvpClass, customBuild); - } - - public CustomBuildToken GetActiveCustomBuild(IPvpClass pvpClass) - { - return _activeCustomBuilds.get(pvpClass); - } - - public CustomBuildToken GetSavingCustomBuild() - { - return _savingCustomBuild; - } - - public boolean IsSavingCustomBuild() - { - return _savingCustomBuild != null; - } - - public NautHashMap GetPets() - { - return _pets; - } - - public Integer GetPetNameTagCount() - { - return _petNameTagCount; - } - - public void SetPetNameTagCount(int count) - { - _petNameTagCount = count; - } - - public int GetBalance(CurrencyType currencyType, boolean premium) - { - switch (currencyType) - { - case Coins: - return Client.Game().GetEconomyBalance(); - case Gems: - return premium ? _blueGems : (_greenGems + _blueGems); - case Tokens: - return 0; - default: - return 0; - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientGame.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientGame.java deleted file mode 100644 index d1b4b935b..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientGame.java +++ /dev/null @@ -1,282 +0,0 @@ -package me.chiss.Core.ClientData; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.DataInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashMap; - -import mineplex.core.account.CoreClient; - -public class ClientGame extends ClientDataBase -{ - private String _lastTo = null; - private String _lastAdminTo = null; - private String _lastSentMessage = ""; - private String _lastReceivedMessage = ""; - - private String _lastChat = ""; - private boolean _unfilteredChat; - - private boolean _cloaked = false; - private long _cloakEnd = 0; - - private HashMap _recharge = new HashMap(); - - private double _energy = 0; - - private int _economyBalance; - - private long _lastPPH = 0; - - public ClientGame(CoreClient client) - { - super(client, "Game", null); - } - - @Override - public void Load() - { - _economyBalance = 0; - LoadEconomyBalance(); - } - - @Override - public void LoadToken(Object token) - { - - } - - public String GetLastTo() { - return _lastTo; - } - - public void SetLastTo(String _lastTo) { - this._lastTo = _lastTo; - } - - public String GetLastAdminTo() { - return _lastAdminTo; - } - - public void SetLastAdminTo(String _lastAdminTo) { - this._lastAdminTo = _lastAdminTo; - } - - public String GetLastSentMessage() { - return _lastSentMessage; - } - - public void SetLastSentMessage(String _lastSentMessage) { - this._lastSentMessage = _lastSentMessage; - } - - public String GetLastReceivedMessage() { - return _lastReceivedMessage; - } - - public void SetLastReceivedMessage(String _lastReceivedMessage) { - this._lastReceivedMessage = _lastReceivedMessage; - } - - public boolean IsCloaked() { - return _cloaked; - } - - public void SetCloaked(boolean _cloaked) { - this._cloaked = _cloaked; - } - - public long GetCloakEnd() { - return _cloakEnd; - } - - public void SetCloakEnd(long _cloakEnd) { - this._cloakEnd = _cloakEnd; - } - - public HashMap GetRecharge() { - return _recharge; - } - - public void SetRecharge(HashMap _recharge) { - this._recharge = _recharge; - } - - public double GetEnergy() { - return _energy; - } - - public void SetEnergy(double _energy) { - this._energy = _energy; - } - - public String GetLastChat() { - return _lastChat; - } - - public void SetLastChat(String _lastChat) { - this._lastChat = _lastChat; - } - - public int GetEconomyBalance() - { - return _economyBalance; - } - - public void SetEconomyBalance(int economyBalance) - { - _economyBalance = economyBalance; - SaveEconomyBalance(); - } - - public void ModifyEconomyBalance(int mod) - { - _economyBalance += mod; - SaveEconomyBalance(); - } - - public void LoadEconomyBalance() - { - FileInputStream fstream = null; - DataInputStream in = null; - BufferedReader br = null; - - try - { - fstream = new FileInputStream("economy/" + Client.GetPlayerName() + ".dat"); - in = new DataInputStream(fstream); - br = new BufferedReader(new InputStreamReader(in)); - String strLine = br.readLine(); - - try - { - _economyBalance = Integer.parseInt(strLine); - } - catch (Exception e) - { - System.out.println("Invalid Balance: " + Client.GetPlayerName()); - _economyBalance = 0; - SaveEconomyBalance(); - } - - in.close(); - } - catch (Exception e) - { - _economyBalance = 0; - SaveEconomyBalance(); - } - finally - { - if (br != null) - { - try - { - br.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (in != null) - { - try - { - in.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - private void SaveEconomyBalance() - { - FileWriter fstream = null; - BufferedWriter out = null; - - try - { - File file = new File("economy/"); - file.mkdirs(); - - fstream = new FileWriter("economy/" + Client.GetPlayerName() + ".dat"); - out = new BufferedWriter(fstream); - - out.write("" + _economyBalance); - - out.close(); - } - catch (Exception e) - { - System.err.println("Balance Save Error: " + e.getMessage()); - } - finally - { - if (out != null) - { - try - { - out.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - if (fstream != null) - { - try - { - fstream.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - public void SetFilterChat(boolean filterChat) - { - _unfilteredChat = filterChat; - } - - public boolean GetFilterChat() - { - return _unfilteredChat; - } - - public long GetLastPPH() - { - return _lastPPH; - } - - public void SetLastPPH(long _lastPPH) - { - this._lastPPH = _lastPPH; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientIgnore.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientIgnore.java deleted file mode 100644 index 6a1064c1c..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientIgnore.java +++ /dev/null @@ -1,69 +0,0 @@ -package me.chiss.Core.ClientData; - -import java.util.HashSet; -import java.util.Set; - -import nautilus.minecraft.core.webserver.token.Account.ClientIgnoreToken; - -import mineplex.core.account.CoreClient; - -public class ClientIgnore extends ClientDataBase -{ - private HashSet _ignore = new HashSet(); - - public ClientIgnore(CoreClient client) - { - super(client, "Ignore", null); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(ClientIgnoreToken token) - { - if (token != null) - { - for (String cur : token.Ignored) - _ignore.add(cur); - } - } - - public boolean ToggleIgnore(String name) - { - if (_ignore.contains(name)) - { - //Memory - _ignore.remove(name); - - Save(); - - return false; - } - - //Memory - _ignore.add(name); - - Save(); - - return true; - } - - public void Save() - { - //XXX - } - - public boolean IsIgnored(String name) - { - return _ignore.contains(name); - } - - public Set GetIgnored() - { - return _ignore; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientMute.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientMute.java deleted file mode 100644 index 3eb41c36f..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientMute.java +++ /dev/null @@ -1,116 +0,0 @@ -package me.chiss.Core.ClientData; - - -import org.bukkit.entity.Player; - -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilTime; -import mineplex.core.common.util.UtilTime.TimeUnit; -import mineplex.minecraft.punish.Tokens.PunishToken; - -public class ClientMute extends ClientDataBase -{ - private String _admin = ""; - private String _reason = ""; - private Rank _rank = Rank.ALL; - - private long _muteTime = 0; - private long _muteDuration = -1; - - public ClientMute(CoreClient client) - { - super(client, "Mute", null); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(PunishToken token) - { - SetAdmin(token.Admin); - //SetMuteDuration((long)(3600000 * token.Hours)); - SetMuteTime(System.currentTimeMillis()); - SetReason(token.Reason); - } - - public void DisplayData(Player player) - { - if (IsMuted()) - { - player.sendMessage(F.value("Muted", "True", true)); - - player.sendMessage(F.value(1, "Date", UtilTime.when(_muteTime))); - player.sendMessage(F.value(1, "Duration", UtilTime.when(_muteDuration))); - if (_muteTime != 0) - player.sendMessage(F.value(1, "Remaining", UtilTime.convertString(GetRemaining(), 1, TimeUnit.FIT))); - player.sendMessage(F.value(1, "Admin", _admin)); - player.sendMessage(F.value(1, "Reason", _reason)); - } - else - { - player.sendMessage(F.value("Muted", "False", false)); - } - } - - public boolean IsMuted() - { - if (_muteDuration == -1) - return false; - - if (_muteDuration == 0) - return true; - - return !UtilTime.elapsed(_muteTime, _muteDuration); - } - - public long GetRemaining() - { - return _muteDuration - (System.currentTimeMillis() - _muteTime); - } - - public String GetAdmin() { - return _admin; - } - - public void SetAdmin(String admin) { - this._admin = admin; - } - - public String GetReason() { - return _reason; - } - - public void SetReason(String reason) { - this._reason = reason; - } - - public long GetMuteTime() { - return _muteTime; - } - - public void SetMuteTime(long muteTime) { - _muteTime = muteTime; - } - - public long GetMuteDuration() { - return _muteDuration; - } - - public void SetMuteDuration(long muteDuration) { - _muteDuration = muteDuration; - } - - public Rank GetRank() { - return _rank; - } - - public void SetRank(Rank rank) { - _rank = rank; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java deleted file mode 100644 index c1fe109d8..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java +++ /dev/null @@ -1,101 +0,0 @@ -package me.chiss.Core.ClientData; - -import org.bukkit.Location; - -import mineplex.core.account.CoreClient; - -public class ClientPlayer extends ClientDataBase -{ - private long _lastAction = 0; - private long _lastGrounded = 0; - private long _lastMovement = 0; - private long _lastDamagee = 0; - private long _lastDamager = 0; - private long _lastEnergy = 0; - - private Location _lastLocation = null; - - public ClientPlayer(CoreClient client) - { - super(client, "Player", null); - } - - @Override - public void Load() - { - - } - - @Override - protected void LoadToken(Object token) - { - - } - - public long GetLastAction() { - return _lastAction; - } - - public void SetLastAction(long _lastAction) { - this._lastAction = _lastAction; - } - - public long GetLastGrounded() { - return _lastGrounded; - } - - public void SetLastGrounded(long _lastGrounded) { - this._lastGrounded = _lastGrounded; - } - - public long GetLastMovement() { - return _lastMovement; - } - - public void SetLastMovement(long _lastMovement) { - this._lastMovement = _lastMovement; - } - - public Location GetLastLocation() { - return _lastLocation; - } - - public void SetLastLocation(Location _lastLocation) { - this._lastLocation = _lastLocation; - } - - public long GetLastDamagee() - { - return _lastDamagee; - } - - public void SetLastDamagee(long _lastDamaged) { - this._lastDamagee = _lastDamaged; - } - - public long GetLastDamager() - { - return _lastDamager; - } - - public void SetLastDamager(long _lastDamaged) { - this._lastDamager = _lastDamaged; - } - - public long GetLastCombat() - { - if (_lastDamager > _lastDamagee) - return _lastDamager; - return _lastDamagee; - } - - public void SetLastEnergy(long time) - { - _lastEnergy = time; - } - - public long GetLastEnergy() - { - return _lastEnergy; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java.orig b/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java.orig deleted file mode 100644 index 04bba2a0c..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientPlayer.java.orig +++ /dev/null @@ -1,90 +0,0 @@ -package me.chiss.Core.ClientData; - -import org.bukkit.Location; - -import mineplex.core.account.CoreClient; - -public class ClientPlayer extends ClientDataBase -{ - private long _lastAction = 0; - private long _lastGrounded = 0; - private long _lastMovement = 0; - private long _lastDamagee = 0; - private long _lastDamager = 0; - - private Location _lastLocation = null; - - public ClientPlayer(CoreClient client) - { - super(client, "Player", null); - } - - @Override - public void Load() - { - - } - - @Override - protected void LoadToken(Object token) - { - - } - - public long GetLastAction() { - return _lastAction; - } - - public void SetLastAction(long _lastAction) { - this._lastAction = _lastAction; - } - - public long GetLastGrounded() { - return _lastGrounded; - } - - public void SetLastGrounded(long _lastGrounded) { - this._lastGrounded = _lastGrounded; - } - - public long GetLastMovement() { - return _lastMovement; - } - - public void SetLastMovement(long _lastMovement) { - this._lastMovement = _lastMovement; - } - - public Location GetLastLocation() { - return _lastLocation; - } - - public void SetLastLocation(Location _lastLocation) { - this._lastLocation = _lastLocation; - } - - public long GetLastDamagee() - { - return _lastDamagee; - } - - public void SetLastDamagee(long _lastDamaged) { - this._lastDamagee = _lastDamaged; - } - - public long GetLastDamager() - { - return _lastDamager; - } - - public void SetLastDamager(long _lastDamaged) { - this._lastDamager = _lastDamaged; - } - - public long GetLastCombat() - { - if (_lastDamager > _lastDamagee) - return _lastDamager; - return _lastDamagee; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientRank.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientRank.java deleted file mode 100644 index dcaccf86c..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientRank.java +++ /dev/null @@ -1,62 +0,0 @@ -package me.chiss.Core.ClientData; - -import mineplex.core.server.IRepository; -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilPlayer; - -public class ClientRank extends ClientDataBase -{ - private Rank _rank; - - public ClientRank(CoreClient client, IRepository repository) - { - super(client, "Rank", repository); - } - - public ClientRank(CoreClient client, IRepository repository, String token) - { - super(client, "Rank", repository, token); - } - - @Override - public void Load() - { - _rank = Rank.ALL; - } - - @Override - public void LoadToken(String token) - { - _rank = Rank.valueOf(token); - } - - public Rank GetRank() - { - return _rank; - } - - public boolean Has(Rank rank, boolean inform) - { - if (Client.GetPlayer() != null) - if (Client.GetPlayer().isOp()) - return true; - - if (_rank.compareTo(rank) <= 0) - { - return true; - } - - if (inform) - { - UtilPlayer.message(Client.GetPlayer(), C.mHead + "Permissions > " + - C.mBody + "This requires Permission Rank [" + - C.mHead + rank + - C.mBody + "]."); - System.out.println("Rank: " + _rank + " compareTo:" + _rank.compareTo(rank)); - } - - return false; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/ClientWiki.java b/Plugins/Core/src/me/chiss/Core/ClientData/ClientWiki.java deleted file mode 100644 index 0a07da789..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/ClientWiki.java +++ /dev/null @@ -1,103 +0,0 @@ -package me.chiss.Core.ClientData; - -import nautilus.minecraft.core.webserver.token.Account.ClientWikiToken; -import me.chiss.Core.Wiki.WikiArticle; -import mineplex.core.account.CoreClient; -import mineplex.core.server.IRepository; - -public class ClientWiki extends ClientDataBase -{ - private int _articlesActive = 0; - private int _articlesDeprecated = 0; - private int _articlesDenied = 0; - - private WikiArticle _last = null; - private long _lastTime = 0; - - private String _lastBlock; - - public ClientWiki(CoreClient client) - { - super(client, "Wiki", null); - } - - public ClientWiki(CoreClient client, IRepository repository, ClientWikiToken token) - { - super(client, "Wiki", repository, token); - } - - @Override - public void Load() - { - - } - - @Override - public void LoadToken(ClientWikiToken token) - { - if (token == null) - return; - - _articlesActive = token.ArticlesActive; - _articlesDeprecated = token.ArticlesDeprecated; - _articlesDenied = token.ArticlesDenied; - } - - public WikiArticle GetLastArticle() - { - return _last; - } - - public void SetLastArticle(WikiArticle last) - { - _last = last; - } - - public long GetLastTime() - { - return _lastTime; - } - - public void SetLastTime(long lastTime) - { - _lastTime = lastTime; - } - - public String GetLastBlock() - { - return _lastBlock; - } - - public void SetLastBlock(String lastBlock) - { - _lastBlock = lastBlock; - } - - public int GetActive() - { - return _articlesActive; - } - - public int GetDeprecated() - { - return _articlesDeprecated; - } - - public int GetDenied() - { - return _articlesDenied; - } - - public void RegisterArticle(WikiArticle article) - { - if (article.GetRevision() > 0) - { - if (article.IsActive()) - _articlesActive++; - else - _articlesDeprecated++; - } - else - _articlesDenied++; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/ClientData/IClientDataLoad.java b/Plugins/Core/src/me/chiss/Core/ClientData/IClientDataLoad.java deleted file mode 100644 index 42f1a342f..000000000 --- a/Plugins/Core/src/me/chiss/Core/ClientData/IClientDataLoad.java +++ /dev/null @@ -1,6 +0,0 @@ -package me.chiss.Core.ClientData; - -public interface IClientDataLoad -{ - public void Load(); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/CustomBuildShop.java b/Plugins/Core/src/me/chiss/Core/Shop/CustomBuildShop.java deleted file mode 100644 index ae966b95a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/CustomBuildShop.java +++ /dev/null @@ -1,127 +0,0 @@ -package me.chiss.Core.Shop; - -import org.bukkit.Material; -import org.bukkit.entity.Player; - -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.ChangeCurrency; -import me.chiss.Core.Shop.actions.NextPage; -import me.chiss.Core.Shop.actions.PreviousPage; -import me.chiss.Core.Shop.actions.Purchase; -import me.chiss.Core.Shop.actions.Reset; -import me.chiss.Core.Shop.actions.Return; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.currency.ItemTokenHandler; -import me.chiss.Core.Shop.currency.SkillTokenHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.pagebuilder.game.CustomBuildPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.ItemPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.SkillsPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.WeaponPageBuilder; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.UtilServer; -import mineplex.minecraft.game.classcombat.shop.page.ArmorPageBuilder; -import mineplex.minecraft.game.core.classcombat.Class.ClassManager; -import mineplex.minecraft.game.core.classcombat.Class.ClientClass; -import mineplex.minecraft.game.core.classcombat.Class.IPvpClass.ClassType; -import mineplex.minecraft.game.core.classcombat.Class.event.ClassSetupEvent; -import mineplex.minecraft.game.core.classcombat.Class.event.ClassSetupEvent.SetupType; -import mineplex.minecraft.game.core.classcombat.Skill.SkillFactory; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; - -public class CustomBuildShop extends Shop -{ - private IWeaponFactory _weaponFactory; - private IItemFactory _itemFactory; - - public CustomBuildShop(IPlugin plugin, CoreClientManager manager, ClassManager gameClassFactory, SkillFactory skillFactory, IWeaponFactory weaponFactory, IItemFactory itemFactory) - { - super(plugin, manager); - - _weaponFactory = weaponFactory; - _itemFactory = itemFactory; - - ShopBlockType = Material.ENCHANTMENT_TABLE; - - ICurrencyHandler itemTokenHandler = new ItemTokenHandler(); - ICurrencyHandler skillTokenHandler = new SkillTokenHandler(); - - AddPageBuilder(new ArmorPageBuilder(this, "-----------Class-------Skills", gameClassFactory)); - AddPageBuilder(new CustomBuildPageBuilder(this, "Class------Custom------Skills", gameClassFactory)); - AddPageBuilder(new SkillsPageBuilder(this,"Class-------Skills-----------", skillFactory, gameClassFactory)); - - CreateShopActions(); - } - - @Override - protected void CreateShopActions() - { - new NextPage(Plugin.GetPlugin(), this, ClientManager); - new PreviousPage(Plugin.GetPlugin(), this, ClientManager); - new Reset(Plugin.GetPlugin(), this, ClientManager); - new Return(Plugin.GetPlugin(), this, ClientManager, _weaponFactory, _itemFactory); - new Purchase(Plugin.GetPlugin(), this, ClientManager); - new ChangeCurrency(Plugin.GetPlugin(), this, ClientManager); - } - - @Override - public void ShowSkillHotBarForPlayer(CoreClient player) { } - - @Override - public void OpenShopForPlayer(Player player) - { - super.OpenShopForPlayer(player); - - ClientClass clientClass = ClassManager.Get(player); - - ClassType classType = null; - if (clientClass.GetGameClass() != null) - classType = clientClass.GetGameClass().GetType(); - - ClassSetupEvent event = new ClassSetupEvent(player, SetupType.OpenMain, classType, 0, null); - - UtilServer.getServer().getPluginManager().callEvent(event); - } - - @SuppressWarnings("deprecation") - public void CloseShopForPlayer(CoreClient player) - { - String key = player.GetPlayerName(); - GetPage(player).CloseForPlayer(player); - - IShopPage page = GetPage(player); - - while (page.HasPreviousPage()) - { - page = page.GetPreviousPage(); - } - - IShopPage nextPage; - - while (page.HasNextPage()) - { - nextPage = page.GetNextPage(); - page.SetNextPage(null); - nextPage.SetPreviousPage(null); - page = nextPage; - } - - PageMap.remove(key); - - if (player.Donor().IsSavingCustomBuild()) - player.Donor().SaveActiveCustomBuild(true); - - if (InventoryMap.containsKey(player.GetPlayerName())) - { - player.GetPlayer().getInventory().setContents(InventoryMap.get(player.GetPlayerName())); - player.GetPlayer().getInventory().setArmorContents(ArmorMap.get(player.GetPlayerName())); - player.Class().SetGameClass(null); - InventoryMap.remove(key); - ArmorMap.remove(key); - } - - player.GetPlayer().updateInventory(); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/DonatorShop.java b/Plugins/Core/src/me/chiss/Core/Shop/DonatorShop.java deleted file mode 100644 index 8f1db8796..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/DonatorShop.java +++ /dev/null @@ -1,57 +0,0 @@ -package me.chiss.Core.Shop; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.ChangeCurrency; -import me.chiss.Core.Shop.actions.NextPage; -import me.chiss.Core.Shop.actions.PreviousPage; -import me.chiss.Core.Shop.actions.Purchase; -import me.chiss.Core.Shop.currency.CreditHandler; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.currency.PointHandler; -import me.chiss.Core.Shop.pagebuilder.game.purchase.ArmorPurchasePageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.purchase.ItemPurchasePageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.purchase.SkillsPurchasePageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.purchase.WeaponPurchasePageBuilder; -import me.chiss.Core.Skill.ISkillFactory; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.server.IRepository; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; - -import org.bukkit.Material; - -public class DonatorShop extends Shop -{ - public DonatorShop(IPlugin plugin, IRepository repository, CoreClientManager manager, IClassFactory gameClassFactory, ISkillFactory skillFactory, IWeaponFactory weaponFactory, IItemFactory itemFactory) - { - super(plugin, repository, manager); - - ShopBlockType = Material.ENDER_CHEST; - - ICurrencyHandler creditHandler = new CreditHandler(); - ICurrencyHandler pointHandler = new PointHandler(); - - AddPageBuilder(new ArmorPurchasePageBuilder(this, "-----------Class-------Skills", gameClassFactory, creditHandler, pointHandler)); - AddPageBuilder(new SkillsPurchasePageBuilder(this, "Class-------Skills----Weapons", skillFactory, gameClassFactory, creditHandler, pointHandler)); - AddPageBuilder(new WeaponPurchasePageBuilder(this, "Skills------Weapons-----Items", weaponFactory, gameClassFactory, creditHandler, pointHandler)); - AddPageBuilder(new ItemPurchasePageBuilder(this, "Weapons-----Items----------", itemFactory, creditHandler, pointHandler)); - - CreateShopActions(); - - RestoreInventory = true; - } - - @Override - protected void CreateShopActions() - { - new NextPage(Plugin.GetPlugin(), this, ClientManager); - new PreviousPage(Plugin.GetPlugin(), this, ClientManager); - new Purchase(Plugin.GetPlugin(), this, ClientManager); - new ChangeCurrency(Plugin.GetPlugin(), this, ClientManager); - } - - @Override - public void ShowSkillHotBarForPlayer(CoreClient player) { } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/GameShop.java b/Plugins/Core/src/me/chiss/Core/Shop/GameShop.java deleted file mode 100644 index e8426b66a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/GameShop.java +++ /dev/null @@ -1,71 +0,0 @@ -package me.chiss.Core.Shop; - -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.Return; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.currency.ItemTokenHandler; -import me.chiss.Core.Shop.currency.SkillTokenHandler; -import me.chiss.Core.Shop.pagebuilder.game.CustomBuildPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.ItemPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.SkillsPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.WeaponPageBuilder; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.minecraft.game.classcombat.shop.page.ArmorPageBuilder; -import mineplex.minecraft.game.core.classcombat.Class.ClassManager; -import mineplex.minecraft.game.core.classcombat.Skill.SkillFactory; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -public class GameShop extends Shop -{ - public GameShop(JavaPlugin plugin, CoreClientManager manager, ClassManager gameClassFactory, SkillFactory skillFactory) - { - super(plugin, manager); - - ICurrencyHandler itemTokenHandler = new ItemTokenHandler(); - ICurrencyHandler skillTokenHandler = new SkillTokenHandler(); - - AddPageBuilder(new ArmorPageBuilder(this, "-----------Class-------Skills", gameClassFactory)); - AddPageBuilder(new CustomBuildPageBuilder(this, "Class------Custom------Skills", gameClassFactory)); - AddPageBuilder(new SkillsPageBuilder(this,"Class-------Skills----Weapons", skillFactory, gameClassFactory)); - - CreateShopActions(); - } - - public void GiveDefaultBuild(Player player) - { - CoreClient gamePlayer = ClientManager.Get(player); - String key = gamePlayer.GetPlayerName(); - InventoryMap.put(key, player.getInventory().getContents()); - - if (!PageMap.containsKey(key)) - { - BuildPagesForPlayer(gamePlayer); - } - - ShowSkillHotBarForPlayer(gamePlayer); - - /* HARDCODE FTW */ - GetPage(gamePlayer).PrepSlotsForPlayer(gamePlayer); - GetPage(gamePlayer).PlayerWants(gamePlayer, 11); - } - - @Override - protected void CreateShopActions() - { - super.CreateShopActions(); - new Return(Plugin.GetPlugin(), this, ClientManager, _weaponFactory, _itemFactory); - } - - @Override - public boolean ShouldOpenShop(Block clickedBlock) - { - return super.ShouldOpenShop(clickedBlock) || clickedBlock.getType() == Material.ENCHANTMENT_TABLE; - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/IButton.java b/Plugins/Core/src/me/chiss/Core/Shop/IButton.java deleted file mode 100644 index c85618673..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/IButton.java +++ /dev/null @@ -1,8 +0,0 @@ -package me.chiss.Core.Shop; - -import org.bukkit.entity.Player; - -public interface IButton -{ - public void Clicked(Player player); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/PvpBuildShop.java b/Plugins/Core/src/me/chiss/Core/Shop/PvpBuildShop.java deleted file mode 100644 index cd1ff93cf..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/PvpBuildShop.java +++ /dev/null @@ -1,73 +0,0 @@ -package me.chiss.Core.Shop; - - -import org.bukkit.Material; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.Return; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.currency.ItemTokenHandler; -import me.chiss.Core.Shop.currency.SkillTokenHandler; -import me.chiss.Core.Shop.pagebuilder.game.PvpCustomBuildPageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.SkillsPageBuilder; -import me.chiss.Core.Skill.ISkillFactory; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.server.IRepository; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; - -public class PvpBuildShop extends Shop -{ - private IWeaponFactory _weaponFactory; - private IItemFactory _itemFactory; - - public PvpBuildShop(IPlugin plugin, IRepository repository, CoreClientManager manager, IClassFactory gameClassFactory, ISkillFactory skillFactory) - { - super(plugin, repository, manager); - - ShopBlockType = Material.ENCHANTMENT_TABLE; - - ICurrencyHandler itemTokenHandler = new ItemTokenHandler(); - ICurrencyHandler skillTokenHandler = new SkillTokenHandler(); - - AddPageBuilder(new PvpCustomBuildPageBuilder(this, "----------Builds------Skills", gameClassFactory, itemTokenHandler)); - AddPageBuilder(new SkillsPageBuilder(this,"Builds-------Skills---------", skillFactory, gameClassFactory, skillTokenHandler)); - - CreateShopActions(); - } - - @Override - public void ShowSkillHotBarForPlayer(CoreClient player) { } - - @Override - protected void CreateShopActions() - { - super.CreateShopActions(); - new Return(Plugin.GetPlugin(), this, ClientManager, _weaponFactory, _itemFactory); - } - - public void CloseShopForPlayer(CoreClient player) - { - String key = player.GetPlayerName(); - GetPage(player).CloseForPlayer(player); - - PageMap.remove(key); - - if (player.Donor().IsSavingCustomBuild()) - player.Donor().SaveActiveCustomBuild(false); - - if (InventoryMap.containsKey(player.GetPlayerName())) - { - player.Class().GetInventory().setContents(InventoryMap.get(player.GetPlayerName())); - player.Class().GetInventory().setArmorContents(ArmorMap.get(player.GetPlayerName())); - player.Donor().SetTokens(0, 0); - player.Donor().SetDefaultTokens(0, 0); - InventoryMap.remove(key); - ArmorMap.remove(key); - } - - player.Class().UpdateInventory(); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/PvpDonatorShop.java b/Plugins/Core/src/me/chiss/Core/Shop/PvpDonatorShop.java deleted file mode 100644 index 14a73566a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/PvpDonatorShop.java +++ /dev/null @@ -1,51 +0,0 @@ -package me.chiss.Core.Shop; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.ChangeCurrency; -import me.chiss.Core.Shop.actions.NextPage; -import me.chiss.Core.Shop.actions.PreviousPage; -import me.chiss.Core.Shop.actions.Purchase; -import me.chiss.Core.Shop.currency.CreditHandler; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.currency.PointHandler; -import me.chiss.Core.Shop.pagebuilder.game.purchase.ArmorPurchasePageBuilder; -import me.chiss.Core.Shop.pagebuilder.game.purchase.SkillsPurchasePageBuilder; -import me.chiss.Core.Skill.ISkillFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.server.IRepository; - -import org.bukkit.Material; - -public class PvpDonatorShop extends Shop -{ - public PvpDonatorShop(IPlugin plugin, IRepository repository, CoreClientManager manager, IClassFactory gameClassFactory, ISkillFactory skillFactory) - { - super(plugin, repository, manager); - - ShopBlockType = Material.ENDER_CHEST; - - ICurrencyHandler creditHandler = new CreditHandler(); - ICurrencyHandler pointHandler = new PointHandler(); - - AddPageBuilder(new ArmorPurchasePageBuilder(this, "-----------Class-------Skills", gameClassFactory, creditHandler, pointHandler)); - AddPageBuilder(new SkillsPurchasePageBuilder(this, "Class-------Skills----------", skillFactory, gameClassFactory, creditHandler, pointHandler)); - - CreateShopActions(); - - RestoreInventory = true; - } - - @Override - protected void CreateShopActions() - { - new NextPage(Plugin.GetPlugin(), this, ClientManager); - new PreviousPage(Plugin.GetPlugin(), this, ClientManager); - new Purchase(Plugin.GetPlugin(), this, ClientManager); - new ChangeCurrency(Plugin.GetPlugin(), this, ClientManager); - } - - @Override - public void ShowSkillHotBarForPlayer(CoreClient player) { } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/PvpItemShop.java b/Plugins/Core/src/me/chiss/Core/Shop/PvpItemShop.java deleted file mode 100644 index 8fd573bb9..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/PvpItemShop.java +++ /dev/null @@ -1,61 +0,0 @@ -package me.chiss.Core.Shop; - - -import org.bukkit.ChatColor; -import org.bukkit.entity.LivingEntity; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.PvpShop.IPvpShopFactory; -import me.chiss.Core.Shop.actions.PvpReturn; -import me.chiss.Core.Shop.currency.EconomyHandler; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.pagebuilder.game.PvpShopPageBuilder; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.server.IRepository; - -public class PvpItemShop extends Shop -{ - IPvpShopFactory ShopFactory; - - private String _npcKey; - - public PvpItemShop(IPlugin plugin, IRepository repository, CoreClientManager accountManager, IPvpShopFactory shopFactory, String name) - { - super(plugin, repository, accountManager); - - ShopBlockType = null; - ShopFactory = shopFactory; - _npcKey = ChatColor.stripColor(name); - - ICurrencyHandler economyHandler = new EconomyHandler(); - - AddPageBuilder(new PvpShopPageBuilder(this, name, shopFactory, economyHandler)); - - CreateShopActions(); - } - - @EventHandler - public void OnPlayerInteractEntity(PlayerInteractEntityEvent event) - { - if (event.getRightClicked() instanceof LivingEntity && ((LivingEntity)event.getRightClicked()).isCustomNameVisible() && ChatColor.stripColor(((LivingEntity)event.getRightClicked()).getCustomName()).equalsIgnoreCase(_npcKey)) - { - OpenShopForPlayer(event.getPlayer()); - } - } - - @Override - protected void CreateShopActions() - { - super.CreateShopActions(); - new PvpReturn(GetPlugin(), this, ClientManager, ShopFactory); - } - - @Override - public void ShowSkillHotBarForPlayer(CoreClient player) - { - - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/Shop.java b/Plugins/Core/src/me/chiss/Core/Shop/Shop.java deleted file mode 100644 index b0e50fbfa..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/Shop.java +++ /dev/null @@ -1,444 +0,0 @@ -package me.chiss.Core.Shop; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import mineplex.minecraft.game.classcombat.Class.IPvpClass; -import mineplex.minecraft.game.classcombat.Class.IPvpClass.ClassType; -import mineplex.minecraft.game.classcombat.Class.event.ClassSetupEvent; -import mineplex.minecraft.game.classcombat.Skill.ISkill; -import mineplex.minecraft.game.classcombat.Skill.ISkill.SkillType; -import me.chiss.Core.ClientData.IClientClass; -import me.chiss.Core.Plugin.IPlugin; -import me.chiss.Core.Shop.actions.ChangeCurrency; -import me.chiss.Core.Shop.actions.NextPage; -import me.chiss.Core.Shop.actions.PreviousPage; -import me.chiss.Core.Shop.actions.Purchase; -import me.chiss.Core.Shop.actions.Reset; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.pagebuilder.IPageBuilder; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.C; -import mineplex.core.common.util.UtilServer; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.entity.HumanEntity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.PlayerInventory; -import org.bukkit.plugin.java.JavaPlugin; - -public abstract class Shop implements Listener -{ - private HashMap _classMap; - private HashMap _errorThrottling; - private HashMap _purchaseBlock; - - protected IPlugin Plugin; - protected CoreClientManager ClientManager; - protected List PageBuilders; - protected Material ShopBlockType; - protected HashMap InventoryMap; - protected HashMap ArmorMap; - - protected HashMap PageMap; - - protected boolean RestoreInventory; - - public Shop(IPlugin plugin, CoreClientManager accountManager) - { - Plugin = plugin; - ClientManager = accountManager; - PageBuilders = new ArrayList(); - ShopBlockType = Material.AIR; - PageMap = new HashMap(); - InventoryMap = new HashMap(); - ArmorMap = new HashMap(); - _classMap = new HashMap(); - _errorThrottling = new HashMap(); - _purchaseBlock = new HashMap(); - - Plugin.GetPlugin().getServer().getPluginManager().registerEvents(this, Plugin.GetPlugin()); - } - - @EventHandler(priority = EventPriority.LOW) - public void OnPlayerClickItem(InventoryClickEvent event) - { - if (ClickedCurrentPage(event)) - { - event.setCancelled(true); - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void OnPlayerPickupItem(PlayerPickupItemEvent event) - { - if (event.isCancelled()) - return; - - if (GetPage(event.getPlayer().getName()) != null) - event.setCancelled(true); - } - - @EventHandler - public void OnPlayerCloseInventory(InventoryCloseEvent event) - { - if (ClickedCurrentPage(event.getPlayer(), event.getInventory())) - { - CloseShopForPlayer(ClientManager.Get((Player)event.getPlayer())); - } - } - - @EventHandler - public void OnPlayerQuit(PlayerQuitEvent event) - { - IShopPage page = GetPage(event.getPlayer().getName()); - - if (page != null) - { - CloseShopForPlayer(ClientManager.Get((Player)event.getPlayer())); - event.getPlayer().closeInventory(); - } - } - - @EventHandler - public void OnPlayerOpenInventory(InventoryOpenEvent event) - { - if (event.isCancelled() && ClickedCurrentPage(event.getPlayer(), event.getInventory())) - { - CloseShopForPlayer(ClientManager.Get((Player)event.getPlayer())); - } - } - - public boolean ShouldOpenShop(Block clickedBlock) - { - return clickedBlock.getType() == ShopBlockType; - } - - public boolean HasNextPage(CoreClient gamePlayer) - { - String key = gamePlayer.GetPlayerName(); - return PageMap.get(key).HasNextPage(); - } - - public boolean HasPreviousPage(CoreClient gamePlayer) - { - String key = gamePlayer.GetPlayerName(); - return PageMap.get(key).HasPreviousPage(); - } - - public void OpenShopForPlayer(Player player) - { - CoreClient gamePlayer = ClientManager.Get(player); - String key = gamePlayer.GetPlayerName(); - InventoryMap.put(key, player.getInventory().getContents().clone()); - ArmorMap.put(key, player.getInventory().getArmorContents()); - - if (!PageMap.containsKey(key)) - { - BuildPagesForPlayer(gamePlayer); - } - - ShowSkillHotBarForPlayer(gamePlayer); - - GetPage(gamePlayer).OpenForPlayer(gamePlayer); - } - - public void TurnToNextPage(CoreClient gamePlayer) - { - gamePlayer.GetPlayer().playSound(gamePlayer.GetPlayer().getLocation(), Sound.SILVERFISH_KILL, .6f, .9f); - - GetPage(gamePlayer).CloseForPlayer(gamePlayer); - - String key = gamePlayer.GetPlayerName(); - PageMap.put(key, PageMap.get(key).GetNextPage()); - - GetPage(gamePlayer).OpenForPlayer(gamePlayer); - } - - public void TurnToPreviousPage(CoreClient gamePlayer) - { - gamePlayer.GetPlayer().playSound(gamePlayer.GetPlayer().getLocation(), Sound.SILVERFISH_KILL, .6f, .9f); - - GetPage(gamePlayer).CloseForPlayer(gamePlayer); - - String key = gamePlayer.GetPlayerName(); - PageMap.put(key, PageMap.get(key).GetPreviousPage()); - - GetPage(gamePlayer).OpenForPlayer(gamePlayer); - } - - protected IShopPage GetPage(String playerName) - { - return PageMap.get(playerName); - } - - public IShopPage GetPage(CoreClient gamePlayer) - { - String key = gamePlayer.GetPlayerName(); - return PageMap.get(key); - } - - public void SetPage(CoreClient gamePlayer, IShopPage category) - { - String key = gamePlayer.GetPlayerName(); - PageMap.put(key, category); - } - - public boolean ClickedCurrentPage(InventoryClickEvent event) - { - return ClickedCurrentPage(event.getWhoClicked(), event.getInventory()); - } - - public boolean ClickedCurrentPage(HumanEntity clicker, Inventory inventory) - { - return PageMap.containsKey(clicker.getName()) && inventory.getTitle().equalsIgnoreCase(GetPage(ClientManager.Get((Player)clicker)).GetTitle()); - } - - protected void CreateShopActions() - { - new NextPage(Plugin.GetPlugin(), this, ClientManager); - new PreviousPage(Plugin.GetPlugin(), this, ClientManager); - new Purchase(Plugin.GetPlugin(), this, ClientManager); - new Reset(Plugin.GetPlugin(), this, ClientManager); - new ChangeCurrency(Plugin.GetPlugin(), this, ClientManager); - } - - protected void AddPageBuilder(IPageBuilder pageBuilder) - { - PageBuilders.add(pageBuilder); - } - - protected void BuildPagesForPlayer(CoreClient player) - { - String key = player.GetPlayerName(); - int pageNumber = 1; - IShopPage previousPage = null; - - for (IPageBuilder page : PageBuilders) - { - if (!PageMap.containsKey(key)) - { - IShopPage newPage = page.BuildForPlayer(player); - newPage.SetPageNumber(pageNumber); - - PageMap.put(key, newPage); - } - else - { - previousPage = PageMap.get(key); - - while (previousPage.HasNextPage()) - { - previousPage = previousPage.GetNextPage(); - } - - IShopPage newPage = page.BuildForPlayer(player); - newPage.SetPageNumber(pageNumber); - - previousPage.SetNextPage(newPage); - newPage.SetPreviousPage(previousPage); - } - - pageNumber++; - } - } - - @SuppressWarnings("deprecation") - public void CloseShopForPlayer(CoreClient player) - { - String key = player.GetPlayerName(); - GetPage(player).CloseForPlayer(player); - - IShopPage page = GetPage(player); - - while (page.HasPreviousPage()) - { - page = page.GetPreviousPage(); - } - - IShopPage nextPage; - - while (page.HasNextPage()) - { - nextPage = page.GetNextPage(); - page.SetNextPage(null); - nextPage.SetPreviousPage(null); - page = nextPage; - } - - if (RestoreInventory) - { - if (InventoryMap.containsKey(player.GetPlayerName())) - player.GetPlayer().getInventory().setContents(InventoryMap.get(player.GetPlayerName())); - - if (ArmorMap.containsKey(player.GetPlayerName())) - player.GetPlayer().getInventory().setArmorContents(ArmorMap.get(player.GetPlayerName())); - } - - player.GetPlayer().updateInventory(); - - PageMap.remove(key); - InventoryMap.remove(key); - ArmorMap.remove(key); - - if (player.Donor().IsSavingCustomBuild()) - player.Donor().SaveActiveCustomBuild(true); - - if (player.GetPlayer().isOnline()) - { - player.GetPlayer().sendMessage(ChatColor.BLUE + "Shop>" + ChatColor.GRAY + " Visit " + ChatColor.YELLOW + Plugin.GetWebServerAddress() + "Store" + ChatColor.GRAY + " to purchase Credits!"); - } - } - - public void ResetShopFor(Player player) - { - String key = player.getName(); - - if (PageMap.containsKey(key)) - { - IShopPage currentPage = PageMap.get(key); - - while (currentPage.HasNextPage()) - { - currentPage = currentPage.GetNextPage(); - } - - currentPage.ResetVisuals(); - - while (currentPage.HasPreviousPage()) - { - currentPage = currentPage.GetPreviousPage(); - currentPage.ResetVisuals(); - } - - PageMap.put(key, currentPage); - } - } - - public void SetClassForPlayer(CoreClient player, IPvpClass gameClass) - { - _classMap.put(player.GetPlayerName(), gameClass); - } - - public IPvpClass GetClassForPlayer(CoreClient player) - { - return _classMap.get(player.GetPlayerName()); - } - - public void ShowSkillHotBarForPlayer(CoreClient player) - { - PlayerInventory playerInv = player.Class().GetInventory(); - - for (int i = 9; i < 18; i++) - { - playerInv.setItem(i, null); - } - - for (int i = 27; i < 36; i++) - { - playerInv.setItem(i, null); - } - - String[] skillList = new String[3]; - - ISkill swordSkill = player.Class().GetSkillByType(SkillType.Sword); - ISkill axeSkill = player.Class().GetSkillByType(SkillType.Axe); - ISkill bowSkill = player.Class().GetSkillByType(SkillType.Bow); - ISkill classPassiveASkill = player.Class().GetSkillByType(SkillType.PassiveA); - ISkill classPassiveBSkill = player.Class().GetSkillByType(SkillType.PassiveB); - ISkill globalPassiveASkill = player.Class().GetSkillByType(SkillType.PassiveC); - ISkill globalPassiveBSkill = player.Class().GetSkillByType(SkillType.PassiveD); - ISkill globalPassiveCSkill = player.Class().GetSkillByType(SkillType.PassiveE); - - String swordString = (swordSkill == null ? "None" : swordSkill.GetName() + " " + player.Class().GetSkillLevel(swordSkill)); - String axeString = (axeSkill == null ? "None" : axeSkill.GetName() + " " + player.Class().GetSkillLevel(axeSkill)); - String bowString = (bowSkill == null ? "None" : bowSkill.GetName() + " " + player.Class().GetSkillLevel(bowSkill)); - String classPassiveAString = (classPassiveASkill == null ? "None" : classPassiveASkill.GetName() + " " + player.Class().GetSkillLevel(classPassiveASkill)); - String classPassiveBString = (classPassiveBSkill == null ? "None" : classPassiveBSkill.GetName() + " " + player.Class().GetSkillLevel(classPassiveBSkill)); - String globalPassiveAString = (globalPassiveASkill == null ? "None" : globalPassiveASkill.GetName() + " " + player.Class().GetSkillLevel(globalPassiveASkill)); - String globalPassiveBString = (globalPassiveBSkill == null ? "None" : globalPassiveBSkill.GetName() + " " + player.Class().GetSkillLevel(globalPassiveBSkill)); - String globalPassiveCString = (globalPassiveCSkill == null ? "None" : globalPassiveCSkill.GetName() + " " + player.Class().GetSkillLevel(globalPassiveCSkill)); - - skillList[0] = C.cGray + "Weapon skills: " + swordString + ", " + axeString + ", " + bowString; - skillList[1] = C.cGray + "Class Passive Skills: " + classPassiveAString + ", " + classPassiveBString; - skillList[2] = C.cGray + "Global Passive Skills: " + globalPassiveAString + ", " + globalPassiveBString + ", " + globalPassiveCString; - - ShopItem sword = new ShopItem(Material.IRON_SWORD, "Sword Skill:", GetLore(player.Class(), swordSkill), 1, true, true); - ShopItem axe = new ShopItem(Material.IRON_AXE, "Axe Skill:", GetLore(player.Class(), axeSkill), 1, true, true); - ShopItem bow = new ShopItem(Material.BOW, "Bow Skill:", GetLore(player.Class(), bowSkill), 1, true, true); - ShopItem classPassiveA = new ShopItem(Material.BOOK, "Class Passive A Skills:", GetLore(player.Class(), classPassiveASkill), 1, true, true); - ShopItem classPassiveB = new ShopItem(Material.BOOK, "Class Passive B Skills:", GetLore(player.Class(), classPassiveBSkill), 1, true, true); - ShopItem globalPassiveA = new ShopItem(Material.BOOK, "Global Passive A Skill:", GetLore(player.Class(), globalPassiveASkill), 1, true, true); - ShopItem globalPassiveB = new ShopItem(Material.BOOK, "Global Passive B Skill:", GetLore(player.Class(), globalPassiveBSkill), 1, true, true); - ShopItem globalPassiveC = new ShopItem(Material.BOOK, "Global Passive C Skill:", GetLore(player.Class(), globalPassiveCSkill), 1, true, true); - - playerInv.setItem(18, new ShopItem(Material.WRITTEN_BOOK, "Your Skills:", skillList, 1, true, true)); - playerInv.setItem(19, sword); - playerInv.setItem(20, axe); - playerInv.setItem(21, bow); - playerInv.setItem(22, classPassiveA); - playerInv.setItem(23, classPassiveB); - playerInv.setItem(24, globalPassiveA); - playerInv.setItem(25, globalPassiveB); - playerInv.setItem(26, globalPassiveC); - } - - protected String[] GetLore(IClientClass playerClass, ISkill skill) - { - if (skill == null) - return new String[] { ChatColor.GRAY + "None" }; - - int skillLevel = skill.; - String[] lore = new String[2 + skill.GetDesc().length]; - lore[0] = ChatColor.GRAY + "§l" + (skillLevel == 0 ? "None" : (skill.GetName() + " " + skillLevel)); - - if (skillLevel != 0) - lore[1] = " "; - - for (int i=2; i <= skill.GetDesc().length; i++) - { - lore[i] = ChatColor.GRAY + "" + skill.GetDesc()[i-1]; - } - - return lore; - } - - public JavaPlugin GetPlugin() - { - return Plugin.GetPlugin(); - } - - public void AddPlayerProcessError(CoreClient player) - { - if (_errorThrottling.containsKey(player.GetPlayerName()) && (System.currentTimeMillis() - _errorThrottling.get(player.GetPlayerName()) <= 5000)) - _purchaseBlock.put(player.GetPlayerName(), System.currentTimeMillis()); - - _errorThrottling.put(player.GetPlayerName(), System.currentTimeMillis()); - } - - public boolean CanPlayerAttemptPurchase(CoreClient player) - { - return !_purchaseBlock.containsKey(player.GetPlayerName()) || (System.currentTimeMillis() - _purchaseBlock.get(player.GetPlayerName()) > 10000); - } - - public Material GetBlockType() - { - return ShopBlockType; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/ChangeCurrency.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/ChangeCurrency.java deleted file mode 100644 index 30f071f69..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/ChangeCurrency.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class ChangeCurrency extends ShopActionBase -{ - public ChangeCurrency(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - super(plugin, shop, clientManager); - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - if (Shop.ClickedCurrentPage(event) && event.isLeftClick() && event.getRawSlot() == 4) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - - Shop.GetPage(player).ChangeCurrency(player); - Shop.GetPage(player).UpdateBalance(player); - - event.setCancelled(true); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/NextPage.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/NextPage.java deleted file mode 100644 index 79eb1fc9a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/NextPage.java +++ /dev/null @@ -1,31 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class NextPage extends ShopActionBase -{ - public NextPage(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - super(plugin, shop, clientManager); - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - - if (Shop.ClickedCurrentPage(event) && event.getRawSlot() == 8 && Shop.HasNextPage(player)) - { - Shop.TurnToNextPage(player); - - event.setCancelled(true); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/PreviousPage.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/PreviousPage.java deleted file mode 100644 index 8cdf2c32c..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/PreviousPage.java +++ /dev/null @@ -1,31 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class PreviousPage extends ShopActionBase -{ - public PreviousPage(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - super(plugin, shop, clientManager); - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - - if (Shop.ClickedCurrentPage(event) && event.getRawSlot() == 0 && Shop.HasPreviousPage(player)) - { - Shop.TurnToPreviousPage(player); - - event.setCancelled(true); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/Purchase.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/Purchase.java deleted file mode 100644 index 5f043eb4f..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/Purchase.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class Purchase extends ShopActionBase -{ - public Purchase(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - super(plugin, shop, clientManager); - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - if (Shop.ClickedCurrentPage(event) && event.isLeftClick() && !event.isShiftClick() && event.getRawSlot() > 0) - { - if (event.getCurrentItem().getType() != Material.AIR) - { - if (event.getRawSlot() > 8 && event.getRawSlot() < 81) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - int slot = event.getRawSlot(); - - Shop.GetPage(player).PlayerWants(player, slot); - - if (Shop.GetPage(player) != null) - Shop.GetPage(player).UpdateBalance(player); - - event.setCancelled(true); - } - } - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/PvpReturn.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/PvpReturn.java deleted file mode 100644 index b187dc480..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/PvpReturn.java +++ /dev/null @@ -1,150 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.PvpShop.IPvpShopFactory; -import me.chiss.Core.PvpShop.IShopItem; -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.F; -import mineplex.core.common.util.UtilInv; -import mineplex.core.common.util.UtilPlayer; - -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.java.JavaPlugin; - -public class PvpReturn extends ShopActionBase -{ - private IPvpShopFactory _itemFactory; - - public PvpReturn(JavaPlugin plugin, Shop shop, CoreClientManager clientManager, IPvpShopFactory itemFactory) - { - super(plugin, shop, clientManager); - _itemFactory = itemFactory; - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - if (!Shop.ClickedCurrentPage(event)) - return; - - if (!event.isRightClick()) - return; - - if (event.isShiftClick()) - return; - - if (event.getRawSlot() <= 0) - return; - - if (event.getCurrentItem().getType() == Material.AIR) - return; - - if (event.getRawSlot() >= 54 && event.getRawSlot() <= 89) - SellStack(event); - - if (event.getRawSlot() >= 9 && event.getRawSlot() <= 53) - SellAll(event); - } - - public void SellAll(InventoryClickEvent event) - { - event.setCancelled(true); - - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - ItemStack playerItem = event.getCurrentItem(); - - if (playerItem == null || playerItem.getType() == Material.AIR) - return; - - boolean durable = (playerItem.getType().getMaxDurability() > 0); - - IShopItem sellItem = null; - - for(IShopItem item : _itemFactory.GetItems()) - { - if (item.GetType() != playerItem.getType()) - continue; - - //Compare Data for Non-Durable Only - if (!durable) - if (playerItem.getData() != null) - if (item.GetData() != playerItem.getData().getData()) - continue; - - sellItem = item; - break; - } - - if (sellItem == null) - return; - - byte data = sellItem.GetData(); - if (durable) - data = -1; - - double cost = (double)sellItem.GetEconomyCost() / (double)sellItem.GetAmount() * sellItem.GetReturnPercent(); - int count = UtilInv.removeAll((Player)event.getWhoClicked(), sellItem.GetType(), data); - - //Set Balance - player.Game().SetEconomyBalance(player.Game().GetEconomyBalance() + (int)(count * cost)); - - //Update Balance - Shop.GetPage(player).UpdateBalance(player); - - //Effect - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.PISTON_RETRACT, 0.5f, 2f); - - //Inform - UtilPlayer.message(event.getWhoClicked(), F.main("Shop", "You sold " + - F.item(count + " " + sellItem.GetName()) + " for " + F.count((int)(count * cost) + " Coins") + ".")); - } - - public void SellStack(InventoryClickEvent event) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - ItemStack playerItem = event.getCurrentItem(); - - if (playerItem == null || playerItem.getType() == Material.AIR) - return; - - for(IShopItem item : _itemFactory.GetItems()) - { - if (item.GetType() != playerItem.getType()) - continue; - - //Compare Data for Durable Only - if (playerItem.getType().getMaxDurability() == 0) - if (playerItem.getData() != null) - if (item.GetData() != playerItem.getData().getData()) - continue; - - double cost = (double)item.GetEconomyCost() / (double)item.GetAmount() * item.GetReturnPercent(); - int count = playerItem.getAmount(); - - //Set Balance - player.Game().SetEconomyBalance(player.Game().GetEconomyBalance() + (int)(count * cost)); - - //Remove Item - event.setCurrentItem(null); - - //Update Balance - Shop.GetPage(player).UpdateBalance(player); - - //Effect - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.PISTON_RETRACT, 0.5f, 2f); - - //Inform - UtilPlayer.message(event.getWhoClicked(), F.main("Shop", "You sold " + - F.item(count + " " + item.GetName()) + " for " + F.count((int)(count * cost) + " Coins") + ".")); - - event.setCancelled(true); - break; - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/Reset.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/Reset.java deleted file mode 100644 index f3bb3952e..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/Reset.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class Reset extends ShopActionBase -{ - public Reset(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - super(plugin, shop, clientManager); - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - if (Shop.ClickedCurrentPage(event) && event.isRightClick() && event.getRawSlot() == 4) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - - Shop.GetPage(player).Reset(player); - Shop.GetPage(player).UpdateBalance(player); - - event.setCancelled(true); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/Return.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/Return.java deleted file mode 100644 index 7f3d4dd5a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/Return.java +++ /dev/null @@ -1,100 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Utility.InventoryUtil; -import me.chiss.Core.Weapon.IWeapon; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.account.CoreClientManager; -import mineplex.minecraft.game.core.classcombat.item.IItem; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; - -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.java.JavaPlugin; - -public class Return extends ShopActionBase -{ - private IWeaponFactory _weaponFactory; - private IItemFactory _itemFactory; - - public Return(JavaPlugin plugin, Shop shop, CoreClientManager clientManager, IWeaponFactory weaponFactory, IItemFactory itemFactory) - { - super(plugin, shop, clientManager); - _weaponFactory = weaponFactory; - _itemFactory = itemFactory; - } - - @EventHandler - public void InventoryClick(InventoryClickEvent event) - { - if (Shop.ClickedCurrentPage(event) && event.isRightClick() && !event.isShiftClick() && event.getRawSlot() > 0) - { - if (event.getCurrentItem().getType() != Material.AIR) - { - if (event.getRawSlot() > 8 && event.getRawSlot() < 81) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - int slot = event.getRawSlot(); - - Shop.GetPage(player).PlayerReturning(player, slot); - Shop.GetPage(player).UpdateBalance(player); - - event.setCancelled(true); - } - else if (event.getRawSlot() > 80 && event.getRawSlot() < 90) - { - CoreClient player = ClientManager.Get((Player)event.getWhoClicked()); - ItemStack playerItem = event.getCurrentItem(); - boolean foundItem = false; - - for(IWeapon weapon : _weaponFactory.GetWeapons()) - { - if (weapon.GetType() == playerItem.getType() && playerItem.getAmount() >= weapon.GetAmount() && playerItem.getDurability() == 0) - { - ItemStack itemStack = new ShopItem(weapon.GetType(), weapon.GetName(), weapon.GetAmount(), false); - int returnAmount = InventoryUtil.GetCountOfObjectsRemovedInSlot((CraftInventory)player.Class().GetInventory(), event.getSlot(), itemStack); - int cost = weapon.GetTokenCost(); - - player.Donor().ReturnItem(returnAmount * cost); - foundItem = true; - break; - } - } - - if (!foundItem) - { - for(IItem item : _itemFactory.GetItems()) - { - if (item.GetType() == playerItem.getType() && playerItem.getAmount() >= item.GetAmount() && playerItem.getDurability() == 0) - { - ItemStack itemStack = new ShopItem(item.GetType(), item.GetName(), item.GetAmount(), false); - int returnAmount = InventoryUtil.GetCountOfObjectsRemovedInSlot((CraftInventory)player.Class().GetInventory(), event.getSlot(), itemStack); - int cost = item.GetTokenCost(); - - player.Donor().ReturnItem(returnAmount * cost); - foundItem = true; - break; - } - } - } - - if (foundItem) - { - Shop.GetPage(player).UpdateBalance(player); - - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.SPIDER_WALK, 1, .6f); - - event.setCancelled(true); - } - } - } - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/actions/ShopActionBase.java b/Plugins/Core/src/me/chiss/Core/Shop/actions/ShopActionBase.java deleted file mode 100644 index 956c25c7b..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/actions/ShopActionBase.java +++ /dev/null @@ -1,23 +0,0 @@ -package me.chiss.Core.Shop.actions; - -import me.chiss.Core.Shop.Shop; -import mineplex.core.account.CoreClientManager; - -import org.bukkit.event.Listener; -import org.bukkit.plugin.java.JavaPlugin; - -public abstract class ShopActionBase implements Listener -{ - protected JavaPlugin Plugin; - protected Shop Shop; - protected CoreClientManager ClientManager; - - public ShopActionBase(JavaPlugin plugin, Shop shop, CoreClientManager clientManager) - { - Plugin = plugin; - Shop = shop; - ClientManager = clientManager; - - Plugin.getServer().getPluginManager().registerEvents(this, Plugin); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/CreditHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/CreditHandler.java deleted file mode 100644 index 62ca30762..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/CreditHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class CreditHandler implements ICurrencyHandler -{ - @Override - public int GetCost(ISalesPackage salesPackage) - { - return salesPackage.GetCreditCost(); - } - - @Override - public void Deduct(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetCredits(player.Donor().GetBlueGems() - salesPackage.GetCreditCost()); - } - - @Override - public void Return(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetCredits(player.Donor().GetBlueGems() + salesPackage.ReturnFrom(player) * salesPackage.GetCreditCost()); - } - - @Override - public String GetName() - { - return "Credits"; - } - - @Override - public boolean CanAfford(CoreClient player, ISalesPackage salesPackage) - { - return player.Donor().GetBlueGems() >= salesPackage.GetCreditCost(); - } - - @Override - public Material GetItemDisplayType() - { - return Material.DIAMOND; - } - - @Override - public void ResetBalance(CoreClient player) - { - } - - @Override - public int GetBalance(CoreClient player) - { - return player.Donor().GetBlueGems(); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/EconomyHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/EconomyHandler.java deleted file mode 100644 index b689e4b04..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/EconomyHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class EconomyHandler implements ICurrencyHandler -{ - @Override - public int GetCost(ISalesPackage salesPackage) - { - return salesPackage.GetEconomyCost(); - } - - @Override - public void Deduct(CoreClient player, ISalesPackage salesPackage) - { - player.Game().SetEconomyBalance(player.Game().GetEconomyBalance() - salesPackage.GetEconomyCost()); - } - - @Override - public void Return(CoreClient player, ISalesPackage salesPackage) - { - player.Game().SetEconomyBalance(player.Game().GetEconomyBalance() + salesPackage.ReturnFrom(player) * salesPackage.GetEconomyCost()); - } - - @Override - public String GetName() - { - return "Coins"; - } - - @Override - public boolean CanAfford(CoreClient player, ISalesPackage salesPackage) - { - return player.Game().GetEconomyBalance() >= salesPackage.GetEconomyCost(); - } - - @Override - public Material GetItemDisplayType() - { - return Material.GOLD_INGOT; - } - - @Override - public void ResetBalance(CoreClient player) - { - //player.Game().SetEconomyBalance(0); - } - - @Override - public int GetBalance(CoreClient player) - { - return player.Game().GetEconomyBalance(); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/ICurrencyHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/ICurrencyHandler.java deleted file mode 100644 index be38e15c1..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/ICurrencyHandler.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public interface ICurrencyHandler -{ - int GetCost(ISalesPackage salesPackage); - void Deduct(CoreClient player, ISalesPackage salesPackage); - void Return(CoreClient player, ISalesPackage salesPackage); - String GetName(); - Material GetItemDisplayType(); - boolean CanAfford(CoreClient player, ISalesPackage salesPackage); - void ResetBalance(CoreClient player); - int GetBalance(CoreClient player); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/ItemTokenHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/ItemTokenHandler.java deleted file mode 100644 index 8e9dda087..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/ItemTokenHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class ItemTokenHandler implements ICurrencyHandler -{ - @Override - public int GetCost(ISalesPackage salesPackage) - { - return salesPackage.GetTokenCost(); - } - - @Override - public void Deduct(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetItemTokens(player.Donor().GetItemTokens() - salesPackage.GetTokenCost()); - } - - @Override - public void Return(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetItemTokens(player.Donor().GetItemTokens() + salesPackage.ReturnFrom(player) * salesPackage.GetTokenCost()); - } - - @Override - public String GetName() - { - return "Item Tokens"; - } - - @Override - public boolean CanAfford(CoreClient player, ISalesPackage salesPackage) - { - return player.Donor().GetItemTokens() >= salesPackage.GetTokenCost(); - } - - @Override - public Material GetItemDisplayType() - { - return Material.EMERALD; - } - - @Override - public void ResetBalance(CoreClient player) - { - player.Donor().ResetItemTokens(); - } - - @Override - public int GetBalance(CoreClient player) - { - return player.Donor().GetItemTokens(); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/PointHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/PointHandler.java deleted file mode 100644 index bd623f289..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/PointHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class PointHandler implements ICurrencyHandler -{ - @Override - public int GetCost(ISalesPackage salesPackage) - { - return salesPackage.GetPointCost(); - } - - @Override - public void Deduct(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetPoints(player.Donor().GetGreenGems() - salesPackage.GetPointCost()); - } - - @Override - public void Return(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetPoints(player.Donor().GetGreenGems() + salesPackage.ReturnFrom(player) * salesPackage.GetPointCost()); - } - - @Override - public String GetName() - { - return "Points"; - } - - @Override - public boolean CanAfford(CoreClient player, ISalesPackage salesPackage) - { - return player.Donor().GetGreenGems() >= salesPackage.GetPointCost(); - } - - @Override - public Material GetItemDisplayType() - { - return Material.EMERALD; - } - - @Override - public void ResetBalance(CoreClient player) - { - } - - @Override - public int GetBalance(CoreClient player) - { - return player.Donor().GetGreenGems(); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/currency/SkillTokenHandler.java b/Plugins/Core/src/me/chiss/Core/Shop/currency/SkillTokenHandler.java deleted file mode 100644 index 97280d596..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/currency/SkillTokenHandler.java +++ /dev/null @@ -1,58 +0,0 @@ -package me.chiss.Core.Shop.currency; - - -import org.bukkit.Material; - -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class SkillTokenHandler implements ICurrencyHandler -{ - @Override - public int GetCost(ISalesPackage salesPackage) - { - return salesPackage.GetTokenCost(); - } - - @Override - public void Deduct(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetSkillTokens(player.Donor().GetSkillTokens() - salesPackage.GetTokenCost()); - } - - @Override - public void Return(CoreClient player, ISalesPackage salesPackage) - { - player.Donor().SetSkillTokens(player.Donor().GetSkillTokens() + salesPackage.ReturnFrom(player) * salesPackage.GetTokenCost()); - } - - @Override - public String GetName() - { - return "Skill Tokens"; - } - - @Override - public boolean CanAfford(CoreClient player, ISalesPackage salesPackage) - { - return player.Donor().GetSkillTokens() >= salesPackage.GetTokenCost(); - } - - @Override - public Material GetItemDisplayType() - { - return Material.DIAMOND; - } - - @Override - public void ResetBalance(CoreClient player) - { - player.Donor().ResetSkillTokens(); - } - - @Override - public int GetBalance(CoreClient player) - { - return player.Donor().GetSkillTokens(); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/events/PurchasePackageEvent.java b/Plugins/Core/src/me/chiss/Core/Shop/events/PurchasePackageEvent.java deleted file mode 100644 index 8c0ee08d9..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/events/PurchasePackageEvent.java +++ /dev/null @@ -1,63 +0,0 @@ -package me.chiss.Core.Shop.events; - -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class PurchasePackageEvent extends Event implements Cancellable -{ - private static final HandlerList handlers = new HandlerList(); - private boolean _cancelled = false; - - private String _playerName; - private String _itemName; - private String _reason; - - public PurchasePackageEvent(String player, String item) - { - _playerName = player; - _itemName = item; - } - - public String GetPlayerName() - { - return _playerName; - } - - public String GetItemName() - { - return _itemName; - } - - public String GetReason() - { - return _reason; - } - - public void SetReason(String reason) - { - _reason = reason; - } - - public HandlerList getHandlers() - { - return handlers; - } - - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public boolean isCancelled() - { - return _cancelled; - } - - @Override - public void setCancelled(boolean cancel) - { - _cancelled = cancel; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IPurchaseListener.java b/Plugins/Core/src/me/chiss/Core/Shop/listeners/IPurchaseListener.java deleted file mode 100644 index 69fc2e453..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IPurchaseListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package me.chiss.Core.Shop.listeners; - -import mineplex.minecraft.shop.item.ISalesPackage; - -public interface IPurchaseListener -{ - void OnPurchasePackage(ISalesPackage salesPackage); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IResetListener.java b/Plugins/Core/src/me/chiss/Core/Shop/listeners/IResetListener.java deleted file mode 100644 index 6800ea787..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IResetListener.java +++ /dev/null @@ -1,6 +0,0 @@ -package me.chiss.Core.Shop.listeners; - -public interface IResetListener -{ - -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IReturnListener.java b/Plugins/Core/src/me/chiss/Core/Shop/listeners/IReturnListener.java deleted file mode 100644 index 30d89017a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/listeners/IReturnListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package me.chiss.Core.Shop.listeners; - -import mineplex.minecraft.shop.item.ISalesPackage; - -public interface IReturnListener -{ - void OnReturnPackage(ISalesPackage salesPackage); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/IPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/IPage.java deleted file mode 100644 index 968d5981b..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/IPage.java +++ /dev/null @@ -1,26 +0,0 @@ -package me.chiss.Core.Shop.page; - -import java.util.List; - -import org.bukkit.entity.HumanEntity; - -import mineplex.core.account.CoreClient; - -public interface IPage> -{ - String GetTitle(); - boolean HasNextPage(); - boolean HasPreviousPage(); - void SetPreviousPage(PageType previousPage); - void SetNextPage(PageType nextPage); - PageType GetPreviousPage(); - PageType GetNextPage(); - - void OpenForPlayer(CoreClient clicker); - void CloseForPlayer(CoreClient clicker); - - void SetPageNumber(int pageNumber); - int GetPageNumber(); - - List getViewers(); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/IShopPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/IShopPage.java deleted file mode 100644 index bd22b5542..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/IShopPage.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.chiss.Core.Shop.page; - -import me.chiss.Core.Shop.salespackage.ISalesPackage; -import mineplex.core.account.CoreClient; - -public interface IShopPage extends IPage -{ - void AddItem(ISalesPackage iSalesPackage, int slot); - ISalesPackage GetItem(int itemSlot); - - void Reset(CoreClient player); - - void PlayerWants(CoreClient donor, int slot); - void PlayerReturning(CoreClient player, int slot); - - void ChangeCurrency(CoreClient player); - void UpdateBalance(CoreClient player); - - void UpdateSlot(CoreClient player, int slot); - void ResetVisuals(); - void PrepSlotsForPlayer(CoreClient player); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/PageBase.java b/Plugins/Core/src/me/chiss/Core/Shop/page/PageBase.java deleted file mode 100644 index 036ad610a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/PageBase.java +++ /dev/null @@ -1,86 +0,0 @@ -package me.chiss.Core.Shop.page; - -import mineplex.core.account.CoreClient; -import net.minecraft.server.v1_6_R3.Item; - -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventoryCustom; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftItemStack; - -public class PageBase> extends CraftInventoryCustom implements IPage -{ - private int _pageNumber; - - protected PageType PreviousPage; - protected PageType NextPage; - - public PageBase(String title) - { - super(null, 54, title); - setMaxStackSize(128); - } - - public void SetPageNumber(int pageNumber) - { - _pageNumber = pageNumber; - } - - public int GetPageNumber() - { - return _pageNumber; - } - - public void SetPreviousPage(PageType previousPage) - { - if (previousPage != null) - { - getInventory().setItem(0, CraftItemStack.asNewCraftStack(Item.PAPER, previousPage.GetPageNumber()).getHandle()); - PreviousPage = previousPage; - } - } - - public PageType GetPreviousPage() - { - return PreviousPage; - } - - public boolean HasPreviousPage() - { - return (PreviousPage != null); - } - - public void SetNextPage(PageType nextPage) - { - if (nextPage != null) - { - getInventory().setItem(8, CraftItemStack.asNewCraftStack(Item.PAPER, nextPage.GetPageNumber()).getHandle()); - NextPage = nextPage; - } - } - - public PageType GetNextPage() - { - return NextPage; - } - - public boolean HasNextPage() - { - return (NextPage != null); - } - - public String GetTitle() - { - return getTitle(); - } - - public void OpenForPlayer(CoreClient playerClient) - { - playerClient.GetPlayer().openInventory(this); - } - - public void CloseForPlayer(CoreClient playerClient) - { - playerClient.GetPlayer().closeInventory(); - this.inventory.onClose((CraftPlayer)playerClient.GetPlayer()); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/ShopPageBase.java b/Plugins/Core/src/me/chiss/Core/Shop/page/ShopPageBase.java deleted file mode 100644 index d80e8a6a6..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/ShopPageBase.java +++ /dev/null @@ -1,208 +0,0 @@ -package me.chiss.Core.Shop.page; - -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.salespackage.ISalesPackage; -import me.chiss.Core.Shop.salespackage.ItemPackage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; - -import org.bukkit.ChatColor; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; - -public abstract class ShopPageBase extends PageBase implements IShopPage -{ - protected Shop Shop; - protected HashMap SalesPackageMap; - protected HashMap UnlockedMap; - protected HashMap LockedMap; - protected List CurrencyHandlers; - protected ICurrencyHandler CurrentCurrencyHandler; - - public ShopPageBase(Shop shop, String title, List currencyHandlers, HashMap unlockedMap, HashMap lockedMap) - { - super(title); - - Shop = shop; - SalesPackageMap = new HashMap(); - UnlockedMap = unlockedMap; - LockedMap = lockedMap; - CurrencyHandlers = currencyHandlers; - - if (CurrencyHandlers != null && CurrencyHandlers.size() > 0) - CurrentCurrencyHandler = CurrencyHandlers.get(0); - } - - public ISalesPackage GetItem(int i) - { - return SalesPackageMap.get(i); - } - - public void UpdateBalance(CoreClient player) - { - int balance = CurrentCurrencyHandler.GetBalance(player); - - String[] lore = new String[5]; - lore[0] = "§rBalance: " + ChatColor.YELLOW + balance + " " + CurrentCurrencyHandler.GetName(); - - SetResetButtonLore(balance, lore); - } - - protected void SetResetButtonLore(int balance, String[] lore) - { - lore[1] = "§rRight-click to return all items on this page."; - - ShopItem currencyItem = new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true); - - /* Max is 64 still. - if (balance <= 128) - currencyItem.setAmount(balance); - */ - - setItem(4, currencyItem); - } - - public void ResetVisuals() - { - - } - - public void Reset(CoreClient player) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.SPIDER_WALK, 1, .6f); - - for (ISalesPackage salesPackage : SalesPackageMap.values()) - { - CurrentCurrencyHandler.Return(player, salesPackage); - } - } - - public void OpenForPlayer(CoreClient playerClient) - { - PrepSlotsForPlayer(playerClient); - - UpdateBalance(playerClient); - - playerClient.GetPlayer().openInventory(this); - } - - public void PrepSlotsForPlayer(CoreClient playerClient) - { - for (int slot : UnlockedMap.keySet()) - { - UpdateSlot(playerClient, slot); - } - } - - public void CloseForPlayer(CoreClient playerClient) - { - playerClient.GetPlayer().closeInventory(); - this.inventory.onClose((CraftPlayer)playerClient.GetPlayer()); - } - - public void ChangeCurrency(CoreClient playerClient) - { - if (CurrencyHandlers != null) - { - if (CurrencyHandlers.size() > 1) - { - playerClient.GetPlayer().playSound(playerClient.GetPlayer().getLocation(), Sound.NOTE_PLING, 1, .6f); - } - else - { - playerClient.GetPlayer().playSound(playerClient.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1, .6f); - } - - CurrentCurrencyHandler = GetNextCurrencyHandler(); - } - } - - protected ICurrencyHandler GetNextCurrencyHandler() - { - if (CurrencyHandlers.size() > 1) - { - int currentIndex = CurrencyHandlers.indexOf(CurrentCurrencyHandler); - - if (currentIndex + 1 < CurrencyHandlers.size()) - { - return CurrencyHandlers.get(currentIndex + 1); - } - else - { - return CurrencyHandlers.get(0); - } - } - - return CurrentCurrencyHandler; - } - - public void PlayerWants(CoreClient player, int slot) - { - ISalesPackage sellable = GetItem(slot); - - if (sellable != null && CanPurchasePackage(player, sellable)) - { - PurchaseSalesPackage(player, sellable); - } - else - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - - UpdateSlot(player, slot); - } - - protected boolean CanPurchasePackage(CoreClient player, ISalesPackage sellable) - { - return CurrentCurrencyHandler.CanAfford(player, sellable) && sellable.CanFitIn(player); - } - - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ORB_PICKUP, 1f, .6f); - sellable.PurchaseBy(player); - CurrentCurrencyHandler.Deduct(player, sellable); - } - - public void PlayerReturning(CoreClient player, int slot) - { - ISalesPackage sellable = GetItem(slot); - - if (sellable != null && CurrentCurrencyHandler != null) - { - CurrentCurrencyHandler.Return(player, sellable); - } - } - - public void AddItem(ISalesPackage salesItem, int slot) - { - for (Integer salesItemslot : salesItem.AddToCategory(getInventory(), slot)) - { - SalesPackageMap.put(salesItemslot, salesItem); - } - } - - public void UpdateSlot(CoreClient player, int slot) - { - if (UnlockedMap != null && UnlockedMap.get(slot) != null) - { - if (ShowUnlockedAtSlot(player, slot)) - { - AddItem(UnlockedMap.get(slot), slot); - } - else - { - AddItem(LockedMap.get(slot), slot); - } - } - } - - protected boolean ShowUnlockedAtSlot(CoreClient player, int slot) - { - return player.Donor().Owns(UnlockedMap.get(slot).GetSalesPackageId()) || UnlockedMap.get(slot).IsFree(); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/CustomBuildPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/CustomBuildPage.java deleted file mode 100644 index 49c199a0d..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/CustomBuildPage.java +++ /dev/null @@ -1,270 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - - -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.inventory.ItemStack; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.game.core.classcombat.Class.repository.token.CustomBuildToken; -import mineplex.minecraft.game.core.classcombat.events.ClassSetupEvent; -import mineplex.minecraft.game.core.classcombat.events.ClassSetupEvent.SetupType; -import mineplex.minecraft.shop.item.ISalesPackage; -import mineplex.minecraft.shop.item.ItemPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.ShopPageBase; -import me.chiss.Core.Shop.salespackage.ShopItem; - -public class CustomBuildPage extends ShopPageBase -{ - protected IPvpClass _currentClass; - - protected HashMap> UnlockedClassMap; - protected HashMap> LockedClassMap; - - protected boolean equipItems = true; - protected boolean equipDefaultArmor = true; - protected boolean saveActiveCustomBuild = false; - - public CustomBuildPage(Shop shop, String title, List currencyHandlers, HashMap> unlockedClassMap, HashMap> lockedClassMap) - { - super(shop, title, currencyHandlers, null, null); - - UnlockedClassMap = unlockedClassMap; - LockedClassMap = lockedClassMap; - } - - @Override - public void PlayerWants(CoreClient player, int slot) - { - ISalesPackage shopItem = GetItem(slot); - if (shopItem != null) - { - ItemStack item = getItem(slot); - - if (shopItem.CanFitIn(player)) - { - int customBuildIndex = (slot % 9) / 2; - CustomBuildToken customBuild; - - if ((customBuildIndex > 1 && !player.Rank().Has(Rank.EMERALD, false)) - || (customBuildIndex > 2 && !player.Rank().Has(Rank.DIAMOND, false))) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - else - { - if (player.Donor().GetCustomBuilds(_currentClass).containsKey(customBuildIndex)) - { - customBuild = player.Donor().GetCustomBuilds(_currentClass).get(customBuildIndex); - player.Donor().SetTokens(customBuild.SkillTokensBalance, customBuild.ItemTokensBalance); - player.Donor().SetDefaultTokens(120, 120); - } - else - { - customBuild = new CustomBuildToken(); - customBuild.Name = "Build " + (customBuildIndex + 1); - customBuild.PvpClassId = _currentClass.GetSalesPackageId(); - customBuild.SkillTokensBalance = 120; - customBuild.ItemTokensBalance = 120; - player.Donor().SetDefaultTokens(120, 120); - } - - player.Donor().SetActiveCustomBuild(customBuildIndex, _currentClass, customBuild); - - if (item.getType() == Material.INK_SACK && item.getData().getData() != 8) - { - //Event - ClassSetupEvent event = new ClassSetupEvent(player.GetPlayer(), SetupType.ApplyCustomBuild, - _currentClass.GetType(), customBuild.CustomBuildNumber + 1, customBuild); - Shop.GetPlugin().getServer().getPluginManager().callEvent(event); - - if (event.IsCancelled()) - return; - - player.Class().EquipCustomBuild(customBuild, equipItems, equipDefaultArmor); - - if (saveActiveCustomBuild) - player.Donor().SetSavingCustomBuild(customBuildIndex, _currentClass, customBuild); - - Shop.CloseShopForPlayer(player); - } - else if (item.getType() == Material.ANVIL) - { - //Event - ClassSetupEvent event = new ClassSetupEvent(player.GetPlayer(), SetupType.SaveEditCustomBuild, - _currentClass.GetType(), customBuild.CustomBuildNumber + 1, customBuild); - Shop.GetPlugin().getServer().getPluginManager().callEvent(event); - - if (event.IsCancelled()) - return; - - player.Class().EquipCustomBuild(customBuild, equipItems, equipDefaultArmor); - player.Donor().SetSavingCustomBuild(customBuildIndex, _currentClass, customBuild); - Shop.TurnToNextPage(player); - } - else if (item.getType() == Material.WORKBENCH && customBuild.CustomBuildNumber != null) - { - //Event - ClassSetupEvent event = new ClassSetupEvent(player.GetPlayer(), SetupType.EditCustomBuild, - _currentClass.GetType(), customBuild.CustomBuildNumber + 1, customBuild); - Shop.GetPlugin().getServer().getPluginManager().callEvent(event); - - if (event.IsCancelled()) - return; - - player.Class().EquipCustomBuild(customBuild, equipItems, equipDefaultArmor); - Shop.TurnToNextPage(player); - } - else if (item.getType() == Material.FIRE && customBuild.CustomBuildNumber != null) - { - //Event - ClassSetupEvent event = new ClassSetupEvent(player.GetPlayer(), SetupType.DeleteCustomBuild, - _currentClass.GetType(), customBuild.CustomBuildNumber + 1, customBuild); - Shop.GetPlugin().getServer().getPluginManager().callEvent(event); - - if (event.IsCancelled()) - return; - - player.Donor().GetCustomBuilds(_currentClass).remove(customBuildIndex); - ReconstructPageForPlayer(player); - player.Class().UpdateInventory(); - } - } - } - else - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - } - } - - @Override - public void UpdateBalance(CoreClient player) - { - - } - - @Override - public void Reset(CoreClient player) - { - - } - - @Override - public void OpenForPlayer(CoreClient player) - { - if (_currentClass == null || _currentClass != player.Class().GetGameClass()) - { - _currentClass = player.Class().GetGameClass(); - - if (_currentClass == null) - _currentClass = Shop.GetClassForPlayer(player); - } - else - { - if (player.Donor().IsSavingCustomBuild()) - player.Donor().SaveActiveCustomBuild(!equipItems); - } - - ReconstructPageForPlayer(player); - - UpdateBalance(player); - - player.Class().OpenInventory(this); - } - - private void ReconstructPageForPlayer(CoreClient player) - { - SalesPackageMap.clear(); - HashMap packageMap = UnlockedClassMap.get(_currentClass); - - if (_currentClass != null) - { - for (Entry entry : packageMap.entrySet()) - { - UpdateClassSlot(player, entry.getKey()); - } - - int slot = 9; - - for (int i=0; i < 5; i++) - { - byte itemData; - String[] lockedText = new String[] { }; - boolean locked = false; - - switch (i) - { - case 0: - itemData = 1; - break; - case 1: - itemData = 14; - break; - case 2: - itemData = 11; - - if (!player.Rank().Has(Rank.EMERALD, false)) - { - locked = true; - lockedText = new String[] { "§rGet " + (i < 3 ? "Silver" : "Gold") + " rank to access this slot" }; - } - break; - case 3: - itemData = 2; - - if (!player.Rank().Has(Rank.DIAMOND, false)) - { - locked = true; - lockedText = new String[] { "§rGet " + (i < 3 ? "GOLD" : "DIAMOND") + " rank to access this slot" }; - } - break; - default: - itemData = 4; - - if (!player.Rank().Has(Rank.DIAMOND, false)) - { - locked = true; - lockedText = new String[] { "§rGet " + (i < 3 ? "GOLD" : "DIAMOND") + " rank to access this slot" }; - } - break; - } - - if (player.Donor().GetCustomBuilds(_currentClass).containsKey(i)) - { - CustomBuildToken customBuild = player.Donor().GetCustomBuilds(_currentClass).get(i); - - AddItem(new ItemPackage(new ShopItem(Material.INK_SACK, itemData, customBuild.Name, lockedText, 1, locked, true), 0, 0, 0, 0, false, -1), slot); - } - else - { - AddItem(new ItemPackage(new ShopItem(Material.INK_SACK, (byte)8, locked ? "Locked Build" : "Unsaved Build", lockedText, 1, locked, true), 0, 0, 0, 0, false, -1), slot); - } - - slot += 2; - } - } - } - - protected void UpdateClassSlot(CoreClient player, int slot) - { - if (UnlockedClassMap.get(_currentClass).get(slot).IsFree() - || (player.Rank().Has(Rank.EMERALD, false) && slot % 9 == 4) - || (player.Rank().Has(Rank.DIAMOND, false) && (slot % 9 == 6 || slot % 9 == 8))) - { - AddItem(UnlockedClassMap.get(_currentClass).get(slot), slot); - } - else - { - AddItem(LockedClassMap.get(_currentClass).get(slot), slot); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/ItemPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/ItemPage.java deleted file mode 100644 index d423e11ad..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/ItemPage.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; - -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.ShopPageBase; - -public class ItemPage extends ShopPageBase -{ - public ItemPage(Shop shop, String title, List currencyHandlers, HashMap unlockedMap, HashMap lockedMap) - { - super(shop, title, currencyHandlers, unlockedMap, lockedMap); - } - - protected boolean ShowUnlockedAtSlot(CoreClient player, int slot) - { - return super.ShowUnlockedAtSlot(player, slot) || player.Rank().Has(Rank.EMERALD, false); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/PvpCustomBuildPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/PvpCustomBuildPage.java deleted file mode 100644 index 2af170b6b..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/PvpCustomBuildPage.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Class.IPvpClass; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class PvpCustomBuildPage extends CustomBuildPage -{ - public PvpCustomBuildPage(Shop shop, String title, List currencyHandlers, HashMap> unlockedClassMap, HashMap> lockedClassMap) - { - super(shop, title, currencyHandlers, null, null); - - UnlockedClassMap = unlockedClassMap; - LockedClassMap = lockedClassMap; - - equipItems = false; - equipDefaultArmor = false; - saveActiveCustomBuild = true; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/ShopItemPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/ShopItemPage.java deleted file mode 100644 index 292ad72de..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/ShopItemPage.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; - -import org.bukkit.Sound; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.ShopPageBase; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class ShopItemPage extends ShopPageBase -{ - public ShopItemPage(Shop shop, String title, List currencyHandlers, HashMap unlockedMap, HashMap lockedMap) - { - super(shop, title, currencyHandlers, unlockedMap, lockedMap); - } - - @Override - protected void SetResetButtonLore(int balance, String[] lore) - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true)); - } - - @Override - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ORB_PICKUP, 1f, .6f); - sellable.PurchaseBy(player); - CurrentCurrencyHandler.Deduct(player, sellable); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/SkillsPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/SkillsPage.java deleted file mode 100644 index 4cae2cc2b..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/SkillsPage.java +++ /dev/null @@ -1,340 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; -import org.bukkit.inventory.PlayerInventory; - -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.game.core.classcombat.Class.IPvpClass; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.ShopPageBase; -import me.chiss.Core.Shop.salespackage.DonationPackage; -import me.chiss.Core.Shop.salespackage.ISalesPackage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Shop.salespackage.SkillPackage; - -public class SkillsPage extends ShopPageBase -{ - protected IPvpClass CurrentClass; - protected HashMap>> UnlockedClassMap; - protected HashMap> UnlockedGlobalMap; - protected HashMap>> LockedClassMap; - protected HashMap> LockedGlobalMap; - - public SkillsPage(Shop shop, String title, List currencyHandlers, - HashMap>> unlockedClassMap, HashMap> unlockedGlobalMap, - HashMap>> lockedClassMap, HashMap> lockedGlobalMap) - { - super(shop, title, currencyHandlers, null, null); - - UnlockedClassMap = unlockedClassMap; - UnlockedGlobalMap = unlockedGlobalMap; - LockedClassMap = lockedClassMap; - LockedGlobalMap = lockedGlobalMap; - } - - @Override - public void OpenForPlayer(CoreClient player) - { - if (CurrentClass == null || CurrentClass != player.Class().GetGameClass()) - { - CurrentClass = player.Class().GetGameClass(); - - if (CurrentClass == null) - CurrentClass = Shop.GetClassForPlayer(player); - } - - ReconstructPageForPlayer(player); - - PlayerInventory playerInv = player.Class().GetInventory(); - - for (int i = 9; i < 36; i++) - { - playerInv.setItem(i, null); - } - - TranslateIntoVirtualInventory(player); - - UpdateBalance(player); - - player.Class().OpenInventory(this); - } - - @Override - public void CloseForPlayer(CoreClient player) - { - PlayerInventory playerInv = player.Class().GetInventory(); - - for (int i = 9; i < 36; i++) - { - playerInv.setItem(i, null); - } - - Shop.ShowSkillHotBarForPlayer(player); - - player.GetPlayer().closeInventory(); - this.inventory.onClose((CraftPlayer)player.GetPlayer()); - } - - @Override - public void PlayerWants(CoreClient player, int slot) - { - ISalesPackage sellable = GetItem(slot); - - if (sellable == null) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - return; - } - - if (CurrentCurrencyHandler.CanAfford(player, sellable) && sellable.CanFitIn(player)) - { - PurchaseSalesPackage(player, sellable, slot); - } - else - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - } - - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable, int slot) - { - if (sellable instanceof SkillPackage) - { - SkillPackage skillSellable = GetSkillPackage(sellable); - - ISkill existingSkill = player.Class().GetSkillByType(skillSellable.GetSkill().GetSkillType()); - - if (existingSkill != null) - { - for (Entry salesPackage : SalesPackageMap.entrySet()) - { - if (salesPackage.getValue() instanceof SkillPackage) - { - SkillPackage otherSkillSellable = GetSkillPackage(salesPackage.getValue()); - - if (otherSkillSellable.GetSkill() == existingSkill) - { - if (existingSkill != skillSellable.GetSkill()) - { - int skillLevel = player.Class().GetSkillLevel(existingSkill); - for (int i=0; i < skillLevel; i++) - { - CurrentCurrencyHandler.Return(player, otherSkillSellable); - } - - otherSkillSellable.ReturnAllLevels(player); - - if (slot >= 54) - { - UnlockedGlobalMap.get(salesPackage.getKey() - 45).get(0).DeliverTo(player.Class(), salesPackage.getKey() - 45); - SalesPackageMap.put(salesPackage.getKey(), UnlockedGlobalMap.get(salesPackage.getKey() - 45).get(0)); - } - else - { - AddItem(UnlockedClassMap.get(CurrentClass).get(salesPackage.getKey()).get(0), salesPackage.getKey()); - } - } - - break; - } - } - } - } - - if (!skillSellable.IsActive() || skillSellable.GetLevel() < skillSellable.GetSkill().GetMaxLevel()) - { - int index = skillSellable.IsActive() ? skillSellable.GetLevel() + 1 : skillSellable.GetLevel(); - - if (player.Donor().Owns(skillSellable.GetSkill().GetSalesPackageId(index)) || skillSellable.GetSkill().IsFree(index) || player.Rank().Has(Rank.DIAMOND, false)) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ORB_PICKUP, 1f, .6f); - - if (slot >= 54) - { - UpdateGlobalSlot(player, slot, index); - } - else - { - UpdateClassSlot(player, slot, index); - } - - GetItem(slot).PurchaseBy(player); - CurrentCurrencyHandler.Deduct(player, GetItem(slot)); - } - } - } - } - - @Override - public void Reset(CoreClient player) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.SPIDER_WALK, 1, .6f); - - for (Entry entry : SalesPackageMap.entrySet()) - { - if (entry.getValue() instanceof SkillPackage) - { - SkillPackage skillSellable = (SkillPackage)entry.getValue(); - int skillLevel = player.Class().GetSkillLevel(skillSellable.GetSkill()); - - for (int i=0; i < skillLevel; i++) - CurrentCurrencyHandler.Return(player, skillSellable); - - skillSellable.ReturnAllLevels(player); - - skillLevel = player.Class().GetSkillLevel(skillSellable.GetSkill()); - - player.Class().AddSkill(skillSellable.GetSkill(), 0); - - if (entry.getKey() >= 54) - { - UpdateGlobalSlot(player, entry.getKey(), player.Class().GetSkillLevel(skillSellable.GetSkill())); - } - else - { - UpdateClassSlot(player, entry.getKey(), player.Class().GetSkillLevel(skillSellable.GetSkill())); - } - } - } - - player.Donor().ResetSkillTokens(); - } - - @Override - public void PlayerReturning(CoreClient player, int slot) - { - ISalesPackage sellable = GetItem(slot); - - if (sellable instanceof SkillPackage) - { - SkillPackage skillSellable = (SkillPackage)sellable; - - if (skillSellable.IsActive()) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.SPIDER_WALK, 1, .6f); - - int index = skillSellable.GetLevel() - 1; - - if (slot >= 54) - { - UpdateGlobalSlot(player, slot, index); - } - else - { - UpdateClassSlot(player, slot, index); - } - - CurrentCurrencyHandler.Return(player, sellable); - } - } - } - - public void ResetVisuals() - { - CurrentClass = null; - } - - protected void TranslateIntoVirtualInventory(CoreClient player) - { - PlayerInventory playerInv = player.Class().GetInventory(); - playerInv.setItem(9, new ShopItem(Material.INK_SACK, (byte)11, "Global Passive A Skills", null, 1, true, true)); - playerInv.setItem(18, new ShopItem(Material.INK_SACK, (byte)2, "Global Passive B Skills", null, 1, true, true)); - playerInv.setItem(27, new ShopItem(Material.INK_SACK, (byte)4, "Global Passive C Skills", null, 1, true, true)); - - for (Entry> entry : UnlockedGlobalMap.entrySet()) - { - UpdateGlobalSlot(player, 45 + entry.getKey(), GetIndexForSkill(player, entry, GetSkillPackage(0, entry.getValue()))); - } - } - - private void ReconstructPageForPlayer(CoreClient player) - { - clear(); - - if (PreviousPage != null) - { - SetPreviousPage(PreviousPage); - } - - if (NextPage != null) - { - SetNextPage(NextPage); - } - - SalesPackageMap.clear(); - HashMap> packageMap = UnlockedClassMap.get(CurrentClass); - - AddItem(new ItemPackage(new ShopItem(Material.IRON_SWORD, "Sword Skills", null, 1, true, true), 0, 0, 0, 0, false, -1), 9); - AddItem(new ItemPackage(new ShopItem(Material.IRON_AXE, "Axe Skills", null, 1, true, true), 0, 0, 0, 0, false, -1), 18); - AddItem(new ItemPackage(new ShopItem(Material.BOW, "Bow Skills", null, 1, true, true), 0, 0, 0, 0, false, -1), 27); - AddItem(new ItemPackage(new ShopItem(Material.INK_SACK, (byte)1, "Class Passive A Skills", null, 1, true, true), 0, 0, 0, 0, false, -1), 36); - AddItem(new ItemPackage(new ShopItem(Material.INK_SACK, (byte)14, "Class Passive B Skills", null, 1, true, true), 0, 0, 0, 0, false, -1), 45); - - if (CurrentClass != null) - { - for (Entry> entry : packageMap.entrySet()) - { - UpdateClassSlot(player, entry.getKey(), GetIndexForSkill(player, entry, GetSkillPackage(0, entry.getValue()))); - } - } - } - - protected int GetIndexForSkill(CoreClient player, Entry> entry, SkillPackage skillPackage) - { - return player.Class().GetSkillLevel(skillPackage.GetSkill()); - } - - protected SkillPackage GetSkillPackage(int number, List salesPacakgeList) - { - return GetSkillPackage(salesPacakgeList.get(number)); - } - - protected SkillPackage GetSkillPackage(ISalesPackage salesPackage) - { - SkillPackage skillPackage; - if (salesPackage instanceof DonationPackage) - { - skillPackage = (SkillPackage)((DonationPackage)salesPackage).GetWrappedPackage(); - } - else - { - skillPackage = (SkillPackage)salesPackage; - } - - return skillPackage; - } - - protected void UpdateGlobalSlot(CoreClient player, int slot, int index) - { - if (player.Donor().Owns(UnlockedGlobalMap.get(slot - 45).get(index).GetSalesPackageId()) || UnlockedGlobalMap.get(slot - 45).get(index).IsFree() || player.Rank().Has(Rank.DIAMOND, false)) - { - UnlockedGlobalMap.get(slot - 45).get(index).DeliverTo(player.Class(), slot - 45); - SalesPackageMap.put(slot, UnlockedGlobalMap.get(slot - 45).get(index)); - } - else - { - LockedGlobalMap.get(slot - 45).get(index).DeliverTo(player.Class(), slot - 45); - SalesPackageMap.put(slot, LockedGlobalMap.get(slot - 45).get(index)); - } - } - - protected void UpdateClassSlot(CoreClient player, int slot, int index) - { - if (player.Donor().Owns(UnlockedClassMap.get(CurrentClass).get(slot).get(index).GetSalesPackageId()) || UnlockedClassMap.get(CurrentClass).get(slot).get(index).IsFree() || player.Rank().Has(Rank.DIAMOND, false)) - { - AddItem(UnlockedClassMap.get(CurrentClass).get(slot).get(index), slot); - } - else - { - AddItem(LockedClassMap.get(CurrentClass).get(slot).get(index), slot); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/WeaponPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/WeaponPage.java deleted file mode 100644 index 98ffa6a9c..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/WeaponPage.java +++ /dev/null @@ -1,78 +0,0 @@ -package me.chiss.Core.Shop.page.game; - -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.ShopPageBase; - -public class WeaponPage extends ShopPageBase -{ - private IPvpClass _currentClass; - - private HashMap> UnlockedClassMap; - private HashMap> LockedClassMap; - - public WeaponPage(Shop shop, String title, List currencyHandlers, HashMap> unlockedClassMap, HashMap> lockedClassMap) - { - super(shop, title, currencyHandlers, null, null); - - UnlockedClassMap = unlockedClassMap; - LockedClassMap = lockedClassMap; - } - - @Override - public void OpenForPlayer(CoreClient player) - { - if (_currentClass == null || _currentClass != player.Class().GetGameClass()) - { - _currentClass = player.Class().GetGameClass(); - - if (_currentClass == null) - _currentClass = Shop.GetClassForPlayer(player); - } - - ReconstructPageForPlayer(player); - - UpdateBalance(player); - - player.Class().OpenInventory(this); - } - - private void ReconstructPageForPlayer(CoreClient player) - { - SalesPackageMap.clear(); - HashMap packageMap = UnlockedClassMap.get(_currentClass); - - if (_currentClass != null) - { - for (Entry entry : packageMap.entrySet()) - { - UpdateClassSlot(player, entry.getKey()); - } - } - } - - protected void UpdateClassSlot(CoreClient player, int slot) - { - if (player.Donor().Owns(UnlockedClassMap.get(_currentClass).get(slot).GetSalesPackageId()) || UnlockedClassMap.get(_currentClass).get(slot).IsFree() || player.Rank().Has(Rank.EMERALD, false)) - { - AddItem(UnlockedClassMap.get(_currentClass).get(slot), slot); - } - else - { - AddItem(LockedClassMap.get(_currentClass).get(slot), slot); - } - } - - protected boolean ShowUnlockedAtSlot(CoreClient player, int slot) - { - return super.ShowUnlockedAtSlot(player, slot) || player.Rank().Has(Rank.EMERALD, false); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ArmorPurchasePage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ArmorPurchasePage.java deleted file mode 100644 index 81120e335..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ArmorPurchasePage.java +++ /dev/null @@ -1,81 +0,0 @@ -package me.chiss.Core.Shop.page.game.purchase; - -import java.util.HashMap; -import java.util.List; - -import org.bukkit.ChatColor; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.game.purchase.ConfirmationPage; -import me.chiss.Core.Shop.salespackage.DefaultClassPackage; -import me.chiss.Core.Shop.salespackage.DonationPackage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.game.classcombat.shop.page.ArmorPage; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class ArmorPurchasePage extends ArmorPage -{ - public ArmorPurchasePage(Shop shop, String title, List currencyHandlers, HashMap unlockedMap, HashMap lockedMap) - { - super(shop, title, currencyHandlers, unlockedMap, lockedMap); - } - - @Override - protected void SetResetButtonLore(int balance, String[] lore) - { - if (CurrencyHandlers.size() > 1) - { - lore[1] = "§rClick to change to " + GetNextCurrencyHandler().GetName(); - } - - if (balance <= 0) - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName() + "(None)", lore, 0, false, true)); - } - else - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true)); - } - } - - @Override - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable) - { - player.Class().GetInventory().clear(); - - for (ICurrencyHandler allCurrencyHandler : CurrencyHandlers) - { - allCurrencyHandler.ResetBalance(player); - } - - player.Class().SetGameClass(null); - - player.Class().ClearDefaults(); - - if (player.Donor().Owns(sellable.GetSalesPackageId()) || sellable.IsFree()) - { - DefaultClassPackage wrappedPackage = (DefaultClassPackage)((DonationPackage)sellable).GetWrappedPackage(); - Shop.SetClassForPlayer(player, wrappedPackage.GetGameClass()); - - SetNextPage(NextPage); - Shop.TurnToNextPage(player); - } - else - { - new ConfirmationPage(Shop, this, sellable, CurrentCurrencyHandler, player).OpenForPlayer(player); - } - } - - @Override - public void UpdateBalance(CoreClient player) - { - int balance = CurrentCurrencyHandler.GetBalance(player); - - String[] lore = new String[5]; - lore[0] = "§rBalance: " + ChatColor.YELLOW + balance + " " + CurrentCurrencyHandler.GetName(); - - SetResetButtonLore(balance, lore); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ConfirmationPage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ConfirmationPage.java deleted file mode 100644 index cc5334937..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ConfirmationPage.java +++ /dev/null @@ -1,387 +0,0 @@ -package me.chiss.Core.Shop.page.game.purchase; - -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.CreditHandler; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.events.PurchasePackageEvent; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.server.util.TransactionResponse; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.core.common.util.Callback; -import mineplex.minecraft.shop.item.ISalesPackage; -import mineplex.minecraft.shop.item.ItemPackage; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventoryCustom; -import org.bukkit.inventory.ItemStack; - -public class ConfirmationPage extends CraftInventoryCustom implements IShopPage, Runnable -{ - private Shop _shop; - private Runnable _runnable; - private IShopPage _returnCategory; - private ISalesPackage _salesItem; - private ICurrencyHandler _currencyHandler; - private CoreClient _player; - private String _title; - private int _okSquareSlotStart; - private boolean _processing; - private boolean _receivedResult; - private int _progressCount; - private ShopItem _progressItem; - private int _taskId; - - public ConfirmationPage(Shop shop, IShopPage returnCategory, ISalesPackage salesItem, ICurrencyHandler currencyHandler, CoreClient player) - { - this(shop, null, returnCategory, salesItem, currencyHandler, player); - } - - public ConfirmationPage(Shop shop, Runnable runnable, IShopPage returnCategory, ISalesPackage salesItem, ICurrencyHandler currencyHandler, CoreClient player) - { - super(null, 54, " Confirmation"); - - _shop = shop; - _runnable = runnable; - _title = " Confirmation"; - _returnCategory = returnCategory; - _salesItem = salesItem; - _currencyHandler = currencyHandler; - _player = player; - _progressItem = new ShopItem(Material.WOOL, (byte)11, ChatColor.BLUE + "Processing", null, 1, false, true); - _okSquareSlotStart = 27; - - if (_shop.CanPlayerAttemptPurchase(player)) - { - BuildPage(); - } - else - { - BuildErrorPage("You have attempted too many invalid transactions. Please wait 10 seconds before retrying."); - _taskId = _shop.GetPlugin().getServer().getScheduler().scheduleSyncRepeatingTask(_shop.GetPlugin(), this, 2L, 2L); - } - } - - private void BuildPage() - { - _salesItem.AddToCategory(this.getInventory(), 22); - - this.getInventory().setItem(4, new ShopItem(_currencyHandler.GetItemDisplayType(), (byte)0, _currencyHandler.GetName(), new String[] { C.cGray + _currencyHandler.GetCost(_salesItem) + " " + _currencyHandler.GetName() + " will be deducted from your account balance." }, 1, false, true).getHandle()); - - BuildSquareAt(_okSquareSlotStart, new ShopItem(Material.WOOL, (byte)5, ChatColor.GREEN + "OK", null, 1, false, true)); - BuildSquareAt(_okSquareSlotStart + 6, new ShopItem(Material.WOOL, (byte)14, ChatColor.RED + "CANCEL", null, 1, false, true)); - } - - private void BuildSquareAt(int slot, ShopItem item) - { - BuildSquareAt(slot, item, new ItemPackage(item, 0, 0, 0, 0, false, -1)); - } - - private void BuildSquareAt(int slot, ShopItem item, ISalesPackage middleItem) - { - this.setItem(slot, item); - this.setItem(slot + 1, item); - this.setItem(slot + 2, item); - - slot += 9; - - this.setItem(slot, item); - List slotsAddedTo = middleItem.AddToCategory(this.getInventory(), slot + 1); - this.setItem(slot + 2, item); - - boolean crossedItem = true; - - while (crossedItem) - { - crossedItem = false; - - slot += 9; - - if (!slotsAddedTo.contains(slot)) - this.setItem(slot, item); - else - crossedItem = true; - - if (!slotsAddedTo.contains(slot + 1)) - this.setItem(slot + 1, item); - else - crossedItem = true; - - if (!slotsAddedTo.contains(slot + 2)) - this.setItem(slot + 2, item); - else - crossedItem = true; - } - } - - @Override - public ISalesPackage GetItem(int itemSlot) - { - return null; - } - - @Override - public void PrepSlotsForPlayer(CoreClient clicker) - { - - } - - @Override - public void OpenForPlayer(CoreClient clicker) - { - _shop.SetPage(clicker, this); - - clicker.Class().OpenInventory(this); - } - - @Override - public void CloseForPlayer(CoreClient clicker) - { - clicker.Class().CloseInventory(); - _processing = false; - } - - @Override - public String GetTitle() - { - return _title; - } - - @Override - public void Reset(CoreClient player) - { - } - - @Override - public boolean HasNextPage() - { - return false; - } - - @Override - public boolean HasPreviousPage() - { - return false; - } - - @Override - public void SetPreviousPage(IShopPage previousPage) - { - - } - - @Override - public void SetNextPage(IShopPage nextPage) - { - - } - - @Override - public IShopPage GetPreviousPage() - { - return null; - } - - @Override - public IShopPage GetNextPage() - { - return null; - } - - @Override - public void AddItem(ISalesPackage iSalesPackage, int slot) - { - } - - @Override - public void SetPageNumber(int pageNumber) - { - } - - @Override - public int GetPageNumber() - { - return 0; - } - - @Override - public void UpdateBalance(CoreClient player) - { - - } - - @Override - public void PlayerWants(CoreClient donor, int slot) - { - ItemStack item = getItem(slot); - if (item != null) - { - if (item.getType() == Material.WOOL) - { - if (_receivedResult) - { - _returnCategory.OpenForPlayer(donor); - _shop.SetPage(donor, _returnCategory); - _shop.GetPlugin().getServer().getScheduler().cancelTask(_taskId); - } - else - { - if (item.getData().getData() == 5) - { - ProcessTransaction(); - } - else if (item.getData().getData() == 14) - { - _returnCategory.OpenForPlayer(donor); - _shop.SetPage(donor, _returnCategory); - _shop.GetPlugin().getServer().getScheduler().cancelTask(_taskId); - } - } - } - } - } - - @Override - public void PlayerReturning(CoreClient player, int slot) - { - - } - - @Override - public void ResetVisuals() - { - - } - - @Override - public void ChangeCurrency(CoreClient player) - { - - } - - @Override - public void UpdateSlot(CoreClient player, int slot) - { - - } - - private void ProcessTransaction() - { - for (int i=_okSquareSlotStart; i < 54; i++) - { - clear(i); - } - - _processing = true; - - PurchasePackageEvent event = new PurchasePackageEvent(_player.GetPlayerName(), _salesItem.GetName()); - - _shop.GetPlugin().getServer().getPluginManager().callEvent(event); - - if (!event.isCancelled()) - { - _shop.GetRepository().PurchaseSalesPackage(new Callback () - { - public void run(TransactionResponse response) - { - ShowResultsPage(response); - } - }, _player.GetPlayerName(), _currencyHandler instanceof CreditHandler, _salesItem.GetSalesPackageId()); - - _taskId = _shop.GetPlugin().getServer().getScheduler().scheduleSyncRepeatingTask(_shop.GetPlugin(), this, 2L, 2L); - } - else - { - BuildErrorPage(event.GetReason()); - _shop.AddPlayerProcessError(_player); - } - } - - private void ShowResultsPage(TransactionResponse response) - { - _processing = false; - _receivedResult = true; - - switch (response) - { - case Failed: - BuildErrorPage("There was an error processing your request."); - _shop.AddPlayerProcessError(_player); - break; - case InsufficientFunds: - BuildErrorPage("Your account has insufficient funds."); - _shop.AddPlayerProcessError(_player); - break; - case Success: - _salesItem.PurchaseBy(_player); - _currencyHandler.Deduct(_player, _salesItem); - - BuildSuccessPage("Your purchase was successful."); - - if (_runnable != null) - _runnable.run(); - - break; - } - - _progressCount = 0; - } - - private void BuildErrorPage(String message) - { - ShopItem item = new ShopItem(Material.WOOL, (byte)14, ChatColor.RED + message, null, 1, false, true); - for (int i = 0; i < this.getSize(); i++) - { - this.setItem(i, item); - } - - _player.GetPlayer().playSound(_player.GetPlayer().getLocation(), Sound.BLAZE_DEATH, 1, .1f); - } - - private void BuildSuccessPage(String message) - { - ShopItem item = new ShopItem(Material.WOOL, (byte)5, ChatColor.GREEN + message, null, 1, false, true); - for (int i = 0; i < this.getSize(); i++) - { - this.setItem(i, item); - } - - _player.GetPlayer().playSound(_player.GetPlayer().getLocation(), Sound.NOTE_PLING, 1, .9f); - } - - @Override - public void run() - { - if (_processing) - { - if (_progressCount == 9) - { - for (int i=45; i < 54; i++) - { - clear(i); - } - - _progressCount = 0; - } - - setItem(45 + _progressCount, _progressItem); - } - else - { - if (_progressCount >= 20) - { - _shop.GetPlugin().getServer().getScheduler().cancelTask(_taskId); - - _shop.SetPage(_player, _returnCategory); - _returnCategory.OpenForPlayer(_player); - } - } - - _progressCount++; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ItemPurchasePage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ItemPurchasePage.java deleted file mode 100644 index e45a540f7..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/ItemPurchasePage.java +++ /dev/null @@ -1,51 +0,0 @@ -package me.chiss.Core.Shop.page.game.purchase; - -import java.util.HashMap; -import java.util.List; - -import org.bukkit.Sound; - -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.game.ItemPage; -import me.chiss.Core.Shop.salespackage.ShopItem; - -public class ItemPurchasePage extends ItemPage -{ - public ItemPurchasePage(Shop shop, String title, List currencyHandlers, HashMap unlockedMap, HashMap lockedMap) - { - super(shop, title, currencyHandlers, unlockedMap, lockedMap); - } - - @Override - protected void SetResetButtonLore(int balance, String[] lore) - { - if (CurrencyHandlers.size() > 1) - { - lore[1] = "§rClick to change to " + GetNextCurrencyHandler().GetName(); - } - - if (balance <= 0) - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName() + "(None)", lore, 0, false, true)); - } - else - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true)); - } - } - - @Override - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable) - { - if (!player.Donor().Owns(sellable.GetSalesPackageId()) && !sellable.IsFree() && !player.Rank().Has(Rank.EMERALD, false)) - new ConfirmationPage(Shop, this, sellable, CurrentCurrencyHandler, player).OpenForPlayer(player); - else - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/SkillsPurchasePage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/SkillsPurchasePage.java deleted file mode 100644 index af82eb4e0..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/SkillsPurchasePage.java +++ /dev/null @@ -1,109 +0,0 @@ -package me.chiss.Core.Shop.page.game.purchase; - -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -import org.bukkit.Sound; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.game.SkillsPage; -import me.chiss.Core.Shop.salespackage.DonationPackage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Shop.salespackage.SkillPackage; - -public class SkillsPurchasePage extends SkillsPage -{ - public SkillsPurchasePage(Shop shop, String title, List currencyHandlers, - HashMap>> unlockedClassMap, HashMap> unlockedGlobalMap, - HashMap>> lockedClassMap, HashMap> lockedGlobalMap) - { - super(shop, title, currencyHandlers, unlockedClassMap, unlockedGlobalMap, lockedClassMap, lockedGlobalMap); - } - - @Override - protected void SetResetButtonLore(int balance, String[] lore) - { - if (CurrencyHandlers.size() > 1) - { - lore[1] = "§rClick to change to " + GetNextCurrencyHandler().GetName(); - } - - if (balance <= 0) - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName() + "(None)", lore, 0, false, true)); - } - else - { - ShopItem currencyItem = new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true); - - /* Max is still 64 - if (balance <= 128) - currencyItem.setAmount(balance); - */ - - setItem(4, currencyItem); - } - } - - @Override - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable, int slot) - { - if (sellable instanceof DonationPackage) - { - SkillPackage skillSellable = GetSkillPackage(sellable); - - if (player.Rank().Has(Rank.DIAMOND, false)) - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - return; - } - - if (!skillSellable.IsActive() || skillSellable.GetLevel() < skillSellable.GetSkill().GetMaxLevel()) - { - int index = skillSellable.IsActive() ? skillSellable.GetLevel() + 1 : skillSellable.GetLevel(); - - if (slot >= 54) - { - sellable = LockedGlobalMap.get(slot - 45).get(index); - } - else - { - sellable = LockedClassMap.get(CurrentClass).get(slot).get(index); - } - - new ConfirmationPage(Shop, this, sellable, CurrentCurrencyHandler, player).OpenForPlayer(player); - } - } - } - - @Override - protected int GetIndexForSkill(CoreClient player, Entry> entry, SkillPackage skillPackage) - { - int index = 0; - - if (player.Donor().Owns(entry.getValue().get(index).GetSalesPackageId()) || entry.getValue().get(index).IsFree() || player.Rank().Has(Rank.DIAMOND, false)) - { - for (int i = 1; i <= skillPackage.GetSkill().GetMaxLevel(); i++) - { - skillPackage = GetSkillPackage(entry.getValue().get(i)); - - if (!player.Donor().Owns(skillPackage.GetSalesPackageId()) && !skillPackage.IsFree() && !player.Rank().Has(Rank.DIAMOND, false)) - break; - - index = i; - } - } - else - { - index = player.Class().GetSkillLevel(skillPackage.GetSkill()); - } - - return index; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/WeaponPurchasePage.java b/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/WeaponPurchasePage.java deleted file mode 100644 index 11a5d5fe2..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/page/game/purchase/WeaponPurchasePage.java +++ /dev/null @@ -1,52 +0,0 @@ -package me.chiss.Core.Shop.page.game.purchase; - -import java.util.HashMap; -import java.util.List; - -import org.bukkit.Sound; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.core.account.CoreClient; -import mineplex.core.common.Rank; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.game.WeaponPage; -import me.chiss.Core.Shop.salespackage.ShopItem; - -public class WeaponPurchasePage extends WeaponPage -{ - public WeaponPurchasePage(Shop shop, String title, List currencyHandlers, HashMap> unlockedClassMap, HashMap> lockedClassMap) - { - super(shop, title, currencyHandlers, unlockedClassMap, lockedClassMap); - } - - @Override - protected void SetResetButtonLore(int balance, String[] lore) - { - if (CurrencyHandlers.size() > 1) - { - lore[1] = "§rClick to change to " + GetNextCurrencyHandler().GetName(); - } - - if (balance <= 0) - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName() + "(None)", lore, 0, false, true)); - } - else - { - setItem(4, new ShopItem(CurrentCurrencyHandler.GetItemDisplayType(), CurrentCurrencyHandler.GetName(), lore, 0, false, true)); - } - } - - @Override - protected void PurchaseSalesPackage(CoreClient player, ISalesPackage sellable) - { - if (!player.Donor().Owns(sellable.GetSalesPackageId()) && !sellable.IsFree() && !player.Rank().Has(Rank.EMERALD, false)) - new ConfirmationPage(Shop, this, sellable, CurrentCurrencyHandler, player).OpenForPlayer(player); - else - { - player.GetPlayer().playSound(player.GetPlayer().getLocation(), Sound.ITEM_BREAK, 1f, .6f); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/IPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/IPageBuilder.java deleted file mode 100644 index b85dbf935..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/IPageBuilder.java +++ /dev/null @@ -1,9 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder; - -import me.chiss.Core.Shop.page.IShopPage; -import mineplex.core.account.CoreClient; - -public interface IPageBuilder -{ - IShopPage BuildForPlayer(CoreClient player); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/PageBuilderBase.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/PageBuilderBase.java deleted file mode 100644 index 38c754a2a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/PageBuilderBase.java +++ /dev/null @@ -1,54 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.IItemWrapper; -import mineplex.minecraft.shop.item.ISalesPackage; - -public abstract class PageBuilderBase implements IPageBuilder -{ - protected Shop Shop; - protected String Title; - protected IItemWrapper ItemWrapper; - protected HashMap LockedSalesPackageMap; - protected HashMap UnlockedSalesPackageMap; - protected List CurrencyHandlers; - - public PageBuilderBase(Shop shop, String title, IItemWrapper itemWrapper, ICurrencyHandler...currencyHandlers) - { - Shop = shop; - Title = title; - ItemWrapper = itemWrapper; - CurrencyHandlers = Arrays.asList(currencyHandlers); - - LockedSalesPackageMap = new HashMap(); - UnlockedSalesPackageMap = new HashMap(); - } - - protected void AddItem(HashMap map, ISalesPackage salesItem, int slot) - { - map.put(slot, ItemWrapper.WrapPackage(salesItem)); - } - - protected void AddItem(HashMap map, ISalesPackage salesItem) - { - map.put(GetNextAvailableSlotNumber(map), ItemWrapper.WrapPackage(salesItem)); - } - - protected int GetNextAvailableSlotNumber(HashMap map) - { - int slot = 45; - - while(map.get(slot) != null) - { - slot++; - slot += slot % 9 == 0 ? -18 : 0; - } - - return slot; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/CustomBuildPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/CustomBuildPageBuilder.java deleted file mode 100644 index 245891aae..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/CustomBuildPageBuilder.java +++ /dev/null @@ -1,89 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import java.util.HashMap; -import java.util.List; - -import org.bukkit.Material; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Class.IPvpClass; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.CustomBuildPage; -import me.chiss.Core.Shop.pagebuilder.PageBuilderBase; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.NoWrapper; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; -import mineplex.minecraft.shop.item.ItemPackage; - -public class CustomBuildPageBuilder extends PageBuilderBase -{ - protected HashMap> ClassLockedSalesPackageMap; - protected HashMap> ClassUnlockedSalesPackageMap; - - protected ItemPackage _unlockedEditSavedBuild; - protected ItemPackage _lockedEditSavedBuild; - - protected ItemPackage _unlockedEditDontSaveBuild; - protected ItemPackage _lockedEditDontSaveBuild; - - protected ItemPackage _unlockedDeleteBuild; - protected ItemPackage _lockedDeleteBuild; - - protected List CurrencyHandlers; - - public CustomBuildPageBuilder(Shop shop, String title, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, new NoWrapper(), currencyHandlers); - - ClassLockedSalesPackageMap = new HashMap>(); - ClassUnlockedSalesPackageMap = new HashMap>(); - - _unlockedEditSavedBuild = new ItemPackage(new ShopItem(Material.ANVIL, "Edit & Save Build", new String[] { }, 1, false, true), 0, 0, 0, 0, true, -1); - _lockedEditSavedBuild = new ItemPackage(new ShopItem(Material.ANVIL, "Edit & Save Build", new String[] { }, 1, true, true), 0, 0, 0, 0, true, -1); - - _unlockedEditDontSaveBuild = new ItemPackage(new ShopItem(Material.WORKBENCH, "Edit & Don't Save Build", new String[] { }, 1, false, true), 0, 0, 0, 0, true, -1); - _lockedEditDontSaveBuild = new ItemPackage(new ShopItem(Material.WORKBENCH, "Edit & Don't Save Build", new String[] { }, 1, true, true), 0, 0, 0, 0, true, -1); - - _unlockedDeleteBuild = new ItemPackage(new ShopItem(Material.FIRE, "Delete Build", new String[] { "§rIt will never come back..."}, 1, false, true), 0, 0, 0, 0, true, -1); - _lockedDeleteBuild = new ItemPackage(new ShopItem(Material.FIRE, "Delete Build", new String[] { "§rIt will never come back..." }, 1, true, true), 0, 0, 0, 0, true, -1); - - for (IPvpClass gameClass : gameClassFactory.GetGameClasses()) - { - HashMap lockedClassMap = new HashMap(); - HashMap unlockedClassMap = new HashMap(); - - BuildCustomBuildPage(unlockedClassMap, lockedClassMap); - - ClassLockedSalesPackageMap.put(gameClass, lockedClassMap); - ClassUnlockedSalesPackageMap.put(gameClass, unlockedClassMap); - } - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new CustomBuildPage(Shop, Title, CurrencyHandlers, ClassUnlockedSalesPackageMap, ClassLockedSalesPackageMap); - } - - protected void BuildCustomBuildPage(HashMap unlockedClassMap, HashMap lockedClassMap) - { - int slot = 18; - - for (int i=0; i < 5; i++) - { - lockedClassMap.put(slot, _lockedEditSavedBuild); - unlockedClassMap.put(slot, _unlockedEditSavedBuild); - - lockedClassMap.put(slot + 9, _lockedEditDontSaveBuild); - unlockedClassMap.put(slot + 9, _unlockedEditDontSaveBuild); - - lockedClassMap.put(slot + 27, _lockedDeleteBuild); - unlockedClassMap.put(slot + 27, _unlockedDeleteBuild); - - slot += 2; - } - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/ItemPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/ItemPageBuilder.java deleted file mode 100644 index 268b20cd1..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/ItemPageBuilder.java +++ /dev/null @@ -1,121 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.ItemPage; -import me.chiss.Core.Shop.pagebuilder.PageBuilderBase; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.IItemWrapper; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.NoWrapper; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.game.core.classcombat.item.IItem; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; -import mineplex.minecraft.shop.item.ItemPackage; - -public class ItemPageBuilder extends PageBuilderBase -{ - private IItemFactory _itemFactory; - - public ItemPageBuilder(Shop shop, String title, IItemWrapper itemWrapper, IItemFactory itemFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, itemWrapper, currencyHandlers); - - _itemFactory = itemFactory; - - for (IItem item : _itemFactory.GetItems()) - { - int slot = 9; - - switch (item.GetType()) - { - case POTATO_ITEM: - slot = 9; - break; - case APPLE: - slot = 10; - break; - case CARROT_ITEM: - slot = 11; - break; - case MUSHROOM_SOUP: - slot = 12; - break; - case COMMAND: - slot = 18; - break; - case NOTE_BLOCK: - slot = 19; - break; - case REDSTONE_LAMP_ON: - slot = 20; - break; - case POTION: - slot = 27; - break; - case SLIME_BALL: - slot = 28; - break; - case ENDER_PEARL: - slot = 29; - break; - case STONE_AXE: - slot = 30; - break; - case NETHER_STAR: - slot = 31; - break; - case MELON_SEEDS: - slot = 32; - break; - case SHEARS: - slot = 36; - break; - case ARROW: - slot = 45; - break; - case WEB: - slot = 46; - break; - default: - break; - } - - AddItemPackage(item, slot); - } - } - - public ItemPageBuilder(Shop shop, String title, IItemFactory itemFactory, ICurrencyHandler...currencyHandlers) - { - this(shop, title, new NoWrapper(), itemFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new ItemPage(Shop, Title, CurrencyHandlers, UnlockedSalesPackageMap, LockedSalesPackageMap); - } - - protected void AddItemPackage(IItem item, int slot) - { - List itemLore = new ArrayList(); - - itemLore.add(C.cYellow + item.GetTokenCost() + " Tokens"); - itemLore.add(C.cBlack); - - itemLore.addAll(Arrays.asList(item.GetDesc())); - - for (int i = 2; i < itemLore.size(); i++) - { - itemLore.set(i, C.cGray + itemLore.get(i)); - } - - AddItem(LockedSalesPackageMap, new ItemPackage(new ShopItem(item.GetType(), item.GetName(), itemLore.toArray(new String[itemLore.size()]), item.GetAmount(), true), item.GetCreditCost(), item.GetPointCost(), item.GetTokenCost(), item.GetEconomyCost(), item.IsFree(), item.GetSalesPackageId()), slot); - AddItem(UnlockedSalesPackageMap, new ItemPackage(new ShopItem(item.GetType(), item.GetName(), itemLore.toArray(new String[itemLore.size()]), item.GetAmount(), false), item.GetCreditCost(), item.GetPointCost(), item.GetTokenCost(), item.GetEconomyCost(), item.IsFree(), item.GetSalesPackageId()), slot); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpCustomBuildPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpCustomBuildPageBuilder.java deleted file mode 100644 index b791ad53c..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpCustomBuildPageBuilder.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.PvpCustomBuildPage; -import mineplex.core.account.CoreClient; - -public class PvpCustomBuildPageBuilder extends CustomBuildPageBuilder -{ - public PvpCustomBuildPageBuilder(Shop shop, String title, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, gameClassFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new PvpCustomBuildPage(Shop, Title, CurrencyHandlers, ClassUnlockedSalesPackageMap, ClassLockedSalesPackageMap); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpShopPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpShopPageBuilder.java deleted file mode 100644 index bbdf2fc52..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/PvpShopPageBuilder.java +++ /dev/null @@ -1,63 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import me.chiss.Core.PvpShop.IPvpShopFactory; -import me.chiss.Core.PvpShop.IShopItem; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.ShopItemPage; -import me.chiss.Core.Shop.pagebuilder.PageBuilderBase; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.IItemWrapper; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.NoWrapper; -import me.chiss.Core.Shop.salespackage.PvpItemPackage; -import me.chiss.Core.Shop.salespackage.PvpShopItem; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; - -public class PvpShopPageBuilder extends PageBuilderBase -{ - private IPvpShopFactory _shopFactory; - - public PvpShopPageBuilder(Shop shop, String title, IItemWrapper itemWrapper, IPvpShopFactory shopFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, itemWrapper, currencyHandlers); - - _shopFactory = shopFactory; - - for (IShopItem item : _shopFactory.GetItems()) - AddItemPackage(item, item.GetSlot()); - } - - public PvpShopPageBuilder(Shop shop, String title, IPvpShopFactory shopFactory, ICurrencyHandler...currencyHandlers) - { - this(shop, title, new NoWrapper(), shopFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new ShopItemPage(Shop, Title, CurrencyHandlers, UnlockedSalesPackageMap, LockedSalesPackageMap); - } - - protected void AddItemPackage(IShopItem item, int slot) - { - List itemLore = new ArrayList(); - - itemLore.add(C.cGreen + item.GetEconomyCost() + " Coins"); - itemLore.add(C.cBlack); - - itemLore.addAll(Arrays.asList(item.GetDesc())); - - for (int i = 2; i < itemLore.size(); i++) - { - itemLore.set(i, C.cGray + itemLore.get(i)); - } - - AddItem(UnlockedSalesPackageMap, new PvpItemPackage(new PvpShopItem(item.GetType(), item.GetData(), item.GetName(), item.GetDeliveryName(), itemLore.toArray(new String[itemLore.size()]), item.GetAmount(), false, true), - item.GetCreditCost(), item.GetPointCost(), item.GetTokenCost(), item.GetEconomyCost(), item.IsFree(), item.GetSalesPackageId()), slot); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/SkillsPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/SkillsPageBuilder.java deleted file mode 100644 index 36420377a..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/SkillsPageBuilder.java +++ /dev/null @@ -1,191 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.SkillsPage; -import me.chiss.Core.Shop.pagebuilder.IPageBuilder; -import me.chiss.Core.Shop.salespackage.ISalesPackage; -import me.chiss.Core.Shop.salespackage.SkillPackage; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.game.core.classcombat.Class.ClassManager; -import mineplex.minecraft.game.core.classcombat.Class.IClassFactory; -import mineplex.minecraft.game.core.classcombat.Class.IPvpClass; -import mineplex.minecraft.game.core.classcombat.Skill.ISkillFactory; -import mineplex.minecraft.game.core.classcombat.Skill.SkillFactory; - -public class SkillsPageBuilder implements IPageBuilder -{ - private SkillFactory _skillFactory; - private ClassManager _gameClassFactory; - - protected Shop Shop; - protected String Title; - - protected HashMap>> ClassLockedSalesPackageMap; - protected HashMap>> ClassUnlockedSalesPackageMap; - - protected HashMap> GlobalLockedSalesPackageMap; - protected HashMap> GlobalUnlockedSalesPackageMap; - - protected List CurrencyHandlers; - - public SkillsPageBuilder(Shop shop, String title, SkillFactory skillFactory, ClassManager gameClassFactory, ICurrencyHandler...currencyHandlers) - { - Shop = shop; - CurrencyHandlers = Arrays.asList(currencyHandlers); - Title = title; - _skillFactory = skillFactory; - _gameClassFactory = gameClassFactory; - - ClassLockedSalesPackageMap = new HashMap>>(); - ClassUnlockedSalesPackageMap = new HashMap>>(); - - GlobalLockedSalesPackageMap = new HashMap>(); - GlobalUnlockedSalesPackageMap = new HashMap>(); - - BuildClassSkills(); - BuildGlobalSkills(); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - IShopPage category = new SkillsPage(Shop, Title, CurrencyHandlers, - ClassUnlockedSalesPackageMap, GlobalUnlockedSalesPackageMap, - ClassLockedSalesPackageMap, GlobalLockedSalesPackageMap); - - return category; - } - - private void BuildClassSkills() - { - int slotNumber = 53; - - for (IPvpClass gameClass : _gameClassFactory.GetGameClasses()) - { - HashMap> lockedClassMap = new HashMap>(); - HashMap> unlockedClassMap = new HashMap>(); - - int swordSlotNumber = 10; - int axeSlotNumber = 19; - int bowSlotNumber = 28; - int passiveASlotNumber = 37; - int passiveBSlotNumber = 46; - - for (ISkill skill : _skillFactory.GetSkillsFor(gameClass)) - { - switch (skill.GetSkillType()) - { - case Sword: - slotNumber = swordSlotNumber; - swordSlotNumber++; - break; - case Axe: - slotNumber = axeSlotNumber; - axeSlotNumber++; - break; - case Bow: - slotNumber = bowSlotNumber; - bowSlotNumber++; - break; - case PassiveA: - slotNumber = passiveASlotNumber; - passiveASlotNumber++; - break; - case PassiveB: - slotNumber = passiveBSlotNumber; - passiveBSlotNumber++; - break; - - default: - continue; - } - - List unlockedskillPackages = new ArrayList(skill.GetMaxLevel()); - List lockedSkillPackages = new ArrayList(skill.GetMaxLevel()); - - BuildSkillPackages(skill, unlockedskillPackages, lockedSkillPackages); - - lockedClassMap.put(slotNumber, lockedSkillPackages); - unlockedClassMap.put(slotNumber, unlockedskillPackages); - } - - ClassLockedSalesPackageMap.put(gameClass, lockedClassMap); - ClassUnlockedSalesPackageMap.put(gameClass, unlockedClassMap); - } - } - - private void BuildGlobalSkills() - { - int slotNumber = 53; - - int passiveCSlotNumber = 10; - int passiveDSlotNumber = 19; - int passiveESlotNumber = 28; - - for (ISkill skill : _skillFactory.GetGlobalSkills()) - { - switch (skill.GetSkillType()) - { - case PassiveC: - slotNumber = passiveCSlotNumber; - passiveCSlotNumber++; - break; - case PassiveD: - slotNumber = passiveDSlotNumber; - passiveDSlotNumber++; - break; - case PassiveE: - slotNumber = passiveESlotNumber; - passiveESlotNumber++; - break; - - default: - continue; - } - - List unlockedskillPackages = new ArrayList(skill.GetMaxLevel()); - List lockedSkillPackages = new ArrayList(skill.GetMaxLevel()); - - BuildSkillPackages(skill, unlockedskillPackages, lockedSkillPackages); - - GlobalLockedSalesPackageMap.put(slotNumber, lockedSkillPackages); - GlobalUnlockedSalesPackageMap.put(slotNumber, unlockedskillPackages); - } - } - - protected void BuildSkillPackages(ISkill skill, List unlockedSkillPackages, List lockedSkillPackages) - { - List skillLore = new ArrayList(); - - skillLore.add(C.cYellow + skill.GetTokenCost() + " Tokens" + C.cWhite + " per Level"); - skillLore.add(C.cWhite + "Equipped " + C.cYellow + "0/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - // skillLore.add(C.cWhite + "You own " + C.cYellow + levelOwned + "/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - skillLore.add(C.cBlack); - - skillLore.addAll(Arrays.asList(skill.GetDesc())); - - for (int i = 2; i < skillLore.size(); i++) - { - skillLore.set(i, C.cGray + skillLore.get(i)); - } - - lockedSkillPackages.add(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), false, 1, true)); - unlockedSkillPackages.add(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), false, 1, false)); - - for (int i = 1; i <= skill.GetMaxLevel(); i++) - { - skillLore.set(1, C.cWhite + "Equipped " + C.cYellow + i + "/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - // skillLore.add(C.cWhite + "You own " + C.cYellow + levelOwned + "/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - lockedSkillPackages.add(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), true, i, true)); - unlockedSkillPackages.add(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), true, i, false)); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/WeaponPageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/WeaponPageBuilder.java deleted file mode 100644 index ba30b417e..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/WeaponPageBuilder.java +++ /dev/null @@ -1,120 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Class.IPvpClass; -import mineplex.minecraft.game.core.classcombat.Class.IPvpClass.ClassType; -import mineplex.minecraft.shop.item.ISalesPackage; -import mineplex.minecraft.shop.item.ItemPackage; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.WeaponPage; -import me.chiss.Core.Shop.pagebuilder.IPageBuilder; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Weapon.IWeapon; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; - -public class WeaponPageBuilder implements IPageBuilder -{ - protected Shop Shop; - protected String Title; - - private IWeaponFactory _weaponFactory; - - protected HashMap> ClassLockedSalesPackageMap; - protected HashMap> ClassUnlockedSalesPackageMap; - - protected List CurrencyHandlers; - - public WeaponPageBuilder(Shop shop, String title, IWeaponFactory weaponFactory, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - Shop = shop; - CurrencyHandlers = Arrays.asList(currencyHandlers); - Title = title; - _weaponFactory = weaponFactory; - - ClassLockedSalesPackageMap = new HashMap>(); - ClassUnlockedSalesPackageMap = new HashMap>(); - - for (IPvpClass gameClass : gameClassFactory.GetGameClasses()) - { - HashMap lockedClassMap = new HashMap(); - HashMap unlockedClassMap = new HashMap(); - - for (IWeapon weapon : _weaponFactory.GetWeapons()) - { - int slot = 9; - - switch (weapon.GetType()) - { - case IRON_SWORD: - slot = 9; - break; - case DIAMOND_SWORD: - slot = 10; - break; - case GOLD_SWORD: - slot = 11; - break; - case IRON_AXE: - slot = 18; - break; - case DIAMOND_AXE: - slot = 19; - break; - case GOLD_AXE: - slot = 20; - break; - case BOW: - if (gameClass.GetType() != ClassType.Assassin && gameClass.GetType() != ClassType.Ranger) - continue; - - slot = 27; - if (weapon.GetName().contains("Booster")) - slot ++; - else if (weapon.GetName().contains("Power")) - slot += 2; - break; - default: - break; - } - - BuildWeaponPackages(weapon, unlockedClassMap, lockedClassMap, slot); - } - - ClassLockedSalesPackageMap.put(gameClass, lockedClassMap); - ClassUnlockedSalesPackageMap.put(gameClass, unlockedClassMap); - } - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new WeaponPage(Shop, Title, CurrencyHandlers, ClassUnlockedSalesPackageMap, ClassLockedSalesPackageMap); - } - - protected void BuildWeaponPackages(IWeapon weapon, HashMap unlockedClassMap, HashMap lockedClassMap, int slot) - { - List itemLore = new ArrayList(); - - itemLore.add(C.cYellow + weapon.GetTokenCost() + " Tokens"); - itemLore.add(C.cBlack); - - itemLore.addAll(Arrays.asList(weapon.GetDesc())); - - for (int i = 2; i < itemLore.size(); i++) - { - itemLore.set(i, C.cGray + itemLore.get(i)); - } - - lockedClassMap.put(slot, new ItemPackage(new ShopItem(weapon.GetType(), weapon.GetName(), itemLore.toArray(new String[itemLore.size()]), weapon.GetAmount(), true), weapon.GetCreditCost(), weapon.GetPointCost(), weapon.GetTokenCost(), weapon.GetEconomyCost(), weapon.IsFree(), weapon.GetSalesPackageId())); - unlockedClassMap.put(slot, new ItemPackage(new ShopItem(weapon.GetType(), weapon.GetName(), itemLore.toArray(new String[itemLore.size()]), weapon.GetAmount(), false), weapon.GetCreditCost(), weapon.GetPointCost(), weapon.GetTokenCost(), weapon.GetEconomyCost(), weapon.IsFree(), weapon.GetSalesPackageId())); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ArmorPurchasePageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ArmorPurchasePageBuilder.java deleted file mode 100644 index 4fa2af743..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ArmorPurchasePageBuilder.java +++ /dev/null @@ -1,57 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game.purchase; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import me.chiss.Core.Class.IPvpClass; -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.purchase.ArmorPurchasePage; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.DonationWrapper; -import me.chiss.Core.Shop.salespackage.DefaultClassPackage; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.game.classcombat.shop.page.ArmorPageBuilder; - -public class ArmorPurchasePageBuilder extends ArmorPageBuilder -{ - public ArmorPurchasePageBuilder(Shop shop, String title, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, new DonationWrapper(), gameClassFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new ArmorPurchasePage(Shop, Title, CurrencyHandlers, UnlockedSalesPackageMap, LockedSalesPackageMap); - } - - protected void PrepareCachedMaps(IPvpClass gameClass, int slot) - { - List lockedClassDesc = new ArrayList(); - List unlockedClassDesc = new ArrayList(); - - lockedClassDesc.add(C.cYellow + gameClass.GetCreditCost() + "c" + C.cWhite + " or " + C.cYellow + gameClass.GetPointCost() + "p "); - unlockedClassDesc.add(C.cBlack); - - lockedClassDesc.addAll(Arrays.asList(gameClass.GetDesc())); - unlockedClassDesc.addAll(Arrays.asList(gameClass.GetDesc())); - - for (int i = 2; i < lockedClassDesc.size(); i++) - { - lockedClassDesc.set(i, C.cGray + lockedClassDesc.get(i)); - } - - for (int i = 1; i < unlockedClassDesc.size(); i++) - { - unlockedClassDesc.set(i, C.cGray + unlockedClassDesc.get(i)); - } - - - AddItem(LockedSalesPackageMap, new DefaultClassPackage(gameClass, lockedClassDesc.toArray(new String[lockedClassDesc.size()]), true, true), slot); - AddItem(UnlockedSalesPackageMap, new DefaultClassPackage(gameClass, unlockedClassDesc.toArray(new String[unlockedClassDesc.size()]), true, false), slot); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ItemPurchasePageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ItemPurchasePageBuilder.java deleted file mode 100644 index f155bfffa..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/ItemPurchasePageBuilder.java +++ /dev/null @@ -1,51 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game.purchase; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.purchase.ItemPurchasePage; -import me.chiss.Core.Shop.pagebuilder.game.ItemPageBuilder; -import me.chiss.Core.Shop.pagebuilder.itemwrapper.DonationWrapper; -import me.chiss.Core.Shop.salespackage.ShopItem; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.game.core.classcombat.item.IItem; -import mineplex.minecraft.game.core.classcombat.item.IItemFactory; -import mineplex.minecraft.shop.item.ItemPackage; - -public class ItemPurchasePageBuilder extends ItemPageBuilder -{ - public ItemPurchasePageBuilder(Shop shop, String title, IItemFactory itemFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, new DonationWrapper(), itemFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new ItemPurchasePage(Shop, Title, CurrencyHandlers, UnlockedSalesPackageMap, LockedSalesPackageMap); - } - - @Override - protected void AddItemPackage(IItem item, int slot) - { - List itemLore = new ArrayList(); - - itemLore.add(C.cYellow + item.GetCreditCost() + "c" + C.cWhite + " or " + C.cYellow + item.GetPointCost() + "p"); - itemLore.add(C.cBlack); - - itemLore.addAll(Arrays.asList(item.GetDesc())); - - for (int i = 2; i < itemLore.size(); i++) - { - itemLore.set(i, C.cGray + itemLore.get(i)); - } - - AddItem(LockedSalesPackageMap, new ItemPackage(new ShopItem(item.GetType(), item.GetName(), itemLore.toArray(new String[itemLore.size()]), item.GetAmount(), true), item.GetCreditCost(), item.GetPointCost(), item.GetTokenCost(), item.GetEconomyCost(), item.IsFree(), item.GetSalesPackageId()), slot); - AddItem(UnlockedSalesPackageMap, new ItemPackage(new ShopItem(item.GetType(), item.GetName(), itemLore.toArray(new String[itemLore.size()]), item.GetAmount(), false), item.GetCreditCost(), item.GetPointCost(), item.GetTokenCost(), item.GetEconomyCost(), item.IsFree(), item.GetSalesPackageId()), slot); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/SkillsPurchasePageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/SkillsPurchasePageBuilder.java deleted file mode 100644 index 25c260633..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/SkillsPurchasePageBuilder.java +++ /dev/null @@ -1,64 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game.purchase; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.purchase.SkillsPurchasePage; -import me.chiss.Core.Shop.pagebuilder.game.SkillsPageBuilder; -import me.chiss.Core.Shop.salespackage.DonationPackage; -import me.chiss.Core.Shop.salespackage.SkillPackage; -import me.chiss.Core.Skill.ISkill; -import me.chiss.Core.Skill.ISkillFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class SkillsPurchasePageBuilder extends SkillsPageBuilder -{ - public SkillsPurchasePageBuilder(Shop shop, String title, ISkillFactory skillFactory, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, skillFactory, gameClassFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - IShopPage category = new SkillsPurchasePage(Shop, Title, CurrencyHandlers, - ClassUnlockedSalesPackageMap, GlobalUnlockedSalesPackageMap, - ClassLockedSalesPackageMap, GlobalLockedSalesPackageMap); - - return category; - } - - @Override - protected void BuildSkillPackages(ISkill skill, List unlockedSkillPackages, List lockedSkillPackages) - { - List skillLore = new ArrayList(); - - skillLore.add(C.cYellow + skill.GetCreditCost() + "c" + C.cWhite + " or " + C.cYellow + skill.GetPointCost() + "p " + C.cWhite + "per Level"); - skillLore.add(C.cWhite + "You own " + C.cYellow + "0/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - skillLore.add(C.cBlack); - - skillLore.addAll(Arrays.asList(skill.GetDesc())); - - for (int i = 2; i < skillLore.size(); i++) - { - skillLore.set(i, C.cGray + skillLore.get(i)); - } - - lockedSkillPackages.add(new DonationPackage(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), false, 1, true))); - unlockedSkillPackages.add(new DonationPackage(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), false, 1, false))); - - for (int i = 1; i <= skill.GetMaxLevel(); i++) - { - skillLore.set(1, C.cWhite + "You own " + C.cYellow + i + "/" + skill.GetMaxLevel() + C.cWhite + " Levels"); - lockedSkillPackages.add(new DonationPackage(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), true, i, false))); - unlockedSkillPackages.add(new DonationPackage(new SkillPackage(skill, skillLore.toArray(new String[skillLore.size()]), true, i, false))); - } - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/WeaponPurchasePageBuilder.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/WeaponPurchasePageBuilder.java deleted file mode 100644 index a51c0d06e..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/game/purchase/WeaponPurchasePageBuilder.java +++ /dev/null @@ -1,54 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.game.purchase; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - -import me.chiss.Core.Class.IClassFactory; -import me.chiss.Core.Shop.Shop; -import me.chiss.Core.Shop.currency.ICurrencyHandler; -import me.chiss.Core.Shop.page.IShopPage; -import me.chiss.Core.Shop.page.game.purchase.WeaponPurchasePage; -import me.chiss.Core.Shop.pagebuilder.game.WeaponPageBuilder; -import me.chiss.Core.Shop.salespackage.DonationPackage; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Weapon.IWeapon; -import me.chiss.Core.Weapon.IWeaponFactory; -import mineplex.core.account.CoreClient; -import mineplex.core.common.util.C; -import mineplex.minecraft.shop.item.ISalesPackage; -import mineplex.minecraft.shop.item.ItemPackage; - -public class WeaponPurchasePageBuilder extends WeaponPageBuilder -{ - public WeaponPurchasePageBuilder(Shop shop, String title, IWeaponFactory weaponFactory, IClassFactory gameClassFactory, ICurrencyHandler...currencyHandlers) - { - super(shop, title, weaponFactory, gameClassFactory, currencyHandlers); - } - - @Override - public IShopPage BuildForPlayer(CoreClient player) - { - return new WeaponPurchasePage(Shop, Title, CurrencyHandlers, ClassUnlockedSalesPackageMap, ClassLockedSalesPackageMap); - } - - @Override - protected void BuildWeaponPackages(IWeapon weapon, HashMap unlockedClassMap, HashMap lockedClassMap, int slot) - { - List itemLore = new ArrayList(); - - itemLore.add(C.cYellow + weapon.GetCreditCost() + "c" + C.cWhite + " or " + C.cYellow + weapon.GetPointCost()+ "p"); - itemLore.add(C.cBlack); - - itemLore.addAll(Arrays.asList(weapon.GetDesc())); - - for (int i = 2; i < itemLore.size(); i++) - { - itemLore.set(i, C.cGray + itemLore.get(i)); - } - - lockedClassMap.put(slot, new DonationPackage(new ItemPackage(new ShopItem(weapon.GetType(), weapon.GetName(), itemLore.toArray(new String[itemLore.size()]), weapon.GetAmount(), true), weapon.GetCreditCost(), weapon.GetPointCost(), weapon.GetTokenCost(), weapon.GetEconomyCost(), weapon.IsFree(), weapon.GetSalesPackageId()))); - unlockedClassMap.put(slot, new DonationPackage(new ItemPackage(new ShopItem(weapon.GetType(), weapon.GetName(), itemLore.toArray(new String[itemLore.size()]), weapon.GetAmount(), false), weapon.GetCreditCost(), weapon.GetPointCost(), weapon.GetTokenCost(), weapon.GetEconomyCost(), weapon.IsFree(), weapon.GetSalesPackageId()))); - } -} \ No newline at end of file diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/DonationWrapper.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/DonationWrapper.java deleted file mode 100644 index eb094cb63..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/DonationWrapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.itemwrapper; - -import me.chiss.Core.Shop.salespackage.DonationPackage; -import mineplex.minecraft.shop.item.ISalesPackage; - -public class DonationWrapper implements IItemWrapper -{ - @Override - public ISalesPackage WrapPackage(ISalesPackage salesPackage) - { - return new DonationPackage(salesPackage); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/IItemWrapper.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/IItemWrapper.java deleted file mode 100644 index 9decdb4ef..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/IItemWrapper.java +++ /dev/null @@ -1,8 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.itemwrapper; - -import mineplex.minecraft.shop.item.ISalesPackage; - -public interface IItemWrapper -{ - ISalesPackage WrapPackage(ISalesPackage salesPackage); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/NoWrapper.java b/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/NoWrapper.java deleted file mode 100644 index c2feb008d..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/pagebuilder/itemwrapper/NoWrapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.chiss.Core.Shop.pagebuilder.itemwrapper; - -import mineplex.minecraft.shop.item.ISalesPackage; - -public class NoWrapper implements IItemWrapper -{ - @Override - public ISalesPackage WrapPackage(ISalesPackage salesPackage) - { - return salesPackage; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ArmorPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ArmorPackage.java deleted file mode 100644 index 69aa2193f..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ArmorPackage.java +++ /dev/null @@ -1,219 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import me.chiss.Core.Class.IPvpClass; -import me.chiss.Core.ClientData.IClientClass; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; -import net.minecraft.server.v1_6_R3.IInventory; - -public class ArmorPackage implements ISalesPackage -{ - private IPvpClass _gameClass; - private HashMap _shopItemMap; - private int _cost = 0; - private boolean _locked; - - public ArmorPackage(IPvpClass gameClass, boolean locked) - { - this(gameClass, 0, locked); - } - - public ArmorPackage(IPvpClass gameClass, int creditCost, boolean locked) - { - _gameClass = gameClass; - _cost = creditCost; - _locked = locked; - _shopItemMap = new HashMap(); - - SetHelmet(new ShopItem(_gameClass.GetHead(), _gameClass.GetName(), 1, _locked)); - SetChestplate(new ShopItem(_gameClass.GetChestplate(), _gameClass.GetName(), 1, _locked)); - SetLeggings(new ShopItem(_gameClass.GetLeggings(), _gameClass.GetName(), 1, _locked)); - SetBoots(new ShopItem(_gameClass.GetBoots(), _gameClass.GetName(), 1, _locked)); - } - - @Override - public String GetName() - { - return _gameClass.GetName(); - } - - @Override - public int GetSalesPackageId() - { - return _gameClass.GetSalesPackageId(); - } - - public void SetHelmet(ShopItem shopItem) - { - _shopItemMap.put(0, shopItem); - } - - public ShopItem GetHelmet() - { - return _shopItemMap.get(0); - } - - public void SetChestplate(ShopItem shopItem) - { - _shopItemMap.put(1, shopItem); - } - - public ShopItem GetChestplate() - { - return _shopItemMap.get(1); - } - - public void SetLeggings(ShopItem shopItem) - { - _shopItemMap.put(2, shopItem); - } - - public ShopItem GetLeggings() - { - return _shopItemMap.get(2); - } - - public void SetBoots(ShopItem shopItem) - { - _shopItemMap.put(3, shopItem); - } - - public ShopItem GetBoots() - { - return _shopItemMap.get(3); - } - - public int GetCost() - { - return _cost; - } - - @Override - public boolean IsFree() - { - return _gameClass.IsFree(); - } - - @Override - public boolean CanFitIn(CoreClient player) - { - return !_locked || _gameClass.IsFree(); - } - - @Override - public void DeliverTo(IClientClass player) - { - ShopItem head = GetHelmet().clone(); - head.SetDeliverySettings(); - - ShopItem chest = GetChestplate().clone(); - chest.SetDeliverySettings(); - - ShopItem legs = GetLeggings().clone(); - legs.SetDeliverySettings(); - - ShopItem boots = GetBoots().clone(); - boots.SetDeliverySettings(); - - player.GetInventory().setHelmet(head.clone()); - player.GetInventory().setChestplate(chest.clone()); - player.GetInventory().setLeggings(legs.clone()); - player.GetInventory().setBoots(boots.clone()); - - player.SetDefaultHead(head); - player.SetDefaultChest(chest); - player.SetDefaultLegs(legs); - player.SetDefaultFeet(boots); - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - - } - - @Override - public void PurchaseBy(CoreClient player) - { - if (player.Class().GetGameClass() == null) - { - player.Class().SetGameClass(_gameClass, false); - DeliverTo(player.Class()); - } - } - - @Override - public int ReturnFrom(CoreClient playerClient) - { - IClientClass player = playerClient.Class(); - - ShopItem head = GetHelmet().clone(); - head.SetDeliverySettings(); - - ShopItem chest = GetChestplate().clone(); - chest.SetDeliverySettings(); - - ShopItem legs = GetLeggings().clone(); - legs.SetDeliverySettings(); - - ShopItem boots = GetBoots().clone(); - boots.SetDeliverySettings(); - - if ((player.GetInventory().getHelmet() != null && player.GetInventory().getHelmet().equals(head)) - && (player.GetInventory().getChestplate() != null && player.GetInventory().getChestplate().equals(chest)) - && (player.GetInventory().getLeggings() != null && player.GetInventory().getLeggings().equals(legs)) - && (player.GetInventory().getBoots() != null && player.GetInventory().getBoots().equals(boots))) - { - - player.GetInventory().setArmorContents(new ItemStack[4]); - player.AddDefaultArmor(player.GetInventory().getArmorContents()); - player.SetGameClass(null); - - return 1; - } - - return 0; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - List slotList = new ArrayList(); - - slotList.add(slot); - inventory.setItem(slot, new ShopItem(Material.ANVIL, _gameClass.GetName() + " Custom Build", null, 0, _locked, true).getHandle()); - - return slotList; - } - - @Override - public int GetTokenCost() - { - return 0; - } - - @Override - public int GetCreditCost() - { - return _gameClass.GetCreditCost(); - } - - @Override - public int GetPointCost() - { - return _gameClass.GetPointCost(); - } - - @Override - public int GetEconomyCost() - { - return 0; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DefaultClassPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DefaultClassPackage.java deleted file mode 100644 index 295d04d87..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DefaultClassPackage.java +++ /dev/null @@ -1,293 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import me.chiss.Core.Class.IPvpClass; -import mineplex.minecraft.game.core.classcombat.Class.IPvpClass.ClassType; -import mineplex.minecraft.shop.item.ISalesPackage; -import me.chiss.Core.ClientData.IClientClass; -import mineplex.core.account.CoreClient; -import net.minecraft.server.v1_6_R3.IInventory; - -public class DefaultClassPackage implements ISalesPackage -{ - private IPvpClass _gameClass; - private HashMap _shopItemMap; - private int _itemCost = 120; - private int _skillCost = 120; - private boolean _locked; - - private HashMap _defaultItems; - private List _defaultSkills; - - public DefaultClassPackage(IPvpClass gameClass, String[] desc, boolean donation, boolean locked) - { - _gameClass = gameClass; - _locked = locked; - _shopItemMap = new HashMap(); - _defaultItems = new HashMap(); - _defaultSkills = new ArrayList(); - - AddDefaultItem(new ShopItem(Material.IRON_SWORD, "Standard Sword", 1, false), 0); - AddDefaultItem(new ShopItem(Material.IRON_AXE, "Standard Axe", 1, false), 1); - - if (_gameClass.GetType() == ClassType.Knight) - { - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 2); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 3); - } - else if (_gameClass.GetType() == ClassType.Ranger) - { - AddDefaultItem(new ShopItem(Material.BOW, "Standard Bow", 1, false), 2); - AddDefaultItem(new ShopItem(Material.ARROW, "Arrow", 30, false), 3); - } - else if (_gameClass.GetType() == ClassType.Brute) - { - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 2); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 3); - } - else if (_gameClass.GetType() == ClassType.Assassin) - { - AddDefaultItem(new ShopItem(Material.BOW, "Standard Bow", 1, false), 2); - AddDefaultItem(new ShopItem(Material.ARROW, "Arrow", 30, false), 3); - } - else if (_gameClass.GetType() == ClassType.Mage) - { - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 2); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 3); - } - - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 4); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 5); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 6); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 7); - AddDefaultItem(new ShopItem(Material.MUSHROOM_SOUP, "Mushroom Soup", 1, false), 8); - - - String name = _gameClass.GetName() + (donation ? " Class" : " Default Build"); - - SetHelmet(new ShopItem(_gameClass.GetHead(), name, desc, 1, _locked)); - SetChestplate(new ShopItem(_gameClass.GetChestplate(), name, desc, 1, _locked)); - SetLeggings(new ShopItem(_gameClass.GetLeggings(), name, desc, 1, _locked)); - SetBoots(new ShopItem(_gameClass.GetBoots(), name, desc, 1, _locked)); - } - - public IPvpClass GetGameClass() - { - return _gameClass; - } - - @Override - public String GetName() - { - return _gameClass.GetName(); - } - - @Override - public int GetSalesPackageId() - { - return _gameClass.GetSalesPackageId(); - } - - public void SetHelmet(ShopItem shopItem) - { - _shopItemMap.put(0, shopItem); - } - - public ShopItem GetHelmet() - { - return _shopItemMap.get(0); - } - - public void SetChestplate(ShopItem shopItem) - { - _shopItemMap.put(1, shopItem); - } - - public ShopItem GetChestplate() - { - return _shopItemMap.get(1); - } - - public void SetLeggings(ShopItem shopItem) - { - _shopItemMap.put(2, shopItem); - } - - public ShopItem GetLeggings() - { - return _shopItemMap.get(2); - } - - public void SetBoots(ShopItem shopItem) - { - _shopItemMap.put(3, shopItem); - } - - public ShopItem GetBoots() - { - return _shopItemMap.get(3); - } - - @Override - public boolean IsFree() - { - return _gameClass.IsFree(); - } - - @Override - public boolean CanFitIn(CoreClient player) - { - return !_locked || _gameClass.IsFree(); - } - - @Override - public void DeliverTo(IClientClass player) - { - ShopItem head = GetHelmet().clone(); - head.SetDeliverySettings(); - - ShopItem chest = GetChestplate().clone(); - chest.SetDeliverySettings(); - - ShopItem legs = GetLeggings().clone(); - legs.SetDeliverySettings(); - - ShopItem boots = GetBoots().clone(); - boots.SetDeliverySettings(); - - player.GetInventory().setHelmet(head.clone()); - player.GetInventory().setChestplate(chest.clone()); - player.GetInventory().setLeggings(legs.clone()); - player.GetInventory().setBoots(boots.clone()); - - player.SetDefaultHead(head); - player.SetDefaultChest(chest); - player.SetDefaultLegs(legs); - player.SetDefaultFeet(boots); - - for (Entry defaultItem : _defaultItems.entrySet()) - { - ShopItem deliverable = defaultItem.getValue().clone(); - deliverable.SetDeliverySettings(); - - player.GetInventory().setItem(defaultItem.getKey(), deliverable); - player.PutDefaultItem(deliverable.clone(), defaultItem.getKey()); - } - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - - } - - @Override - public void PurchaseBy(CoreClient player) - { - if (player.Class().GetGameClass() == null) - { - player.Class().SetGameClass(_gameClass); - DeliverTo(player.Class()); - player.Donor().PurchaseItem(_itemCost); - player.Donor().PurchaseSkill(_skillCost); - } - } - - @Override - public int ReturnFrom(CoreClient playerClient) - { - IClientClass player = playerClient.Class(); - - ShopItem head = GetHelmet().clone(); - head.SetDeliverySettings(); - - ShopItem chest = GetChestplate().clone(); - chest.SetDeliverySettings(); - - ShopItem legs = GetLeggings().clone(); - legs.SetDeliverySettings(); - - ShopItem boots = GetBoots().clone(); - boots.SetDeliverySettings(); - - if ((player.GetInventory().getHelmet() != null && player.GetInventory().getHelmet().equals(head)) - && (player.GetInventory().getChestplate() != null && player.GetInventory().getChestplate().equals(chest)) - && (player.GetInventory().getLeggings() != null && player.GetInventory().getLeggings().equals(legs)) - && (player.GetInventory().getBoots() != null && player.GetInventory().getBoots().equals(boots))) - { - player.GetInventory().setArmorContents(new ItemStack[4]); - player.AddDefaultArmor(player.GetInventory().getArmorContents()); - - player.SetGameClass(null); - - return 1; - } - - return 0; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - List slotList = new ArrayList(); - - slotList.add(slot); - inventory.setItem(slot, GetHelmet().getHandle()); - slot += 9; - - slotList.add(slot); - inventory.setItem(slot, GetChestplate().getHandle()); - slot += 9; - - slotList.add(slot); - inventory.setItem(slot, GetLeggings().getHandle()); - slot += 9; - - slotList.add(slot); - inventory.setItem(slot, GetBoots().getHandle()); - slot += 9; - - return slotList; - } - - public void AddDefaultItem(ShopItem shopItem, int slot) - { - _defaultItems.put(slot, shopItem); - } - - public void AddDefaultSkill(ShopItem shopItem) - { - _defaultSkills.add(shopItem); - } - - @Override - public int GetTokenCost() - { - return 0; - } - - @Override - public int GetCreditCost() - { - return _gameClass.GetCreditCost(); - } - - @Override - public int GetPointCost() - { - return _gameClass.GetPointCost(); - } - - @Override - public int GetEconomyCost() - { - return 0; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DonationPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DonationPackage.java deleted file mode 100644 index 0dfc62603..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/DonationPackage.java +++ /dev/null @@ -1,97 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.List; - -import me.chiss.Core.ClientData.IClientClass; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.shop.item.ISalesPackage; -import net.minecraft.server.v1_6_R3.IInventory; - -public class DonationPackage implements ISalesPackage -{ - private ISalesPackage _salesPackage; - - public DonationPackage(ISalesPackage salesPackage) - { - _salesPackage = salesPackage; - } - - @Override - public String GetName() - { - return _salesPackage.GetName(); - } - - public int GetCreditCost() - { - return _salesPackage.GetCreditCost(); - } - - public int GetPointCost() - { - return _salesPackage.GetPointCost(); - } - - public int GetTokenCost() - { - return _salesPackage.GetTokenCost(); - } - - public int GetEconomyCost() - { - return _salesPackage.GetEconomyCost(); - } - - @Override - public boolean IsFree() - { - return _salesPackage.IsFree(); - } - - @Override - public boolean CanFitIn(CoreClient player) - { - return true; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - return _salesPackage.AddToCategory(inventory, slot); - } - - @Override - public void DeliverTo(IClientClass player) - { - - } - - @Override - public void PurchaseBy(CoreClient player) - { - player.Donor().AddSalesPackagesOwned(_salesPackage.GetSalesPackageId()); - } - - @Override - public int ReturnFrom(CoreClient player) - { - return 0; - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - _salesPackage.DeliverTo(player, slot); - } - - @Override - public int GetSalesPackageId() - { - return _salesPackage.GetSalesPackageId(); - } - - public ISalesPackage GetWrappedPackage() - { - return _salesPackage; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ISalesPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ISalesPackage.java deleted file mode 100644 index 8d26d1d3f..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ISalesPackage.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.List; - -import me.chiss.Core.ClientData.IClientClass; -import mineplex.core.account.CoreClient; -import net.minecraft.server.v1_6_R3.IInventory; - -public interface ISalesPackage -{ - String GetName(); - int GetCreditCost(); - int GetPointCost(); - boolean CanFitIn(CoreClient player); - List AddToCategory(IInventory inventory, int slot); - void DeliverTo(IClientClass player); - void PurchaseBy(CoreClient player); - int ReturnFrom(CoreClient player); - void DeliverTo(IClientClass player, int slot); - int GetSalesPackageId(); - boolean IsFree(); -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ItemPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ItemPackage.java deleted file mode 100644 index e9f8150b3..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ItemPackage.java +++ /dev/null @@ -1,186 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.Arrays; -import java.util.List; -import java.util.Map.Entry; - -import me.chiss.Core.ClientData.IClientClass; -import me.chiss.Core.Shop.salespackage.ShopItem; -import me.chiss.Core.Utility.InventoryUtil; -import mineplex.core.account.CoreClient; -import net.minecraft.server.v1_6_R3.IInventory; - -import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; -import org.bukkit.inventory.ItemStack; - -public class ItemPackage implements ISalesPackage -{ - private ShopItem _shopItem; - private boolean _restrictToHotbar; - private int _creditCost; - private int _pointCost; - private int _tokenCost; - private int _economyCost; - private boolean _free; - private int _salesPackageId; - - public ItemPackage(ShopItem shopItem, int creditCost, int pointCost, int tokenCost, int economyCost, boolean isFree, int salesPackageId) - { - this(shopItem, true, creditCost, pointCost, tokenCost, economyCost, isFree, salesPackageId); - } - - public ItemPackage(ShopItem shopItem, boolean restrictToHotbar, int creditCost, int pointCost, int tokenCost, int economyCost, boolean isFree, int salesPackageId) - { - _shopItem = shopItem; - _restrictToHotbar = restrictToHotbar; - _creditCost = creditCost; - _pointCost = pointCost; - _economyCost = economyCost; - _tokenCost = tokenCost; - _free = isFree; - _salesPackageId = salesPackageId; - } - - @Override - public String GetName() - { - return _shopItem.GetName(); - } - - @Override - public int GetSalesPackageId() - { - return _salesPackageId; - } - - public int GetCreditCost() - { - return _creditCost; - } - - public int GetPointCost() - { - return _pointCost; - } - - public int GetTokenCost() - { - return _tokenCost; - } - - public int GetEconomyCost() - { - return _economyCost; - } - - @Override - public boolean IsFree() - { - return _free; - } - - @Override - public boolean CanFitIn(CoreClient player) - { - if (_shopItem.IsLocked() && !IsFree()) - return false; - - for (ItemStack itemStack : player.Class().GetInventory()) - { - if (itemStack != null && itemStack.getType() == _shopItem.getType() && (itemStack.getAmount() + _shopItem.getAmount()) <= (itemStack.getType() == Material.ARROW ? itemStack.getMaxStackSize() : 1)) - { - return true; - } - } - - if (_tokenCost == 0 && _creditCost == 0 && _pointCost == 0) - return true; - - if (InventoryUtil.first((CraftInventory)player.Class().GetInventory(), _restrictToHotbar ? 9 : player.Class().GetInventory().getSize(), null, true) == -1) - return false; - else - return true; - } - - @Override - public void DeliverTo(IClientClass player) - { - ShopItem shopItem = _shopItem.clone(); - shopItem.SetDeliverySettings(); - - if (shopItem.getType() == Material.ARROW) - { - int firstEmpty = player.GetInventory().firstEmpty(); - - player.GetInventory().addItem(shopItem); - - if (player.GetInventory().firstEmpty() != firstEmpty) - { - player.PutDefaultItem(player.GetInventory().getItem(firstEmpty), firstEmpty); - } - - for (Entry entry : player.GetInventory().all(Material.ARROW).entrySet()) - { - player.PutDefaultItem(entry.getValue().clone(), entry.getKey()); - } - } - else - { - int emptySlot = player.GetInventory().firstEmpty(); - - player.GetInventory().setItem(emptySlot, shopItem); - player.PutDefaultItem(shopItem.clone(), emptySlot); - } - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - ShopItem shopItem = _shopItem.clone(); - shopItem.SetDeliverySettings(); - - player.GetInventory().setItem(slot, shopItem); - player.PutDefaultItem(shopItem.clone(), slot); - } - - @Override - public void PurchaseBy(CoreClient player) - { - DeliverTo(player.Class()); - } - - @Override - public int ReturnFrom(CoreClient player) - { - if (_shopItem.IsDisplay()) - return 0; - - ShopItem shopItem = _shopItem.clone(); - shopItem.SetDeliverySettings(); - - int count = 0; - - count = InventoryUtil.GetCountOfObjectsRemoved((CraftInventory)player.Class().GetInventory(), 9, (ItemStack)shopItem); - - for (int i=0; i < 9; i++) - { - player.Class().PutDefaultItem(player.Class().GetInventory().getItem(i), i); - } - - return count; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - inventory.setItem(slot, _shopItem.getHandle()); - - return Arrays.asList(slot); - } - - public ShopItem GetItem() - { - return _shopItem; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpItemPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpItemPackage.java deleted file mode 100644 index be8e1d9bb..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpItemPackage.java +++ /dev/null @@ -1,176 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Calendar; -import java.util.List; - -import me.chiss.Core.ClientData.IClientClass; -import me.chiss.Core.Utility.InventoryUtil; -import mineplex.core.account.CoreClient; -import mineplex.core.itemstack.ItemStackFactory; -import mineplex.minecraft.shop.item.ISalesPackage; -import net.minecraft.server.v1_6_R3.IInventory; - -import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftInventory; -import org.bukkit.inventory.ItemStack; - -public class PvpItemPackage implements ISalesPackage -{ - private ShopItem _shopItem; - private int _creditCost; - private int _pointCost; - private int _tokenCost; - private int _economyCost; - private boolean _free; - private int _salesPackageId; - - public PvpItemPackage(ShopItem shopItem, int creditCost, int pointCost, int tokenCost, int economyCost, boolean isFree, int salesPackageId) - { - _shopItem = shopItem; - _creditCost = creditCost; - _pointCost = pointCost; - _economyCost = economyCost; - _tokenCost = tokenCost; - _free = isFree; - _salesPackageId = salesPackageId; - } - - @Override - public String GetName() - { - return _shopItem.GetName(); - } - - @Override - public int GetSalesPackageId() - { - return _salesPackageId; - } - - public int GetCreditCost() - { - return _creditCost; - } - - public int GetPointCost() - { - return _pointCost; - } - - public int GetTokenCost() - { - return _tokenCost; - } - - public int GetEconomyCost() - { - return _economyCost; - } - - @Override - public boolean IsFree() - { - return _free; - } - - @Override - public boolean CanFitIn(CoreClient player) - { - if (_shopItem.IsLocked() && !IsFree()) - return false; - - for (ItemStack itemStack : player.Class().GetInventory()) - { - if (itemStack != null && itemStack.getType() == _shopItem.getType() && (itemStack.getAmount() + _shopItem.getAmount()) <= (itemStack.getType() == Material.ARROW ? itemStack.getMaxStackSize() : 1)) - { - return true; - } - } - - if (_tokenCost == 0 && _creditCost == 0 && _pointCost == 0) - return true; - - if (InventoryUtil.first((CraftInventory)player.Class().GetInventory(), 9, null, true) == -1) - return false; - else - return true; - } - - public ItemStack GetStack(String player) - { - byte data = 0; - if (_shopItem.getData() != null) - data =_shopItem.getData().getData(); - - ItemStack stack; - if (_shopItem.getType().getMaxStackSize() == 1) - stack = ItemStackFactory.Instance.CreateStack(_shopItem.getType(), data, _shopItem.getAmount(), - null, new String[] {}, player + " Shop"); - else - stack = ItemStackFactory.Instance.CreateStack(_shopItem.getType(), data, _shopItem.getAmount()); - - return stack; - } - - @Override - public void DeliverTo(IClientClass player) - { - player.GetInventory().addItem(GetStack(player.GetName())); - } - - public final String DATE_FORMAT_DAY = "yyyy-MM-dd"; - public String date() - { - Calendar cal = Calendar.getInstance(); - SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_DAY); - return sdf.format(cal.getTime()); - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - player.GetInventory().setItem(slot, GetStack(player.GetName())); - } - - @Override - public void PurchaseBy(CoreClient player) - { - DeliverTo(player.Class()); - } - - @Override - public int ReturnFrom(CoreClient player) - { - if (_shopItem.IsDisplay()) - return 0; - - ShopItem shopItem = _shopItem.clone(); - shopItem.SetDeliverySettings(); - - int count = 0; - - count = InventoryUtil.GetCountOfObjectsRemoved((CraftInventory)player.Class().GetInventory(), 9, (ItemStack)shopItem); - - for (int i=0; i < 9; i++) - { - player.Class().PutDefaultItem(player.Class().GetInventory().getItem(i), i); - } - - return count; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - inventory.setItem(slot, _shopItem.getHandle()); - - return Arrays.asList(slot); - } - - public ShopItem GetItem() - { - return _shopItem; - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpShopItem.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpShopItem.java deleted file mode 100644 index d7a949e1b..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/PvpShopItem.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import net.minecraft.server.v1_6_R3.NBTTagList; -import net.minecraft.server.v1_6_R3.NBTTagString; - -import org.bukkit.ChatColor; -import org.bukkit.Material; - -public class PvpShopItem extends ShopItem -{ - public PvpShopItem(Material type, byte data, String name, - String deliveryName, String[] lore, int deliveryAmount, - boolean locked, boolean displayItem) - { - super(type, data, name, deliveryName, lore, deliveryAmount, locked, displayItem); - } - - @Override - protected void UpdateVisual(boolean clone) - { - if (!clone) - { - this.getHandle().c(ChatColor.YELLOW + _name); - } - - NBTTagList lore = new NBTTagList("Lore"); - - if (_lore != null) - { - for (String line : _lore) - { - if (line != null && !line.isEmpty()) - lore.add(new NBTTagString("Test", line)); - } - } - - getHandle().tag.getCompound("display").set("Lore", lore); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ShopItem.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ShopItem.java deleted file mode 100644 index 63c220510..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/ShopItem.java +++ /dev/null @@ -1,173 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import net.minecraft.server.v1_6_R3.NBTTagList; -import net.minecraft.server.v1_6_R3.NBTTagString; - -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_6_R3.inventory.CraftItemStack; -import org.bukkit.inventory.ItemStack; - -public class ShopItem extends CraftItemStack -{ - protected String _name; - private String _deliveryName; - protected String[] _lore; - private int _deliveryAmount; - private boolean _locked; - private boolean _displayItem; - - public ShopItem(ItemStack itemStack, String name, String deliveryName, int deliveryAmount, boolean locked, boolean displayItem) - { - super(itemStack); - - _name = name; - _deliveryName = deliveryName; - _displayItem = displayItem; - _deliveryAmount = deliveryAmount; - - getHandle().tag = ((CraftItemStack)itemStack).getHandle().tag; - - UpdateVisual(true); - } - - public ShopItem(Material type, String name, int deliveryAmount, boolean locked) - { - this(type, name, null, deliveryAmount, locked); - } - - public ShopItem(Material type, String name, String[] lore, int deliveryAmount, boolean locked) - { - this(type, name, lore, deliveryAmount, locked, false); - } - - public ShopItem(Material type, String name, String[] lore, int deliveryAmount, boolean locked, boolean displayItem) - { - this(type, (byte)0, name, null, lore, deliveryAmount, locked, displayItem); - } - - public ShopItem(Material type, byte data, String name, String[] lore, int deliveryAmount, boolean locked, boolean displayItem) - { - this(type, data, name, null, lore, deliveryAmount, locked, displayItem); - } - - public ShopItem(Material type, byte data, String name, String deliveryName, String[] lore, int deliveryAmount, boolean locked, boolean displayItem) - { - super(type.getId(), Math.max(deliveryAmount, 1), data, null); - - _name = name; - _deliveryName = deliveryName; - _lore = lore; - _displayItem = displayItem; - _deliveryAmount = deliveryAmount; - _locked = locked; - - UpdateVisual(false); - - // Fix for temp save junk(fixes problem when disconnecting and trying to return) - if (getHandle().tag != null) - getHandle().tag.setName("tag"); - - getHandle().tag.setByte("Count", (byte)Math.max(deliveryAmount, 1)); - } - - public boolean IsLocked() - { - return _locked; - } - - public void SetDeliverySettings() - { - setAmount(_deliveryAmount); - - //Delivery Name - if (_deliveryName != null) - this.getHandle().c(_deliveryName); - } - - public ShopItem clone() - { - return new ShopItem(super.clone(), _name, _deliveryName, _deliveryAmount, _locked, _displayItem); - } - - @Override - public boolean equals(Object obj) - { - if (!super.equals(obj)) - { - return false; - } - - net.minecraft.server.v1_6_R3.ItemStack original = ((CraftItemStack)this).getHandle(); - net.minecraft.server.v1_6_R3.ItemStack comparison = ((CraftItemStack)obj).getHandle(); - - return original.tag == null || original.tag.equals(comparison.tag); - } - - protected void UpdateVisual(boolean clone) - { - if (!clone) - { - if (_locked && !_displayItem) - { - this.getHandle().c(ChatColor.RED + "§l" + _name); - } - else - { - this.getHandle().c(ChatColor.GREEN + "§l" + _name); - } - } - - NBTTagList lore = new NBTTagList("Lore"); - - if (_lore != null) - { - for (String line : _lore) - { - if (line != null && !line.isEmpty()) - lore.add(new NBTTagString("Test", line)); - } - } - - getHandle().tag.getCompound("display").set("Lore", lore); - } - - public boolean IsDisplay() - { - return _displayItem; - } - - public void SetLocked(boolean owns) - { - _locked = owns; - UpdateVisual(false); - } - - public String GetName() - { - return _name; - } - - public void SetName(String name) - { - _name = name; - } - - public void SetLore(String[] string) - { - _lore = string; - - NBTTagList lore = new NBTTagList("Lore"); - - if (_lore != null) - { - for (String line : _lore) - { - if (line != null && !line.isEmpty()) - lore.add(new NBTTagString("Test", line)); - } - } - - getHandle().tag.getCompound("display").set("Lore", lore); - } -} diff --git a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/SkillPackage.java b/Plugins/Core/src/me/chiss/Core/Shop/salespackage/SkillPackage.java deleted file mode 100644 index de9fe76c8..000000000 --- a/Plugins/Core/src/me/chiss/Core/Shop/salespackage/SkillPackage.java +++ /dev/null @@ -1,153 +0,0 @@ -package me.chiss.Core.Shop.salespackage; - -import java.util.Arrays; -import java.util.List; - -import org.bukkit.Material; - -import me.chiss.Core.ClientData.IClientClass; -import mineplex.core.account.CoreClient; -import mineplex.minecraft.game.core.classcombat.Skill.ISkill; -import net.minecraft.server.v1_6_R3.IInventory; - -public class SkillPackage implements ISalesPackage -{ - private ShopItem _skillItem; - private ISkill _skill; - private int _level; - private boolean _active; - private boolean _locked; - - public SkillPackage(ISkill skill, String[] lore, boolean active, int level, boolean locked) - { - _skill = skill; - _active = active; - _level = level; - _locked = locked; - - _skillItem = new ShopItem((_locked ? Material.BOOK : _active ? Material.WRITTEN_BOOK : Material.BOOK), _skill.GetName(), null, _level, _locked); - _skillItem.SetLore(lore); - } - - @Override - public String GetName() - { - return _skillItem.GetName(); - } - - @Override - public int GetSalesPackageId() - { - return _skill.GetSalesPackageId(); - } - - public ISkill GetSkill() - { - return _skill; - } - - public int GetCreditCost() - { - return _skill.GetCreditCost(); - } - - public int GetPointCost() - { - return _skill.GetPointCost(); - } - - @Override - public boolean IsFree() - { - return _skill.IsFree(_level); - } - - @Override - public boolean CanFitIn(CoreClient player) - { - if (_locked && !IsFree()) - return false; - - ISkill existingSkill = player.Class().GetSkillByType(_skill.GetSkillType()); - - if (existingSkill == _skill) - { - return player.Class().GetSkillLevel(existingSkill) < _skill.GetMaxLevel(); - } - - return true; - } - - @Override - public void DeliverTo(IClientClass player) - { - } - - @Override - public void DeliverTo(IClientClass player, int slot) - { - player.GetInventory().setItem(slot, _skillItem); - } - - @Override - public void PurchaseBy(CoreClient player) - { - ISkill skill = GetSkill(); - - ISkill existingSkill = player.Class().GetSkillByType(skill.GetSkillType()); - - if (existingSkill != null) - { - player.Class().RemoveSkill(existingSkill); - } - - player.Class().AddSkill(skill, _skillItem.getAmount()); - - DeliverTo(player.Class()); - } - - public int ReturnAllLevels(CoreClient player) - { - if (player.Class().GetSkillByType(GetSkill().GetSkillType()) != null && player.Class().GetSkillByType(GetSkill().GetSkillType()) == GetSkill()) - { - player.Class().RemoveSkill(GetSkill()); - - return _skillItem.getAmount(); - } - - return 0; - } - - @Override - public int ReturnFrom(CoreClient player) - { - if (player.Class().GetSkillByType(GetSkill().GetSkillType()) != null && player.Class().GetSkillByType(GetSkill().GetSkillType()) == GetSkill()) - { - player.Class().RemoveSkill(GetSkill()); - - if (_skillItem.getAmount() > 1) - player.Class().AddSkill(GetSkill(), _skillItem.getAmount() - 1); - - return 1; - } - - return 0; - } - - @Override - public List AddToCategory(IInventory inventory, int slot) - { - inventory.setItem(slot, _skillItem.getHandle()); - return Arrays.asList(slot); - } - - public int GetLevel() - { - return _level; - } - - public boolean IsActive() - { - return _active; - } -} diff --git a/Plugins/Libraries/craftbukkit.jar b/Plugins/Libraries/craftbukkit.jar index 7905def16c4e540c062e548ea8936c2c558868fd..fbb8fcb8d2a1acf9f2561ce726b7cd1f3adff9da 100644 GIT binary patch delta 338763 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

7?PW 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Ⓢ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
)2V?f5gtAwD~i|KiiFulWq?J3f;UK8tna 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�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 - Nautilus.Game.CaptureThePig + Mineplex.Bungee.Mineplexer @@ -16,7 +16,7 @@ LaunchConfigHandle - <project>/.externalToolBuilders/CaptureThePig.launch + <project>/.externalToolBuilders/Mineplexer2.launch diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdManager.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdManager.java new file mode 100644 index 000000000..28c254297 --- /dev/null +++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdManager.java @@ -0,0 +1,41 @@ +package mineplex.bungee.motd; + +import java.util.concurrent.TimeUnit; + +import net.md_5.bungee.api.event.ProxyPingEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.api.plugin.Plugin; +import net.md_5.bungee.event.EventHandler; + +public class MotdManager implements Listener, Runnable +{ + private Plugin _plugin; + private MotdRepository _repository; + + private String _motd = "§b§l§m §8§l§m[ §r §9§lMineplex§r §f§lGames§r §8§l§m ]§b§l§m §r §c§l§m§kZ§6§l§m§kZ§e§l§m§kZ§a§l§m§kZ§b§l§m§kZ§r §f§lPLAY NOW§r §b§l§m§kZ§a§l§m§kZ§e§l§m§kZ§6§l§m§kZ§c§l§m§kZ"; + + public MotdManager(Plugin plugin) + { + _plugin = plugin; + + _plugin.getProxy().getScheduler().schedule(_plugin, this, 30L, 30L, TimeUnit.SECONDS); + _plugin.getProxy().getPluginManager().registerListener(_plugin, this); + + _repository = new MotdRepository(); + _repository.initialize(); + } + + @EventHandler + public void ServerPing(ProxyPingEvent event) + { + net.md_5.bungee.api.ServerPing serverPing = event.getResponse(); + + event.setResponse(new net.md_5.bungee.api.ServerPing(serverPing.getVersion(), serverPing.getPlayers(), _motd, serverPing.getFavicon())); + } + + @Override + public void run() + { + _motd = _repository.retrieveMotd(); + } +} diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdRepository.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdRepository.java new file mode 100644 index 000000000..c6b79399e --- /dev/null +++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/motd/MotdRepository.java @@ -0,0 +1,127 @@ +package mineplex.bungee.motd; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class MotdRepository +{ + private String _connectionString = "jdbc:mysql://sql.mineplex.com:3306/BungeeServers"; + private String _userName = "root"; + private String _password = "tAbechAk3wR7tuTh"; + + private static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS BungeeMotd (id INT NOT NULL AUTO_INCREMENT, motd VARCHAR(256), PRIMARY KEY (id));"; + private static String RETRIEVE_MOTD = "SELECT motd FROM BungeeMotd;"; + + public void initialize() + { + Connection connection = null; + PreparedStatement preparedStatement = null; + + try + { + connection = DriverManager.getConnection(_connectionString, _userName, _password); + + // Create table + preparedStatement = connection.prepareStatement(CREATE_TABLE); + preparedStatement.execute(); + } + catch (Exception exception) + { + exception.printStackTrace(); + } + finally + { + if (preparedStatement != null) + { + try + { + preparedStatement.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + + if (connection != null) + { + try + { + connection.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + } + } + + public String retrieveMotd() + { + String motd = "§b§l§m §8§l§m[ §r §9§lMineplex§r §f§lGames§r §8§l§m ]§b§l§m §r §c§l§m§kZ§6§l§m§kZ§e§l§m§kZ§a§l§m§kZ§b§l§m§kZ§r §f§lPLAY NOW§r §b§l§m§kZ§a§l§m§kZ§e§l§m§kZ§6§l§m§kZ§c§l§m§kZ"; + Connection connection = null; + ResultSet resultSet = null; + PreparedStatement preparedStatement = null; + + try + { + connection = DriverManager.getConnection(_connectionString, _userName, _password); + + preparedStatement = connection.prepareStatement(RETRIEVE_MOTD); + resultSet = preparedStatement.executeQuery(); + + while (resultSet.next()) + { + return resultSet.getString(1); + } + } + catch (Exception exception) + { + exception.printStackTrace(); + } + finally + { + if (preparedStatement != null) + { + try + { + preparedStatement.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + + if (resultSet != null) + { + try + { + resultSet.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + + if (connection != null) + { + try + { + connection.close(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + } + + return motd; + } +} diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Polysmash.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Polysmash.java index c508f725b..b061f25d8 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Polysmash.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Polysmash.java @@ -126,7 +126,7 @@ public class Polysmash extends SkillActive _used.add(player); //Condition - Factory.Condition().Factory().Slow(GetName(), ent, player, 5, 0, false, true, false); + Factory.Condition().Factory().Slow(GetName(), ent, player, 5, 0, false, true, false, false); Factory.Condition().Factory().Silence(GetName(), ent, player, 5, false, true); //Effect diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Shifter.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Shifter.java index dbc62deaa..093a03cb5 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Shifter.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/Skill/Shifter/Shifter.java @@ -27,7 +27,7 @@ public class Shifter extends Skill { if (event.getType() == UpdateType.FAST) for (Player cur : GetUsers()) - Factory.Condition().Factory().Protection(GetName(), cur, cur, 1.9, 1, false, false); + Factory.Condition().Factory().Protection(GetName(), cur, cur, 1.9, 1, false, false, false); if (event.getType() == UpdateType.SLOWER) for (Player cur : GetUsers()) diff --git a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/Throwable/Pistol.java b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/Throwable/Pistol.java index 75ab9cac5..509d58038 100644 --- a/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/Throwable/Pistol.java +++ b/Plugins/Mineplex.Minecraft.Game.ClassCombat/src/mineplex/minecraft/game/classcombat/item/Throwable/Pistol.java @@ -6,6 +6,7 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEvent; @@ -81,7 +82,7 @@ public class Pistol extends ItemUsable //Player if (cur instanceof Player) { - if (UtilEnt.hitBox(loc, (Player)cur, 1)) + if (UtilEnt.hitBox(loc, (Player)cur, 1, EntityType.PLAYER)) { RifleHit(cur, player, true); player.getWorld().playSound(loc, Sound.BLAZE_HIT, 0.4f, 2f); diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/log/LogManager.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/log/LogManager.java deleted file mode 100644 index 8d4c4b1dc..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/log/LogManager.java +++ /dev/null @@ -1,6 +0,0 @@ -package nautilus.minecraft.core.log; - -public class LogManager -{ - -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/Home.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/Home.java deleted file mode 100644 index d6c6d009f..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/Home.java +++ /dev/null @@ -1,163 +0,0 @@ -package nautilus.minecraft.core.player; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.List; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.World.Environment; - -public class Home -{ - private String _name; - private Location _location; - - public Home(String name, Location location) - { - _name = name; - _location = location; - } - - public Home(String name) - { - _name = name; - } - - public String GetName() - { - return _name; - } - - public Location GetLocation() - { - return _location; - } - - public void Save() - { - BufferedWriter fout = null; - - try - { - StringBuilder packedContents = new StringBuilder(); - - packedContents.append("home:"); - packedContents.append(_location.getX() + ":" + _location.getY() + ":" + _location.getZ()); - packedContents.append(":" + _location.getYaw() + ":" + _location.getPitch()); - packedContents.append(":" + (_location.getWorld().getEnvironment() == Environment.NORMAL ? "world" : "nether") + "\n"); - - fout = new BufferedWriter(new FileWriter("homes\\" + _name + ".txt")); - - fout.write(packedContents.toString()); - } - catch (IOException e) - { - e.printStackTrace(); - } - finally - { - if (fout != null) - { - try - { - fout.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - public void Load() - { - BufferedReader fileIn = null; - - try - { - fileIn = new BufferedReader(new FileReader("homes\\" + _name + ".txt")); - - String line = fileIn.readLine(); - - line = line.substring(line.indexOf(':') + 1); - - _location = ParseLocation(line); - - fileIn.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - finally - { - if (fileIn != null) - { - try - { - fileIn.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - } - - public static Location ParseLocation(String line) - { - try - { - String [] parts = line.split(":"); - double x = Double.parseDouble(parts[0]); - double y = Double.parseDouble(parts[1]); - double z = Double.parseDouble(parts[2]); - float rotX = 0; - float rotY = 0; - org.bukkit.World world; - - if (parts.length > 3) - { - rotX = Float.parseFloat(parts[3]); - rotY = Float.parseFloat(parts[4]); - } - - List worlds = Bukkit.getServer().getWorlds(); - World normalWorld = worlds.get(0); - World netherWorld = worlds.get(0); - - for (World serverWorld : worlds) - { - if (serverWorld.getEnvironment() == Environment.NORMAL) - normalWorld = serverWorld; - else if (serverWorld.getEnvironment() == Environment.NETHER) - netherWorld = serverWorld; - } - - - if(parts.length == 6 && parts[5].contains("nether")) - { - world = netherWorld; - } - else - { - world = normalWorld; - } - - return new Location(world, x, y, z, rotX, rotY); - } - catch(NumberFormatException ex) - { - System.out.println("Can't parse location for line:" + line); - // Gulp, that was good. - return null; - } - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/HomeManager.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/HomeManager.java deleted file mode 100644 index 5f470c1a7..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/player/HomeManager.java +++ /dev/null @@ -1,52 +0,0 @@ -package nautilus.minecraft.core.player; - -import java.io.File; -import java.util.HashMap; - -import org.bukkit.entity.Player; - -public class HomeManager -{ - private HashMap _playerHomes; - - public HomeManager() - { - _playerHomes = new HashMap(); - LoadHomes(); - } - - public void SetHome(Player player) - { - String homeName = player.getName().toLowerCase(); - Home playerHome = new Home(homeName, player.getLocation()); - - _playerHomes.put(homeName, playerHome); - playerHome.Save(); - } - - public Home GetHome(Player player) - { - return _playerHomes.get(player.getName().toLowerCase()); - } - - public void LoadHomes() - { - File homeDir = new File("homes/"); - - if (!homeDir.exists()) - { - homeDir.mkdir(); - } - - for (File f : homeDir.listFiles()) - { - String fileName = f.getName(); - System.out.println(fileName); - Home home = new Home(fileName.substring(0, fileName.indexOf('.'))); - - home.Load(); - - _playerHomes.put(home.GetName(), home); - } - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ColorUtil.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ColorUtil.java deleted file mode 100644 index 8e26966f6..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ColorUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package nautilus.minecraft.core.utils; - -import java.util.regex.Pattern; - -public class ColorUtil -{ - private static transient final Pattern REPLACE_COLOR_PATTERN = Pattern.compile("&([0-9a-f])"); - - public static String formatString(final String input) - { - if (input == null) - { - return null; - } - - return REPLACE_COLOR_PATTERN.matcher(input).replaceAll("\u00a7$1"); - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericActionListener.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericActionListener.java deleted file mode 100644 index 07841a4b6..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericActionListener.java +++ /dev/null @@ -1,19 +0,0 @@ -package nautilus.minecraft.core.utils; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class GenericActionListener implements ActionListener -{ - protected T Object; - - public GenericActionListener(T t) - { - Object = t; - } - - public void actionPerformed(ActionEvent e) - { - // TODO Auto-generated method stub - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericRunnable3.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericRunnable3.java deleted file mode 100644 index 361361ef0..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/GenericRunnable3.java +++ /dev/null @@ -1,20 +0,0 @@ -package nautilus.minecraft.core.utils; - -public class GenericRunnable3 implements Runnable -{ - protected T1 t1; - protected T2 t2; - protected T3 t3; - - public GenericRunnable3(T1 t1, T2 t2, T3 t3) - { - this.t1 = t1; - this.t2 = t2; - this.t3 = t3; - } - - public void run() - { - - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/PacketUtils.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/PacketUtils.java deleted file mode 100644 index 6770bb3fc..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/PacketUtils.java +++ /dev/null @@ -1,234 +0,0 @@ -package nautilus.minecraft.core.utils; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.server.v1_6_R3.DataWatcher; -import net.minecraft.server.v1_6_R3.MathHelper; -import net.minecraft.server.v1_6_R3.Packet20NamedEntitySpawn; -import net.minecraft.server.v1_6_R3.Packet24MobSpawn; -import net.minecraft.server.v1_6_R3.Packet29DestroyEntity; -import net.minecraft.server.v1_6_R3.Packet5EntityEquipment; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; - -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; - -public class PacketUtils -{ - public static void killCarcass(Player p1) - { - CraftPlayer p22 = (CraftPlayer) p1; - Packet29DestroyEntity p29 = new Packet29DestroyEntity(p22.getEntityId()); - - for (Player p2 : Bukkit.getServer().getOnlinePlayers()) - { - if (p2.getName().equals(p1.getName())) - continue; - - ((CraftPlayer) p2).getHandle().playerConnection.sendPacket(p29); - - System.out.println("Killing carcass of '" + p1.getName() + "'"); - } - } - - public static void undisguiseToAll(Player p1) - { - // Make packets out of loop! - CraftPlayer p22 = (CraftPlayer) p1; - Packet29DestroyEntity p29 = new Packet29DestroyEntity(p22.getEntityId()); - Packet20NamedEntitySpawn p20 = new Packet20NamedEntitySpawn(p22.getHandle()); - - if (p1.getItemInHand() != null && p1.getItemInHand().getType() != Material.FISHING_ROD) - p20.h = p1.getItemInHand().getTypeId(); - - List p5 = new ArrayList(); - net.minecraft.server.v1_6_R3.ItemStack[] armorContents = ((net.minecraft.server.v1_6_R3.Entity)p22.getHandle()).getEquipment(); - - for (short i=0; i < armorContents.length; i++) - { - net.minecraft.server.v1_6_R3.ItemStack armorSlot = armorContents[i]; - - if (armorSlot != null) - { - p5.add(new Packet5EntityEquipment(p22.getEntityId(), i, armorSlot)); - } - } - - for (Player p2 : Bukkit.getServer().getOnlinePlayers()) - { - if (!p1.getWorld().equals(p2.getWorld())) - { - continue; - } - if (p2 == p1) - { - continue; - } - - ((CraftPlayer) p2).getHandle().playerConnection.sendPacket(p29); - ((CraftPlayer) p2).getHandle().playerConnection.sendPacket(p20); - - for (Packet5EntityEquipment equipPacket : p5) - ((CraftPlayer) p2).getHandle().playerConnection.sendPacket(equipPacket); - } - } - - public static void disguiseToAll(Player p1, Byte id) - { - DataWatcher metadata = new DataWatcher(); - metadata.a(0, (byte) 0); - metadata.a(12, 0); - if (id == EntityType.SHEEP.getTypeId() || id == EntityType.PIG.getTypeId() || id == EntityType.ENDERMAN.getTypeId()) { - metadata.a(16, (byte) 0); - } else if (id == EntityType.SLIME.getTypeId()) { - metadata.a(16, (byte) 3); - } else if (id == EntityType.VILLAGER.getTypeId()) { - metadata.a(16, 0); - } - - if (id == EntityType.CREEPER.getTypeId() || id == EntityType.ENDERMAN.getTypeId()) { - metadata.a(17, (byte) 0); - } - if (id == EntityType.OCELOT.getTypeId()) { - metadata.a(18, (byte) 0); - } - - // Make packets out of loop! - Packet24MobSpawn p24 = packetMaker(p1, id, metadata); - - for (Player p2 : Bukkit.getServer().getOnlinePlayers()) - { - disguiseToPlayer(p2, p1, id, metadata, p24); - } - } - - public static void disguiseToPlayer(Player p1, Player disguised, Byte id) - { - DataWatcher metadata = new DataWatcher(); - metadata.a(0, (byte) 0); - metadata.a(12, 0); - if (id == EntityType.SHEEP.getTypeId() || id == EntityType.PIG.getTypeId() || id == EntityType.ENDERMAN.getTypeId()) { - metadata.a(16, (byte) 0); - } else if (id == EntityType.SLIME.getTypeId()) { - metadata.a(16, (byte) 3); - } else if (id == EntityType.VILLAGER.getTypeId()) { - metadata.a(16, 0); - } - - if (id == EntityType.CREEPER.getTypeId() || id == EntityType.ENDERMAN.getTypeId()) { - metadata.a(17, (byte) 0); - } - if (id == EntityType.OCELOT.getTypeId()) { - metadata.a(18, (byte) 0); - } - - // Make packets out of loop! - Packet24MobSpawn p24 = packetMaker(p1, id, metadata); - - disguiseToPlayer(p1, disguised, id, metadata, p24); - } - - public static void disguiseToPlayer(Player p1, Player disguised, Byte id, DataWatcher metadata, Packet24MobSpawn p24) - { - if (p1 == disguised) - { - return; - } - - ((CraftPlayer) p1).getHandle().playerConnection.sendPacket(p24); - } - - // Begin code for p2p disguising - public static void disguisep2pToAll(Player p, String name) - { - if (name.length() > 16) name = name.substring(0, 16); - - Packet20NamedEntitySpawn spawnPacket = packetMaker(p, name); - Packet29DestroyEntity killPacket = new Packet29DestroyEntity(p.getEntityId()); - - for (Player p1 : Bukkit.getServer().getOnlinePlayers()) - { - disguisep2pToPlayer(p1, p, killPacket, spawnPacket); - } - } - - public static void disguisep2pToPlayer(Player p1, Player disguised, String name) - { - if (name.length() > 16) name = name.substring(0, 16); - - disguisep2pToPlayer(p1, disguised, new Packet29DestroyEntity(disguised.getEntityId()), packetMaker(disguised, name)); - } - - public static void disguisep2pToPlayer(Player p1, Player disguised, Packet29DestroyEntity killPacket, Packet20NamedEntitySpawn spawnPacket) - { - if (p1.getName().equals(disguised.getName())) - return; - - ((CraftPlayer) p1).getHandle().playerConnection.sendPacket(killPacket); - ((CraftPlayer) p1).getHandle().playerConnection.sendPacket(spawnPacket); - System.out.println("Disguising '" + disguised.getName() + "' as '" + spawnPacket.b + "' for '" + p1.getName() + "'"); - } - - public static void undisguisep2pToAll(Player p) - { - Packet20NamedEntitySpawn p20 = packetMaker(p, p.getName()); - Packet29DestroyEntity p29 = new Packet29DestroyEntity(p.getEntityId()); - - for (Player p1 : Bukkit.getServer().getOnlinePlayers()) - { - if (p1.getName().equals(p.getName())) - continue; - - ((CraftPlayer) p1).getHandle().playerConnection.sendPacket(p29); - ((CraftPlayer) p1).getHandle().playerConnection.sendPacket(p20); - System.out.println("Revealing '" + p.getName() + "' for '" + p1.getName() + "'"); - } - } - - public static Packet20NamedEntitySpawn packetMaker(Player p, String name) - { - Packet20NamedEntitySpawn packet = new Packet20NamedEntitySpawn(((CraftPlayer)p).getHandle()); - packet.b = name; - return packet; - } - - public static Packet24MobSpawn packetMaker(Player p1, Byte id, DataWatcher metadata) - { - Location loc = p1.getLocation(); - int x = MathHelper.floor(loc.getX() *32D); - int y = MathHelper.floor(loc.getY() *32D); - int z = MathHelper.floor(loc.getZ() *32D); - - Packet24MobSpawn packet = new Packet24MobSpawn(); - packet.a = p1.getEntityId(); - packet.b = id; - packet.c = (int) x; - packet.d = (int) y; - packet.e = (int) z; - packet.f = (byte) ((int) loc.getYaw() * 256.0F / 360.0F); - packet.g = (byte) ((int) (loc.getPitch() * 256.0F / 360.0F)); - packet.h = packet.f; - try { - Field metadataField = packet.getClass().getDeclaredField("i"); - metadataField.setAccessible(true); - metadataField.set(packet, metadata); - } catch (Exception e) { - System.out.println("unable to set the metadata for a disguise!"); - e.printStackTrace(); - } - - // Chicken fix - if (id == EntityType.CHICKEN.getTypeId()) - { - packet.g = (byte) (packet.g * -1); - } - - return packet; - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/TntUtil.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/TntUtil.java deleted file mode 100644 index 493fced10..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/TntUtil.java +++ /dev/null @@ -1,75 +0,0 @@ -package nautilus.minecraft.core.utils; - -import net.minecraft.server.v1_6_R3.MathHelper; - -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_6_R3.CraftWorld; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity; -import org.bukkit.event.entity.EntityExplodeEvent; - -public class TntUtil -{ - public static void BypassWaterInExplosionEvent(EntityExplodeEvent event) - { - double d0; - double d1; - double d2; - - event.blockList().clear(); - - World world = event.getLocation().getWorld(); - - for (int i = 0; i < 16; ++i) - { - for (int j = 0; j < 16; ++j) - { - for (int k = 0; k < 16; ++k) - { - if (i == 0 || i == 15 || j == 0 || j == 15 || k == 0 || k == 15) - { - double d3 = (double) ((float) i / ((float) 16 - 1.0F) * 2.0F - 1.0F); - double d4 = (double) ((float) j / ((float) 16 - 1.0F) * 2.0F - 1.0F); - double d5 = (double) ((float) k / ((float) 16 - 1.0F) * 2.0F - 1.0F); - double d6 = Math.sqrt(d3 * d3 + d4 * d4 + d5 * d5); - - d3 /= d6; - d4 /= d6; - d5 /= d6; - float f1 = 4 * (0.7F + ((CraftWorld)world).getHandle().random.nextFloat() * 0.6F); - - d0 = event.getLocation().getX(); - d1 = event.getLocation().getY(); - d2 = event.getLocation().getZ(); - - for (float f2 = 0.3F; f1 > 0.0F; f1 -= f2 * 0.75F) - { - int l = MathHelper.floor(d0); - int i1 = MathHelper.floor(d1); - int j1 = MathHelper.floor(d2); - int k1 = world.getBlockTypeIdAt(l, i1, j1); - - if (k1 > 0 && k1 != 8 && k1 != 9 && k1 != 10 && k1 != 11) - { - f1 -= (net.minecraft.server.v1_6_R3.Block.byId[k1].a(((CraftEntity)event.getEntity()).getHandle()) + 0.3F) * f2; - } - - if (f1 > 0.0F && i1 < 256 && i1 >= 0 && k1 != 8 && k1 != 9 && k1 != 10 && k1 != 11) - { - org.bukkit.block.Block block = world.getBlockAt(l, i1, j1); - - if (block.getType() != org.bukkit.Material.AIR && !event.blockList().contains(block)) - { - event.blockList().add(block); - } - } - - d0 += d3 * (double) f2; - d1 += d4 * (double) f2; - d2 += d5 * (double) f2; - } - } - } - } - } - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ZombieSpeedUtil.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ZombieSpeedUtil.java deleted file mode 100644 index 1835c256a..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/utils/ZombieSpeedUtil.java +++ /dev/null @@ -1,49 +0,0 @@ -package nautilus.minecraft.core.utils; - -import java.lang.reflect.Field; - -import net.minecraft.server.v1_6_R3.*; - -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftZombie; -import org.bukkit.event.EventHandler; -import org.bukkit.event.entity.CreatureSpawnEvent; - -public class ZombieSpeedUtil -{ - @EventHandler - public void onCreatureSpawn(CreatureSpawnEvent event) - { - if (event.getEntity() instanceof CraftZombie) - { - EntityZombie zombie = ((CraftZombie)event.getEntity()).getHandle(); - - try - { - Field metadataField = EntityInsentient.class.getDeclaredField("goalSelector"); - metadataField.setAccessible(true); - - // Original speed is .23F - float modifier = 1.5F; - float modifiedSpeed = 0.23F * modifier; - - PathfinderGoalSelector goalSelector = new PathfinderGoalSelector(zombie.world != null && zombie.world.methodProfiler != null ? zombie.world.methodProfiler : null); - goalSelector.a(0, new PathfinderGoalFloat(zombie)); - goalSelector.a(1, new PathfinderGoalBreakDoor(zombie)); - goalSelector.a(2, new PathfinderGoalMeleeAttack(zombie, EntityHuman.class, modifiedSpeed, false)); - goalSelector.a(3, new PathfinderGoalMeleeAttack(zombie, EntityVillager.class, modifiedSpeed, true)); - goalSelector.a(4, new PathfinderGoalMoveTowardsRestriction(zombie, 0.23F)); - goalSelector.a(5, new PathfinderGoalMoveThroughVillage(zombie, 0.23F, false)); - goalSelector.a(6, new PathfinderGoalRandomStroll(zombie, 0.23F)); - goalSelector.a(7, new PathfinderGoalLookAtPlayer(zombie, EntityHuman.class, 8.0F)); - goalSelector.a(7, new PathfinderGoalRandomLookaround(zombie)); - - metadataField.set(zombie, goalSelector); - } - catch (Exception e) - { - System.out.println("Unable to modify goal selector"); - e.printStackTrace(); - } - } - } -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/GameClassWikiToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/GameClassWikiToken.java deleted file mode 100644 index 730e61ea2..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/GameClassWikiToken.java +++ /dev/null @@ -1,8 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -import java.util.List; - -public class GameClassWikiToken -{ - public List Revisions; -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ItemWikiToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ItemWikiToken.java deleted file mode 100644 index 18ce88294..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ItemWikiToken.java +++ /dev/null @@ -1,11 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -import java.util.List; - -public class ItemWikiToken -{ - public short TypeId; - public short Data; - - public List Revisions; -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ServerWikiToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ServerWikiToken.java deleted file mode 100644 index 741a5fb73..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/ServerWikiToken.java +++ /dev/null @@ -1,11 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -import java.util.List; - -public class ServerWikiToken -{ - public List GameClassWikis; - public List ItemWikis; - public List SkillWikis; - public List WeaponWikis; -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/SkillWikiToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/SkillWikiToken.java deleted file mode 100644 index 360a974b1..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/SkillWikiToken.java +++ /dev/null @@ -1,8 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -import java.util.List; - -public class SkillWikiToken -{ - public List Revisions; -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WeaponWikiToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WeaponWikiToken.java deleted file mode 100644 index 66b1fb407..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WeaponWikiToken.java +++ /dev/null @@ -1,8 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -import java.util.List; - -public class WeaponWikiToken -{ - public List Revisions; -} diff --git a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WikiRevisionToken.java b/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WikiRevisionToken.java deleted file mode 100644 index 2f607a7d1..000000000 --- a/Plugins/Nautilus.Core/src/nautilus/minecraft/core/webserver/token/Wiki/WikiRevisionToken.java +++ /dev/null @@ -1,10 +0,0 @@ -package nautilus.minecraft.core.webserver.token.Wiki; - -public class WikiRevisionToken -{ - public String Title; - public String Body; - public int Revision; - public String Author; - public long SystemTime; -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/.classpath b/Plugins/Nautilus.Game.CaptureThePig/.classpath deleted file mode 100644 index fca7cbebb..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/.classpath +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/Plugins/Nautilus.Game.CaptureThePig/.externalToolBuilders/CaptureThePig.launch b/Plugins/Nautilus.Game.CaptureThePig/.externalToolBuilders/CaptureThePig.launch deleted file mode 100644 index e9baad9df..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/.externalToolBuilders/CaptureThePig.launch +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Plugins/Nautilus.Game.CaptureThePig/.settings/org.eclipse.jdt.core.prefs b/Plugins/Nautilus.Game.CaptureThePig/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 7341ab168..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/Plugins/Nautilus.Game.CaptureThePig/CaptureThePig.xml b/Plugins/Nautilus.Game.CaptureThePig/CaptureThePig.xml deleted file mode 100644 index bd6fff0bc..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/CaptureThePig.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Plugins/Nautilus.Game.CaptureThePig/plugin.yml b/Plugins/Nautilus.Game.CaptureThePig/plugin.yml deleted file mode 100644 index 5757697a4..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/plugin.yml +++ /dev/null @@ -1,3 +0,0 @@ -name: CaptureThePig -main: nautilus.game.capturethepig.CaptureThePig -version: 0.1 diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/CaptureThePig.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/CaptureThePig.java deleted file mode 100644 index 36dedc85e..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/CaptureThePig.java +++ /dev/null @@ -1,56 +0,0 @@ -package nautilus.game.capturethepig; - -import org.bukkit.entity.Player; - -import me.chiss.Core.PlayerTagNamer.INameColorer; -import me.chiss.Core.Plugin.IRelation; -import mineplex.core.chat.Chat; -import nautilus.game.capturethepig.arena.CaptureThePigArenaParser; -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.engine.CaptureThePigGameEngine; -import nautilus.game.capturethepig.engine.CaptureThePigNotifier; -import nautilus.game.capturethepig.repository.CaptureThePigRepository; -import nautilus.game.capturethepig.repository.ICaptureThePigRepository; -import nautilus.game.core.GamePlugin; -import nautilus.game.core.arena.ArenaManager; - -public class CaptureThePig extends GamePlugin -{ - private ICaptureThePigRepository _repository; - private CaptureThePigGameEngine _gameEngine; - - @Override - public void onEnable() - { - super.onEnable(); - - _gameEngine = new CaptureThePigGameEngine(this, HubConnection, ClientManager, DonationManager, ClassManager, ConditionManager, Energy, NpcManager, - new CaptureThePigNotifier(this), new ArenaManager(this, "CaptureThePig", new CaptureThePigArenaParser()), getServer().getWorlds().get(0)); - - new Chat(this, ClientManager, _gameEngine); - } - - @Override - public String GetServerName() - { - return "CTP"; - } - - @Override - public boolean CanHurt(Player a, Player b) - { - return _gameEngine.CanHurt(a, b); - } - - @Override - public boolean CanHurt(String a, String b) - { - return _gameEngine.CanHurt(a, b); - } - - @Override - public boolean IsSafe(Player a) - { - return _gameEngine.IsSafe(a); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArena.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArena.java deleted file mode 100644 index 36ccb5418..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArena.java +++ /dev/null @@ -1,58 +0,0 @@ -package nautilus.game.capturethepig.arena; - -import org.bukkit.Location; -import org.bukkit.util.Vector; - -import nautilus.game.core.arena.Region; -import nautilus.game.core.arena.TeamArena; - -public class CaptureThePigArena extends TeamArena implements ICaptureThePigArena -{ - private Region _redPigPen; - private Region _bluePigPen; - - private Location _pigSpawnPoint; - - public CaptureThePigArena(String name) - { - super(name); - } - - @Override - public Region GetRedPigPen() - { - return _redPigPen; - } - - @Override - public Region GetBluePigPen() - { - return _bluePigPen; - } - - @Override - public Location GetPigSpawnPoint() - { - return _pigSpawnPoint; - } - - @Override - public void SetRedPigPen(Region pen) - { - Regions.add(pen); - _redPigPen = pen; - } - - @Override - public void SetBluePigPen(Region pen) - { - Regions.add(pen); - _bluePigPen = pen; - } - - @Override - public void SetPigSpawnPoint(Vector location) - { - _pigSpawnPoint = new Location(World, location.getX(), location.getY(), location.getZ()); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArenaParser.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArenaParser.java deleted file mode 100644 index dd78ce28d..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/CaptureThePigArenaParser.java +++ /dev/null @@ -1,88 +0,0 @@ -package nautilus.game.capturethepig.arena; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.util.HashMap; - -import nautilus.game.capturethepig.arena.property.*; -import nautilus.game.core.arena.IArenaParser; -import nautilus.game.core.arena.property.*; - -public class CaptureThePigArenaParser implements IArenaParser -{ - private HashMap> _properties; - - public CaptureThePigArenaParser() - { - _properties = new HashMap>(); - - AddProperty(new MapName()); - AddProperty(new BorderProperty()); - AddProperty(new Center()); - AddProperty(new Offset()); - AddProperty(new RedSpawnPoints()); - AddProperty(new RedSpawnRoom()); - AddProperty(new BlueSpawnPoints()); - AddProperty(new BlueSpawnRoom()); - - AddProperty(new RedPigPen()); - AddProperty(new BluePigPen()); - AddProperty(new PigSpawnLocation()); - } - - @Override - public ICaptureThePigArena Parse(String worldPath, FileReader fileReader) - { - try - { - ICaptureThePigArena arena = new CaptureThePigArena(worldPath.substring(worldPath.lastIndexOf(File.separator) + 1, worldPath.length())); - - BufferedReader input = new BufferedReader(fileReader); - String line = input.readLine(); - - while(line != null) - { - if(line.startsWith("#")) - { - line = input.readLine(); - continue; - } - - String[] parts = line.split(":"); - - if(parts.length < 2) - { - line = input.readLine(); - continue; - } - - String key = parts[0]; - String value = parts[1].toLowerCase().trim(); - - if (_properties.containsKey(key.toLowerCase())) - { - _properties.get(key.toLowerCase()).Parse(arena, value); - } - else - { - System.out.println("Invalid property found: " + key); - } - - line = input.readLine(); - } - - return arena; - } - catch(Exception ex) - { - System.out.println("An exception was thrown:" + ex.getMessage()); - } - - return null; - } - - private void AddProperty(IProperty property) - { - _properties.put(property.GetName(), property); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/ICaptureThePigArena.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/ICaptureThePigArena.java deleted file mode 100644 index a1f68e4a1..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/ICaptureThePigArena.java +++ /dev/null @@ -1,20 +0,0 @@ -package nautilus.game.capturethepig.arena; - -import org.bukkit.Location; -import org.bukkit.util.Vector; - -import nautilus.game.core.arena.ITeamArena; -import nautilus.game.core.arena.Region; - -public interface ICaptureThePigArena extends ITeamArena -{ - Region GetRedPigPen(); - Region GetBluePigPen(); - - Location GetPigSpawnPoint(); - - void SetRedPigPen(Region pen); - void SetBluePigPen(Region pen); - - void SetPigSpawnPoint(Vector location); -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/BluePigPen.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/BluePigPen.java deleted file mode 100644 index d775920e1..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/BluePigPen.java +++ /dev/null @@ -1,20 +0,0 @@ -package nautilus.game.capturethepig.arena.property; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.core.arena.property.RegionPropertyBase; - -public class BluePigPen extends RegionPropertyBase -{ - public BluePigPen() - { - super("bluepigpen"); - } - - @Override - public boolean Parse(ICaptureThePigArena arena, String value) - { - arena.SetBluePigPen(ParseRegion(value)); - - return true; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/PigSpawnLocation.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/PigSpawnLocation.java deleted file mode 100644 index 943a1a90d..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/PigSpawnLocation.java +++ /dev/null @@ -1,19 +0,0 @@ -package nautilus.game.capturethepig.arena.property; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.core.arena.property.PropertyBase; - -public class PigSpawnLocation extends PropertyBase -{ - public PigSpawnLocation() - { - super("pigspawnlocation"); - } - - public boolean Parse(ICaptureThePigArena arena, String value) - { - arena.SetPigSpawnPoint(ParseVector(value)); - - return true; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/RedPigPen.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/RedPigPen.java deleted file mode 100644 index e617ddf5f..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/arena/property/RedPigPen.java +++ /dev/null @@ -1,20 +0,0 @@ -package nautilus.game.capturethepig.arena.property; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.core.arena.property.RegionPropertyBase; - -public class RedPigPen extends RegionPropertyBase -{ - public RedPigPen() - { - super("redpigpen"); - } - - @Override - public boolean Parse(ICaptureThePigArena arena, String value) - { - arena.SetRedPigPen(ParseRegion(value)); - - return true; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigGameEngine.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigGameEngine.java deleted file mode 100644 index d23bbbb67..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigGameEngine.java +++ /dev/null @@ -1,258 +0,0 @@ -package nautilus.game.capturethepig.engine; - -import mineplex.minecraft.game.classcombat.Class.ClassManager; - -import mineplex.minecraft.game.core.combat.event.CombatDeathEvent; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; -import mineplex.minecraft.game.core.condition.ConditionManager; -import mineplex.minecraft.game.core.damage.CustomDamageEvent; -import me.chiss.Core.Plugin.IPlugin; -import mineplex.core.account.CoreClientManager; -import mineplex.core.donation.DonationManager; -import mineplex.core.energy.Energy; -import mineplex.core.npc.NpcManager; -import mineplex.core.recharge.Recharge; -import mineplex.core.server.ServerTalker; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.event.*; -import nautilus.game.capturethepig.game.CaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.capturethepig.repository.ICaptureThePigRepository; -import nautilus.game.capturethepig.scoreboard.CaptureThePigScoreHandler; -import nautilus.game.capturethepig.scoreboard.ICaptureThePigScoreHandler; -import nautilus.game.capturethepig.stats.CaptureThePigStatsReporter; -import nautilus.game.core.arena.ArenaManager; -import nautilus.game.core.engine.TeamGameEngine; - -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Pig; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class CaptureThePigGameEngine extends TeamGameEngine -{ - public CaptureThePigGameEngine(JavaPlugin plugin, ServerTalker hubConnection, CoreClientManager clientManager, DonationManager donationManager, ClassManager classManager, - ConditionManager conditionManager, Energy energy, NpcManager npcManager, CaptureThePigNotifier notifier, ArenaManager arenaManager, World world, Location spawnLocation, String webServerAddress) - { - super(plugin, hubConnection, clientManager, donationManager, classManager, conditionManager, energy, npcManager, arenaManager, new CaptureThePigScoreHandler(plugin, notifier), world, spawnLocation); - - new CaptureThePigStatsReporter(plugin, this, webServerAddress); - - TeamSize = 50; - MinQueuePlayersToStart = 1; - TimeToStart = 0; - AddToActiveGame = true; - BroadcastQueueJoinMessage = false; - } - - @Override - public void ActivateGame(ICaptureThePigGame game, ICaptureThePigArena arena) - { - super.ActivateGame(game, arena); - - for (ICaptureThePigPlayer dominatePlayer : game.GetPlayers()) - { - GameShop.ResetShopFor(dominatePlayer.GetPlayer()); - } - } - - @Override - public ICaptureThePigGame ScheduleNewGame() - { - return Scheduler.ScheduleNewGame(new CaptureThePigGame(Plugin, PlayerNamer.PacketHandler)); - } - - @Override - public String GetGameType() - { - return "Capture The Pig"; - } - - @EventHandler(priority = EventPriority.LOWEST) - public void TransferDamageToOwner(EntityDamageByEntityEvent event) - { - if (event.getEntity() instanceof Pig && event.getEntity().isInsideVehicle()) - { - EntityDamageByEntityEvent newEvent = new EntityDamageByEntityEvent(event.getDamager(), event.getEntity().getVehicle(), event.getCause(), event.getDamage()); - Plugin.getServer().getPluginManager().callEvent(newEvent); - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void DisableDamageToPig(CustomDamageEvent event) - { - if (event.GetDamageeEntity() != null && event.GetDamageeEntity() instanceof Pig) - { - event.SetCancelled("Don't harm dat pig!"); - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void PlayerDeath(CombatDeathEvent event) - { - if (event.GetEvent().getEntity() == null || !(event.GetEvent().getEntity() instanceof Player)) - return; - - Player player = (Player)event.GetEvent().getEntity(); - - if (!IsPlayerInActiveGame(player)) - return; - - ICaptureThePigGame game = GetGameForPlayer(player); - - if (!game.HasStarted()) - return; - - ICaptureThePigPlayer gamePlayer = game.GetPlayer(player); - ICaptureThePigTeam playerTeam = gamePlayer.GetTeam(); - - if (player.getPassenger() != null) - { - if (player.getPassenger() instanceof Pig) - { - RemovePigShuttle(gamePlayer); - - Plugin.getServer().getPluginManager().callEvent(new PigDroppedEvent(game, playerTeam)); - } - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onCTPPlayerInteractEntity(PlayerInteractEntityEvent event) - { - if (event.isCancelled() || !(event.getRightClicked() instanceof Pig)) - return; - - if (!IsPlayerInActiveGame(event.getPlayer())) - return; - - ICaptureThePigGame game = GetGameForPlayer(event.getPlayer()); - - if (!game.HasStarted()) - return; - - if (event.getRightClicked().isInsideVehicle() || event.getPlayer().getPassenger() != null && event.getPlayer().getPassenger() instanceof Pig) - return; - - ICaptureThePigPlayer player = game.GetPlayer(event.getPlayer()); - ICaptureThePigTeam playerTeam = player.GetTeam(); - ICaptureThePigTeam otherTeam = player.GetTeam() == game.GetRedTeam() ? game.GetBlueTeam() : game.GetRedTeam(); - - if (player.IsDead() || player.IsSpectating()) - return; - - if (otherTeam.GetPigPen().Contains(event.getRightClicked().getLocation().toVector())) - { - if (otherTeam.HasPig() && Recharge.Instance.use(player.GetPlayer(), "Pig Steal", 10000, true)) - { - CreatePigShuttle(player, otherTeam.RemovePig()); - - Plugin.getServer().getPluginManager().callEvent(new PigStolenEvent(game, player, otherTeam)); - } - } - else if (!playerTeam.HasPig()) - { - if (playerTeam.GetPig() == event.getRightClicked()) - playerTeam.ReturnPig(); - else - { - CreatePigShuttle(player, event.getRightClicked()); - Plugin.getServer().getPluginManager().callEvent(new PigPickedUpEvent(game, playerTeam)); - } - } - - event.setCancelled(true); - } - - @EventHandler - public void DropPig(PlayerCommandPreprocessEvent event) - { - if (event.isCancelled()) - return; - - if (!IsPlayerInActiveGame(event.getPlayer())) - return; - - if (event.getMessage().startsWith("/drop")) - { - ICaptureThePigGame game = GetGameForPlayer(event.getPlayer()); - - if (!game.HasStarted()) - return; - - ICaptureThePigPlayer player = game.GetPlayer(event.getPlayer()); - ICaptureThePigTeam playerTeam = player.GetTeam(); - - if (player.GetPlayer().getPassenger() != null) - { - if (player.GetPlayer().getPassenger() instanceof Pig) - { - RemovePigShuttle(player); - - Plugin.getServer().getPluginManager().callEvent(new PigDroppedEvent(game, playerTeam)); - - event.setCancelled(true); - } - } - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onCTPPlayerQuit(PlayerQuitEvent event) - { - if (!IsPlayerInActiveGame(event.getPlayer())) - return; - - ICaptureThePigGame game = GetGameForPlayer(event.getPlayer()); - - if (!game.HasStarted()) - return; - - ICaptureThePigPlayer player = game.GetPlayer(event.getPlayer()); - ICaptureThePigTeam playerTeam = player.GetTeam(); - - if (player.GetPlayer().getPassenger() != null) - { - if (player.GetPlayer().getPassenger() instanceof Pig) - { - RemovePigShuttle(player); - - Plugin.getServer().getPluginManager().callEvent(new PigDroppedEvent(game, playerTeam)); - } - } - } - - private void CreatePigShuttle(ICaptureThePigPlayer player, Entity removePig) - { - ConditionManager.Factory().Slow("Pig", player.GetPlayer(), player.GetPlayer(), 7200, 0, false, false, false, false); - - ConditionManager.SetIndicatorVisibility(player.GetPlayer(), false); - - player.GetPlayer().eject(); - player.GetPlayer().setPassenger(removePig); - } - - private Pig RemovePigShuttle(ICaptureThePigPlayer player) - { - Entity pig = player.GetPlayer().getPassenger(); - player.GetPlayer().eject(); - - ConditionManager.EndCondition(player.GetPlayer(), ConditionType.SLOW, "Pig"); - ConditionManager.Factory().Vulnerable("Pig", player.GetPlayer(), player.GetPlayer(), 2, 0, false, false, false); - - ConditionManager.SetIndicatorVisibility(player.GetPlayer(), true); - - return (Pig)pig; - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigNotifier.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigNotifier.java deleted file mode 100644 index 6fc08f00c..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/engine/CaptureThePigNotifier.java +++ /dev/null @@ -1,77 +0,0 @@ -package nautilus.game.capturethepig.engine; - -import org.bukkit.Sound; -import org.bukkit.event.EventHandler; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.event.PigCapturedEvent; -import nautilus.game.capturethepig.event.PigDroppedEvent; -import nautilus.game.capturethepig.event.PigPickedUpEvent; -import nautilus.game.capturethepig.event.PigStolenEvent; -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.notifier.TeamPlayerNotifier; -import me.chiss.Core.Plugin.IPlugin; - -public class CaptureThePigNotifier extends TeamPlayerNotifier -{ - public CaptureThePigNotifier(IPlugin plugin) - { - super(plugin, "CTP"); - } - - @EventHandler - public void OnPigCaptured(PigCapturedEvent event) - { - ICaptureThePigTeam ownerTeam = event.GetCapturer().GetTeam(); - - BroadcastMessageToPlayers("Your team has captured a pig!", ownerTeam.GetPlayers()); - - for (ICaptureThePigPlayer player : ownerTeam.GetPlayers()) - { - player.playSound(player.getLocation(), Sound.ZOMBIE_METAL, .8F, 0F); - } - - BroadcastMessageToOtherGamePlayers(event.GetGame(), GetTeamString(event.GetCapturer().GetTeam()) + " captured a pig!", ownerTeam.GetPlayers()); - - for (ICaptureThePigPlayer player : ownerTeam.GetPlayers()) - { - player.playSound(player.getLocation(), Sound.BLAZE_DEATH, .8F, 0F); - } - } - - @EventHandler - public void OnPigPickedUp(PigPickedUpEvent event) - { - for (ICaptureThePigPlayer player : event.GetTeamOwner().GetPlayers()) - { - player.playSound(player.getLocation(), Sound.PIG_IDLE, 3F, 1F); - } - } - - @EventHandler - public void OnPigDropped(PigDroppedEvent event) - { - for (ICaptureThePigPlayer player : event.GetPreviousTeamOwner().GetPlayers()) - { - player.playSound(player.getLocation(), Sound.ZOMBIE_PIG_HURT, .4F, 0F); - } - } - - @EventHandler - public void OnPigStolen(PigStolenEvent event) - { - for (ICaptureThePigPlayer player : event.GetPreviousTeamOwner().GetPlayers()) - { - player.playSound(player.getLocation(), Sound.GHAST_SCREAM, 1F, .5F); - } - - BroadcastMessageToOtherGamePlayers(event.GetGame(), "Your pigs are being stolen!", event.GetThief().GetTeam().GetPlayers()); - - for (ICaptureThePigPlayer player : event.GetThief().GetTeam().GetPlayers()) - { - player.playSound(player.getLocation(), Sound.ZOMBIE_PIG_IDLE, 3F, 1F); - } - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigCapturedEvent.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigCapturedEvent.java deleted file mode 100644 index b8238ad16..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigCapturedEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package nautilus.game.capturethepig.event; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; - -public class PigCapturedEvent extends PigEvent -{ - private ICaptureThePigPlayer _capturer; - - public PigCapturedEvent(ICaptureThePigGame game, ICaptureThePigPlayer capturer) - { - super(game); - - _capturer = capturer; - } - - public ICaptureThePigPlayer GetCapturer() - { - return _capturer; - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigDroppedEvent.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigDroppedEvent.java deleted file mode 100644 index 7d1dd1936..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigDroppedEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package nautilus.game.capturethepig.event; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; - -public class PigDroppedEvent extends PigEvent -{ - private ICaptureThePigTeam _previousTeamOwner; - - public PigDroppedEvent(ICaptureThePigGame game, ICaptureThePigTeam previousTeamOwner) - { - super(game); - - _previousTeamOwner = previousTeamOwner; - } - - public ICaptureThePigTeam GetPreviousTeamOwner() - { - return _previousTeamOwner; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigEvent.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigEvent.java deleted file mode 100644 index ed2b582c8..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigEvent.java +++ /dev/null @@ -1,12 +0,0 @@ -package nautilus.game.capturethepig.event; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.core.events.GameEvent; - -public class PigEvent extends GameEvent -{ - public PigEvent(ICaptureThePigGame game) - { - super(game); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigPickedUpEvent.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigPickedUpEvent.java deleted file mode 100644 index 2334cdf2d..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigPickedUpEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package nautilus.game.capturethepig.event; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; - -public class PigPickedUpEvent extends PigEvent -{ - private ICaptureThePigTeam _teamOwner; - - public PigPickedUpEvent(ICaptureThePigGame game, ICaptureThePigTeam teamOwner) - { - super(game); - - _teamOwner = teamOwner; - } - - public ICaptureThePigTeam GetTeamOwner() - { - return _teamOwner; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigStolenEvent.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigStolenEvent.java deleted file mode 100644 index 1a6165281..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/event/PigStolenEvent.java +++ /dev/null @@ -1,29 +0,0 @@ -package nautilus.game.capturethepig.event; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; - -public class PigStolenEvent extends PigEvent -{ - private ICaptureThePigPlayer _thief; - private ICaptureThePigTeam _previousTeamOwner; - - public PigStolenEvent(ICaptureThePigGame game, ICaptureThePigPlayer thief, ICaptureThePigTeam previousTeamOwner) - { - super(game); - - _thief = thief; - _previousTeamOwner = previousTeamOwner; - } - - public ICaptureThePigPlayer GetThief() - { - return _thief; - } - - public ICaptureThePigTeam GetPreviousTeamOwner() - { - return _previousTeamOwner; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigGame.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigGame.java deleted file mode 100644 index c08f19b62..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigGame.java +++ /dev/null @@ -1,254 +0,0 @@ -package nautilus.game.capturethepig.game; - -import java.util.AbstractMap; -import java.util.Iterator; -import java.util.Map.Entry; - -import me.chiss.Core.Condition.Condition.ConditionType; -import me.chiss.Core.PlayerTagNamer.PacketHandler; -import me.chiss.Core.Plugin.IPlugin; -import mineplex.core.common.util.NautHashMap; -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.event.PigCapturedEvent; -import nautilus.game.capturethepig.player.CaptureThePigPlayer; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.capturethepig.scoreboard.CaptureThePigTabScoreboard; -import nautilus.game.core.engine.TeamType; -import nautilus.game.core.events.team.TeamGameFinishedEvent; -import nautilus.game.core.game.TeamGame; -import net.minecraft.server.v1_6_R3.EntityCreature; -import net.minecraft.server.v1_6_R3.EntityPlayer; -import net.minecraft.server.v1_6_R3.Packet201PlayerInfo; -import net.minecraft.server.v1_6_R3.RandomPositionGenerator; -import net.minecraft.server.v1_6_R3.Vec3D; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCreature; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPig; -import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Pig; -import org.bukkit.entity.Player; - -public class CaptureThePigGame extends TeamGame implements ICaptureThePigGame -{ - private CaptureThePigTabScoreboard _scoreboard; - - private int _lastUpdate; - - private NautHashMap _crazyPigs; - private NautHashMap> _capturedPigs; - - public CaptureThePigGame(IPlugin plugin, PacketHandler packetHandler) - { - super(plugin); - - ScoreLimit = 5; - _scoreboard = new CaptureThePigTabScoreboard(plugin, packetHandler, this); - _crazyPigs = new NautHashMap(); - _capturedPigs = new NautHashMap>(); - } - - @Override - protected ICaptureThePigTeam CreateTeam(TeamType teamType) - { - return new CaptureThePigTeam(teamType); - } - - @Override - protected ICaptureThePigPlayer CreateGamePlayer(Player player, int playerLives) - { - return new CaptureThePigPlayer(Plugin.GetPlugin(), player); - } - - @Override - public void Activate(ICaptureThePigArena arena) - { - super.Activate(arena); - - RedTeam.SetPigPen(arena.GetRedPigPen()); - BlueTeam.SetPigPen(arena.GetBluePigPen()); - - - RedTeam.SpawnPig((Pig)Plugin.GetCreature().SpawnEntity(RedTeam.GetPigPen().GetMidPoint().toLocation(arena.GetWorld()), EntityType.PIG)); - BlueTeam.SpawnPig((Pig)Plugin.GetCreature().SpawnEntity(BlueTeam.GetPigPen().GetMidPoint().toLocation(arena.GetWorld()), EntityType.PIG)); - - _scoreboard.Update(); - } - - @Override - public void Deactivate() - { - _scoreboard.Stop(); - - for (ICaptureThePigPlayer gamePlayer : Players.values()) - { - EntityPlayer entityPlayer = ((CraftPlayer)gamePlayer.GetPlayer()).getHandle(); - - for (Player player : Bukkit.getServer().getOnlinePlayers()) - { - entityPlayer.playerConnection.sendPacket(new Packet201PlayerInfo(player.getName(), true, 0)); - } - - if (!gamePlayer.isOnline()) - { - for (ICaptureThePigPlayer otherPlayer : Players.values()) - { - EntityPlayer otherEntityPlayer = ((CraftPlayer)otherPlayer.GetPlayer()).getHandle(); - otherEntityPlayer.playerConnection.sendPacket(new Packet201PlayerInfo(otherPlayer.getName(), false, 0)); - } - } - } - - for (ICaptureThePigPlayer gamePlayer : Spectators.values()) - { - EntityPlayer entityPlayer = ((CraftPlayer)gamePlayer.GetPlayer()).getHandle(); - - for (Player player : Bukkit.getServer().getOnlinePlayers()) - { - entityPlayer.playerConnection.sendPacket(new Packet201PlayerInfo(player.getName(), true, 0)); - } - } - - _scoreboard = null; - - super.Deactivate(); - } - - @Override - public void Update() - { - super.Update(); - - for (ICaptureThePigPlayer player : GetPlayers()) - { - if (player.GetPlayer().getPassenger() instanceof Pig) - { - if (player.GetTeam().GetPigPen().Contains(player.getLocation().toVector())) - { - if (player.GetTeam().HasPig()) - { - Pig pig = (Pig)player.GetPlayer().getPassenger(); - Plugin.GetPlugin().getServer().getPluginManager().callEvent(new PigCapturedEvent(this, player)); - _capturedPigs.put(pig, new AbstractMap.SimpleEntry(player.GetTeam().GetPig(), 0)); - player.GetPlayer().eject(); - player.GetTeam().CapturePig(pig); - - Plugin.GetCondition().EndCondition(player.GetPlayer(), ConditionType.SLOW, "Pig"); - Plugin.GetCondition().Factory().Vulnerable("Pig", player.GetPlayer(), player.GetPlayer(), 2, 0, false, false); - } - } - } - } - - UpdateCapturedPigs(); - UpdateCrazyPigs(); - - if (_lastUpdate % 10 == 0) - { - _scoreboard.Update(); - } - - _lastUpdate++; - - if (RedTeam.GetScore() >= ScoreLimit) - { - RedTeam.SetScore(ScoreLimit); - StopGame(); - Plugin.GetPlugin().getServer().getPluginManager().callEvent(new TeamGameFinishedEvent(this, RedTeam)); - _scoreboard.Update(); - } - else if (BlueTeam.GetScore() >= ScoreLimit) - { - BlueTeam.SetScore(ScoreLimit); - StopGame(); - Plugin.GetPlugin().getServer().getPluginManager().callEvent(new TeamGameFinishedEvent(this, BlueTeam)); - _scoreboard.Update(); - } - } - - public void AddCrazyPig(Pig pig) - { - _crazyPigs.put(pig, _lastUpdate); - } - - private void UpdateCapturedPigs() - { - Iterator>> capturedPigIterator = _capturedPigs.entrySet().iterator(); - - while (capturedPigIterator.hasNext()) - { - Entry> entry = capturedPigIterator.next(); - Pig pig = entry.getKey(); - Pig mate = entry.getValue().getKey(); - int capturedTicks = entry.getValue().getValue(); - - if (capturedTicks > 9) - { - capturedPigIterator.remove(); - ((Pig)Plugin.GetCreature().SpawnEntity(pig.getLocation(), EntityType.PIG)).setBaby(); - - if (RedTeam.HasPig()) - BlueTeam.SpawnPig((Pig)Plugin.GetCreature().SpawnEntity(pig.getLocation(), EntityType.PIG)); - else - RedTeam.SpawnPig((Pig)Plugin.GetCreature().SpawnEntity(pig.getLocation(), EntityType.PIG)); - - pig.remove(); - System.out.println("Had baby and spawned new pig."); - } - else - { - double aX = ((CraftPig)pig).getHandle().locX; - double aY = ((CraftPig)pig).getHandle().locY; - double aZ = ((CraftPig)pig).getHandle().locZ; - - double bX = ((CraftPig)mate).getHandle().locX; - double bY = ((CraftPig)mate).getHandle().locY; - double bZ = ((CraftPig)mate).getHandle().locZ; - - EntityCreature ec = ((CraftCreature)pig).getHandle(); - ec.getNavigation().a(bX + .5, bY, bZ + .5, .38f); - - ec = ((CraftCreature)mate).getHandle(); - ec.getNavigation().a(aX - .5, aY, aZ - .5, .38f); - - System.out.println("Spinning"); - } - } - - for (Pig key : _capturedPigs.keySet()) - { - _capturedPigs.get(key).setValue(_capturedPigs.get(key).getValue() + 1); - } - } - - private void UpdateCrazyPigs() - { - Iterator> crazyPigIterator = _crazyPigs.entrySet().iterator(); - - while (crazyPigIterator.hasNext()) - { - Entry entry = crazyPigIterator.next(); - Pig pig = entry.getKey(); - int crazyTicks = entry.getValue(); - EntityCreature pigCreature = ((CraftPig)pig).getHandle(); - - if (crazyTicks > 4) - crazyPigIterator.remove(); - else - { - Vec3D vec3d = RandomPositionGenerator.a(pigCreature, 5, 4); - - if (vec3d != null) - { - pigCreature.getNavigation().a(vec3d.c, vec3d.d, vec3d.e, 0.5F); - } - } - } - - for (Pig key : _crazyPigs.keySet()) - { - _crazyPigs.put(key, _crazyPigs.get(key) + 1); - } - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigTeam.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigTeam.java deleted file mode 100644 index 3ad2d57d2..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/CaptureThePigTeam.java +++ /dev/null @@ -1,90 +0,0 @@ -package nautilus.game.capturethepig.game; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Pig; -import org.bukkit.util.Vector; - -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.arena.Region; -import nautilus.game.core.engine.TeamType; -import nautilus.game.core.game.Team; - -public class CaptureThePigTeam extends Team implements ICaptureThePigTeam -{ - private Region _pigPen; - private Pig _pig; - - private boolean _hasPig = false; - - public CaptureThePigTeam(TeamType teamType) - { - super(teamType); - } - - @Override - public void AddPlayer(ICaptureThePigPlayer player) - { - player.SetTeam(this); - Players.add(player); - } - - @Override - public Region GetPigPen() - { - return _pigPen; - } - - @Override - public void SetPigPen(Region pigPen) - { - _pigPen = pigPen; - } - - @Override - public void CapturePig(Entity pig) - { - Vector mid = _pigPen.GetMidPoint(); - pig.teleport(new Location(pig.getWorld(), mid.getBlockX() + .5, _pigPen.GetMinimumPoint().getBlockY(), mid.getBlockZ() + .5)); - _pig.teleport(new Location(pig.getWorld(), mid.getBlockX() + .5, _pigPen.GetMinimumPoint().getBlockY(), mid.getBlockZ() + .5)); - } - - @Override - public boolean HasPig() - { - return _hasPig; - } - - @Override - public void ReturnPig() - { - _hasPig = true; - Vector mid = _pigPen.GetMidPoint(); - _pig.teleport(new Location(_pig.getWorld(), mid.getBlockX() + .5, _pigPen.GetMinimumPoint().getBlockY(), mid.getBlockZ() + .5)); - } - - @Override - public Entity RemovePig() - { - _hasPig = false; - return _pig; - } - - @Override - public void SpawnPig(Pig pig) - { - _hasPig = true; - _pig = pig; - Vector mid = _pigPen.GetMidPoint(); - _pig.teleport(new Location(pig.getWorld(), mid.getBlockX() + .5, _pigPen.GetMinimumPoint().getBlockY(), mid.getBlockZ() + .5)); - _pig.setCustomName(Enum.valueOf(ChatColor.class, GetTeamType().toString().toUpperCase()) + GetTeamType().toString()); - _pig.setCustomNameVisible(true); - } - - @Override - public Pig GetPig() - { - return _pig; - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigGame.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigGame.java deleted file mode 100644 index e20bcb90e..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigGame.java +++ /dev/null @@ -1,10 +0,0 @@ -package nautilus.game.capturethepig.game; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.game.ITeamGame; - -public interface ICaptureThePigGame extends ITeamGame -{ - -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigTeam.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigTeam.java deleted file mode 100644 index 60e1f64e7..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/game/ICaptureThePigTeam.java +++ /dev/null @@ -1,20 +0,0 @@ -package nautilus.game.capturethepig.game; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Pig; - -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.arena.Region; -import nautilus.game.core.engine.ITeam; - -public interface ICaptureThePigTeam extends ITeam -{ - Region GetPigPen(); - void SetPigPen(Region pigPen); - void CapturePig(Entity pig); - Entity RemovePig(); - void ReturnPig(); - boolean HasPig(); - void SpawnPig(Pig pig); - Pig GetPig(); -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/CaptureThePigPlayer.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/CaptureThePigPlayer.java deleted file mode 100644 index 9d568c4ca..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/CaptureThePigPlayer.java +++ /dev/null @@ -1,30 +0,0 @@ -package nautilus.game.capturethepig.player; - -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.core.player.TeamGamePlayer; - -public class CaptureThePigPlayer extends TeamGamePlayer implements ICaptureThePigPlayer -{ - private int _captures; - - public CaptureThePigPlayer(JavaPlugin plugin, Player player) - { - super(plugin, player); - - SetLives(1); - } - - public void AddCapture() - { - _captures++; - } - - @Override - public int GetCaptures() - { - return _captures; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/ICaptureThePigPlayer.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/ICaptureThePigPlayer.java deleted file mode 100644 index 6c8287544..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/player/ICaptureThePigPlayer.java +++ /dev/null @@ -1,10 +0,0 @@ -package nautilus.game.capturethepig.player; - -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.core.player.ITeamGamePlayer; - -public interface ICaptureThePigPlayer extends ITeamGamePlayer -{ - void AddCapture(); - int GetCaptures(); -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/CaptureThePigRepository.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/CaptureThePigRepository.java deleted file mode 100644 index 03502745b..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/CaptureThePigRepository.java +++ /dev/null @@ -1,34 +0,0 @@ -package nautilus.game.capturethepig.repository; - -import java.util.List; - -import org.bukkit.craftbukkit.libs.com.google.gson.reflect.TypeToken; - -import mineplex.core.server.RemoteRepository; -import mineplex.core.server.remotecall.JsonWebCall; -import mineplex.core.server.util.Callback; -import mineplex.minecraft.donation.repository.token.PlayerUpdateToken; -import nautilus.game.capturethepig.stats.CaptureThePigGameStatsToken; - -public class CaptureThePigRepository extends RemoteRepository implements ICaptureThePigRepository -{ - public CaptureThePigRepository(String webServerAddress) - { - super(webServerAddress); - } - - @Override - public void SaveGameStats(final Callback> callback, final CaptureThePigGameStatsToken captureThePigGameStats) - { - Thread asyncThread = new Thread(new Runnable() - { - public void run() - { - List tokenList = new JsonWebCall(WebServerAddress + "CaptureThePig/UploadStats").Execute(new TypeToken>(){}.getType(), captureThePigGameStats); - callback.run(tokenList); - } - }); - - asyncThread.start(); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/ICaptureThePigRepository.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/ICaptureThePigRepository.java deleted file mode 100644 index 2841a547f..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/repository/ICaptureThePigRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package nautilus.game.capturethepig.repository; - -import java.util.List; - -import mineplex.core.server.IRepository; -import mineplex.core.server.util.Callback; -import mineplex.minecraft.donation.repository.token.PlayerUpdateToken; -import nautilus.game.capturethepig.stats.CaptureThePigGameStatsToken; - - -public interface ICaptureThePigRepository extends IRepository -{ - void SaveGameStats(Callback> callback, CaptureThePigGameStatsToken captureThePigGameStats); -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigScoreHandler.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigScoreHandler.java deleted file mode 100644 index 5eeaf418d..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigScoreHandler.java +++ /dev/null @@ -1,35 +0,0 @@ -package nautilus.game.capturethepig.scoreboard; - -import org.bukkit.event.EventHandler; -import org.bukkit.plugin.java.JavaPlugin; - -import nautilus.game.capturethepig.arena.ICaptureThePigArena; -import nautilus.game.capturethepig.engine.CaptureThePigNotifier; -import nautilus.game.capturethepig.event.PigCapturedEvent; -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.scoreboard.TeamGameScoreHandler; - -public class CaptureThePigScoreHandler extends TeamGameScoreHandler implements ICaptureThePigScoreHandler -{ - public CaptureThePigScoreHandler(JavaPlugin plugin, CaptureThePigNotifier notifier) - { - super(plugin, notifier); - } - - @EventHandler - public void OnPigCaptured(PigCapturedEvent event) - { - ICaptureThePigTeam ownerTeam = event.GetCapturer().GetTeam(); - - event.GetCapturer().AddCapture(); - ownerTeam.AddPoint(); - } - - @Override - protected int GetKillModifierValue(ICaptureThePigPlayer killer, ICaptureThePigPlayer victim, int assists) - { - return 5 * victim.GetTeam().GetScore(); - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigTabScoreboard.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigTabScoreboard.java deleted file mode 100644 index c3a64cd3b..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/CaptureThePigTabScoreboard.java +++ /dev/null @@ -1,142 +0,0 @@ -package nautilus.game.capturethepig.scoreboard; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.bukkit.ChatColor; -import org.bukkit.plugin.java.JavaPlugin; - -import mineplex.core.packethandler.PacketHandler; -import mineplex.core.account.CoreClientManager; -import mineplex.core.common.util.NautHashMap; - -import mineplex.minecraft.game.classcombat.Class.ClassManager; -import mineplex.minecraft.game.classcombat.Class.ClientClass; - -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.scoreboard.LineTracker; -import nautilus.game.core.scoreboard.TabScoreboard; -import nautilus.minecraft.core.utils.TimeStuff; - -public class CaptureThePigTabScoreboard extends TabScoreboard -{ - List _redSortedTeamPlayers = new ArrayList(); - List _blueSortedTeamPlayers = new ArrayList(); - - public CaptureThePigTabScoreboard(JavaPlugin plugin, CoreClientManager clientManager, ClassManager classManager, PacketHandler packetHandler, ICaptureThePigGame game) - { - super(plugin, clientManager, classManager, packetHandler, game); - } - - protected void SetRedTeamInfo() - { - RedColumn.get(0).SetLine(ChatColor.RED + " [RED]"); - RedColumn.get(1).SetLine(ChatColor.RED + "Score: " + ChatColor.WHITE + Game.GetRedTeam().GetScore()); - RedColumn.get(2).SetLine(ChatColor.RED + "[Top Players]"); - RedColumn.get(3).SetLine(ChatColor.RED + " [K/D/A C]"); - - _redSortedTeamPlayers.clear(); - _redSortedTeamPlayers.addAll(Game.GetRedTeam().GetPlayers()); - Collections.sort(_redSortedTeamPlayers, new PlayerSorter()); - - String spacer = ""; - for (int i=0; i < 8; i++) - { - int lineIndex = 4 + i * 2; - spacer += " "; - - if (i < _redSortedTeamPlayers.size()) - { - ICaptureThePigPlayer player = _redSortedTeamPlayers.get(i); - - ChatColor playerColor = !player.isOnline() ? ChatColor.DARK_GRAY : ChatColor.WHITE; - RedColumn.get(lineIndex).SetLine(playerColor + player.getName()); - RedColumn.get(lineIndex+1).SetLine(ChatColor.RED + "" + player.GetKills() + "/" + player.GetDeaths() + "/" + player.GetAssists() + " " + player.GetCaptures() + spacer); - } - else - { - RedColumn.get(lineIndex).SetLine(ChatColor.RED + "" + ChatColor.GREEN + spacer); - RedColumn.get(lineIndex+1).SetLine(ChatColor.RED + "" + ChatColor.BLUE + spacer); - } - } - } - - protected void SetMainInfo(ICaptureThePigPlayer player) - { - if (!player.isOnline()) - return; - - ClientClass clientPlayer = ClassManager.Get(player.GetPlayer()); - - if (!MainColumn.containsKey(player.getName())) - { - NautHashMap playerLines = new NautHashMap(); - - for (Integer i=0; i < 20; i++) - { - playerLines.put(i, new LineTracker(PacketHandler, "Game")); - } - - MainColumn.put(player.getName(), playerLines); - } - - NautHashMap playerLines = MainColumn.get(player.getName()); - - playerLines.get(0).SetLine(ChatColor.GREEN + " [Dominate]"); - playerLines.get(1).SetLine(ChatColor.GREEN + "Map:"); - playerLines.get(2).SetLine(Game.GetArena().GetName()); - playerLines.get(3).SetLine(ChatColor.GREEN + "Win Limit:"); - playerLines.get(4).SetLine(Game.GetWinLimit() + ""); - playerLines.get(5).SetLine(ChatColor.GREEN + "Duration:"); - playerLines.get(6).SetLine((Game.GetStartTime() == 0 ? "0" : TimeStuff.GetTimespanString(System.currentTimeMillis() - Game.GetStartTime()))); - playerLines.get(7).SetLine(ChatColor.GREEN + ""); - playerLines.get(8).SetLine(ChatColor.GREEN + " [Stats]"); - playerLines.get(9).SetLine(ChatColor.GREEN + "Class:" ); - playerLines.get(10).SetLine((clientPlayer.GetGameClass() == null ? "None" : clientPlayer.GetGameClass().GetName())); - playerLines.get(11).SetLine(ChatColor.GREEN + "Kills:"); - playerLines.get(12).SetLine(player.GetKills() + " "); - playerLines.get(13).SetLine(ChatColor.GREEN + "Deaths:"); - playerLines.get(14).SetLine(player.GetDeaths() + " "); - playerLines.get(15).SetLine(ChatColor.GREEN + "Assists:"); - playerLines.get(16).SetLine(player.GetAssists() + " "); - playerLines.get(17).SetLine(ChatColor.GREEN + "Captures:"); - playerLines.get(18).SetLine(player.GetCaptures() + " "); - playerLines.get(19).SetLine(ChatColor.GREEN + " "); - } - - protected void SetBlueTeamInfo() - { - BlueColumn.get(0).SetLine(ChatColor.BLUE + " [BLUE]"); - BlueColumn.get(1).SetLine(ChatColor.BLUE + "Score: " + ChatColor.WHITE + Game.GetBlueTeam().GetScore()); - BlueColumn.get(2).SetLine(ChatColor.BLUE + "[Top Players]"); - BlueColumn.get(3).SetLine(ChatColor.BLUE + " [K/D/A C]"); - - _blueSortedTeamPlayers.clear(); - _blueSortedTeamPlayers.addAll(Game.GetBlueTeam().GetPlayers()); - Collections.sort(_blueSortedTeamPlayers, new PlayerSorter()); - - String spacer = ""; - for (int i=0; i < 8; i++) - { - int lineIndex = 4 + i * 2; - spacer += " "; - - if (i < _blueSortedTeamPlayers.size()) - { - ICaptureThePigPlayer player = _blueSortedTeamPlayers.get(i); - - ChatColor playerColor = !player.isOnline() ? ChatColor.DARK_GRAY : ChatColor.WHITE; - BlueColumn.get(lineIndex).SetLine(playerColor + player.getName()); - BlueColumn.get(lineIndex+1).SetLine(ChatColor.BLUE + "" + player.GetKills() + "/" + player.GetDeaths() + "/" + player.GetAssists() + " " + player.GetCaptures() + spacer); - } - else - { - BlueColumn.get(lineIndex).SetLine(ChatColor.BLUE + " " + ChatColor.GREEN + spacer); - BlueColumn.get(lineIndex+1).SetLine(ChatColor.BLUE + " " + ChatColor.RED + spacer); - } - } - } -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/ICaptureThePigScoreHandler.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/ICaptureThePigScoreHandler.java deleted file mode 100644 index 04b2c4206..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/ICaptureThePigScoreHandler.java +++ /dev/null @@ -1,10 +0,0 @@ -package nautilus.game.capturethepig.scoreboard; - -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.core.scoreboard.ITeamScoreHandler; - -public interface ICaptureThePigScoreHandler extends ITeamScoreHandler -{ - -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/PlayerSorter.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/PlayerSorter.java deleted file mode 100644 index e12397cbf..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/scoreboard/PlayerSorter.java +++ /dev/null @@ -1,34 +0,0 @@ -package nautilus.game.capturethepig.scoreboard; - -import java.util.Comparator; - -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; - -public class PlayerSorter implements Comparator -{ - public int compare(ICaptureThePigPlayer a, ICaptureThePigPlayer b) - { - if (a.GetCaptures() > b.GetCaptures()) - return -1; - - boolean capturesEqual = a.GetCaptures() == b.GetCaptures(); - - if (capturesEqual && a.GetKills() > b.GetKills()) - return -1; - - boolean killsEqual = a.GetKills() == b.GetKills(); - - if (capturesEqual && killsEqual && a.GetAssists() > b.GetAssists()) - return -1; - - boolean assistsEqual = a.GetAssists() == b.GetAssists(); - - if (capturesEqual && killsEqual && assistsEqual && a.GetDeaths() < b.GetDeaths()) - return -1; - - if (capturesEqual && killsEqual && assistsEqual && a.GetDeaths() == b.GetDeaths()) - return 0; - - return 1; - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigGameStatsToken.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigGameStatsToken.java deleted file mode 100644 index c641a0278..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigGameStatsToken.java +++ /dev/null @@ -1,10 +0,0 @@ -package nautilus.game.capturethepig.stats; - -import java.util.List; - -public class CaptureThePigGameStatsToken -{ - public long Length; - - public List PlayerStats; -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStats.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStats.java deleted file mode 100644 index b8f5cae2c..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStats.java +++ /dev/null @@ -1,9 +0,0 @@ -package nautilus.game.capturethepig.stats; - -public class CaptureThePigPlayerStats -{ - public int Captures; - public int Kills; - public int Deaths; - public int Assists; -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStatsToken.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStatsToken.java deleted file mode 100644 index 26dd1ca62..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigPlayerStatsToken.java +++ /dev/null @@ -1,9 +0,0 @@ -package nautilus.game.capturethepig.stats; - -public class CaptureThePigPlayerStatsToken -{ - public String Name; - public boolean Won; - public long TimePlayed; - public CaptureThePigPlayerStats PlayerStats; -} diff --git a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigStatsReporter.java b/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigStatsReporter.java deleted file mode 100644 index 5ab456021..000000000 --- a/Plugins/Nautilus.Game.CaptureThePig/src/nautilus/game/capturethepig/stats/CaptureThePigStatsReporter.java +++ /dev/null @@ -1,94 +0,0 @@ -package nautilus.game.capturethepig.stats; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.ChatColor; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.plugin.java.JavaPlugin; - -import nautilus.game.capturethepig.engine.CaptureThePigGameEngine; -import nautilus.game.capturethepig.game.ICaptureThePigGame; -import nautilus.game.capturethepig.game.ICaptureThePigTeam; -import nautilus.game.capturethepig.player.ICaptureThePigPlayer; -import nautilus.game.capturethepig.repository.ICaptureThePigRepository; -import nautilus.game.core.events.team.TeamGameFinishedEvent; -import me.chiss.Core.Plugin.IPlugin; -import mineplex.core.common.util.C; -import mineplex.core.common.util.Callback; -import mineplex.core.common.util.F; -import mineplex.core.donation.repository.token.PlayerUpdateToken; - -public class CaptureThePigStatsReporter implements Listener -{ - private JavaPlugin _plugin; - private CaptureThePigGameEngine _engine; - private ICaptureThePigRepository _repository; - - public CaptureThePigStatsReporter(JavaPlugin plugin, CaptureThePigGameEngine engine, ICaptureThePigRepository repository) - { - _plugin = plugin; - _engine = engine; - _plugin.getServer().getPluginManager().registerEvents(this, _plugin); - _repository = repository; - } - - @EventHandler - public void OnGameFinished(TeamGameFinishedEvent event) - { - CaptureThePigGameStatsToken gameStats = new CaptureThePigGameStatsToken(); - gameStats.Length = System.currentTimeMillis() - event.GetGame().GetStartTime(); - gameStats.PlayerStats = new ArrayList(event.GetGame().GetPlayers().size()); - - for (ICaptureThePigPlayer player : event.GetGame().GetPlayers()) - { - CaptureThePigPlayerStats stats = new CaptureThePigPlayerStats(); - - stats.Captures = player.GetPoints(); - stats.Kills = player.GetKills(); - stats.Deaths = player.GetDeaths(); - stats.Assists = player.GetAssists(); - - CaptureThePigPlayerStatsToken token = new CaptureThePigPlayerStatsToken(); - token.Name = player.getName(); - token.Won = event.GetGame().GetWinLimit() == player.GetTeam().GetScore(); - token.TimePlayed = player.GetTimePlayed(); - token.PlayerStats = stats; - - gameStats.PlayerStats.add(token); - } - - _repository.SaveGameStats(new Callback>() - { - public void run(List tokenList) - { - for (PlayerUpdateToken token : tokenList) - { - try - { - CoreClient client = _plugin.GetClients().GetNull(token.Name); - - if (client != null && client.GetPlayer().isOnline()) - { - client.Donor().AddPoints(token.Points); - - _engine.UpdatePlayerLobbyItemBalances(client); - - client.GetPlayer().sendMessage(F.main(_engine.GetGameType(), "You earned " + ChatColor.YELLOW + token.Points + C.cGray + " points for playing!")); - } - } - catch (Exception ex) - { - System.out.println("Error updating player with token : " + token.Name + "\n" + ex.getMessage()); - - for (StackTraceElement trace : ex.getStackTrace()) - { - System.out.println(trace); - } - } - } - } - }, gameStats); - } -} diff --git a/Plugins/Nautilus.Game.Core/src/nautilus/game/core/engine/TeamGameEngine.java b/Plugins/Nautilus.Game.Core/src/nautilus/game/core/engine/TeamGameEngine.java index 14ffcdbbe..c688af850 100644 --- a/Plugins/Nautilus.Game.Core/src/nautilus/game/core/engine/TeamGameEngine.java +++ b/Plugins/Nautilus.Game.Core/src/nautilus/game/core/engine/TeamGameEngine.java @@ -123,7 +123,7 @@ public abstract class TeamGameEngine - - - - - - - - - - - - diff --git a/Plugins/Nautilus.Game.Deathmatch/.project b/Plugins/Nautilus.Game.Deathmatch/.project deleted file mode 100644 index eaef7055f..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Nautilus.Game.Deathmatch - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/Plugins/Nautilus.Game.Deathmatch/.settings/org.eclipse.jdt.core.prefs b/Plugins/Nautilus.Game.Deathmatch/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 7341ab168..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/Deathmatch.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/Deathmatch.java deleted file mode 100644 index 1e803e2fb..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/Deathmatch.java +++ /dev/null @@ -1,45 +0,0 @@ -package nautilus.game.deathmatch; - -import me.chiss.Core.PlayerTagNamer.INameColorer; -import me.chiss.Core.Plugin.IRelation; -import mineplex.core.server.IRepository; - -import nautilus.game.core.GamePlugin; -import nautilus.game.core.arena.ArenaManager; -import nautilus.game.deathmatch.repository.DeathmatchRepository; - -public class Deathmatch extends GamePlugin -{ - private DeathmatchRepository _repository; - - public void onEnable() - { - super.onEnable(); - - new DeathmatchEngine(this, HubConnection, _repository, new DeathmatchNotifier(this), new ArenaManager(this, "Deathmatch", new DeathmatchArenaParser()), getServer().getWorlds().get(0)); - } - - @Override - public IRelation GetRelation() - { - return null; - } - - @Override - public INameColorer GetNameColorer() - { - return null; - } - - @Override - protected String GetServerName() - { - return "DM"; - } - - @Override - protected IRepository GetRepository() - { - return _repository; - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArena.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArena.java deleted file mode 100644 index a5583c3a0..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArena.java +++ /dev/null @@ -1,11 +0,0 @@ -package nautilus.game.deathmatch; - -import nautilus.game.core.arena.Arena; - -public class DeathmatchArena extends Arena -{ - public DeathmatchArena(String fileName) - { - super(fileName); - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArenaParser.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArenaParser.java deleted file mode 100644 index 93d4a0d95..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchArenaParser.java +++ /dev/null @@ -1,14 +0,0 @@ -package nautilus.game.deathmatch; - -import java.io.FileReader; - -import nautilus.game.core.arena.IArenaParser; - -public class DeathmatchArenaParser implements IArenaParser -{ - @Override - public IDeathmatchArena Parse(String fileName, FileReader fileReader) - { - return null; - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchEngine.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchEngine.java deleted file mode 100644 index b23a328ce..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchEngine.java +++ /dev/null @@ -1,44 +0,0 @@ -package nautilus.game.deathmatch; - -import me.chiss.Core.Plugin.IPlugin; -import mineplex.core.server.ServerTalker; -import nautilus.game.core.engine.GameEngine; -import nautilus.game.deathmatch.repository.DeathmatchRepository; - -public class DeathmatchEngine extends GameEngine -{ - public DeathmatchEngine(IPlugin plugin, ServerTalker hubConnection, DeathmatchRepository repository, DeathmatchNotifier notifier, nautilus.game.core.arena.ArenaManager arenaManager, org.bukkit.World world) - { - super(plugin, hubConnection, repository, arenaManager, new DeathmatchScoreHandler(plugin.GetPlugin(), notifier), world); - } - - @Override - public void run() - { - } - - @Override - public DeathmatchGame ScheduleNewGame() - { - return null; - } - - @Override - public String GetGameType() - { - return "Deathmatch"; - } - - @Override - protected void TryToActivateGames() - { - // TODO Auto-generated method stub - } - - @Override - protected void ActivateGame(DeathmatchGame game, IDeathmatchArena arena) - { - // TODO Auto-generated method stub - - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchGame.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchGame.java deleted file mode 100644 index d73139d11..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchGame.java +++ /dev/null @@ -1,26 +0,0 @@ -package nautilus.game.deathmatch; - -import me.chiss.Core.Plugin.IPlugin; -import nautilus.game.core.game.Game; - -import org.bukkit.entity.Player; - -public class DeathmatchGame extends Game implements IDeathmatchGame -{ - public DeathmatchGame(IPlugin plugin) - { - super(plugin); - } - - @Override - public void RespawnPlayer(DeathmatchPlayer player) - { - - } - - @Override - protected DeathmatchPlayer CreateGamePlayer(Player player, int playerLives) - { - return new DeathmatchPlayer(Plugin.GetPlugin(), player); - } -} \ No newline at end of file diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchNotifier.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchNotifier.java deleted file mode 100644 index f25c16bb3..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchNotifier.java +++ /dev/null @@ -1,12 +0,0 @@ -package nautilus.game.deathmatch; - -import me.chiss.Core.Plugin.IPlugin; -import nautilus.game.core.notifier.PlayerNotifier; - -public class DeathmatchNotifier extends PlayerNotifier -{ - public DeathmatchNotifier(IPlugin plugin) - { - super(plugin, "Deathmatch"); - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchPlayer.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchPlayer.java deleted file mode 100644 index 058745929..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchPlayer.java +++ /dev/null @@ -1,13 +0,0 @@ -package nautilus.game.deathmatch; - -import org.bukkit.plugin.java.JavaPlugin; - -import nautilus.game.core.player.GamePlayer; - -public class DeathmatchPlayer extends GamePlayer -{ - public DeathmatchPlayer(JavaPlugin plugin, org.bukkit.entity.Player player) - { - super(plugin, player); - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchScoreHandler.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchScoreHandler.java deleted file mode 100644 index 4d25defbb..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/DeathmatchScoreHandler.java +++ /dev/null @@ -1,18 +0,0 @@ -package nautilus.game.deathmatch; - -import org.bukkit.plugin.java.JavaPlugin; - -import nautilus.game.core.scoreboard.IScoreHandler; - -public class DeathmatchScoreHandler implements IScoreHandler -{ - public DeathmatchScoreHandler(JavaPlugin getPlugin, DeathmatchNotifier notifier) - { - // TODO Auto-generated constructor stub - } - - @Override - public void RewardForDeath(DeathmatchPlayer player) - { - } -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchArena.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchArena.java deleted file mode 100644 index 9460a5d3d..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchArena.java +++ /dev/null @@ -1,8 +0,0 @@ -package nautilus.game.deathmatch; - -import nautilus.game.core.arena.IArena; - -public interface IDeathmatchArena extends IArena -{ - -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchGame.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchGame.java deleted file mode 100644 index 789e1c8ea..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/IDeathmatchGame.java +++ /dev/null @@ -1,8 +0,0 @@ -package nautilus.game.deathmatch; - -import nautilus.game.core.game.IGame; - -public interface IDeathmatchGame extends IGame -{ - -} diff --git a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/repository/DeathmatchRepository.java b/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/repository/DeathmatchRepository.java deleted file mode 100644 index 3cfe6b00d..000000000 --- a/Plugins/Nautilus.Game.Deathmatch/src/nautilus/game/deathmatch/repository/DeathmatchRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package nautilus.game.deathmatch.repository; - -import mineplex.core.server.RemoteRepository; - -public class DeathmatchRepository extends RemoteRepository -{ - public DeathmatchRepository(String webServerAddress) - { - super(webServerAddress); - } -} \ No newline at end of file