From 30a1d28aec8c98278d5b7750676d720e860923aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=A4KayJayDee?= Date: Thu, 1 Dec 2022 01:52:35 +0100 Subject: [PATCH] first commit --- .../dependencies-accessors.lock | Bin 0 -> 17 bytes .../7.1/dependencies-accessors/gc.properties | 0 .../7.1/executionHistory/executionHistory.bin | Bin 0 -> 278585 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/7.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/7.1/fileHashes/fileHashes.bin | Bin 0 -> 36797 bytes .gradle/7.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../7.1/fileHashes/resourceHashesCache.bin | Bin 0 -> 18565 bytes .gradle/7.1/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/buildOutputCleanup/outputFiles.bin | Bin 0 -> 19019 bytes .gradle/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/checksums/md5-checksums.bin | Bin 0 -> 20697 bytes .gradle/checksums/sha1-checksums.bin | Bin 0 -> 24653 bytes .gradle/vcs-1/gc.properties | 0 .idea/.gitignore | 3 + .idea/artifacts/CYG_jar.xml | 8 + .idea/compiler.xml | 6 + .idea/discord.xml | 7 + .idea/gradle.xml | 19 + .idea/jarRepositories.xml | 45 ++ .idea/libraries/gson_2_8_2.xml | 9 + .idea/libraries/spigot.xml | 11 + .idea/misc.xml | 7 + .idea/uiDesigner.xml | 124 +++++ .idea/vcs.xml | 6 + build.gradle | 49 ++ .../classes/java/main/fr/gravencyg/CYG.class | Bin 0 -> 11705 bytes .../main/fr/gravencyg/actions/Action.class | Bin 0 -> 971 bytes .../gravencyg/actions/ActionRegisters.class | Bin 0 -> 7081 bytes .../actions/basic/ChangeGameModeAction.class | Bin 0 -> 2406 bytes .../actions/basic/ConditionAction.class | Bin 0 -> 2162 bytes .../actions/basic/DropItemAction.class | Bin 0 -> 3658 bytes .../actions/basic/KillMonsterAction.class | Bin 0 -> 2077 bytes .../actions/basic/MonsterSpawnAction.class | Bin 0 -> 3168 bytes .../gravencyg/actions/basic/MusicAction.class | Bin 0 -> 1969 bytes .../gravencyg/actions/basic/PassAction.class | Bin 0 -> 1332 bytes .../actions/basic/RandomAction.class | Bin 0 -> 1452 bytes .../actions/basic/RestorePlayer.class | Bin 0 -> 1481 bytes .../actions/basic/TeleportAction.class | Bin 0 -> 4759 bytes .../actions/block/RegenMapAction.class | Bin 0 -> 2141 bytes .../actions/block/RemoveBlockAction.class | Bin 0 -> 2719 bytes .../actions/block/SetBlockAction.class | Bin 0 -> 2974 bytes .../actions/game/EliminateAction.class | Bin 0 -> 1999 bytes .../actions/game/StopGameAction.class | Bin 0 -> 1953 bytes .../gravencyg/actions/game/WinnerAction.class | Bin 0 -> 2311 bytes .../actions/inventory/ChestAction.class | Bin 0 -> 5766 bytes .../actions/inventory/ClearAction.class | Bin 0 -> 1531 bytes .../actions/message/BossBarAction.class | Bin 0 -> 3228 bytes .../actions/message/MessageAction.class | Bin 0 -> 2481 bytes .../actions/message/ResetBossBarAction.class | Bin 0 -> 1918 bytes .../actions/message/TitleAction.class | Bin 0 -> 2489 bytes .../potion/ClearPotionEffectAction.class | Bin 0 -> 2079 bytes .../actions/potion/PotionEffectAction.class | Bin 0 -> 3107 bytes .../main/fr/gravencyg/actions/team/Team.class | Bin 0 -> 3304 bytes .../gravencyg/actions/team/TeamAction.class | Bin 0 -> 4046 bytes .../actions/toggle/ToggleBuildAction.class | Bin 0 -> 2238 bytes .../actions/toggle/ToggleFallDamage.class | Bin 0 -> 2254 bytes .../actions/toggle/ToggleFlyAction.class | Bin 0 -> 1808 bytes .../actions/toggle/ToggleFreezeAction.class | Bin 0 -> 1855 bytes .../actions/toggle/ToggleGlowAction.class | Bin 0 -> 1614 bytes .../actions/toggle/TogglePvPAction.class | Bin 0 -> 2204 bytes .../actions/waitable/WaitAction.class | Bin 0 -> 1433 bytes .../actions/waitable/WaitAction2.class | Bin 0 -> 1440 bytes .../actions/waitable/WaitAction3.class | Bin 0 -> 1440 bytes .../main/fr/gravencyg/commands/TCommand.class | Bin 0 -> 4989 bytes .../admin/AdminForceLevelCommand.class | Bin 0 -> 1752 bytes .../admin/AdminForceUpdateHoloCommand.class | Bin 0 -> 1425 bytes .../commands/admin/AdminRankCommand.class | Bin 0 -> 2822 bytes .../admin/AdminRefreshLevelCommand.class | Bin 0 -> 1577 bytes .../commands/game/GameLeaveCommand.class | Bin 0 -> 1081 bytes .../commands/game/GamePlayCommand.class | Bin 0 -> 5181 bytes .../commands/link/LinkDiscordCommand.class | Bin 0 -> 883 bytes .../commands/link/LinkShopCommand.class | Bin 0 -> 871 bytes .../commands/link/LinkTwitterCommand.class | Bin 0 -> 888 bytes .../commands/manage/ManageFriendCommand.class | Bin 0 -> 4883 bytes .../manage/ManageLocationCommand.class | Bin 0 -> 2797 bytes .../manage/ManageMessageCommand.class | Bin 0 -> 2961 bytes .../commands/manage/ManageNPCCommand.class | Bin 0 -> 1331 bytes .../manage/ManageVariablesCommand.class | Bin 0 -> 2615 bytes .../commands/mod/ModFreezeCommand.class | Bin 0 -> 1573 bytes .../commands/mod/ModKickCommand.class | Bin 0 -> 1698 bytes .../commands/mod/ModMuteCommand.class | Bin 0 -> 1296 bytes .../commands/mod/ModUnMuteCommand.class | Bin 0 -> 1102 bytes .../commands/mod/ModVerifyGameCommand.class | Bin 0 -> 2974 bytes .../commands/player/PlayerActionCommand.class | Bin 0 -> 1030 bytes .../player/PlayerBarrierCommand.class | Bin 0 -> 1466 bytes .../player/PlayerBlockConditionCommand.class | Bin 0 -> 2032 bytes .../player/PlayerBlockEventCommand.class | Bin 0 -> 2034 bytes .../commands/player/PlayerFlyCommand.class | Bin 0 -> 1423 bytes .../player/PlayerGameModeCommand.class | Bin 0 -> 1784 bytes .../commands/player/PlayerHatCommand.class | Bin 0 -> 2062 bytes .../commands/player/PlayerHeadCommand.class | Bin 0 -> 2429 bytes .../commands/player/PlayerHubCommand.class | Bin 0 -> 1325 bytes .../commands/player/PlayerPingCommand.class | Bin 0 -> 1368 bytes .../commands/player/PlayerPlotCommand.class | Bin 0 -> 1441 bytes .../commands/player/PlayerUUIDCommand.class | Bin 0 -> 1128 bytes .../player/PlayerWorldEditCommand.class | Bin 0 -> 2266 bytes .../player/ShortcutGameNameCommand.class | Bin 0 -> 1763 bytes .../player/ShortcutOptionCommand.class | Bin 0 -> 1814 bytes .../player/ShortcutSetCodeCommand.class | Bin 0 -> 1771 bytes .../player/ShortcutSetSpawnCommand.class | Bin 0 -> 1776 bytes .../shortcut/ShopPremiumCommand.class | Bin 0 -> 3439 bytes .../java/main/fr/gravencyg/game/CYGame.class | Bin 0 -> 7929 bytes .../fr/gravencyg/game/CYGameManager.class | Bin 0 -> 13752 bytes .../main/fr/gravencyg/game/CYGameState.class | Bin 0 -> 1376 bytes .../java/main/fr/gravencyg/items/Armor.class | Bin 0 -> 1058 bytes .../fr/gravencyg/items/ArmorManager$1.class | Bin 0 -> 790 bytes .../fr/gravencyg/items/ArmorManager.class | Bin 0 -> 2909 bytes .../main/fr/gravencyg/items/ItemBuilder.class | Bin 0 -> 5974 bytes .../gravencyg/listeners/BlockListener.class | Bin 0 -> 9623 bytes .../fr/gravencyg/listeners/ChatListener.class | Bin 0 -> 2236 bytes .../gravencyg/listeners/PlayerListener.class | Bin 0 -> 11860 bytes .../gravencyg/listeners/WorldListener.class | Bin 0 -> 6514 bytes .../manager/CYGCompilerManager.class | Bin 0 -> 7366 bytes .../fr/gravencyg/manager/CYGDataManager.class | Bin 0 -> 17783 bytes .../manager/CYGHologramManager.class | Bin 0 -> 4913 bytes .../fr/gravencyg/manager/CYGPlotManager.class | Bin 0 -> 6587 bytes .../manager/CYGWorleditManager.class | Bin 0 -> 7197 bytes .../gravencyg/menus/CustomMenuManager.class | Bin 0 -> 4317 bytes .../fr/gravencyg/menus/all/ActionMenu.class | Bin 0 -> 4677 bytes .../fr/gravencyg/menus/all/EventMenu.class | Bin 0 -> 6946 bytes .../gravencyg/menus/all/GameModeMenu$1.class | Bin 0 -> 781 bytes .../fr/gravencyg/menus/all/GameModeMenu.class | Bin 0 -> 2614 bytes .../fr/gravencyg/menus/all/PlayMenu.class | Bin 0 -> 3827 bytes .../fr/gravencyg/menus/all/UpgradeMenu.class | Bin 0 -> 4763 bytes .../fr/gravencyg/menus/core/CustomMenu.class | Bin 0 -> 385 bytes .../menus/core/CustomMenuListener.class | Bin 0 -> 4392 bytes .../menus/locations/LocationMenu.class | Bin 0 -> 5240 bytes .../menus/locations/LocationSelectMenu.class | Bin 0 -> 6398 bytes .../menus/messages/MessageMenu.class | Bin 0 -> 4461 bytes .../menus/messages/MessageSelectMenu.class | Bin 0 -> 6233 bytes .../menus/options/OptionAutostartMenu.class | Bin 0 -> 4351 bytes .../menus/options/OptionLifeMenu.class | Bin 0 -> 4325 bytes .../menus/options/OptionMaxPlayersMenu.class | Bin 0 -> 4359 bytes .../menus/options/OptionMenu$1.class | Bin 0 -> 890 bytes .../gravencyg/menus/options/OptionMenu.class | Bin 0 -> 4469 bytes .../options/OptionStartingTimeMenu.class | Bin 0 -> 4353 bytes .../menus/options/OptionWhitelistMenu.class | Bin 0 -> 3543 bytes .../gravencyg/menus/plot/PlayPlayerMenu.class | Bin 0 -> 6101 bytes .../menus/plot/PlotManageMenu$1.class | Bin 0 -> 782 bytes .../gravencyg/menus/plot/PlotManageMenu.class | Bin 0 -> 3666 bytes .../fr/gravencyg/menus/plot/PlotMenu.class | Bin 0 -> 3249 bytes .../menus/variables/VariableMenu.class | Bin 0 -> 4307 bytes .../menus/variables/VariableSelectMenu.class | Bin 0 -> 6161 bytes .../fr/gravencyg/model/ActionProcess.class | Bin 0 -> 1464 bytes .../main/fr/gravencyg/model/CYGameMode.class | Bin 0 -> 995 bytes .../main/fr/gravencyg/model/GameConfig.class | Bin 0 -> 1982 bytes .../fr/gravencyg/model/MaterialAndData.class | Bin 0 -> 638 bytes .../java/main/fr/gravencyg/model/Plot.class | Bin 0 -> 5161 bytes .../main/fr/gravencyg/model/Storage.class | Bin 0 -> 3172 bytes .../fr/gravencyg/model/VerifyGameConfig.class | Bin 0 -> 1439 bytes .../java/main/fr/gravencyg/npcs/NPC.class | Bin 0 -> 2929 bytes .../fr/gravencyg/npcs/NPCClickListener.class | Bin 0 -> 2346 bytes .../main/fr/gravencyg/npcs/NPCManager.class | Bin 0 -> 4828 bytes .../main/fr/gravencyg/npcs/all/DevNPC.class | Bin 0 -> 1234 bytes .../main/fr/gravencyg/npcs/all/PlayNPC.class | Bin 0 -> 1207 bytes .../fr/gravencyg/npcs/all/UpgradeNPC.class | Bin 0 -> 1233 bytes .../gravencyg/schedule/CYGExecutionTask.class | Bin 0 -> 4406 bytes .../fr/gravencyg/schedule/CYGGameCycle.class | Bin 0 -> 5446 bytes .../scoreboards/ScoreboardManager.class | Bin 0 -> 6399 bytes .../scoreboards/ScoreboardSign$1.class | Bin 0 -> 240 bytes .../ScoreboardSign$VirtualTeam.class | Bin 0 -> 5889 bytes .../scoreboards/ScoreboardSign.class | Bin 0 -> 7345 bytes .../java/main/fr/gravencyg/utils/CEvent.class | Bin 0 -> 3492 bytes .../java/main/fr/gravencyg/utils/CLevel.class | Bin 0 -> 7926 bytes .../java/main/fr/gravencyg/utils/CRank.class | Bin 0 -> 2318 bytes .../fr/gravencyg/utils/LocationUtils.class | Bin 0 -> 3010 bytes .../main/fr/gravencyg/utils/PlotSize.class | Bin 0 -> 1940 bytes build/libs/CYG-all.jar | Bin 0 -> 248723 bytes build/resources/main/plugin.yml | 88 ++++ .../compileJava/previous-compilation-data.bin | Bin 0 -> 86655 bytes build/tmp/shadowJar/MANIFEST.MF | 2 + gradle.properties | 1 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 ++++++++ gradlew.bat | 89 ++++ local.properties | 8 + out/production/CYG/fr/gravencyg/CYG.class | Bin 0 -> 11108 bytes .../CYG/fr/gravencyg/actions/Action.class | Bin 0 -> 971 bytes .../gravencyg/actions/ActionRegisters.class | Bin 0 -> 6939 bytes .../actions/basic/ChangeGameModeAction.class | Bin 0 -> 2406 bytes .../actions/basic/ConditionAction.class | Bin 0 -> 3357 bytes .../actions/basic/DropItemAction.class | Bin 0 -> 3658 bytes .../actions/basic/KillMonsterAction.class | Bin 0 -> 2077 bytes .../actions/basic/MonsterSpawnAction.class | Bin 0 -> 3168 bytes .../gravencyg/actions/basic/MusicAction.class | Bin 0 -> 1962 bytes .../gravencyg/actions/basic/PassAction.class | Bin 0 -> 1332 bytes .../actions/basic/RandomAction.class | Bin 0 -> 1452 bytes .../actions/basic/RestorePlayer.class | Bin 0 -> 1481 bytes .../actions/basic/TeleportAction.class | Bin 0 -> 4736 bytes .../actions/block/RegenMapAction.class | Bin 0 -> 2078 bytes .../actions/block/RemoveBlockAction.class | Bin 0 -> 2656 bytes .../actions/block/SetBlockAction.class | Bin 0 -> 2958 bytes .../actions/game/EliminateAction.class | Bin 0 -> 1936 bytes .../actions/game/StopGameAction.class | Bin 0 -> 1890 bytes .../gravencyg/actions/game/WinnerAction.class | Bin 0 -> 2268 bytes .../actions/inventory/ChestAction.class | Bin 0 -> 5766 bytes .../actions/inventory/ClearAction.class | Bin 0 -> 1531 bytes .../actions/message/BossBarAction.class | Bin 0 -> 3881 bytes .../actions/message/MessageAction.class | Bin 0 -> 2481 bytes .../actions/message/ResetBossBarAction.class | Bin 0 -> 1918 bytes .../actions/message/TitleAction.class | Bin 0 -> 2489 bytes .../potion/ClearPotionEffectAction.class | Bin 0 -> 2079 bytes .../actions/potion/PotionEffectAction.class | Bin 0 -> 3107 bytes .../CYG/fr/gravencyg/actions/team/Team.class | Bin 0 -> 3304 bytes .../gravencyg/actions/team/TeamAction.class | Bin 0 -> 4422 bytes .../actions/toggle/ToggleBuildAction.class | Bin 0 -> 2175 bytes .../actions/toggle/ToggleFallDamage.class | Bin 0 -> 2191 bytes .../actions/toggle/ToggleFlyAction.class | Bin 0 -> 1808 bytes .../actions/toggle/ToggleFreezeAction.class | Bin 0 -> 1792 bytes .../actions/toggle/ToggleGlowAction.class | Bin 0 -> 1614 bytes .../actions/toggle/TogglePvPAction.class | Bin 0 -> 2141 bytes .../actions/waitable/WaitAction.class | Bin 0 -> 1433 bytes .../actions/waitable/WaitAction2.class | Bin 0 -> 1440 bytes .../commands/AdminForceLevelCommand.class | Bin 0 -> 1738 bytes .../gravencyg/commands/AdminRankCommand.class | Bin 0 -> 2808 bytes .../commands/AdminRefreshLevelCommand.class | Bin 0 -> 1563 bytes .../gravencyg/commands/GameLeaveCommand.class | Bin 0 -> 1069 bytes .../gravencyg/commands/GamePlayCommand.class | Bin 0 -> 4088 bytes .../commands/LinkDiscordCommand.class | Bin 0 -> 871 bytes .../gravencyg/commands/LinkShopCommand.class | Bin 0 -> 859 bytes .../commands/LinkTwitterCommand.class | Bin 0 -> 876 bytes .../commands/ManageFriendCommand.class | Bin 0 -> 4406 bytes .../commands/ManageLocationCommand.class | Bin 0 -> 2781 bytes .../commands/ManageMessageCommand.class | Bin 0 -> 2945 bytes .../gravencyg/commands/ManageNPCCommand.class | Bin 0 -> 1315 bytes .../commands/ManageVariablesCommand.class | Bin 0 -> 2884 bytes .../gravencyg/commands/ModFreezeCommand.class | Bin 0 -> 1563 bytes .../gravencyg/commands/ModKickCommand.class | Bin 0 -> 1688 bytes .../gravencyg/commands/ModMuteCommand.class | Bin 0 -> 1286 bytes .../gravencyg/commands/ModUnMuteCommand.class | Bin 0 -> 1092 bytes .../commands/ModVerifyGameCommand.class | Bin 0 -> 2964 bytes .../commands/PlayerActionCommand.class | Bin 0 -> 1014 bytes .../commands/PlayerBarrierCommand.class | Bin 0 -> 1444 bytes .../PlayerBlockConditionCommand.class | Bin 0 -> 2016 bytes .../commands/PlayerBlockEventCommand.class | Bin 0 -> 2018 bytes .../gravencyg/commands/PlayerFlyCommand.class | Bin 0 -> 1407 bytes .../commands/PlayerGameModeCommand.class | Bin 0 -> 1728 bytes .../gravencyg/commands/PlayerHatCommand.class | Bin 0 -> 2046 bytes .../commands/PlayerHeadCommand.class | Bin 0 -> 2406 bytes .../gravencyg/commands/PlayerHubCommand.class | Bin 0 -> 1179 bytes .../commands/PlayerPingCommand.class | Bin 0 -> 1352 bytes .../commands/PlayerPlotCommand.class | Bin 0 -> 1425 bytes .../commands/PlayerUUIDCommand.class | Bin 0 -> 1112 bytes .../commands/PlayerWorldEditCommand.class | Bin 0 -> 2250 bytes .../commands/ShopPremiumCommand.class | Bin 0 -> 3421 bytes .../commands/ShortcutPlotTpCommand.class | Bin 0 -> 851 bytes .../CYG/fr/gravencyg/commands/TCommand.class | Bin 0 -> 4723 bytes .../CYG/fr/gravencyg/game/CYGame.class | Bin 0 -> 7652 bytes .../CYG/fr/gravencyg/game/CYGameManager.class | Bin 0 -> 12347 bytes .../CYG/fr/gravencyg/game/CYGameState.class | Bin 0 -> 1376 bytes .../CYG/fr/gravencyg/items/Armor.class | Bin 0 -> 1058 bytes .../fr/gravencyg/items/ArmorManager$1.class | Bin 0 -> 790 bytes .../CYG/fr/gravencyg/items/ArmorManager.class | Bin 0 -> 2897 bytes .../CYG/fr/gravencyg/items/ItemBuilder.class | Bin 0 -> 5974 bytes .../gravencyg/listeners/BlockListener.class | Bin 0 -> 9622 bytes .../fr/gravencyg/listeners/ChatListener.class | Bin 0 -> 2236 bytes .../gravencyg/listeners/PlayerListener.class | Bin 0 -> 11815 bytes .../gravencyg/listeners/WorldListener.class | Bin 0 -> 6510 bytes .../manager/CYGCompilerManager.class | Bin 0 -> 7496 bytes .../fr/gravencyg/manager/CYGDataManager.class | Bin 0 -> 17947 bytes .../manager/CYGHologramManager.class | Bin 0 -> 5065 bytes .../fr/gravencyg/manager/CYGPlotManager.class | Bin 0 -> 6435 bytes .../manager/CYGWorleditManager.class | Bin 0 -> 7284 bytes .../gravencyg/menus/CustomMenuManager.class | Bin 0 -> 4236 bytes .../fr/gravencyg/menus/all/ActionMenu.class | Bin 0 -> 4700 bytes .../fr/gravencyg/menus/all/EventMenu.class | Bin 0 -> 6946 bytes .../gravencyg/menus/all/GameModeMenu$1.class | Bin 0 -> 781 bytes .../fr/gravencyg/menus/all/GameModeMenu.class | Bin 0 -> 2614 bytes .../CYG/fr/gravencyg/menus/all/PlayMenu.class | Bin 0 -> 3759 bytes .../fr/gravencyg/menus/all/UpgradeMenu.class | Bin 0 -> 4755 bytes .../fr/gravencyg/menus/core/CustomMenu.class | Bin 0 -> 385 bytes .../menus/core/CustomMenuListener.class | Bin 0 -> 4182 bytes .../menus/locations/LocationMenu.class | Bin 0 -> 5240 bytes .../menus/locations/LocationSelectMenu.class | Bin 0 -> 6398 bytes .../menus/messages/MessageMenu.class | Bin 0 -> 4461 bytes .../menus/messages/MessageSelectMenu.class | Bin 0 -> 6233 bytes .../menus/options/OptionAutostartMenu.class | Bin 0 -> 4351 bytes .../menus/options/OptionLifeMenu.class | Bin 0 -> 4325 bytes .../menus/options/OptionMaxPlayersMenu.class | Bin 0 -> 4358 bytes .../menus/options/OptionMenu$1.class | Bin 0 -> 882 bytes .../gravencyg/menus/options/OptionMenu.class | Bin 0 -> 4461 bytes .../options/OptionStartingTimeMenu.class | Bin 0 -> 4346 bytes .../menus/options/OptionWhitelistMenu.class | Bin 0 -> 3543 bytes .../gravencyg/menus/plot/PlotManageMenu.class | Bin 0 -> 1636 bytes .../fr/gravencyg/menus/plot/PlotMenu.class | Bin 0 -> 3052 bytes .../menus/variables/VariableMenu.class | Bin 0 -> 4307 bytes .../menus/variables/VariableSelectMenu.class | Bin 0 -> 6161 bytes .../fr/gravencyg/model/ActionProcess.class | Bin 0 -> 1464 bytes .../CYG/fr/gravencyg/model/CYGameMode.class | Bin 0 -> 995 bytes .../CYG/fr/gravencyg/model/GameConfig.class | Bin 0 -> 1982 bytes .../fr/gravencyg/model/MaterialAndData.class | Bin 0 -> 638 bytes .../CYG/fr/gravencyg/model/Plot.class | Bin 0 -> 5161 bytes .../CYG/fr/gravencyg/model/Storage.class | Bin 0 -> 2838 bytes .../fr/gravencyg/model/VerifyGameConfig.class | Bin 0 -> 1439 bytes .../CYG/fr/gravencyg/npcs/NPC.class | Bin 0 -> 2923 bytes .../fr/gravencyg/npcs/NPCClickListener.class | Bin 0 -> 2346 bytes .../CYG/fr/gravencyg/npcs/NPCManager.class | Bin 0 -> 4828 bytes .../CYG/fr/gravencyg/npcs/all/DevNPC.class | Bin 0 -> 1234 bytes .../CYG/fr/gravencyg/npcs/all/PlayNPC.class | Bin 0 -> 1207 bytes .../fr/gravencyg/npcs/all/UpgradeNPC.class | Bin 0 -> 1233 bytes .../gravencyg/schedule/CYGExecutionTask.class | Bin 0 -> 4406 bytes .../fr/gravencyg/schedule/CYGGameCycle.class | Bin 0 -> 5317 bytes .../scoreboards/ScoreboardManager.class | Bin 0 -> 6191 bytes .../scoreboards/ScoreboardSign$1.class | Bin 0 -> 240 bytes .../ScoreboardSign$VirtualTeam.class | Bin 0 -> 5857 bytes .../scoreboards/ScoreboardSign.class | Bin 0 -> 6979 bytes .../CYG/fr/gravencyg/utils/CEvent.class | Bin 0 -> 3453 bytes .../CYG/fr/gravencyg/utils/CLevel.class | Bin 0 -> 7926 bytes .../CYG/fr/gravencyg/utils/CRank.class | Bin 0 -> 2318 bytes .../fr/gravencyg/utils/LocationUtils.class | Bin 0 -> 3010 bytes .../CYG/fr/gravencyg/utils/PlotSize.class | Bin 0 -> 1940 bytes out/production/CYG/plugin.yml | 82 ++++ src/main/java/fr/gravencyg/CYG.java | 234 ++++++++++ .../java/fr/gravencyg/actions/Action.java | 34 ++ .../fr/gravencyg/actions/ActionRegisters.java | 139 ++++++ .../actions/basic/ChangeGameModeAction.java | 68 +++ .../actions/basic/ConditionAction.java | 67 +++ .../actions/basic/DropItemAction.java | 61 +++ .../actions/basic/KillMonsterAction.java | 41 ++ .../actions/basic/MonsterSpawnAction.java | 54 +++ .../gravencyg/actions/basic/MusicAction.java | 38 ++ .../gravencyg/actions/basic/PassAction.java | 40 ++ .../gravencyg/actions/basic/RandomAction.java | 36 ++ .../actions/basic/RestorePlayer.java | 34 ++ .../actions/basic/TeleportAction.java | 112 +++++ .../actions/block/RegenMapAction.java | 40 ++ .../actions/block/RemoveBlockAction.java | 56 +++ .../actions/block/SetBlockAction.java | 65 +++ .../actions/game/EliminateAction.java | 43 ++ .../actions/game/StopGameAction.java | 43 ++ .../gravencyg/actions/game/WinnerAction.java | 46 ++ .../actions/inventory/ChestAction.java | 146 ++++++ .../actions/inventory/ClearAction.java | 32 ++ .../actions/message/BossBarAction.java | 55 +++ .../actions/message/MessageAction.java | 42 ++ .../actions/message/ResetBossBarAction.java | 45 ++ .../actions/message/TitleAction.java | 41 ++ .../potion/ClearPotionEffectAction.java | 41 ++ .../actions/potion/PotionEffectAction.java | 54 +++ .../java/fr/gravencyg/actions/team/Team.java | 59 +++ .../fr/gravencyg/actions/team/TeamAction.java | 89 ++++ .../actions/toggle/ToggleBuildAction.java | 50 ++ .../actions/toggle/ToggleFallDamage.java | 48 ++ .../actions/toggle/ToggleFlyAction.java | 48 ++ .../actions/toggle/ToggleFreezeAction.java | 35 ++ .../actions/toggle/ToggleGlowAction.java | 40 ++ .../actions/toggle/TogglePvPAction.java | 50 ++ .../actions/waitable/WaitAction.java | 35 ++ .../actions/waitable/WaitAction2.java | 35 ++ .../actions/waitable/WaitAction3.java | 35 ++ .../java/fr/gravencyg/commands/TCommand.java | 105 +++++ .../admin/AdminForceLevelCommand.java | 39 ++ .../admin/AdminForceUpdateHoloCommand.java | 30 ++ .../commands/admin/AdminRankCommand.java | 59 +++ .../admin/AdminRefreshLevelCommand.java | 36 ++ .../commands/game/GameLeaveCommand.java | 23 + .../commands/game/GamePlayCommand.java | 100 ++++ .../commands/link/LinkDiscordCommand.java | 19 + .../commands/link/LinkShopCommand.java | 19 + .../commands/link/LinkTwitterCommand.java | 19 + .../commands/manage/ManageFriendCommand.java | 119 +++++ .../manage/ManageLocationCommand.java | 67 +++ .../commands/manage/ManageMessageCommand.java | 73 +++ .../commands/manage/ManageNPCCommand.java | 30 ++ .../manage/ManageVariablesCommand.java | 72 +++ .../commands/mod/ModFreezeCommand.java | 46 ++ .../commands/mod/ModKickCommand.java | 43 ++ .../commands/mod/ModMuteCommand.java | 41 ++ .../commands/mod/ModUnMuteCommand.java | 27 ++ .../commands/mod/ModVerifyGameCommand.java | 68 +++ .../commands/player/PlayerActionCommand.java | 23 + .../commands/player/PlayerBarrierCommand.java | 24 + .../player/PlayerBlockConditionCommand.java | 26 ++ .../player/PlayerBlockEventCommand.java | 26 ++ .../commands/player/PlayerFlyCommand.java | 38 ++ .../player/PlayerGameModeCommand.java | 39 ++ .../commands/player/PlayerHatCommand.java | 35 ++ .../commands/player/PlayerHeadCommand.java | 47 ++ .../commands/player/PlayerHubCommand.java | 26 ++ .../commands/player/PlayerPingCommand.java | 21 + .../commands/player/PlayerPlotCommand.java | 25 + .../commands/player/PlayerUUIDCommand.java | 21 + .../player/PlayerWorldEditCommand.java | 63 +++ .../player/ShortcutGameNameCommand.java | 37 ++ .../player/ShortcutOptionCommand.java | 31 ++ .../player/ShortcutSetCodeCommand.java | 32 ++ .../player/ShortcutSetSpawnCommand.java | 34 ++ .../commands/shortcut/ShopPremiumCommand.java | 93 ++++ src/main/java/fr/gravencyg/game/CYGame.java | 206 +++++++++ .../java/fr/gravencyg/game/CYGameManager.java | 365 +++++++++++++++ .../java/fr/gravencyg/game/CYGameState.java | 21 + src/main/java/fr/gravencyg/items/Armor.java | 7 + .../java/fr/gravencyg/items/ArmorManager.java | 66 +++ .../java/fr/gravencyg/items/ItemBuilder.java | 225 +++++++++ .../fr/gravencyg/listeners/BlockListener.java | 270 +++++++++++ .../fr/gravencyg/listeners/ChatListener.java | 55 +++ .../gravencyg/listeners/PlayerListener.java | 315 +++++++++++++ .../fr/gravencyg/listeners/WorldListener.java | 125 +++++ .../gravencyg/manager/CYGCompilerManager.java | 116 +++++ .../fr/gravencyg/manager/CYGDataManager.java | 435 ++++++++++++++++++ .../gravencyg/manager/CYGHologramManager.java | 101 ++++ .../fr/gravencyg/manager/CYGPlotManager.java | 113 +++++ .../gravencyg/manager/CYGWorleditManager.java | 164 +++++++ .../fr/gravencyg/menus/CustomMenuManager.java | 101 ++++ .../fr/gravencyg/menus/all/ActionMenu.java | 92 ++++ .../fr/gravencyg/menus/all/EventMenu.java | 155 +++++++ .../fr/gravencyg/menus/all/GameModeMenu.java | 58 +++ .../java/fr/gravencyg/menus/all/PlayMenu.java | 69 +++ .../fr/gravencyg/menus/all/UpgradeMenu.java | 111 +++++ .../fr/gravencyg/menus/core/CustomMenu.java | 17 + .../menus/core/CustomMenuListener.java | 54 +++ .../menus/locations/LocationMenu.java | 122 +++++ .../menus/locations/LocationSelectMenu.java | 149 ++++++ .../gravencyg/menus/messages/MessageMenu.java | 103 +++++ .../menus/messages/MessageSelectMenu.java | 145 ++++++ .../menus/options/OptionAutostartMenu.java | 83 ++++ .../menus/options/OptionLifeMenu.java | 83 ++++ .../menus/options/OptionMaxPlayersMenu.java | 82 ++++ .../gravencyg/menus/options/OptionMenu.java | 104 +++++ .../menus/options/OptionStartingTimeMenu.java | 82 ++++ .../menus/options/OptionWhitelistMenu.java | 73 +++ .../gravencyg/menus/plot/PlayPlayerMenu.java | 89 ++++ .../gravencyg/menus/plot/PlotManageMenu.java | 90 ++++ .../fr/gravencyg/menus/plot/PlotMenu.java | 69 +++ .../menus/variables/VariableMenu.java | 103 +++++ .../menus/variables/VariableSelectMenu.java | 145 ++++++ .../fr/gravencyg/model/ActionProcess.java | 39 ++ .../java/fr/gravencyg/model/CYGameMode.java | 7 + .../java/fr/gravencyg/model/GameConfig.java | 63 +++ .../fr/gravencyg/model/MaterialAndData.java | 27 ++ src/main/java/fr/gravencyg/model/Plot.java | 139 ++++++ src/main/java/fr/gravencyg/model/Storage.java | 79 ++++ .../fr/gravencyg/model/VerifyGameConfig.java | 40 ++ src/main/java/fr/gravencyg/npcs/NPC.java | 58 +++ .../fr/gravencyg/npcs/NPCClickListener.java | 42 ++ .../java/fr/gravencyg/npcs/NPCManager.java | 73 +++ .../java/fr/gravencyg/npcs/all/DevNPC.java | 28 ++ .../java/fr/gravencyg/npcs/all/PlayNPC.java | 29 ++ .../fr/gravencyg/npcs/all/UpgradeNPC.java | 29 ++ .../gravencyg/schedule/CYGExecutionTask.java | 103 +++++ .../fr/gravencyg/schedule/CYGGameCycle.java | 149 ++++++ .../scoreboards/ScoreboardManager.java | 137 ++++++ .../gravencyg/scoreboards/ScoreboardSign.java | 368 +++++++++++++++ src/main/java/fr/gravencyg/utils/CEvent.java | 54 +++ src/main/java/fr/gravencyg/utils/CLevel.java | 165 +++++++ src/main/java/fr/gravencyg/utils/CRank.java | 34 ++ .../fr/gravencyg/utils/LocationUtils.java | 56 +++ .../java/fr/gravencyg/utils/PlotSize.java | 28 ++ src/main/resources/plugin.yml | 88 ++++ 453 files changed, 11261 insertions(+) create mode 100644 .gradle/7.1/dependencies-accessors/dependencies-accessors.lock create mode 100644 .gradle/7.1/dependencies-accessors/gc.properties create mode 100644 .gradle/7.1/executionHistory/executionHistory.bin create mode 100644 .gradle/7.1/executionHistory/executionHistory.lock create mode 100644 .gradle/7.1/fileChanges/last-build.bin create mode 100644 .gradle/7.1/fileHashes/fileHashes.bin create mode 100644 .gradle/7.1/fileHashes/fileHashes.lock create mode 100644 .gradle/7.1/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/7.1/gc.properties create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/buildOutputCleanup/outputFiles.bin create mode 100644 .gradle/checksums/checksums.lock create mode 100644 .gradle/checksums/md5-checksums.bin create mode 100644 .gradle/checksums/sha1-checksums.bin create mode 100644 .gradle/vcs-1/gc.properties create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/CYG_jar.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/discord.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/gson_2_8_2.xml create mode 100644 .idea/libraries/spigot.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 build.gradle create mode 100644 build/classes/java/main/fr/gravencyg/CYG.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/Action.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/ActionRegisters.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/ChangeGameModeAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/ConditionAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/DropItemAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/KillMonsterAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/MonsterSpawnAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/MusicAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/PassAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/RandomAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/RestorePlayer.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/basic/TeleportAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/block/RegenMapAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/block/RemoveBlockAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/block/SetBlockAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/game/EliminateAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/game/StopGameAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/game/WinnerAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/inventory/ChestAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/inventory/ClearAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/message/BossBarAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/message/MessageAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/message/ResetBossBarAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/message/TitleAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/potion/ClearPotionEffectAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/potion/PotionEffectAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/team/Team.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/team/TeamAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/ToggleBuildAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFallDamage.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFlyAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFreezeAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/ToggleGlowAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/toggle/TogglePvPAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction2.class create mode 100644 build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction3.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/TCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/admin/AdminForceLevelCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/admin/AdminRankCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/admin/AdminRefreshLevelCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/game/GameLeaveCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/game/GamePlayCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/link/LinkDiscordCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/link/LinkShopCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/link/LinkTwitterCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/manage/ManageFriendCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/manage/ManageLocationCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/manage/ManageMessageCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/manage/ManageNPCCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/manage/ManageVariablesCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/mod/ModFreezeCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/mod/ModKickCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/mod/ModMuteCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/mod/ModUnMuteCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/mod/ModVerifyGameCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerActionCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerBarrierCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerBlockConditionCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerBlockEventCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerFlyCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerGameModeCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerHatCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerHeadCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerHubCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerPingCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerPlotCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerUUIDCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/PlayerWorldEditCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/ShortcutGameNameCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/ShortcutOptionCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetCodeCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/commands/shortcut/ShopPremiumCommand.class create mode 100644 build/classes/java/main/fr/gravencyg/game/CYGame.class create mode 100644 build/classes/java/main/fr/gravencyg/game/CYGameManager.class create mode 100644 build/classes/java/main/fr/gravencyg/game/CYGameState.class create mode 100644 build/classes/java/main/fr/gravencyg/items/Armor.class create mode 100644 build/classes/java/main/fr/gravencyg/items/ArmorManager$1.class create mode 100644 build/classes/java/main/fr/gravencyg/items/ArmorManager.class create mode 100644 build/classes/java/main/fr/gravencyg/items/ItemBuilder.class create mode 100644 build/classes/java/main/fr/gravencyg/listeners/BlockListener.class create mode 100644 build/classes/java/main/fr/gravencyg/listeners/ChatListener.class create mode 100644 build/classes/java/main/fr/gravencyg/listeners/PlayerListener.class create mode 100644 build/classes/java/main/fr/gravencyg/listeners/WorldListener.class create mode 100644 build/classes/java/main/fr/gravencyg/manager/CYGCompilerManager.class create mode 100644 build/classes/java/main/fr/gravencyg/manager/CYGDataManager.class create mode 100644 build/classes/java/main/fr/gravencyg/manager/CYGHologramManager.class create mode 100644 build/classes/java/main/fr/gravencyg/manager/CYGPlotManager.class create mode 100644 build/classes/java/main/fr/gravencyg/manager/CYGWorleditManager.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/CustomMenuManager.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/ActionMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/EventMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/GameModeMenu$1.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/GameModeMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/PlayMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/all/UpgradeMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/core/CustomMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/core/CustomMenuListener.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/locations/LocationMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/locations/LocationSelectMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/messages/MessageMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/messages/MessageSelectMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionAutostartMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionLifeMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionMaxPlayersMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionMenu$1.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionStartingTimeMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/options/OptionWhitelistMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/plot/PlayPlayerMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu$1.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/plot/PlotMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/variables/VariableMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/menus/variables/VariableSelectMenu.class create mode 100644 build/classes/java/main/fr/gravencyg/model/ActionProcess.class create mode 100644 build/classes/java/main/fr/gravencyg/model/CYGameMode.class create mode 100644 build/classes/java/main/fr/gravencyg/model/GameConfig.class create mode 100644 build/classes/java/main/fr/gravencyg/model/MaterialAndData.class create mode 100644 build/classes/java/main/fr/gravencyg/model/Plot.class create mode 100644 build/classes/java/main/fr/gravencyg/model/Storage.class create mode 100644 build/classes/java/main/fr/gravencyg/model/VerifyGameConfig.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/NPC.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/NPCClickListener.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/NPCManager.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/all/DevNPC.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/all/PlayNPC.class create mode 100644 build/classes/java/main/fr/gravencyg/npcs/all/UpgradeNPC.class create mode 100644 build/classes/java/main/fr/gravencyg/schedule/CYGExecutionTask.class create mode 100644 build/classes/java/main/fr/gravencyg/schedule/CYGGameCycle.class create mode 100644 build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardManager.class create mode 100644 build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$1.class create mode 100644 build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class create mode 100644 build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign.class create mode 100644 build/classes/java/main/fr/gravencyg/utils/CEvent.class create mode 100644 build/classes/java/main/fr/gravencyg/utils/CLevel.class create mode 100644 build/classes/java/main/fr/gravencyg/utils/CRank.class create mode 100644 build/classes/java/main/fr/gravencyg/utils/LocationUtils.class create mode 100644 build/classes/java/main/fr/gravencyg/utils/PlotSize.class create mode 100644 build/libs/CYG-all.jar create mode 100644 build/resources/main/plugin.yml create mode 100644 build/tmp/compileJava/previous-compilation-data.bin create mode 100644 build/tmp/shadowJar/MANIFEST.MF create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 local.properties create mode 100644 out/production/CYG/fr/gravencyg/CYG.class create mode 100644 out/production/CYG/fr/gravencyg/actions/Action.class create mode 100644 out/production/CYG/fr/gravencyg/actions/ActionRegisters.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/ChangeGameModeAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/ConditionAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/DropItemAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/KillMonsterAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/MonsterSpawnAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/MusicAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/PassAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/RandomAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/RestorePlayer.class create mode 100644 out/production/CYG/fr/gravencyg/actions/basic/TeleportAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/block/RegenMapAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/block/RemoveBlockAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/block/SetBlockAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/game/EliminateAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/game/StopGameAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/game/WinnerAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/inventory/ChestAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/inventory/ClearAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/message/BossBarAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/message/MessageAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/message/ResetBossBarAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/message/TitleAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/potion/ClearPotionEffectAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/potion/PotionEffectAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/team/Team.class create mode 100644 out/production/CYG/fr/gravencyg/actions/team/TeamAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/ToggleBuildAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/ToggleFallDamage.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/ToggleFlyAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/ToggleFreezeAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/ToggleGlowAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/toggle/TogglePvPAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/waitable/WaitAction.class create mode 100644 out/production/CYG/fr/gravencyg/actions/waitable/WaitAction2.class create mode 100644 out/production/CYG/fr/gravencyg/commands/AdminForceLevelCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/AdminRankCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/AdminRefreshLevelCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/GameLeaveCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/GamePlayCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/LinkDiscordCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/LinkShopCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/LinkTwitterCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ManageFriendCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ManageLocationCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ManageMessageCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ManageNPCCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ManageVariablesCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ModFreezeCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ModKickCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ModMuteCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ModUnMuteCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ModVerifyGameCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerActionCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerBarrierCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerBlockConditionCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerBlockEventCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerFlyCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerGameModeCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerHatCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerHeadCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerHubCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerPingCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerPlotCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerUUIDCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/PlayerWorldEditCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ShopPremiumCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/ShortcutPlotTpCommand.class create mode 100644 out/production/CYG/fr/gravencyg/commands/TCommand.class create mode 100644 out/production/CYG/fr/gravencyg/game/CYGame.class create mode 100644 out/production/CYG/fr/gravencyg/game/CYGameManager.class create mode 100644 out/production/CYG/fr/gravencyg/game/CYGameState.class create mode 100644 out/production/CYG/fr/gravencyg/items/Armor.class create mode 100644 out/production/CYG/fr/gravencyg/items/ArmorManager$1.class create mode 100644 out/production/CYG/fr/gravencyg/items/ArmorManager.class create mode 100644 out/production/CYG/fr/gravencyg/items/ItemBuilder.class create mode 100644 out/production/CYG/fr/gravencyg/listeners/BlockListener.class create mode 100644 out/production/CYG/fr/gravencyg/listeners/ChatListener.class create mode 100644 out/production/CYG/fr/gravencyg/listeners/PlayerListener.class create mode 100644 out/production/CYG/fr/gravencyg/listeners/WorldListener.class create mode 100644 out/production/CYG/fr/gravencyg/manager/CYGCompilerManager.class create mode 100644 out/production/CYG/fr/gravencyg/manager/CYGDataManager.class create mode 100644 out/production/CYG/fr/gravencyg/manager/CYGHologramManager.class create mode 100644 out/production/CYG/fr/gravencyg/manager/CYGPlotManager.class create mode 100644 out/production/CYG/fr/gravencyg/manager/CYGWorleditManager.class create mode 100644 out/production/CYG/fr/gravencyg/menus/CustomMenuManager.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/ActionMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/EventMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/GameModeMenu$1.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/GameModeMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/PlayMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/all/UpgradeMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/core/CustomMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/core/CustomMenuListener.class create mode 100644 out/production/CYG/fr/gravencyg/menus/locations/LocationMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/locations/LocationSelectMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/messages/MessageMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/messages/MessageSelectMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionAutostartMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionLifeMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionMaxPlayersMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionMenu$1.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionStartingTimeMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/options/OptionWhitelistMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/plot/PlotManageMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/plot/PlotMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/variables/VariableMenu.class create mode 100644 out/production/CYG/fr/gravencyg/menus/variables/VariableSelectMenu.class create mode 100644 out/production/CYG/fr/gravencyg/model/ActionProcess.class create mode 100644 out/production/CYG/fr/gravencyg/model/CYGameMode.class create mode 100644 out/production/CYG/fr/gravencyg/model/GameConfig.class create mode 100644 out/production/CYG/fr/gravencyg/model/MaterialAndData.class create mode 100644 out/production/CYG/fr/gravencyg/model/Plot.class create mode 100644 out/production/CYG/fr/gravencyg/model/Storage.class create mode 100644 out/production/CYG/fr/gravencyg/model/VerifyGameConfig.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/NPC.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/NPCClickListener.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/NPCManager.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/all/DevNPC.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/all/PlayNPC.class create mode 100644 out/production/CYG/fr/gravencyg/npcs/all/UpgradeNPC.class create mode 100644 out/production/CYG/fr/gravencyg/schedule/CYGExecutionTask.class create mode 100644 out/production/CYG/fr/gravencyg/schedule/CYGGameCycle.class create mode 100644 out/production/CYG/fr/gravencyg/scoreboards/ScoreboardManager.class create mode 100644 out/production/CYG/fr/gravencyg/scoreboards/ScoreboardSign$1.class create mode 100644 out/production/CYG/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class create mode 100644 out/production/CYG/fr/gravencyg/scoreboards/ScoreboardSign.class create mode 100644 out/production/CYG/fr/gravencyg/utils/CEvent.class create mode 100644 out/production/CYG/fr/gravencyg/utils/CLevel.class create mode 100644 out/production/CYG/fr/gravencyg/utils/CRank.class create mode 100644 out/production/CYG/fr/gravencyg/utils/LocationUtils.class create mode 100644 out/production/CYG/fr/gravencyg/utils/PlotSize.class create mode 100644 out/production/CYG/plugin.yml create mode 100644 src/main/java/fr/gravencyg/CYG.java create mode 100644 src/main/java/fr/gravencyg/actions/Action.java create mode 100644 src/main/java/fr/gravencyg/actions/ActionRegisters.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/ChangeGameModeAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/ConditionAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/DropItemAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/KillMonsterAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/MonsterSpawnAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/MusicAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/PassAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/RandomAction.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/RestorePlayer.java create mode 100644 src/main/java/fr/gravencyg/actions/basic/TeleportAction.java create mode 100644 src/main/java/fr/gravencyg/actions/block/RegenMapAction.java create mode 100644 src/main/java/fr/gravencyg/actions/block/RemoveBlockAction.java create mode 100644 src/main/java/fr/gravencyg/actions/block/SetBlockAction.java create mode 100644 src/main/java/fr/gravencyg/actions/game/EliminateAction.java create mode 100644 src/main/java/fr/gravencyg/actions/game/StopGameAction.java create mode 100644 src/main/java/fr/gravencyg/actions/game/WinnerAction.java create mode 100644 src/main/java/fr/gravencyg/actions/inventory/ChestAction.java create mode 100644 src/main/java/fr/gravencyg/actions/inventory/ClearAction.java create mode 100644 src/main/java/fr/gravencyg/actions/message/BossBarAction.java create mode 100644 src/main/java/fr/gravencyg/actions/message/MessageAction.java create mode 100644 src/main/java/fr/gravencyg/actions/message/ResetBossBarAction.java create mode 100644 src/main/java/fr/gravencyg/actions/message/TitleAction.java create mode 100644 src/main/java/fr/gravencyg/actions/potion/ClearPotionEffectAction.java create mode 100644 src/main/java/fr/gravencyg/actions/potion/PotionEffectAction.java create mode 100644 src/main/java/fr/gravencyg/actions/team/Team.java create mode 100644 src/main/java/fr/gravencyg/actions/team/TeamAction.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/ToggleBuildAction.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/ToggleFallDamage.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/ToggleFlyAction.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/ToggleFreezeAction.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/ToggleGlowAction.java create mode 100644 src/main/java/fr/gravencyg/actions/toggle/TogglePvPAction.java create mode 100644 src/main/java/fr/gravencyg/actions/waitable/WaitAction.java create mode 100644 src/main/java/fr/gravencyg/actions/waitable/WaitAction2.java create mode 100644 src/main/java/fr/gravencyg/actions/waitable/WaitAction3.java create mode 100644 src/main/java/fr/gravencyg/commands/TCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/admin/AdminForceLevelCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/admin/AdminRankCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/admin/AdminRefreshLevelCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/game/GameLeaveCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/game/GamePlayCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/link/LinkDiscordCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/link/LinkShopCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/link/LinkTwitterCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/manage/ManageFriendCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/manage/ManageLocationCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/manage/ManageMessageCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/manage/ManageNPCCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/manage/ManageVariablesCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/mod/ModFreezeCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/mod/ModKickCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/mod/ModMuteCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/mod/ModUnMuteCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/mod/ModVerifyGameCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerActionCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerBarrierCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerBlockConditionCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerBlockEventCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerFlyCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerGameModeCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerHatCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerHeadCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerHubCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerPingCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerPlotCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerUUIDCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/PlayerWorldEditCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/ShortcutGameNameCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/ShortcutOptionCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/ShortcutSetCodeCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.java create mode 100644 src/main/java/fr/gravencyg/commands/shortcut/ShopPremiumCommand.java create mode 100644 src/main/java/fr/gravencyg/game/CYGame.java create mode 100644 src/main/java/fr/gravencyg/game/CYGameManager.java create mode 100644 src/main/java/fr/gravencyg/game/CYGameState.java create mode 100644 src/main/java/fr/gravencyg/items/Armor.java create mode 100644 src/main/java/fr/gravencyg/items/ArmorManager.java create mode 100644 src/main/java/fr/gravencyg/items/ItemBuilder.java create mode 100644 src/main/java/fr/gravencyg/listeners/BlockListener.java create mode 100644 src/main/java/fr/gravencyg/listeners/ChatListener.java create mode 100644 src/main/java/fr/gravencyg/listeners/PlayerListener.java create mode 100644 src/main/java/fr/gravencyg/listeners/WorldListener.java create mode 100644 src/main/java/fr/gravencyg/manager/CYGCompilerManager.java create mode 100644 src/main/java/fr/gravencyg/manager/CYGDataManager.java create mode 100644 src/main/java/fr/gravencyg/manager/CYGHologramManager.java create mode 100644 src/main/java/fr/gravencyg/manager/CYGPlotManager.java create mode 100644 src/main/java/fr/gravencyg/manager/CYGWorleditManager.java create mode 100644 src/main/java/fr/gravencyg/menus/CustomMenuManager.java create mode 100644 src/main/java/fr/gravencyg/menus/all/ActionMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/all/EventMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/all/GameModeMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/all/PlayMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/all/UpgradeMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/core/CustomMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/core/CustomMenuListener.java create mode 100644 src/main/java/fr/gravencyg/menus/locations/LocationMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/locations/LocationSelectMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/messages/MessageMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/messages/MessageSelectMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionAutostartMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionLifeMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionMaxPlayersMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionStartingTimeMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/options/OptionWhitelistMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/plot/PlayPlayerMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/plot/PlotManageMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/plot/PlotMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/variables/VariableMenu.java create mode 100644 src/main/java/fr/gravencyg/menus/variables/VariableSelectMenu.java create mode 100644 src/main/java/fr/gravencyg/model/ActionProcess.java create mode 100644 src/main/java/fr/gravencyg/model/CYGameMode.java create mode 100644 src/main/java/fr/gravencyg/model/GameConfig.java create mode 100644 src/main/java/fr/gravencyg/model/MaterialAndData.java create mode 100644 src/main/java/fr/gravencyg/model/Plot.java create mode 100644 src/main/java/fr/gravencyg/model/Storage.java create mode 100644 src/main/java/fr/gravencyg/model/VerifyGameConfig.java create mode 100644 src/main/java/fr/gravencyg/npcs/NPC.java create mode 100644 src/main/java/fr/gravencyg/npcs/NPCClickListener.java create mode 100644 src/main/java/fr/gravencyg/npcs/NPCManager.java create mode 100644 src/main/java/fr/gravencyg/npcs/all/DevNPC.java create mode 100644 src/main/java/fr/gravencyg/npcs/all/PlayNPC.java create mode 100644 src/main/java/fr/gravencyg/npcs/all/UpgradeNPC.java create mode 100644 src/main/java/fr/gravencyg/schedule/CYGExecutionTask.java create mode 100644 src/main/java/fr/gravencyg/schedule/CYGGameCycle.java create mode 100644 src/main/java/fr/gravencyg/scoreboards/ScoreboardManager.java create mode 100644 src/main/java/fr/gravencyg/scoreboards/ScoreboardSign.java create mode 100644 src/main/java/fr/gravencyg/utils/CEvent.java create mode 100644 src/main/java/fr/gravencyg/utils/CLevel.java create mode 100644 src/main/java/fr/gravencyg/utils/CRank.java create mode 100644 src/main/java/fr/gravencyg/utils/LocationUtils.java create mode 100644 src/main/java/fr/gravencyg/utils/PlotSize.java create mode 100644 src/main/resources/plugin.yml diff --git a/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock b/.gradle/7.1/dependencies-accessors/dependencies-accessors.lock new file mode 100644 index 0000000000000000000000000000000000000000..fbd5d1c4e154d435cc111486ea92c02e182c2471 GIT binary patch literal 17 TcmZRUNb#B3yJX?Efd%Zn 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 r97#Qs1Ftcwu3<;kHBP0rZ1SZV}v|kaZ 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 D`vJCT literal 0 HcmV?d00001 diff --git a/.gradle/7.1/executionHistory/executionHistory.lock b/.gradle/7.1/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..509e42f1d2c8fcf95b7234030e406a3c7229d9e1 GIT binary patch literal 17 UcmZP;oE;mR9x}y?0Ss6I03~7rR{#J2 literal 0 HcmV?d00001 diff --git a/.gradle/7.1/fileChanges/last-build.bin b/.gradle/7.1/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/7.1/fileHashes/fileHashes.bin b/.gradle/7.1/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..44c8c04e329904f9475a3cd5b799ede9c1c54b33 GIT binary patch literal 36797 zcmeI4c{EjB{Qs|co-Ya}{Z@OeXWwVNpU-Q5_Wta>KYO2ZuV)8|#LxK`Eu{Y~y#M>J z|NiY?1pY2F? zpl(Tr>w9aX0*}2Dg1VUquE+Sz>+oyqLEX^{(^G%_z4zPE;tJH$r7%71VV2m7);t}k zCkJAB<~Ng+zUK#~pC}nDGw?JDg}RLe zu2+bu)IHnq1nPcx+zM=lK5a6Svw*sr0cKwi&Q5JG-h%dXFAc6A3g7=rynhR{kE+4+ zlV$aDnF@WIpq@*G>ph!4joxGV|xQF|wO%)Urtkd->`U<7O@4fk7=ej!@M!l(o4ySXs?Gi+a| zf_~+1hq~`2OfSA~;(D~zs}$0MohSFt-lnrW^6swZEoWFr{4;D z+qMisJwpuBOFP%?-K!(Q3H20TOh32g$Ta(@w0lrLjF0PFp4l;e9;<^;_rm9;Y)y{4 z$I_-qsQcn^J1?bSbL61@R;U}}>*Rd%G&7gp>7P(f$K!u~cb0L zvW3y=7ghJsbrr0S>-&~X&og|Vf%YLfxZYAFu}W+Xwa-1?~4U!(o`i0KvUf)i**j%YyL>IANDPtCkxQ+^2Q@oR8BuK%{-v2~tM55(uUQtQ-E zgDvSa)cx>rRaXAApgHHf4(cgISUcDLW^->DQb~h)UN)vzsoGUn=kAzzH3AM@J~$tPk9sfw@S7usQcsn`ETYa zqe{BQZK&^>!|ZE2hAeZ-+MJ>8i06&kCGqa9oTPZDr{VeSM!9TO&Q%U6s7G31?cDfD zdxo|~OB3n`Ut{{sH~mS;V;%NTca6vO&wJ`Fzd3aa>ZyA%y{`F%$$=;Q==>hU<5Pdm zf>&5P1I<@^H)Hm<=>PhE{7!|&$H5=d?+D4BkLC@Eh3z}FVtONQ7sG_k(hsQTFyOkX zvU0&X7YV4l;Nxlx4H|m4^ajc#Cp^xLx1zjG$FQ`a?R4So+>tQ6JScAp^_T!mZ&DX; z&i$m21ogwNxW2HhCr>W{-7hJ0n0~iFx!fk^J38K&9$f#VvCgoLj~=#T?2YNo#|{oV z8Q(U7x>+KwkDiVyOTo?;_wAT|Z{x{wl1+dJw70;|qZWC~u^emPPf#~a$Lw1aMANs} zSfbF{aJmz&Z4*x~!S*2+V4(Qj9qPV%nEudO|M6l=JR8*G@cjAEE%NFf z%L}wn_r%x#!-VO>+6;~8JJe4{%_Vm`)nOd?^NBcq1>Z{#^2c<)1O-M9R9ww^c1w;XN~F4jwm1P z?k+;_ftj(mUdJaFIG>NMhX7|x?{ZlDz4Z#GENsUCU;o{7qozZpcFj=F+=bcqP}4kf z-zc~i>H+t0T`7B0!bd4lsGA$%`tcz?r(!gnki5+?y;pHn!K8E&x*i;raedHcWr+uD$(a%@qe|e+bVf&+q^E_2b(kbiBLq`F%bVRDIx4 zBLlRL&Bxm5W46~ccV9x!kvu%keI8Z6?%44AK>OX{xP5qZw)}CKVyH(*WBPz&Tfxqc zj_A1XH1>C3j!Q?E|B*bj--E~PW%BvQ9KzbEP!F`g+Icl8D>m@c=q}U~@I3HpI?f=* zVe6a{$9!U;ug7a^xR2)j_W~ROR^uoJ_qf0;c=jO%yf!ZgmVz60CIypHK#SS&iL zaE3+C!3|xMQ_GbatHNzfv+#W>p)h>5jf4D_`hJp7Nv`>A6>0_}B>6Uv= z#6vv@-@jjdSl98=bMA+_HGU8LcH+sB`m?~ZQ1@5E+LY{rfg|i^vH(C8)>W#`G!Hx%*c}xmQEoE)vscG(^*O zU(!YMhAX~*XO6#@XnG}iAKJTfVD>+xhXlnxB%$|MpBP*>HuZ`sUebZ~F7>!>F}5M8 zZWa2xU~vxDZKW3HmuF(2eHJ&S&;IvpiqF^2p2)0j zCtmdVJyZj??{j2kfAN|NwiAOtNBm;ccZ*NlfaV_`d>_qKx@s-xbE50VAHNUGr;hy@ zD(`p-+p(6y+Fy9;dspX~b2`*bnlXK`E-w2-#Az0&hn&asC5@=xrjsOezl0X!`bWe2 z2FYPg(B2&H&(aU!Ee2eh-$30N&sWP5t3aMg>IZo-dzz91x)aw`9z#75Ustp= zOSMH;ewIPq@B(H}TcLY+%;U}xs2c^~`s8)0cWY<4p}uborqh{+2Yw5cMehTa`12s0 zRa|d@?A2G$K1><6w_{-_n6X9kaK=qs@818k;o-4s(0*4NuD|(ZA^26r4eF-Wm`)!m zb7@^bDti7NG{AHw?oH(_2Wr}(y&t|WnDSh2jK4bS1@&w;-2QC0y&o4H`h4NXg6YiL zuC;CF*fj+0Lm4ogEk0$GJeepdzUs3I6XrFol)4AQ9RsZ;mq32hYKCX8?Iw#KMVh-)2@pZyI zYwx@DeHI!Ydwf6gT&!Ex9?bgy?Guf#c6fj9VV2ppmIvyVcz#}8t$#zC|7Qx+-SPJM zwjE|Yy4zs~)WeprcK98%0;VHB%t77!Ev{ex651{nnhA9m2}~Do&+bfDlc8=hjqBgv2oJkuUV?ha3rrVcG26;GQ2qkyW*;$K zc=K$IH`5OEzO)OUU*U*ib$Z3`==|Dz#_dn8p9t!1Ux4i-abdcM_UPq3#lh%vK`?&4 zh^FXoH!}Euo?i*(n7tVLSoY6Le7j*g;Xg55Jm0rOvqc!q^L}{#5kH+LR`+wT4%+X- z^O(dTyG_HFbkK9^zy#KgB)61s_cf&nXzzp1uVg2ue{cEg0jL{p$Lys{0&*iG4x;_^ z=)v{pJy{ReJwopr0eP6dPP(?n@$vgDupPTAxUSa`Zh{F*RO!crG$97y_-nfIsPIn6G5#KRgTGUwa^B(QP~l}AxCiyn zE=-pbeKVcvw9pOpKzyCZX(i|KTwc8u>dAP%lFN+PT+n&X1nS{<|K%Sz2L_1W8ijhm z53K!-?$diMv?mjw9*Or~k+wMG#8lHusHfxezR8fG_;39q^xXH*!rIw%Uiw4Y1DB7` zJ{X^`P4n)KKf-O$b#8(8Q&~`%rNkqp9NJsq_YIX178e&uHh{?{U3G z^RO*`&)0K%Fv!$%9evI^(16+RU}%=zs(%9A*Sqy_J@Ng{)~fqQV1LYGaJ|Pzyhq(2 z80rohn6AIWlW%Fm(|)KQZpCy1$FFBa0y9*hz8jw}Lot1qV7az5sC&9&_J-w*w)0J? z=)L7&1+M?Ss6NkO7!K`I)G*zMb-_=GdUGz+)9&N?Q)X9Nhnvh$kH+(-aq*yXz`KuE zplGc}Os(n^Z*k*;|cogzb1I;`(jlx7(Jf zMxbt7i0P)k6(`^@&jw7lJo2|*LqtOa?GGQO?|D(lIrIwc zCdn9Iw>EnNR1UL8pm{zb8?(2KG1?GIT`LFM@tVfN9}WrHu&bMSrVK_$)m(oaMU>ihBa?BQMhpu}zvZ9fHT=C2p4%)QvM zljyz0s08~DUOS#=giAiZ0o$<=!}Xu?%pJ~jicpW;i0MAYb)vC-?_NVacL~>X6SI?R8A|O?-Vtv$ClW>hWK3eP~E|?JY%gLF{qHbiWn_Mf$nT2cf;?Q(S+jb(eiO z=PA^U@p<%DA7{xv-O&a0C_MiD8m)6)6*PuWcdfzN@wYyCwfXElbYDc+WBUHc)*aER z%BP@xxGS#L{`X+|VmJEUz#L!C0ku;3b)LfG(EflFW*;c@$Xi!npb_fc`1uvsuNZu^ z&I^4{WqKR457N)%iPOE74(*M!Fg^IoWo?!NPto}7#q&uB_lcIw9A@-6F&xjgA(w~Q zd0o;yU^~(HJ`JhVOJn>t`UL7>R9O3=ww4#xe%mw*^+Pn69?pAooI64qJ@?}rF+IXZ zNnp*RD;&_?Vk@p+2#^vTS3=K`efa!FGXC)wN#tRL_IvU9ie#>OaC7kdUevEQ)=uOG zwM-4KuvJh`Rl@YB%^Zv&VlQQ(?#7GjAr^~!+~Omk?uf6$gNxnkMynOjduGrs%s%@3 zAI0@kx{lD^dIHx6f88lcGwOwUZab#OWEy2?eH-`#^*m`zKeXEDw6^tL^!d@c0oOg( zZDji{jP8qQ4or{Ty|(HcLmNMAC)6L;Z!m^#k{m(vM)EmKkK3|u&o7%-&!N3@6Q;-i z=?{@8t67G+w+NWpQ@a;#dy`AEmB4!za<9J1E}jwkHU^}g$| z@E5#+2IJ8Av<>xPPDvCn3#{Q3y2xwNd-rj$yZ$dSvFR;3gS5yr6MV>fiP-ID-sd5s z@oe$iGo7E1=%0W-=r2+ddZO6|J!@(@9^5^7Q%%bh{LTWz%3+EV60|au1k1+Q%E`U? zoe}$}J#XJ)1WO2vLvgAD5;S)yi3|NbC+%N37N`w9+)_uHAkW~y%RKbmFb(p~nlKKR z{0nN{u{AM)e(_fYo6o*Qd`v4|eT4ehMM;<}+z~&!EU7fPxjC<>rbZ;c*5e~D~S&RDMewHka! z0!E%{kc|>qls;tQWWz3r^6MFlSlwprytV@&rWF<4A;F2ftt0fRZF{Sw#gm;fbiJBt z`{rp|5Mp2u`@K62^1UH}IJ(F%#&AwZuK&06rUA=v@J$R7D|hr8M*5GGME~`6hj!&v zv$sFZymhf>Fh+cQWi3IH8YpCt;3H~uoHMf1A#CTYMX=MDA+kym`V`p1AVIsrI4br? z@cT1yopLqt=lDF-$%Xp(3JE$|@JaAdAu7LM@O-=F<;o|5E(vDHj!Nj$ws?m6K-MsU zP_jQz-&nL`WO{vghdE6|AS8y-cf0h+yKVwet|g=pOjIbD~OB;pqX=pk_x{Z5Mf9VUUuYktqisFAXIM-^w*(?t7P zgy>UGYlJ>%+bMlK^r&Z#ZP$!?k-;H$fyQ(T^l^U%5;VyBc7l%$kH25?N>0yOdqc56 zXr>(X@eZtdq|mg2ia_u>D|j=_#_YD{9y!)em16^ae3~W$Bs%0AArOIP(mO7=r7XTw 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 HUEzNKbeH%* literal 0 HcmV?d00001 diff --git a/.gradle/7.1/fileHashes/fileHashes.lock b/.gradle/7.1/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..64a326d155e79b8a37d09fd7a3a68d4d955ab4d6 GIT binary patch literal 17 VcmZQJ{i!G5=ss7K0Sr7g0stgP1G4}C literal 0 HcmV?d00001 diff --git a/.gradle/7.1/fileHashes/resourceHashesCache.bin b/.gradle/7.1/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..5c2c89f43959001ba2e3385a829846082bb3d090 GIT binary patch literal 18565 zcmeI%u}Xqb6ae6h5J)KM5NJUl4lV|P4Q*irIRy>j;3E14E`lJmwbV1Th>O)TI5ao+ z0F4bT&2@i%f20>^knh5|_i*lk%lX!O5kj^6vtD7d_BN@E009C72oNAZfB*pk1PBly zK!5-N0t5&U*cO4CILK}~OtqCulF}rE<3dbw`Qp<~;iz|zUUx^?|G{{_`0{zyep}Z& zSv@;ry_4SA2@oJafB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5;&{}gD)$7(SuNtExenzz&Xb)_-CdtIFN=dpPBw_|Yf{r<5!pS6aM56{c5 H%cSEMZB01V literal 0 HcmV?d00001 diff --git a/.gradle/7.1/gc.properties b/.gradle/7.1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..6ff47cc7a3c51000713b3b4065ccaa2864072607 GIT binary patch literal 17 VcmZRcGtcPr&qo_N8Nh&D697Y_1*ZT2 literal 0 HcmV?d00001 diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..f1dfe87 --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Mon May 23 21:37:43 CEST 2022 +gradle.version=7.1 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4314729f941dafe5ab2b699b557e9507f8f8214 GIT binary patch literal 19019 zcmeI%Ye-XZ7{~FG^MWEegux8POauw12wLK0kRa8(#V`|sd8MqRfu)Qh)6fk}mc0<1 zOejJY1|k&|s3S1C9f z5dR|9Bnauz;zHH_V%%_cGSfdI9=dq`|DfYUsl(!p_fa3^ZdGq6a&ASGP>>V>ksK76cW?dpP=x`MlHG5q-F{9G^XGt0eS*=~{5=Y>*V1$~-I%uD4 z?vE?Fc6vPDU()<_?jzIA0#BOUNSpe)C+;El;hU{eKV8OMcBA`T zv(dFn^Jln+%6!l5gWHd2eu#UVvo}F~rBcd5VKR4B@yO2BJKHkNU*MiNEpKoQtSnK_ z=brM`d}OKlL6_8ZUhbJ+?tW`AT@Isp6Zh;pZDk8nuf}M;hPyUe-oHE(nML#4+>74i z={+9|HtL<+_4cFlbK1>r>aV$1d{rk@uH`MTW2m7pE|!t^LFmFjj0}6Uq%hh z_j0e(tXhm!?uRtL&i(eaR6}Wlk$+cO?yWIT6PxDR|r4=0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= x|Bpb1_^OfOdB}hIFEPIqG5od!>#o3k0?R?3CvYZM`vhy}KYN~o-1QeTKLH9&j=lf@ literal 0 HcmV?d00001 diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..796c772b96bfcbe04cf7554673ed47e7b62b9c7d GIT binary patch literal 17 UcmZS9-CeZH$Yj|e1_-zb05Ea{zW@LL literal 0 HcmV?d00001 diff --git a/.gradle/checksums/md5-checksums.bin b/.gradle/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..b2c0a2289a5197f8b4316ace939d1a1eebdf0703 GIT binary patch literal 20697 zcmeI3`9D>8AHc7zSMEg^TomORk|k5JG$cD0my4Q8)=8E~YAU0oBx7nS3^TfkEJInQ zF^MdxhML7-5<=_KVvonJO`dan&UfbZ+|wWMyq?$hyk3sm+kKz!`M#aw{LuZ{F&N6S zbJWK8XH)#=C4Pkq-~zY+E`ST*0=NJ!fD7OPxBxDI3*Z8{04{(F-~zY+E`ST*0{<@s zHWCwI!eo^7MadV7q8W@&q=*;#@n%K`Bj@gg!H=D1(f=PDEvsTzjg9sK=e8n#EcMsc zQSW?h;I1nWPud`oStYVq6}Xc%;+gIrum5eR^D%Ij8N{=XW_pSkmVyZ z%5jD|PAB3&)Tl<=%gF=+=Sm`8@u}w_RfgHbJju=V2I5yPTePqP zpT+`rx&1fqJ|DNdCf5(R`xC?~{OT1$hj!Tl=V>B-_2HscCF{W-fIAf+ej|?c#y?tK z47jr~;`Lo;g3{Y-&QZr_BYsEq_>-R+El<@2r2*$vBi^^T8JLTu8Xcwh zpNRikovVD@Lv0Cle0RjBXHVX0^X-xW?s^Jw=CtvZ%_qw@1LvMcoE3Mslh>H10Gv03 zxU6iO5A(vhCg6NI#I<85^R-!;2Eg49BCek-vpzA%rXRSAA>wAt-tK@jyDx#el_S3P z`72+UV|!hx_opFlq1x4=5ha%Z+*yFQ)qCI66CYIqW^m0BcO1#(gwAHv!4KTIh_?GJAZ`tyN)3q*D-y2 zfVYRb@A$Teqwfrc_$qMl9v8p`Z~%K)#>BkeeoULdJKNIwRU8+XfbF zh{!M6G(&u@S|sjuq9gUWYdvzEfso-TbNH6$aGuS5yGVD@o5?EF7`w?47!0XNVkcyX zHkdxC$v(ToC?y~#_EjzMnSF8|J+bowgGqkoU&yF0u`?E#(+XMq+Ar-RgVQuG~p0hv%B&GPRvx^s>N^+fO&xnYSd4$44bczi~S2?JcmNjMZRBZ=)N* z*URJ58$P>OFtM7=S3E(iNg(IZN3Atb?4cXR?66s{hmBW4ImvfhycTp*#&#G(OF%c8 zf0tOW-eD=n^=XdPY+#fh7z0FQa(iV;?1Wl1szh8{b;&thz9ru+`VZZm)I8MY1%|g9 z-FUY$yTZ_M?xl!j#T-0nYiHQhFYSbIUvqdy)DuMb=$9jk5#Qn?=2e&5gbs8Q13gVE~&hU`-M z7!!(1rt8#$`_+DC@O+v?Tfi7v3kK^v-S|%GcIbBbJxrJ7VI0q_6yho;&uWNT`Lk#l z-59N}?@8HhZsv04jQWOv>N{Y(RHnut*NzDN&MO~@eQ}8!A7;kUAJp0-N!+dE7%#7Y zAu~ZYLVQOPhWuhr=;pB2s<^aHfiXG2*WfxtW#`J0U~X&oD2vG~S~nSG|vSdid?U z5y?@U7Z}P(bYuOT;Ezf6!FvvkdHkH>+)~Pj0z>+1y208~b&OS)f5t6b@%tFJ>^aKl z1H+8C!-UW3tKxjGzg!2#@3XV770g^D)^ZVbBRNmO(E5dL#C%%XU{ZbLXZwsDH@KY0 z7|M78hV*f|@iwW6@6zEQIZd3RwOabF~C4CIdx2t769g@`&n|l41-YmTjh7NVL zt9;<8rYC6fE04(C+aaD%tRI}X3k-hlzaO!_q~(S8=f7qPdY@6VF`vL z`2-cZ5*sVOHVNKrq*Y&=Ab)dUnz&ZUdFW90hZ1qW2pjPYzv+gbsFR#rxP;RmUP7!C zn>T`B3=#5b5gJ1ywM;3XYfYj;VQrXo5_1n>#4`;}7lI*1Jb{D_oA7+qo0~mGLi+A^ uZxd^Vr$PK1>a3PsrW+$!X7A5NzPQdWikJ$rY8{^+W3|R<7(;jdO8gH&id-rH literal 0 HcmV?d00001 diff --git a/.gradle/checksums/sha1-checksums.bin b/.gradle/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f254f14743ffe04b6cc17981e247bde945c117b GIT binary patch literal 24653 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 T;}X1sT5FRiIC=@Pv8eSwR*_Ss literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/artifacts/CYG_jar.xml b/.idea/artifacts/CYG_jar.xml new file mode 100644 index 0000000..832e7d1 --- /dev/null +++ b/.idea/artifacts/CYG_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/../Serveur MC/plugins/ + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..cf77f1e --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..40bd79d --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..9779088 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/gson_2_8_2.xml b/.idea/libraries/gson_2_8_2.xml new file mode 100644 index 0000000..d7b4931 --- /dev/null +++ b/.idea/libraries/gson_2_8_2.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/spigot.xml b/.idea/libraries/spigot.xml new file mode 100644 index 0000000..e3dc20c --- /dev/null +++ b/.idea/libraries/spigot.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..62269df --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..5a0857d --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..b9fc349 --- /dev/null +++ b/build.gradle @@ -0,0 +1,49 @@ +plugins { + id 'java' + id "com.github.johnrengelman.shadow" version "6.1.0" +} + +repositories { + mavenCentral() + mavenLocal() + maven { + name = "spigotmc-repo" + url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/groups/public/" + } +} + +dependencies { + compileOnly 'org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT' +} + +compileJava.options.encoding = 'UTF-8' + +allprojects { + task buildPlugin(type: Copy) { + def shadow = !project.getTasksByName('shadowJar', true).isEmpty() + if(shadow) { + dependsOn 'shadowJar' + } else { + dependsOn 'build' + } + + from project.buildDir.path + '/libs' + into destDir + + if (shadow) { + include '*-all.jar' + } else { + include '*.jar' + } + } +} + + +shadowJar { + project.configurations.implementation.canBeResolved(true) + configurations = [project.configurations.implementation] +} \ No newline at end of file diff --git a/build/classes/java/main/fr/gravencyg/CYG.class b/build/classes/java/main/fr/gravencyg/CYG.class new file mode 100644 index 0000000000000000000000000000000000000000..fcf21b1f00b06a4cec47dbcb50c57b7ed7017185 GIT binary patch literal 11705 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 TBHkZw!~y(`=?6TtwEX`7ZLbgQ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/Action.class b/build/classes/java/main/fr/gravencyg/actions/Action.class new file mode 100644 index 0000000000000000000000000000000000000000..78ac4e410cb0f9d7a1a4ee290d2200dfbb18b142 GIT binary patch literal 971 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/ChangeGameModeAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/ChangeGameModeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..69ba48403cd99cd5bcdbb0ccf53cba744e77d47c GIT binary patch literal 2406 zcmai0TXWM^5dMyDk{xkrhz$g24NZ$fAc8`Z5_5AL6H=Uz+KFj;MV1dnu_C#$oZ{Xn zGtBVXr%uzSPG>rqzO_7rNjuXA`qt?m>P&BYWSg;#fyh3xcEA00&z{{?{`mKo-vFG! z-7wB#DuRPZN;nsRALqlkfQ#bSB^fDkpB776h-YME25=d(5nREXSl$%NRUylUF^`2X zu3>QiZy_fmFYZf1vMi$@?$>3!En`K(I}+Yy2%R%5!@a-|O=NF6YT41&xurMCYIIG{+FnEn&dDWz-l>b#rODYuHvzEowDG zSJSsNtITJ$H9k+&DNmOqM{Am43EC&ZUnoh zZ7Xw|>vflYUr%Ihr>qw1m5Sl2+#-U8x@c+*?j$=kMbp+R>aSoMar&(CI)$fT6%`4lf;ChWSg;jT@sR=t zH3_bQI@Tq8tl%~p5?wOUOp^EkKSk2bYh-B~wy{IG)0@r8mrXfPb; zMd_lX-MZu9zU&J*t2@8{sJX_?_+f@ay#$lBD%V}j<#k8s)vf}4er;1oeJz@$#SrT# z)Q)nb{dSqvUBj%Y>1^}FL)lCrlRZt`-F4E5qRu$kr>mb~AR6AE5bID!P;`oJ+BR*6 zI&C_;oS~3AEBdjT{Drh?m0NW5ClVcvdabxh2~0lOyRGUX!!CTQv7d#PUAu{*m}YaS z6^4N_cg08&qlOBZCPl{<+6wZtr;nIANjGhaI>oP*DEi^V%*@Qw2xM~P4Ge+n0(G1o zIg$vs)Tk0^PcZXTN;Eaio?zNy2Km}_K9ehCa@0bdyJ#bN4BMlW4D-vm!dxMh?J;a4 z$Z%iB_Pb^gWw6HGHj;o{6SOV&Mj!#L(mV}B>O}9&(K|IfR5&$L$Sf=^=cr)hbS{%x znk!^*7zgN0C;kGUUc-yDzC=$cdcpbV9zHhq0PG=rKhuK`aatpuVh}R+kU0=*0&xT{ z(-WCs1g{Vc!>c&jqPs*GCa}N4zw!`)2MBHVaLvBFmU7k&MnYq*HmbK zXdAm39^i!^5ZZ)tFTm~v+2((LMg!ksh;lW!jXge$4GwK1>O(XT_|6l@TH?Jeaj+@g z*Ank}As^p0bLn2&o0 rzJb@sgP*Ri$;&v^&+B9}1nD1y82cM1BuxATIU0+_$a0c&KD_Zi6jEFi literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/ConditionAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/ConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e7661953e002b7b4932ef3564604d01e70e67d80 GIT binary patch literal 2162 zcmai0|5g)66#gb8*$@`6fFNLPv{nOxYpMNZ5QTu$c2PoyeYFJUq z2WdRSYB#>dnwk}Qu#QI>HZ(kDNP65UyH$n(bBFJ7qaH}xSPNx2(#}dp26GH&v*wm( zR6M>X9BaQ~>H~#-xppkswvs7wQDS>G1uw2O0R4i&G1$| z*Al)Ta*?csC=6p!oK6oEaR|(CE@~8Y#?aejq=n6J>HqyR^pxBnaI0a!l&>hdN`+#S z2uTHQt!2_%2)MPo!fRo2G9I^)SM{M`Q^&XXPR9j2VK{TVW|X|B z<2>GF7zve;ge=shT^62(?{)lur#d)Fl%xAw*$Fkbbd-_RA@G#p;)d|#mK0vbmzigE zVbjmrc72f%evsMoxYV$vqk?UUT!+NAjvegkuu;|Fz|~OG@k~8E9X z874c5>C_Tr7(datSpf`#k$O6!nqjnKk7_I5$eUtM*wj|$(#DcGL%^MxjapH%Zk*6` zr)*ID*p*e|P$Z)KHV^Wy?Rv!Yg868PVK`bFZ`9;3$!j&?lo_V8k!E^W+7VWed%M3{ z>7zf4mE+3JC@PP~X`g4D=veZNMa$K0;)fQpmbWRvO0@(CwH^9_!6bQVinnjjVm zg=1}dq$W256iVwj5alp-Iz|VM&b;u|1 zv?2t2fGdQ`a244W`d!-3l4FmVc6 zuR`lP87*@n+9a;EV*3*sU8g{C>Ja@54V>v4!aD>ucq`r(^@oDQXuN@;L!4#!9r2g# z)pP^HFL1ssIKapY=p;UOh*1VbVOL1uSm^8u(RY;yo5T!eQNV3Hq3c}HIoAy44V^_y zVLGIui0d%IBo%Q39}?amUGX#ch*Ei({)M~q*F{9xV`cBZ^Pe~TTXa54K C10H|? literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/DropItemAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/DropItemAction.class new file mode 100644 index 0000000000000000000000000000000000000000..40c55c87587163062757fcc711d03a5b43fa222e GIT binary patch literal 3658 zcma)9dwU#J9ez);*|XU_NlV(a-6ADzg=|vjLcxj&BFQGLrQ0SpX=}mTWHU*pot;@` zXA4m)qIkbT6~!wTrQ!{!kanpyRaAWZ1b!ACAM1N&cEe1v4g7O5d(L~_^E>bFcJlB4 zy>SJ=-S}50j^TJ3{rI@Vi8R{rU?*QYdWJLWmIZo>r;Ia3zUEtY{zx!4%+-4>$MWwJ z=*<=9y!^apoH3o!!hF7PV*l{KF@Z$Eoizp46)nd+Tr1C*-n21ebEc>0mJIut;aU23 zV>02Nw5kHT;#@|_w_K;1pE0UdDL>}9l>@$69tmb?L!xY0jwW1XfIx?D`TDetxq;Ap z+i>RdQ@&?8^Lnf8dR*;vo$*J_QqAZ0@m$gM=JPYP)2A&zZ#pDc$WPkFg6R!MS7vOt zbUHt($Km+NW!~7%hvrRsZpo}x11Z`pU!X6_VL4RGcfEzYzR;9!kV`<4^RQ74Gzuh- z+nlaej7OYF*K$bL8>Q2VYNa&CELEzQp1{^9A~aen$Th-}mEdA4Q1MGs#9*7imeo|@ z{RO&0A2qHku;bk&q52iu?KwSej2KrqY4`=#c3B4!qs61+lrnm|=Elaxt_Mw#vJvcC<9uOi25Y30#7!?$NV?+KLxyj%$J)e11HL&; z$B&MW6ebR@=q1f{Zd(_*Rdvc_=G@Tirom%?b(yGmDu%(_yz)_<03@2D*qobQ4uFA} z&`o%YaN_}8@04ktD3B?+j?d0tJ!mcj?~ivXbu(%oq{K8{;MRAE>Ba^DEq4$O;gcca zzF?MStY0}7Y9BUi6_qNeJuch2er!y;yj{U9S8O%|f#Ik@jiiaB-Eta54qH|yw301R z6Wx5>pa=joSle`<`Osizj&F#RuO^0ju2bNe2#QbA0`+I1rek;J2Hr!}OtIw!FE@dS z)_#wsOT@6{w^1xf8a+b4oQAQTkK=y6vIW|7-{x0>--Fo2@izXNV>9x&Uzz zZG)H5e&Qk$ucPBt&bQ%qj@?87TaZF8HXw`L{Ix0Ehdl1!FEZ#pO;&-s_@)op?}4cLDlZ_lh|Zq$A~K6muW%*gPX?%)0$vsFXz;S;tijf$*}7Y^?P$ri7at656IUV8 zMGKY&U&FdZtlzbW8-^0M)zKsPI@r*?j=UR(Iv zt!;P)k4I;2Y{ON&Zz!pE-Biamc0A&5&L-;!moA}iNb->Fg1{X^scfo_odR{dUtp*+ z+j(Vgx_xh^H`AMb9{t(Q-prmMl~r#cc^*AkNz$y$syc3I$MGjJ;{3J$XeYG?PTB*- z?|xn?hi!E6ZaVmWj?6`$*udC5)mFgu@cXFiv~AsMbF0XRvJ}_eaUnfdkxq z5Q%Fz2PN@<#6gLo#36~p5)%@W!T2$WBZ4vWU-U{$y^Zc`+?rgCCz+tJI)aY=ACi~$ A3;+NC literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/KillMonsterAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/KillMonsterAction.class new file mode 100644 index 0000000000000000000000000000000000000000..0eacacdf832a4de61744e9684bdc872e4f2cbc58 GIT binary patch literal 2077 zcmah~ZBr9h6n-uw*}SX@6r!NDky;xRS+Uf%#9Bj))Ve?l2#tNQo6R*WYTjc`|?M$aL&N$P4>QCt3=!{c(?oFf{!yq%8E ze6d-taBtP9*t9dGyQX2U8J;EV&SoUouzZH8ZY;wLEZ6b1is4(PcGt4)1u_Hf<)tG> zRqBT22+ST14AH;}M8V9|w32PKxR(oiDz(%Dbyu#_p>3^AujIKV_kF2GtPRF67RKpRD9S=a zDb|p+4v*^apmWLc45z|SVM+|g+RAkpFpR&RB_*u{hPkz1G-OW{d`=_4kX&(_p2=@p zLdtYc52l2&3YJx@U{%E_++#TTs@ii+%dT=yxYrb{tM~$C75DKa6%8R~C&cDgD!#_J zif>S6IJes5UM6sR2eR3Lzil)vdPUL*L%-8ou|aE_|7FfDn1^#?I_|jznrI8NQW4Q z#+@NvBTej@*N>tq+5PKS;zlxn%JR2)6iqtcC-ROox?e&ay(pSkthO3-wKCnz<(#*)_Kb=Mf<6;EMUS6O zlwV$0T7IyynqR!da5k(%Pc)&$N_xIrT&4$)*WGQ7b4b&NL;OWR7Y3uWj**q8??oT| zCN5su0egzRCuH>DG_6VL7(kpp4QI$sw*&De&XPqbcncYVp^J?14%|(OVIuZd^p~F^ zvV-U@VnfO<;=4%vOrAD&Oh%1JT(zCi!DV>+2(+X?OC63jb|~6;ywl$4CUD7>i&W$D+6w6A>K8ed2LKJnk23 z4}|d`9*RK4WCR&ZMWJC@JhC!Q3X~qjDa;6fApkkC$&_J5u@!k?dsv1oqadN-Hr>>n zgAz8x)6;e$Ypb)GnVHKbQWJ-h9pe(}Qr46vp*gLa+F&s^soA6Iq`{SSX)B`|}t6|x+hAp%2jFu@n{C_N-w(M+TvN$uNI|@Rs z3!-k#mayHA@G?o+n(7p7&EB2HS91=Ot6-O(EEs^W@ZM|ysHBlj*Oy&$cR<6Gg`kcy0>v<-#Z0^GG-N= z#u)|IV2-fmto9UjV@k7y`4Jh9DtHX@3LeK35}I6|%6{V=V)aP{PoY!6)0mgArC-%; ztzFIMRa?~^{wtb*t9f{Ygxyo7ViUct*ar{ER5s^B%e zuHX%vm$9JWO}xeW6ugZKGTu?}F5Z*zzJd?%p@NU_v4l0tOHl9$K9%vAg3m>6U*Lj* zFL6=9SNK{&yHBcBWuV|2e5>F)d@td;K-d23V3C5Vcu&_PJ7D!RAo?m{y)UVXdMShe zzUb&iA(2XJvzkF+r~AhH();%_W>7AE7zMMh%Ai?ggP1|Jaq(>NrIb3UIw{Mrc#P_L z(qnxRTK&>rGK&+$_G{)8sf+uj$I#>{E#o9t4wSOoxG{h)Pn*^7A;bZ=-{ z!hu!h;_@`y0a!ldtv>2~V?{!g(JBEbC)VOaRt(I&K4VxWhd`}5#ZGLF_xASw8#F|h zJq9PTzy(0Q$aE?nqA=9=#nxz0v)KptLTsc8UqnYcE&OtUXz6* z8V4mW?0@D=Mb5`bF_V|Dvzm3~1_^?0S0~>6>T937$~4w2U-P*4Zb8LQl{-+ZoOcRF zEmoJZa(P1&S8~#yQ28|Z@>x1xzF;-D}xfk}y=gOMY>$bP~{Nz?{T3e%S5cMx#5J@agbj%Ez10Jv1H1XgE#d;B8xAUTmfam9MiSUxQ9E%Nb(c_I zLc=<_gis0LA8GM?H@K*n>sRr1l>PGCZ53}3;VoL-TU%9c`>@~3O*#mfH318|e}+;* zxgV?os5nFgg5r0*zVG*9`3a;*w8Kg}jaBEk{1;*r9Xc6ra7O|}sU133btxNh& z(h7E}kv(c-hdNo*Ard}HvTYJQ&z1AI!7cR!v7-pY5Ydb&r53tC2HtZ(c%*L_U zrFJdg7ToGmy?`zx-DWP}Hr&q0jW|m`cTgK`C^Fsw)KeKi6w;sKtD{Foid%cRRD-_1 E0aF}gzyJUM literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/MusicAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/MusicAction.class new file mode 100644 index 0000000000000000000000000000000000000000..62f3c03e60139c30ebb92187738dae401002a207 GIT binary patch literal 1969 zcmah}YjfK~6g}(MmTb#3P18IYXx$Ks-LzF>$}27*iR*?I-4B6YZYl|g@ z^JU|EU+?(l9(S$%j$Yqct5uo|>AKhE3}+16j8}`p{YjvUDI|Y+lkW|GQt+}sPS^ecxvvMx?{Q>eOvgp z+mTxx&nIura~nT$D-bk)TsAzvqqla36m3(Oy4de=eZvzxA|zFN;gJj%;yaSz(DlM77^dQ&cw`L4 zNV-8F472|qEJLbADR|=*q}#$2oWv{A#M)gqdtv4jtTE)by}-BlU0Z5C8cWj+DZYYF zG~B~|4deKfVe)uFRs-8g*1?w6%u&H4SpAoUlfYhg4k(LJZXW9z*@35Q zkj*(#mg9IVvicKK)IG=ZsXbPWM-7IFcp)6Q>AbAj>v6ZuaJ?MsuFcj{Zi(8-h8yIU zHYV_cZafXI3NJ!YOluETb||J;#Ib^BP&-@<6um@EKOFX=gr{QeL~k(^h)2Fp^4+0Y zO;WvZ$SxqLH-}u6 zCN5))UV8aUgEEZsG)~ZJg&z16eREgmpMgC`>Q`E%FiB%Rbex4sTc>C}5dkrc3$&sw zn8E8rLvI5v4(OH%!zA{1jO;u|`WZ3@$c`xoP!Ev%g**{=HbRBG+F%~>GF&=^Eic&$ z!`WtrvX$uS(N%w@t7j>K>a{~?42$XM^j|3cgt_VTpC~S7=I0Ob8l^0Ah%?b=l;IF( z(~z2sgqlnsL-P`8av7tTCEJ@=z+2(TOT<1&+RTzoqN+zqRWU~xsY?}C@OG$U6=hV2 bRmD~M&r@vI$ghI^g9QcG34MdsDd_(J;7Iiy literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/PassAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/PassAction.class new file mode 100644 index 0000000000000000000000000000000000000000..eca02eb5dc5e1c06b62b922167398f6ef0357ca8 GIT binary patch literal 1332 zcmah|Yg5xu5IvWcrmayFc?qZmMN$xgZ>7kqQyFJ6%826d@itt_g^+ZTl#zd>e1I99 z@dx;$9QP(2NTgyrz3J|rJ-hep=GX7YTUT-*+&=LTk-2hujzc@V5bo(j<)aOoaIxZ5x{LSMQKmFjptMGKx=`y%XCNdG?@mghIjdTW1QhNf_d;K*Ee z_>u4{$w=Mt?0s`pot1Ru1G=qa#_g^9o-KkPk|EcOSQv(rJn0J5aYW28lmsPxioIhSr$38LYNPSby;;~Jhb4E`(inc=O z1ZLF|hr*$TtlDPHqKzC$%aTOV(C0d==_LtjgENLY`x1*$-Q{7`b3C7xXw~{uV;D#d z>?}<6a=h6T?l!}Wk=Via^*v#Sm5XcHR-6)3`1a0ThR=syjG~^_KCEnE3_88f>XQYd z3HH!=ovamljl1Ysn3_HYJ4M$wGP-bs&SDf8L>@!vC3_$S;wJjYq7?L#kI{FK5HZ~{ zVVJ`HKxXR{*<*B{AlIv%Ab*0wSBk{kxd=5H@#=9#o0sN#30qOIUFpm=){$)(BkkVa rQuQqT*!dOXHYTFPsW^CcJ%&--j#^{5gS*k?8A_yNhP>m^Rqp)(Luowl literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/basic/RandomAction.class b/build/classes/java/main/fr/gravencyg/actions/basic/RandomAction.class new file mode 100644 index 0000000000000000000000000000000000000000..cbed87cfc4a3eaf1d72a912a380028bafa9a0089 GIT binary patch literal 1452 zcmah}YfsZq7=F$eyIF2y+(9RzZbK+2UWdvy2Qg`sfMWP~*40tyTG9)Vf8$S35+RYq zFMjh!8Q;@3*vW!fc6#31^WL8J*YEE?0IXmmjUq}J3}QZsdl~d#A&mhnCLw2#5W*6c z#qE9y55#jt91n&1Q3{Wfc#_0ZhJ?+{rqyQ1D*OD1%bu$n@|LeFlXX=$b@v6sNJ05% z%PpH9X{LJIl54vg<>C%Qyk<2uh5n;K!O>j#?Uqr5?ytah5wXx2a!44$9lKEmd)zgipW+(Ad!Wt?Ps;Duff+U5akY7otV@AR{ zDhzX#eT#-|=bK)Bk2~CM=6`<9d#0AxO~JgmG^aq(dd#d z%;K%$hliTkWLPLfc>A`ouc>bNGL^#xP+*6D$n&fGQ?31^f{*G?gQAxnUt@V&--Tq%eMaT%^( zfz~I``n#h|cSXB_d|2CS${wdb``czv#;hM$3XB)+F&gEpUmC+L%=yhT+{PUm4RPCV GrSJ!fPhT;^DTR5!PLqwQP!+_ewdMtyUwQrcih z*1Z;I7&e8=U-mjp?!UE~4tesXXIsvOI&O_GZ58Se5kuB<8y~pcll1;x zH$A^?G<&gy45Gfe+KKSOTa>-jcc6@m6K4d;|HX*|+U!J>vd9y6T#SFKu4 zI4$n0>!mcFXjn#7Lk)G3FJ#k8%CVxMfe8((s4|SNd!p^~B9}#7Q%Lm$LTuxZ7fw)gxQ_s=32$Svk76 z;V39Dh7Y%T5I!TlK8k8udsE${HH%anTSXdcm&>Qza^yCl^%d2hMy^%QYlV6y^=G9G zOksq+CF)6n{)RY9wm_#UeL{xlH#<}Q4E6;>pXe}zQL?$-7;aA!hT0$^9z!napDlEeEJZXLu5bFO`kgzpb7!6){h8z87>WA%PF># z$Fq$e%QlJ2VQo!nHAxlZ%LQm(aXNwWNZ~7nhw!)O(}V#gskh4{S219m=|}zPJ5T

5xg015zQT< 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/block/RemoveBlockAction.class b/build/classes/java/main/fr/gravencyg/actions/block/RemoveBlockAction.class new file mode 100644 index 0000000000000000000000000000000000000000..b2c838f2bc730e31a3ce511646f9bc43a6e5ca7d GIT binary patch literal 2719 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 F{{Zse6j1;G literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/game/EliminateAction.class b/build/classes/java/main/fr/gravencyg/actions/game/EliminateAction.class new file mode 100644 index 0000000000000000000000000000000000000000..803006b7474450f354d77e05d9c45bf9a972c78b GIT binary patch literal 1999 zcmah~e^(Pn6ulDyn}h{vhzMFVmTD7_thQ8JW37-zN?nu^#nRuC%@_wZyE&T;r}TUD zkA92R)5fEo(+|)O)zde-D`qvse`aUiyK~>2H}B2<```0_0Ic9q8Xw}L3}&#R;o}TO za5asSxTfKg493*rQ(RZGatb%p_cJxzROZi9xTUbG8LXj_!565G<2KgS>`OIlX!uIQ z9fmQFI}NwRkTv)C0XMq7w2ke+RwnNa=}7-3!^wjA$TONAKM;;}*fc7;>*eAOL$cyF z1j7kaI^u4(RTtiUUbo4THC>C_JKU3M9T}7UW7%O?igR(xm#)(>n!F{9sx4d6;l5Z6 ztfV2?;?hxsZwO!*^`)<(b>iRT)STJ3$Y1F&> z`_earLj;G$mdy`^SMK-JZP(g2*3?*zM{d!HZ6lPo<++yVbi!09{S2q$=-^P4E%K>+ zwu49tb*u_HRS=wEwjb0lh+!g3S`?q*y?E3?8fjC_=hprvZ%5aWskvRx61QcL!q+li zQstn*)Uk=XI_7YXVe0h~QT8nzr!dQKDsc8)z*<+@4dH3{TE{kOI_~2E!}w90LQ$D^ zbUeg@j&D$7I2$@e-WK^iw=23{zCjC~Z*$L=LPs9wHSFs67T;<3UdIpkQNvFwRQ3#$P2sER-{cN&3X;D-y&8k{wMYaaE$7|>A!6AH z`*y=o{0x_dw03li;B_-)$EOIBuZme&=nNhCE74HyH$vH!uIJGU5wc$$%6^<$ijx*E zpEQPRLr9KI3cW5kPmlQw{S_Dzs@rImr1>09(|CqfTl9BG&^NcZ^aSiF5{oY|vilUt zzcKnJ*%Nq|#z{f}(@0^8#vJBpH52Z`S)8L4F{mCRR(eyg5V7AP3{%(_7$Z{c2~s_z zvzZ>od(i(NPsl$Opk@PJJ=_uTGQ2;8Z9=h44rZGl$aVo2BW=IYnMO%LY4I9PDX;9WGRy%ZPU0wC%=eg6oZH>#G1zhK0qNrl#Vh~ fBE({Fx)PRfDac=m_LYdy2zc2txi8Z+fh+$5+>QI9 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/game/StopGameAction.class b/build/classes/java/main/fr/gravencyg/actions/game/StopGameAction.class new file mode 100644 index 0000000000000000000000000000000000000000..79aa6aec1ac303690bc372bcd2b5cc5f48222d54 GIT binary patch literal 1953 zcmah}|8mnt5dO|_BFBi3IwmAQiXlK9Cq}dlw8fN?xF&=ukj4-iXrX8MFiK>}qaT^3 z&(VMS7A@17X_@H*^r0B`Bo!nu?r7$;xBK0xGu3Pd90$I$Jb~a!VRoR>84!P72Hzr z4a1nr?Y7fpDCoO+r77n!eLpBVi>} zQV7{DH*LxHj(>(x-}I%kVtFBo-r{zLC|uL-$fK6yl6Bm%8$Ssn@JYU3)*ZK_wSv7p z)7OMe1P9ut#SesAOIli%W9(_Ga;>F3cPU{@i^AJ<9Yc6tR0$bA!|^ma%!!IcHd)SI z=t-j98wF(*I%k+kf|3C-9FA%h`)4?l_Btp=I@I*JvA4l{@onUrPT(5ihAB%pl`i}R z*$fJF6&tv%VitE8Cf{xlsozv_3^NSJLSv%-tAS~?g{$CO6NBvX7)}g?Mpw!(o3hGz@U*%v_Ju_ks5iD7`X!=B7d(lgd%ieeT812ugEUf> zYcbIl^{3pgJC@^8Bd_ZB8Vu9PhInn3eZ_k{VYeBo<-{D^Y3&Nbuf01O@zv156h5At zVfdWyL@0`BZEIzRnj%##>U4&Qj__r}Z*ZG;1cg6O1fhT_!@_iiY zL;Z~`5&u|-nhAN;=tRuRaCQjWVaYZzm~Cz#+c}(%WBY}Ck5UBH${#q=$K+xkAN+*^ z!>>5`Mm2RM8*gT_eH3L$M#7R5sF0x0rf`lDKaV9WgbtU9v;-9&p&TNruM1QqL?ukF ZibcZ9vRCQ5K#W?*%a+J|k;Du>egzI)>Fxjk literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/game/WinnerAction.class b/build/classes/java/main/fr/gravencyg/actions/game/WinnerAction.class new file mode 100644 index 0000000000000000000000000000000000000000..25c4beab62fe2607dfd594079afff951e7dcdb5f GIT binary patch literal 2311 zcmai0+g95~6y1Z3WsJhb5Q3peoTR1Zk|@0-X>dw|T|#LEp^!kK*Rh!xfh@VQOd-AG zJNf}#eQmQ^XVI+H)#rXdU;7<>=;e&0fJDH38PCi)vuB@u&K&voe}4HD!0UL_fl1_3 z7{)CHZ>A8#R0oFemV(s|;yI_G)c-b{Zsd467oK znzlpM4%?d973GFY^VOVgI~A?e*xoi=O;`l5r!AU%PdNForDWRWZLJ{3eDvljg==a) zy+y|^i+bJDfz=p>!Vpn#Vk4uIK9NAYkV#9jNwsSp6^hIwz%Up_43lCw<*OEOV7M3s zK8`0HT6TGPd!E<4d?@%(!AA_KWxL^&#T`S6*&9y46oJpE2|tEfcxV zRlI<+3}-xJC=Z2(VQvUVK}kg!8!7}IP<(VrZd5KRDmIZ*VPJ#df-bUKc0)9rY?&x= z%gt7J#S&SQXKUPX4WZ&Cj40Sru?QLJ55=2vg~MIjVaP=MIR58se6>h_=@t$JAGaX;cl1%f5P}1@RLTL46Y!=+iY!-#~^o*+6I(r};UYr!h;b zMfw)D(Qp6Q_+zjqXd8Qq*xD1se@6R{wBJSuKo@xdeMq8*#(rF+)qsBvm+&I32tjrZ zLS=Xvxd8n(`7r7G6bS-V9wXUAM>^F+XA|lVWbyG6p4XstjEmyNRChCVKagX80C!hg*G<@l3pl{(YQgm~79q?_)r^jL6v; zhTkwanaCu@ze8_uD3g!}GT;CEhtx0T={H3GCO{GOkw#fksX#HUP-JVE@K{cfy+8_1 z;4;m!xQQ#!C{x7lK;Ly-C970(9k1Y3PyKbgM*nVNxJJ9(i2aQT1=kha82!r={teo0 H!_EHyX3$SA literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/inventory/ChestAction.class b/build/classes/java/main/fr/gravencyg/actions/inventory/ChestAction.class new file mode 100644 index 0000000000000000000000000000000000000000..a88e824295b9a6d0831f8a4ad66993fef4d83845 GIT binary patch literal 5766 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 CqK+H@ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/message/ResetBossBarAction.class b/build/classes/java/main/fr/gravencyg/actions/message/ResetBossBarAction.class new file mode 100644 index 0000000000000000000000000000000000000000..c30b99a76f0c7c8d0eca42a5995a97e3b2d01e87 GIT binary patch literal 1918 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/potion/PotionEffectAction.class b/build/classes/java/main/fr/gravencyg/actions/potion/PotionEffectAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e6ae26a3d00137eb393b5eed24ba5b2bddc0bbb7 GIT binary patch literal 3107 zcmai0>r)d~6#w0jWJ9uOL0(amsHllpLLX{NtQ8P7Z30vfi`v>vvc#2SH*Pj4t*y4T z@Avy@A6AEcDy<*lP-i-hUpmu2$?5Cd-2l4~F*CWlchB#fdmg`g?)~fE-~RycFs|0( zAP)Jl8F2wm_)&u=Ymq>bzYY2@#Gk`_c#3~M?88U^qc|d9EPy&34d7{v`*94%YjFb4 z@ZniLJt^S102(3rkwRKP#t#`2e8~FIf>Qw~IPJrvA35ZGQ27d)4+Z}Hi~wCgk-@u1 zQ59n^LsK|0p+~d2G$pI)>1?!r{9r6H#^CPPGBU&JgrdrWrF=@(N2OGbzBDAXw3Hi@ zbcN3=AKk_&g{*cvZAocE(bQtJpz&vP*nA93Ovq`Y*A&HQoxG%|-0Ctf7(9kz@Fg3= zk;G|fN{Z$rH5(lDpC#fZu(8JLa^=cH*_ zkJ%-uoR*%9_VF?1Tsco+=c1N-!@8E1i$yaZF2!I7*=;B)rOeRu>1f=L^CN~tws<_U zAu(*Nj^x5h9+LD*c)yjL{Sw#OVApbFZFIUI6PhXXk5l;yW=srg?HbN_DSu{|46SyM zJ#>aTt45Vb88+QJ8)Ua=NNR?my^393K1#5XW<(G--@`5?h=pqt@ct(CCz7mwOa|J&!bUF6m zJ$Em|x~dA+=5YqF81%wsVF)_ZONNpwM*9=;l$;}mCkDm_61!;)CnN1BB3O5o_O*fn z?`$<;J~rC2+kZ+j`n8;f(|TU1P#|(K+#j~Jq@mPl>S?j%U8+J- zQgq-eEo>#c&(JIs`E>Ab?>PBn^VqhD8GKpUpnb;sUpsZm>M#>PeuxB)&v!0{uv1~N zOnpRiSzkbsW_1oP!7&JY0cwa0o5OL3H;cv>I6!7Oo_9B5t<#qzMMQ^8jxcL%G0lIb zS_}`3#)k&!470~PFDJFSk>Nz|$f1+-xIo1<-g>D;JC|GZ&fJ#V#Y&5=C$&DQC|e!H z>eL~pvSWX81g+j?b9$MaVI>QdZhuz`R=(=UFRK?=^CbZ})?CDqXFLx{>0D)}(SD#4 zCE_?a@1`4%^S#q*i_CH6(0xJ5I65z9fxS9a496nJ=-jcHtb(xu2kFc#vXkt#2vtXYdBr&S9MkM@eL+q@j)6Hz8%Lr`LuJm3gp?_J)uZ+Z;B!aLL1F z{!8%hkC~;P#a=v4z65X;`-nMi g^pQ?8JpW*ofPVHj)(hC*dIzaHWQ~zuyxa%=2b_{u>i_@% literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/team/Team.class b/build/classes/java/main/fr/gravencyg/actions/team/Team.class new file mode 100644 index 0000000000000000000000000000000000000000..59f085ee695547d741f1069c6db4d339ab942322 GIT binary patch literal 3304 zcmb7GSz{Ab6#j0r%uO>#2GgX9`@Spg z`@Zi>04bt~`}QAv^bh#rlX}k0P*SX-eYhv*JNvok-04q$e0mtbO8gvv7uN@I18&q{ zX}BqfUfj&bEiAc}kK6dTJ%~GSC;z%Dgu8K%L|*{+;y#J{g9JXnk_RO=F}O$KA?6>J z=x6>BiAR}#Od`ho;}TCW|D?ob=AV*yn)zoW;u6mW33^WAd4^t)7+{qbC0=6wWr;!N zUy*o~`PU>aV*YiBH<*7@BEkGy5^ppAjzm)8UHh+;kO-!t*nuzHoo#~bA8msMGwJ6V7B~kUxxvRj+G_uEB99xmv zV^yhV&_lB>u(aB@n`yQEbno??8-SYxms`s0E@onV#uzwd?8XW^+R|dMn=r zz48?~`bF^UDp8IXR6BALsw(lHv)-_RzIMIz4}rO%iN_ZpN;9h{4XL6unu^jyDoR7B zC=H#WG-Zm?a4AX?r6^64qBKK_(&$j68s0BOX~h(!Eh8#2MsS{!i~JmeXe7e1@`0Q}*F`=N!Ky!#=;O}_mIe5~|2ej|KzE+y?V5kdGhUzk~v2~a~0I+^Ote5 zIZr`N3YzcN%2;61Rg&RC1)ZYFGEOxYDQK~RPLqb;Tr!2z%`+6bRH0`YeuJ!A%vJ@4 z6?m4R8DxL9xlDn}6&Nw35h&vvbAx=~-odUJyUJB-@TsT0(OhGdE=pPNki%4kZasN{vo6y>=%nWDs& zCQ}AMVIqVrCqiHw5z6m8B9zf;B9y~gB6=Ae$-NMV(3v`buDu9Np}RkPxZSh1dBH1K z5N>XZ(?wFPJ>kitf@aB!-)1&hTVqK{+A(WxM;4p-CmcyJB*uSLxt;u;Me UA$~_QjacQ`*o|vRScB{S0ti^*vj6}9 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/team/TeamAction.class b/build/classes/java/main/fr/gravencyg/actions/team/TeamAction.class new file mode 100644 index 0000000000000000000000000000000000000000..b539e9e63440be5ef7aeff040856ff333add10ee GIT binary patch literal 4046 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 F{{W_oLE8WT literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFallDamage.class b/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFallDamage.class new file mode 100644 index 0000000000000000000000000000000000000000..41ab87b18a502637a4e09f62d935b812a8624159 GIT binary patch literal 2254 zcmah~ZByJ-6n^fqkliJ`lmdlT?NZyiKq1xEs@+Np%Zq3zSST;GzTC}TLLi%9l4Zny z(qGW=n|3>w`3#duEN%pr>-bvWnx-wZweU61ZF`nixhaa| zrOGWwVxEYBp*^qy>9D^rs_*gxuG!o%wbj7098(^(U5~U`*O~i47`1@DHwwDznOeEF zw`T>Ka0uW~Te10}@QQIw*>;URZAPxeq~|JK+SaDSxK}*a5WXL=Ve%?DIG?nZLP;3C zD4>r0(37-!V-$3&&^g0U+$bIpLs!IG!#~5Nq}S78q(iF#H};nJewYyjYYe$nx8@mQ z-jXa1G_yY`IaTmb#X2@roW~}^xn`bcYL;CQo>Xrsc%%WKI^<Ls8CRDY+vVETjTK(=;UL9YF=A}#Ikpyb-FM{PBuKb&J2jF;z;T2?vV-xp4WVWJT0%H{H|FoNRA zMr{-j9Zc9ay112nCU7GwifQ4&^cF*Jf-UMhhHg^?vi+90Lj#4vf0u?u!Ysyj!-!(J z_&+8DZ28gPSac*ll|+l#(zu4qjHX+DKpwioPCAm%9enFYf+6k~qp(Xg&!Z6)q2FqW z{-$WjPj56^kB2Hl#^BDpW$sWNleb4SBFmo3D+c#TqBWIEjGkgFpa12D>SQQZCy9~D z(CJepEYXZ4?!!Mx^Z20INxeNpe>M4}LG6bNw7x~VY5JL^=$#!Ke+Kpfsb6T5!rQdw zLPZZU=*2s#y8``#BApH#Ob#(M8b!6(u{!E$( zyCbyf4{_D#L<5(`RSUG7MC&{qZTM8Qt9Y*w+bgz;66aEo%(aEgT_tWn(VQiw^2E{= zVrYVHHH89njA5B}8_>ddZ&FNoTqDgWrG}zA;&+oQ$3t#5Nk0*?zlljY*M{q4*@g7q Tm{RcmYjmX)GW>vqDctxMPk%;X literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFlyAction.class b/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFlyAction.class new file mode 100644 index 0000000000000000000000000000000000000000..21eacee9f656d815a41eadca965abe6ad5cceefe GIT binary patch literal 1808 zcmah~ZByGu5Pr^fEZZnR9p0SK)`5oDI6(3)j~IVOb8>Hp6AfIa~;%Mbm2}}*TC20S zX9pU03E)s$bBsgoRpXkLBg{Q*QPOIE3Gu9WUBwQ5Q1K(S z7z$@?9=j5ptQabNEhEMM-DwQh&b5{y1@&K{Pb&w-*Xla&a)&|D8_kA3f0r=&?<#Ia z{dnh`Il90>j##oJ=}4?+>$^r!7mo0#zZdnV4TiCJFP*C802>Df+-=j$m15(u+Ir5- zp!)8_^e&Yg`|Nw;bdh}~5Rnz-w7kARS2q#MxNim+27MkZIF9&v$+4~7fLuyD@{k$Z zr@5!e4Ntv8?c`JPD>Pq*MUzX9(Ah2w=PpZdksq$p<2XhyCqqK^EpaL03%E-38tvBT z1x?U8GFv$Udx^yCYb3W{BK0RO{Xy~sCW#J`6_7^;L%2fU`?MR2{O|!jq#YrkNYNO5 zQ<(0d*T{xR+t)}FsB(nNF|zsGF$RvI{!W?*KOI_)hq!9w(Zgl<=mNCM5^eB&w8?YP zZeXUD+Y!Z1Q3kb2>I6dxR8BC=@GB-O`S(tcCjrT?L<^~3pis$=M2cjjpoJ8&O3AQF zGsqG@1%)ym#to|W4Atf)%9zDGD!7kZ^s|`@^O}ufpH{C%cBSy-wa{MPNsWAN5%z83 OQ%ICYNk2z?0@_<7Cbmcb literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFreezeAction.class b/build/classes/java/main/fr/gravencyg/actions/toggle/ToggleFreezeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..ee16c96e01c3a46d28c5776e100f2cfecbd8f4d1 GIT binary patch literal 1855 zcmah}TT|Os5dMyFEMF9$4k08dg#@>?AwjfBuTIl|W8AcILIZJ1@5kaq5eSLVg(-RK z&*(4c^sUWgoJl*=hxV;Ms?$A^hDw1kFGt$5yWj49XLtYk_xC>mTn8`V3a*whfkg#c z86#LK;Vrx^|E?8rU4Gw@$Gh_Sy&~Q(;)4o4M6-l5xKYMOxLL->xK+V2R;1Wca9cr} zp>V@;tl%cY*}DG7(@c-=3&%Jxwbo{*+2}FkTke)%7}G6B+zog8!rS0|n{KMQYjC^A zJxj{TWj=Up`3y^0EN%pr>-bvWnx-wZjp(!L3GqZMN2(^p+2xiaQIBN7a4N6@8FHfD z(6{+M*KF>X+IrwwjwxMj*CTDob=p4&BMj*OVO@7UQ|pI2J650xhX4+=HJcv@ubI~L zZP(b*R^-{tM&6~eZ7oi3&2tUm`w<_7y$FTjLK-I0k_}V^$JuhRY|% zC#Us*8#`UTm+)O)cSFw*tCpna+)-i|C0znlqm+I^M{fjL;?Y6LmDZJUxnca3n5qb=jzkcpNir%>1 zP_V9I0}oWZifIKs6%X-+f=v});wuGTtM~@rs`w7yGc0Br;KbHpxOl8X{BjKEGukk) zY+q~XVqe(Q{Cd0B)~^vnmix37_1DrdqcOxmPR&SNo)f7aY(3^d%e7r%CcmOTXfsTv zd*e_|@d|uzPdHl)SL>;Ezt`UuM$kMu0m<``W5zxik74%3z>Tdar_TN5O?uB%#+ja` z_w*^JE{y>WQw4}cSV;wFcT2!E1S4nZqRw94^l zQ^%rR!sR5lA1QX8GN>(7)fYIO!~8Rh4luSb!1xQi!tfI+@`~iDWML#?p&I#26ALp` r_blcJPqHx|V;!ky)MiRaXgm6%?!p{aSOMFxg*ToG|Fk*V@Tbz94mOh(4}Z=o@#pf4tI=QQ>`q| zl#5FYQpH{64DFib@VRiS#=Vz%&8CwM%{6p;N%t(VZyZX&y5%#BG;`@jV7ZR32Ciw^ zTzwgRW^DJ(WaKDQmMz_K1m|BhFth|#AQE;eMQuah(N$Y_Om#8vEXNd~w(F5M>pIo9 z+z10&zg9HYGu2wSxoHI|cZgtDU9k0C?v>-7n(Z2!>XfkM=FD5vw5`_5Tku?i`+lTG zYCB?KI2-3_&OjAM#0))gP&^q!TV0a|H$(sb^Hb1bpc|XB`gTL@+@c$L27hD;dAk0T zbwr4j#(fzN@K8nvCK%5ADd1FS*{j?W?#VQ!WK=LMql!l~8sdhOqS(#Ic#Ly0o?x0` zRLHW!J$0J%#nVSQz?_go~nF8lm1MZx~p%uU0g^!)=DNR$Z!U*T#vXS?)NDMr!nk zw{T2=cqU0j*v{D4Ro3;O;@U2?FHLE$stn!naX55SzLdVb&7D<-VI?-<^R*3b1m(Yn zzHw(1*o1Gqh~w~?z^$XGrkNL$%QT{~ikrrmq1C6FW@++uQ;b)cfQM%Q literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/toggle/TogglePvPAction.class b/build/classes/java/main/fr/gravencyg/actions/toggle/TogglePvPAction.class new file mode 100644 index 0000000000000000000000000000000000000000..401bdb95e719f45bdd351a57efe0743e56d05bbb GIT binary patch literal 2204 zcmah~ZCBh>5Pt5mkliIvpg@7D-PT$cwlq|0)o!JQEg%{S779zPFL%Qw1hUDRWI5tL z=`ZM4?djQ`>N$S!qyND_;_-N#o1`?MfcbEfJ2Us0ndi<-{`~jX-vQh}D^JTu1&rdR zf{zR6z$bZpid*ullEZEJ{!A{@QhXpretllRBEFEzmpSNC zvXsO99G1JWg0B=jP_W9-b=z{RV47j5q;Gqg>G6Hx7zd_S-CU@QuQOz;?v`LUqg#%+ z-)hu_x5n!>Nd|P+;PyKAEV++`*&vHz8)OJ16=3Qs*M`5%A`rat%u4iiX*4~~K zXu=_Y18v3T2g0i)HFeuH_Ow~KR??mul(Vfx;jMVCA$&g~!{iNeFqXEKLdh4sD4?!p z=t)|g7zJe&I%gP38YKf_=!s~H{WDxjdp#~jIjsy7upQt>q&tM~@rGIYPfYnH~P=sOkP?OsAynQ zg#(wNw;CP{fwzknRW$JfLtiXibfgcGGxY!QRHSVcPy#*zhH|RPB9>1oPKNWxTFcB_ zD%p{gHc<%-qbXG@uxwwe>SABmR3!S``ka29(9@Tiw4z#?I;JU4IUxJBqa@eCMCny` zcu;k1*P~{c)gR6=3@3~3P%UehH=DxQq6RJ{dTqJBD~zD>X8Xl;K?hUzac`bxp9|c` zieg%LFtbT_m|}~%i7wj|fo!TJ?r>93`0vsPNSP)0j*Tdm3;$z6z?L74gGEQ;Gh97o zV#I04o6&U356DAr*dT`z%E7mOA{gR+F$%ld@;n+m5&F$j(NBt&{N$s7Nt2QxXK-iU zGIywc$;~5D);*VR8Qdp{cBD=cyi^hw`RZb*Kt>V;lA4gz(ms{I5{*0}J^U{m9S1ZD zsc%Q06t#8q8hJH;Mdgmv~&%jEr;hV0kqq()w*NZNz!KbTf<{crSS6f*pPgc*GJAG$3v A%>V!Z literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction.class b/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction.class new file mode 100644 index 0000000000000000000000000000000000000000..debd00a81f4fb4dd3c1aead3cc718a681be6d8e1 GIT binary patch literal 1433 zcmah}ZBNrs6n^d)>o&`aW4wb-eCvi#Kztnn+Z@ECQ349#W7l0rp=(Lkq5LZ)5fVxK z0sbiCx$Od-EHh1S?>Xl=&pG#;)BF3+&tCwRv6(;?xg-WLE8$5JJ(x>i0P_;mBw|8X zz@peK#qm^pm&Ni-sGrC2Lc&W4uNY#kZdaW;LrOc;Pjt2EnU=ck>+)n>F>TXZWf)ep z&#qc?^%HIzr!}>-znRbOGDJ&Gl`{-zrp@0s>lN;P)GHQgQkrAv)~@cFLT)Le-htU* z$hC9nhG#lKqB(9&tu&90Oi$%D5uB=9mVV0JeArU49OFnWiZ$OJxlRYR)F8br z*D-jb;a4Jd?6WXTgn8N{P{uwn!&n#;4#vr2Egf|R>|2A6aS7qEriec0@hU!>snpTy&64qp_qadS*5`!c{D2rJkzLinN zw2TcDs80pY<95~MnZ-mwq!$c7z7yW*Bd?idk)_C5@kOi)K|T@0PVC zqG&Hz7)3*|&|#9hIEW$dQN)@K4NmDm_ezfCxHM!%?NgayB;3#|v-pMd<6|la!<-VD z(GQhFZg}~dW7{e>Ikw?jGu;gz_nZJlIc;ti_HmD{gF(707$Ty#w2RVy2x(e}N!p@2 zBSPPFZuSi90+HM$diF06{ej-^q>o^P)_y{PyyL_+M9(NmBY_{rFisLNU;>lG$}olL z7W+D3n802lMx@di;^#=DlIOT}4*45d0{)nf8ufYQz@x>>aHk7fpJ40n%r@1L?JhE{ t+}=_2D820Zm_ZsD-!T^$ua3v4lrw&64EOQCKRm-jJfhMtJob;G`~?>RR|5b5 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction2.class b/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction2.class new file mode 100644 index 0000000000000000000000000000000000000000..5c100399c2295413b0d7812cccb8da6dddc255d3 GIT binary patch literal 1440 zcmah}druQV5dUo{eR(`AN<#UaxC8xZaWL7Uf$hiI7O* z2k=7~XYU%kN>g*Wy`7og{APA$Zh!s$@e{xbHsi=5m%uRQqj;1+9~R;m!eSI^0ud?X zu_SlPF+7&v6}dc->ZdV0i{g0{FBl@OZr7X!LsC1`Pjs~HbqalOgV%bx@k+oYY8y)3scBwsZ7>S-_q^6x+7fEu1iSlD#+6rfim`p876|DU@(ROzaVXHhPnU8XGrWgE!W^1rYy&Bpn{9C ztx>#GP{68!5xgS%zpa+~H3c`3WEl61fkKvArd8u^6t5Mmqo|;SGDA$p$SmcvQhuYL zf>{L{DAKGHh2VD0<>{q-Gu`BdW7jyfJ=@X1UR`IH?uzw`&M?_wl_T3!%Njr77LBY{ z*{x_RMA2EcAc{sK-({eCILKM=%g8kq7@zWiF3OJOxHM`d?PG;uEZEj7v;33v<6|lc z!$Kx7sqd?Y+z^H9!`rSoIdmZ>(-Z5eup=X?=G2agpm?Vi9FokJi zWthQin|+-yOkyt)A=2m>V&{k_6X&>b4&^IZeEx`s8uxe=-=odTaH|K~fMgr&&NkDP x?KaZw+}=|3Fum;WG5s{so@358ULB87Dd)V@81CYpcX)>TctE9Lc<3D^^9RLBSm*!% literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction3.class b/build/classes/java/main/fr/gravencyg/actions/waitable/WaitAction3.class new file mode 100644 index 0000000000000000000000000000000000000000..eb4a4486a99c6377d7cfc86fda40e8da1b9f037e GIT binary patch literal 1440 zcmah}druQV5dUo{eR(`AalgX&2MIB=Jwa`A3p&sV>6B{atRD$K8i;P^kE^6AuL9rCJ>QA z9*^bjNeoN!yDXQdQoRzxvnZZN@q!`Z>UPa(FeJ4@{X|z=!nD+FPgfx8s%e{IjbSvS zeR9>htDkV&IIXMY{mnvlmmyqsYMfz6Gj0B^)u?j!gI={rlhhnTw{~^clyX}c76)dN zVZM_~H-zcfP4%;G3JF&CXjAl*OO!*np_{fOyp{k%zc7W2mda%P^ex@4t2@Fq?YeZe z9G9$d$F6+gMoZ9sFQYkbU9Gl`j!dC)n+Q(TElWS;ZXsx?T8?p~mgHLKjNG6TTdJSm zmg^Y2+4M>gIrdl>rh+`35h!Dim|-Fa3I<~s@C(xBW|;ebe1^o1({c^IVajq02P(KI z+Zx471qG}s7{M#D|J!P*UsG@sNrrLH7${_^Wm+}vM)6v~I*JNPC^N)ljLb?tE9Ex| zDwtKUfg;UHQ3!6=T%KOZH`7gSIChOw+p`@F?A3LK>8@D6=nRt`RyndwwXE?IZqdkU zmEDTAOcb4E3!-Q=@?8eHhl8B;zKmQ`f$=FH=%Vacj!UCf(mqxg#)56VGRr?nKR%|S zFf3#Olls1T$PH1rKD_OklVb!4Q%Srd^o!BS_IY zO41fx9U=Ora`R_k7YOAp(YJqr@OSioBYg;Cv1@jcqS47Yl)4M?`Z?rbw% y*={4<&h0Hl57W#39@9@F?K$RrJXrMr literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/TCommand.class b/build/classes/java/main/fr/gravencyg/commands/TCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b7ac4b2f41b0d33add4ccc0fbf50fdaa4ea2dd88 GIT binary patch literal 4989 zcma)9d3;n?75;8AlbK8&2?Wv-)&T^<1ek&>wyCrdC`1xK0%-xUeVKWgJeYZJnD-_u zZgt+p{VZiLf{m%x=FFT;ck$7DDz!--a$#H%A*y(Wa$wjqMowc+)+JB&9(@J75T zj5o{XTOxQX-X^QNBX~RB5h2$*LwHvNU2wv9x6JR6;k{wJPv(2Vc)t*RK*&EB#)pLW z!x4N0_XzGs!}yq-oQmKyJ}zgU2;-9?VS)L48_wbjA$&1{_4tx}JQBjAAv_ksmlXmT-Lw=s2gh>pR8F5Tti*{_ynp|; zK80y|I&B{_k^|N@J!2@S0}A16+IDwY=@SZ}jGZj5v@+rL{HQ`l#(#>ma#LR88vcy z_0cqUItT59o*vP2rhNOG0e9SV6r#1j2|JU~t)vs*+h1H!ukHrwlw`KrmQScK)-!15 zQt{FJkt3!X_mSfM@vvbfja=U~DEbBu>l1oBty`)1u$wcjRNuj=TPtY%X+CxlQ(^Hn zP<^>{lh33u?;7O1uA)^srwXQh^<0W)GaG0{=VjCS2_vU4ryAX`T+=-f-|d}AC=I)M z;>eJm^_;+LQlJI59ybzsmyWuj#)7rX4Wx?G+f#+yzDulw9F|2%Q;!z6QWgj zGs6|uU&AGJrehs2()6|M5@A)()DXHBeZcZ+OPeov-@bt@3dPdlSoX^|3JxKSL^npKJI9ei_2AH2hjzam&?_%6gg==O*(x z-Eyg&r>bkxeg|++!*B3g4Zp*k8h($2hChG@<2bD0E-(`Rh(Cq!XAOVBUs+RYN>nk= zhFv?yQlsH-xTxU;{9R!|4Vmw*N-JY6sRYrk(Zfc9`MtO*f_;us%PN*-n<3WRBc-;x z2EMulGrb14j%*!V!-oMASZYvGVHQhG6}q>}$}qituUKw&digIr6(#*PSfhAxk6V0H z=xJvlWwEID>khNI&0&)rG8~6?VU9Jb1iZ%dnrpD~6`M#^xn>&F&@hr46!qd=y~oQ{ zgbgTYG{+u8Py1vvBsW|1Y?hi{tw`42-_LZKZeGv8RP$7h!>(PjPAlc^l{Di6EmB^y zdrN^W#`^#j=q#CAycw6GODXN10_7dvGhtgU--l$MTW!?-aXmLoH}J7&^vT0S+QuH; zI-;=Q|8E<9APFCZ&#tk2)fv?=ot?HjWK(b2k>UcTvnyNlURC>2SXhHGwZW0aWV?{} zO6g6z@|yZq3^Hgs(%q^|Bs)~aF;7ZAakBa`tMukzSX3uKX`B4BXs9W#i{eeHxp}8`I4_Hx zhl=%1qAAuDoJ4c1D=>*bZ2lyIv6Yi(iFLJ1BJ`+-vyJ0oggMTo^m%B-d~{#||6nb| z97H)T!ctOfC&l(6ItK7^eo>C6t@2i)Pm{M2O`E-y+#%qtr!ZSsmnr@)mP;-7sGI#u z^>hadSaAU{h2qr%MXKHsW_PeVP{7K-S(>&P5IXdZ|bj5$MSt&jP=V6;#itTDScBnWVBa!C0Sgk3!n5&)GMVHZ0 z*o{|+i@Dl^VTm-Z_F^Ah+@g9hg4^lRJBZPa;J>jlg#G`*@l~sq1_JVM;C=wF#G#`5 zsU`ohaW5>^KZjM1aNXqHN@5h0Alhg}8ef|LUWGfkBN!e_561<_-=FXOc%>uITQ)T7V+ E4_UVLGXMYp literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/admin/AdminForceLevelCommand.class b/build/classes/java/main/fr/gravencyg/commands/admin/AdminForceLevelCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b42f007f197bd188eb499cf7dd014725a342052e GIT binary patch literal 1752 zcma)6QBxCF6#j0qCSkK6tSF+T#)2gwz*0nVF4;?1Np^Sc?xv;w zll}pwkIr=B*v|Ms-}<9EJvSSzA<=1Oa(B-?=bm%E?|x_h{^yTZ02Z;MV-z!46fv8@ zoO;e@U=83LuIu;&3pzfnyeZu3QOzoC-&-zhF=!>v77S<0jw?2z#-5Oye6LPBX4$Lq`WBat zvOAkvc;EyKi`}`ZUZcTXJFvLja9nFet!tjFin3^mdMWlUQ>_MfT$Q<}6NUlLz5BDM zMj@5Ho-cc{X6;3XhfZh-H*~@y>tUTA3Awyme#)ENs<yRYK{wwKj~D-*z)xdiPOk zfXf=Sf38mwqRJ0MWP7T=o)QchSNzn5!!TG0dG&Ce`yEpBiWd>sHAm5Qxj*`OmD0d@ ztfo;ia0hoO&&hG=e#7^Iz#)bWtl=I*;pF(Hb#g5B6@PWbUygQmPmX2W9vM$^yY*)M ziGdF=k;XR$?&I4uzB5q9x`7RqW$ZM9)yS#aLaGiPQ0217J@q0HNlH$YAL4t4396A3 zL721u`YrGz-Bpltou=SX9P|hk1Dp6EjV%K|;<15kJZ4zvy3GG21%?m%AKL6_g<-sp zTzBZFBzy5);-Cw5f(JfBGGEwX$Ogi-*F_NU8eI$xz-dz2${Frzg~ozms3yWYJml-# zrK6HzI$!A4EXiGY)D*oHND`my%GN)O#1x3IBc|y-ZS`-|kYZno;GlDmFcKFj?)!w2 zVXjY}LQkTO45-me=*8p1FiPlpsG)6Qp;Gmv*z>rw-*7R1nv38~OknlIQ>B?MO5PjI zFcSGT4@Ere9i$WQ`5Y(?%(u^MO3yzy!d3coj?$+UNPzAh7ib+LYZWQl0rZ)orX{r( zV9(nz7u89V@x8F{>>sX*0hg)k1o1Tx%io+Gt^*_$T!37s#4M3xjj?H-~6ZQG+dc@@q(#gA|#k_XG<60_5e**#H0l literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.class b/build/classes/java/main/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..7f7b8bc1a766434d5859121624ff4edc0968b70c GIT binary patch literal 1425 zcma)6*>2N76g`ueI!#=<0%a?-EKM4~>|0q%Q(6jXi&Q8Ao~DU0LmfM^9Yj9`et>5r zR0t0U@yIXmCkO#&+yw#!;fL|~&Rxzq_l`e(d-oo|Y0PEOiGw+`<4^{N^?NvrJPJ9C zpqRrE9M#J)6Lvec;&>J(a8i4n$};$jiL)lo3A9~OzKX91Y|ED)g|-{Yr;cA)cJ0#r zsnNoMfKdvnjzDKw`Oa*kw&;X+$-p8 zJf5^%pv!gQIp5=8uC|^1>dzNe;}bNc!1J6+tOB1p_x(iq(=L!v8<4lR1g}$JsQFk% zv(B@aW8o*SzID%J!sZsAunPUUT9o1qqBg{+=bIO+HY0sW5U&!SUTsTG^iRe@AHTP+dSV-Q`pN3~WFAfjcCF=Gq0bhcO%$6*3A}(+ z>`6Car10u3wlvWuFnhEKQ{XvI~wz1%LK{o<}wr=dk9`1->1Lp)i_7I=84PYM;?&sb@y5}o0CI-J? Ln5RRurEuT}M?z~N literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/admin/AdminRankCommand.class b/build/classes/java/main/fr/gravencyg/commands/admin/AdminRankCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..f9f5ca1bc019bc2bfd5f9fda920dabf5e9bb3a59 GIT binary patch literal 2822 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 Djx`Sk literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/game/GamePlayCommand.class b/build/classes/java/main/fr/gravencyg/commands/game/GamePlayCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..a990b6487c529b98d28f1497251534383875b9e5 GIT binary patch literal 5181 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 OV*{H+#HeJZ`RX5}!`mDH literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/link/LinkTwitterCommand.class b/build/classes/java/main/fr/gravencyg/commands/link/LinkTwitterCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..35355d07443aa398f74a66bfef83d1a93a5a81ec GIT binary patch literal 888 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/manage/ManageMessageCommand.class b/build/classes/java/main/fr/gravencyg/commands/manage/ManageMessageCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..c4a274619e7b19e71c87f789687816f541ee91fc GIT binary patch literal 2961 zcmb7G+fx%)82=p-vP-gvMo=T5@k-?4DgsupT8xOc0WDH2QfrrFje*TB?uANQd-Kv- zd-b6+`p{`Ro#9z$8mD!J2d91E=IFHY@ub^|0PFm@l#p7ULQ=ezCB|NHA4fDYWQ zLLZI=u><`AjtAkxi7ITz%K}~rB7hSj68t?-g+ZL;yHg@woPGeZaYa&KOoDuQ5 zh*1$|MT`aU2F~&2O%dmVWbLgW6pV{Vib(OTD&hivr$t=k{EUE!ASR&+$O_OID$Eo^ zI5DA2E3#u}G#B99lB1N?Mf%+}D6=S#*kf zOv2*NDj5PBE>`A17^)1t@3NY7Z1TJ(mN3k;Jnl?RW^7s2?TkGmpVE{W)$AGbE~zPc zT0U)?89nXZ!l#(&#RwEK8G>0W9XE8F>@Y-1)Q>nBEk%YI1QHxnvIHQM^`LvFz?AEn zVdL_!=yHUBBD1y(K!)nmwvwD2P^R24Qmwd&GXxwIFhvkg8;+S&k7an=BjuvEo2OR5 zB?%@h2{F)JRzI6=PIn~iL=(e$mst>r{5=^u9?kBTAI+-yJ6exs&8U(}MaL}1)Q#-9 z=-9Mjo9g*I|6KHs8@Hnprt!9b%Mxbr4nMq0;pm+(C|_pO(WAQIOsk3$%_~WG4_5>j z65huL3{7QRnrhaVR+qeTFOjG{__ynI)lX;h6SSK$; zHM(#=9#RQ6@fp>)MY%UW!SJ>=PlG*K}k{6i_G!KW6AM^I<0CHltkZ1Ut%vqeR01RN>SH! zl$lE_D4eB-k1bz}uK{IhO4VuhwZ%#ryJuGkX{pz13$7WzsMv8sGfYZI|4{EJrLnNl z7uf{1$j!;|2{mc2=ti^+Z%8rJ#!B&!#gIk#^XYYm^s{~Ijoyct6`ZX#GkN%Tgz$-fUrmjnsvw&xI|QAX{uc%9xA z26-v^QVLITwbwL@Hs$|ilUrEhS?JZYyb&4+jVoB;I`jq5oy8!mI zFG*3_UL2+Ja#Uyr)h)yB6<`#EBd#fyMTLMZ^zq+8{~`3n=VP9B6||3G7p={78iqg= zU_*1ueK4QT?|XoX=7;c&K7jvcRNiwnT4-HGe=a~RB&@-D)S;D5>pWewVK<$~3S{gd z%QR}x?s=%V0zawIoB2N zbqRGs9qDyOD(i&yZZRT~vQQcJkOjR$u)=*p60BNyA`iiKQS4x2eC>XNF7w527yHHU3HYd-L- znP{MOBPvl(bDIZec6F#Ws9LoS&#RexthhowVjDpN}b{Parc9ZEO|V zSpzy)6FONNx>zUnvo3VAZuGD?4zWQTW+OPl6vWvi`rXPnPIdK|?CzsKV39n$k4|(E zrg;ouKhgZ8U4<8DM^(kNg$knG0d!O4a9R%zQhmKh_zxiT53WDKVF8Dpq6VVCw=W6k iC4zt>v|*(41Uu>QH$s1+@-I|Jq;M^nij#o~9Q_Y}*Da0! literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/manage/ManageNPCCommand.class b/build/classes/java/main/fr/gravencyg/commands/manage/ManageNPCCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..cf7cfe8ae2a73a07c9b45841e9aaa580ce06bd67 GIT binary patch literal 1331 zcmah}OHUI~6#j0f&<91ZP@akx5iPVZpde}yA5CFXkO(0`!s2#%Ed$e;W;#P;=gJ@8 z(w!@!J6S-~gaz#U8U7ICnYJMdqWPES`O9s|8!^N>ke_sOj~E)W{lx zKW*hDLt9oi<&s;>Nqbe~4AMlimL`lfVe6h;Q~I4Pz09CC=F+TUQJDF%N~Xktn2F#K9(%$QhIyX0Prpc;yC$bE%xRt)_XZ$& zEsr5N<>k_;sh!iWj^vs&$UqoXuLx3@4d7`6b9lxu)-aa;&68o^a{txZz!`cQ99%~? z%4#|*ccnp`%x2ay*-3`}MmE%Y5oM+>VeAzFZ|Ly|t;D^xS(HlB%u{FaOIUM3Rht%} zcGl4^y(OHqWmq=RXW{jWb%w5bik+D$tO4d#Zd+4v(J-{?ga)Bq5p;V_`ryTZM3$NltF+rK`AoFU@Gvp-M`UsJ5&`&--+@!M~ OzTqa)4$#?$TYmvQxnKMM literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/manage/ManageVariablesCommand.class b/build/classes/java/main/fr/gravencyg/commands/manage/ManageVariablesCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..d94849148e7bebff7c19c49239abbabc7f6d3f01 GIT binary patch literal 2615 zcma)8-BS}+6#rfFv6~RZMi7Hy*Gg@G$SNReP%ET})&N#07SXnwWQ_}(-MAmAwD#Nf z!H0IHeW^aRePR002b~e8bxLP&`r=IcNA$)2q3vkT-2_Yo92w@`bMN^+zjN;9!J}Un z0rcWp2r0Z4#x4vAI39)%!y&wc69P_#5yY^F*ZF=bgfvDtH7a6^@2BhW2F{2W7cn8? z%`hf$R>WH(rbL_*F)iY}hzla#=A3s#yemQxkr9y%ll`0kHH?eM3%DdeW2m!o4AJzA zQc`5s(RBHYV&u$1KSS`aW@ye)hNgJ>q9x}orKB3!xxAd38t!kOWbmiVoXXIU)(myj zEo4+{LdocK6HS|0MW0kGjh`!*e&>>AGwiRml{E_ma%ju6DtT2N@wR1EJ5^>=H2#93 z8Qk=$P#8j{F?2=Ex(@l?8&8{7Ue36)vzjBThNC%i@@ZX}Q?35#a+bNQGK5Qtl`;*7>@dVusSmoEo+HBy0tt>P1q#6L%oS-17CoN~E$hca!sMEY zvU!cj7&eSMN_KWcDS8#8#t<+gAn74DOR;es^H)21!!Rm+uf zs-!E@vhW4z?=QcRBDf4ofE|GYmmf+DtphVA0cT0Bp-P77mQ-C=SM(xy4_5@tMlgr> zNqDUo3aa6H<{7q+xg|@pB(mV$=2Uyd6qVUW;ZhAF_yAYwq;XJ#w$}(mK@>grU7=DmcTISE83E zE0B%Qy?{?6_za&j^wj7)-ykyVSX*nNGO5e$RnU!1Q&rC3xAdII;vS50?+`>Lxa1K(JcQ|gl9 zq)gqk2$bP715*rJs)v4sO~KZ<8OzM5S?8H@94iUb^ZqKoHVd#3sOI`&`N>^-~a>P#hyzQcID}B@WTSinJ(Yx^qt#LX{K%g67 zYe(m8FrUxwyNkMxd+<%&h5rr$w>*t@S~t?y7>FW*1~g+cI_R{etcy-0=tNeq2VG>D zLB`&)hq^J+3sV3m6N@*I>b!>_nHHkr0z$VDUO;^`LgWHA{DO^jSm8H3;cu$qCl>ub zFeH54(H9mFy@3abMd3%Zt*EVI_EyF1Xu{u}^d|z{$v`X+-ApEK;vi9t9@RxulSj36 zMz@sXi8fdEt(86I?Y9!iU@W-UC;0lrCb5ZPI2H>wiQUOiEJV>QpyejwMEc8QE0Fkr?7*5;z&48z+WZkKP0ffAh@p+++P!DKND1U2&Uf%s6Pm%KMAP6(1VBQ zW%bz4n$g2rafrong!N#69mOC!f#V+BC#YE-lKeh&BScoeBfVaV5-YMOqEyAR=iF?8S&P763J;0XOcLRi32#{R=TI{kzC$7IPT U;8g*~hyjGdjbvwlwCgbVKc%O;cmMzZ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/mod/ModFreezeCommand.class b/build/classes/java/main/fr/gravencyg/commands/mod/ModFreezeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..0f379fe69f80f2dad5ea36022d5dcec5c169894d GIT binary patch literal 1573 zcmaJ?X-^YD7=ET*yQM7GYDGMY7j2;|BA)dG#j6yQ!>BQF+8ygkyW4EHD8~2?^auC{ z2p>%hcqD#+#1H-?6OHfeqT#5t>CDc1Jo7&DKC}Jt`^z@~Lzs?1M>>k$X7nKwLqCir zbYLKc6Bum9Nernt6+;xKqc|hyvr(Lr^LgpaMsY#T7gbzRahXA>aLZ=Ub5C8Py?6Vr+A@E7Cq+_d3lDrmRzqH z74MldUm5OL`?CUQ@vF;JVps?il!QOHb7&D z1z34r@hNWEkD+DKf8>CTw#|)M~sWPd(XK9v$nzhkaR* z;z%!ns2KViB&@3Qk`0E& zUH6=BUD^d@=|-!Z!vfCf!e7*GYM(oaZ3*Dyoz&b<8l#SVarST%4QmW~U( zcpozcKEOo{mkcB@Yv3|IRI8746x2MYaRmBHuIDVZ>T6E0D%Wb143>Ob)^5wdRr`)G9)9OG z1t#{#vi*8pdX=VC_bXP}uiSL)^z31dMjVC0S=J$5ujVua{*b>RWUeMGfaPe9lv( z?TX(DZ0DM*8a=eXW7DdbGzM{1pzw9**4(CJ?ru8P?q;yg#&Ui69`}u=)2jH~+ZbArg0668m^~t178T7?Cw&hLY3<#k)=^WIgKTJDIm-=mhqK9-jwFvR=Bst z@xk7ftyT?!H*3-iqI}G5&(9N_DKNl^*la}rvmpaUxuv3vQGVYvjNQ$~@;>K+@;1^~ z!JOdsa=CT7NRD*1r(eM{DwH>#c=I7Qh!3c+2nR5lt!Dlm0us&3T( z(OVDw_LUMiksCi)o`A+e+PpRt1KTy>9SratrJf$}5@Lws3GNn{NYjTD`Z3J?aN80mF~XhFXEDk+0&n3|JD&IvG0K7M$(_Vwr1OJ4&k^gvlgZf3 z($w#W|AAlCRETdQapxJ5g~VhbnN9A@YOz^8qi3|oxRgz1^qE46F4@#mXpe9@o9LJ; zfj+2)r!Y8v^OG(%U%kwC)Kf~^%ORU+>p4dGv#;|Frm4+8$1wqA+t+Q|PppI=gK9tl zeH@3_q6}BVY{Lk5qx_wMiPIRz+iakTGR~mNbsg{FXPn0iOhgU44!+iLj+SF=qKQYe zF%hTVFFcSl{2H)P|F&}*?@}uw*;#t^FxPL4I7T$*Da|3#{|aZ3(vZ_Iu3@i|l+iZHf80TGlT8i*Q`4NZn5NVqs#54EzjOWP6oD_(g= zxa0=>NVtH+3x9zBM&sLVQ9g#AE@$VwAJ6-|AMN*FUycFH;7J5+7*=q%6(bl`kc?mq zDH-Vq!pL~rxPl1 z3$AULx=%h__0E&~cAi)L za>%$x{spUMm&7x}t6A6im7*;QqGXwxa5iP!k75>c)XAwyZ^?KN#Y4<9^j+k-R5Qw&u)ToUC>HRDp*O)3 zr~B^de!`De6{f~bH$gQy*(*9xEaEXk@?2y7(M*QH=BBHSZZmXTB*hSKGI?)kdDGW_ zRmT}x9U_|-j>C1TERF9)WPbuW|4Lt&uF!?eAn)*UO}yM<7;WZt2B_geLmEtabi%yq zm55>dKaTYoY!sZ_71yeZ7`l^VXCgF)6+?*9>+7um7&WM!_71u&(aRd3|41q=NkQod z?7+9_^klxK6D^3*1N7D{(S>fhdHNobF?#yY-@yBUAVQ?eXO2H0nvMlNBN)IzCOEwk zljfz&ap)tIj5Iwj#idUOeZxrlE5hqXkjD?9#9C;JOWr9$+aX%(?gSWwM=3=?LE%D( zQ#u2b$W5X)NHh|-K}il_n7&FQ$RX)do~e`hLpe`=14NYw;yQT*$SO-1gM{CUIozU? YL|7p7;I*HK$rz$vid=4!Fn~M10fV4JsQ>@~ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/mod/ModUnMuteCommand.class b/build/classes/java/main/fr/gravencyg/commands/mod/ModUnMuteCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..3a70c90819f729403dc3b94ead1328ba24812209 GIT binary patch literal 1102 zcmaJ=TTc@~6#k~Ww57Cw1>~Ya@q(o-EJchDH9kPpmzI!lNsy;$cU%X$yUp$_kw4;t ze}M4F3q(zLfH!}X@l4y8K#P;?%${?;`ObBI|M__ZU=6QR7(yTvjm=}VB$p* z3;KMSL|&hZ2^112GQ{6XPpWqe6Zz`rz;Xh9EWE~vV{PnztSs&^m>a$=7)Gkn6PuA+ z7r_p%H%XJN`VHRPB3L4^r)ODJ;oA9z` zNF$9B!@{nTO&N;Z^{KF~PlL#FDN~Z(9FV3Jipcg!NMI?AWmpW8cipc?vT2Jz^Q|z9 z5=T|!4*f_(0nyacC}Wjjob)-KyE#)gXSuGE`7~Z(jiGR>>i_K(!)$->PPds1(|zXX z6D>VUQ}=a`VJH-yT@zu*9bL10|85$2O%vy>7NHrI`oVf`b}K}4mQ;RcG^il?#U5Y< z^U#k+uNW9rG(-C^N$ZG{21pf(rfHa$VCQYjh}N|&84MC~l;npUBpx73lD3awoOmcJ zvUT{r!JtP7luK9NkuGLqKVZagUNTlUi@#v*Ut%B|zd&M%zHE}V3k-H3bjg5rJ3}FX zTnrF-hNy=zMbb1@$fCn2bR7H(ql`&HFtU^hHA6vWF^5NZOngsBYk&=td6s@-nEMMv C(H3(6 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/mod/ModVerifyGameCommand.class b/build/classes/java/main/fr/gravencyg/commands/mod/ModVerifyGameCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2e08f7b11db82347af44fe6140f9a5ae892c4799 GIT binary patch literal 2974 zcmai0>sJ(I82`QOu(J%K!YbgRDTWsWbdgGhRTFo?HWx4!@U9KJ!#XfKgR`?JS=r65 zmX(%ScJp)&r_(3DtWoE9I`pl7p?{)JeX8tvXF&GGk;9pp_qqL^`@4Vq_satSPvfqH zW<-4GtwtXX`|z9(Q3=oEh=eB*lhBWWY7FA2h!;c*NvKBLhhhF6;TogWIELdAB%F|N z632Zw#d)Xs;f#c{ILCP}ayyC-W1NzZkc7$~OeLdK62g-*pLlxZcXD@H09w=K;`IU%gD6)UCM zaoe<%6q#6Gh(S)NI>|d+Li42+n;cYh?oEk72FY;J5Z6tcp=LTS7GqpXF>EPkK0jnG zMmXLn$7_bh&c+e%`xUzu|1Ai{L&J0+saX{!t5b==Ha z3AIn-wF{Ih!cHEmjLonZM(1bu1m|Z}H@Xy6s);D4=4UMzkq&2?_;G%=D-!ML9~_9B ziys>tif{&z7o`VA`g?~4&xL#9y__RrN=62hw^lkn79gP*36;v=bw4O98CgurxQI(4 zW@NmC%OYNu@d{q0G#2!4K~)(ViVJxttLaJA;_+Ug?99(9F|}zz%{Iw+4X?|118<6W zOU6~aE#n=$E8;!s93GmQv73^=|Cli?YS|1$8XoHH8;SSIc%RFDfNLTy$oLQ+$+*rb zALEndRF%=5STsVapTZV#L&i;fCgXG5lJNy@%lHysiMS)ri`xxk#8>f#QkE-SNAPSPJ=E7cj*NcO9lj5Cq6e2Vd% z$*oZ@WEDLVO&O-8hLsGpZduWjWH71NO21-|J?h_WE!&Hx(B<&87FiOcDJ%-5tQc8e z+8;EGwPfA#H*0Hpkfx68tSBHbcu0d`YkpvZV-sq^4lU?9TWWzs;w?NYUS(>E^1`qq zUvF`hmE>rlhxyJTv}2~Flj<6BF0XP9l_YA4X$&GM4bW)2Iwb{g1&%svuDm~Gx`2xl zTEj9d^3*onc<4?ce79@Drn@>z%jWFn;?^R7s?4G;t;iOqrFb|aBhd&EGIWdaCMd~R zsFcFpGRRw;7)Gf6Ais}>hA^TV4ureUD&0!V89BLSHsLjDo zRR3yvlOnd zfz<~@j@d}B%Ac_=hxIu;L4X@_*hn!pRnSEt^K-zP!zR~9`rr>UrWF-)2rRIr=4gI%O8kd0e-ioPnz(p87+C0hr{>N5~|Sr>~> zU%Lr|Ikdg#qSjc)>d{TQ9)!sM5QK(*a8bm*hqwWsi2WiChf*6I<9euw!BucMRM$ zu*Xn+rnHKmGpsi4_aS#fF_zkyxV-=7Rj)N;Lw=ZTFPvBfx}V?mD3ULfPI>>ygP|7a!6)e? zF$I3yw1d#)qvZ5d#a!xG#gi#z@16Zoj0N|EcKJ~pD(z-PRP(?L8yCA$0wQ!N`QpokU!C9?$!5K(>L0 z79OEXH5Rb{(LaW*`7X!P1~aS|07M+l+RJ=EL}NA^>5A<@?Fh1cXIR}&N^1;hNTP??`D?p J8d)W*{|5Z%4RQbg literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerBarrierCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerBarrierCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..f3c31e9e4ce94356325ee04bfb4d0efa3982cb14 GIT binary patch literal 1466 zcma)6T~pIQ6g}G(LfcfJ$cLbaidrZV5ah!m0<}OTd<-x+$OE%&*Ai({CQTW6bNn+r z%L{{!KJe&|a=hD=l8(i3A2!+Dd+#}S&q;p${`M2VI9B|4fQJDz<53g(gLsT5a(e1V z1OvXg&wyMG$|f7A4SSZMJ)(cGw5-LCg_%CdYVqBr z*uV~hFJ8z9hGyL`#abz!64o|PFi8%( zV4Y}5TjaNFo<3CYMnwXP5@1QevWg_$GK|(-+W*`*A=S^>u1G>{)&!JnBUjYox;Pd& za*m$ZN$6yuo?5-!Q6%bk9bf$;;XMs$yDrxy)F{jlEDAHTDvCv(B_+tWbrlb0g)JRw z8wK)IXJo)F{M7;RYjFXQ!e)k{V?ke!uk5d_ZzuMh*9|?nwp6zKweQNoRKPE-RmmKx zab^|84eg{YF3KiV;+VWrm?2V2@>+YxY}H5tZF8|+<+h-YkR(wS<~KK!iA}l{H{?|S z<#p8%tR6@*{jQQXLK6nhWTY1vCL()olGA|yi@}n62wQkW*OAZg{ z{?STvm{tiWv;%|&qi0}Vug`l9&)0HT8_j|8;Vr0?e4ExCPB7Z(O^y&c(M6@mwdk&t z{6ZzYbT$5ZLv8r|AsAbEsPv2zl`C8a)gj m)oDW$VRsYeB%w+ceNO!w2C3Xo&AeExUVKan*%`R>>9QliU z@JSxRp*{NGWB;fg?<67Y0>$H;lbM}6cfR}GUz4}*UjGeX3T_N{V8n3^cQxFL;Y)lK zM+8$EzK){{_hWc~hwAH_Zah-!w3;3(oo~DGM6FNNG}D7wq%~xE@Ex*hGZ(`%%tvR* zOmt=jP_mqc?=?JU=z1(2=|5o@N|{@pQTF)0aIAx}ky(2-Jyv9hX55ls=rg4w^0msQ z@K*SyO_GG^THG#jPpW-O81=VhmElns%W^9f?v$#=p3M)0XDl_AwC!5E8P_REU%F1F zsWVL$D_lAX{~RBNnCoPJ6IRV90(VoU>y?eo+U~CO4dM9GKWITuubVr3pBpxJ%0|KW zq*HD<)72!vaP9q9i2(P?8KOeJ1}y-s1$r|?UFa~f?M+} zF(*~bl9zaXM={o5>R3Qt$8{_++z5q05^S{ro~}u|Bs>jEI)1>i(k?KJob|b-rjA!M ztm-J@g^nMwMn2}YQe*1-rH*y{q~mA2Vz~9s?+=Q?lUq`F$*N5LS`#+?tZla{lA`J- z_dPCkY~YoSUqEa(byz47(Lg3Hh=T^9V+&;++mIS|bnL>`Q32)oVaUh-Q7UJ{)4saW zswIZ2A?%tj?W&P6DT6juzL_m%&3g>j!-W>qqWn!=&=;3ncu7OG%|IX^3*4uea%FRV zacL>LOx+eNoRf31HX5qw_JKl-q|`hZz|CxPKjYf2N9jzPt67HOAZ+`XaJ%^4o^U8p zlc_*wEN<=y%by+#h?>pPDjd2P(m&~>OZ2;ax2Z)`Q|EyRQL73+&nwgo6xy>DOI$)J zJ6G}q(8Eh5@>8f6iFUr*Za0RTWHS(<3rdjyMgtn5XM;g63qN<##|)|W!8QB1tx2G_ z0-&d6&*+i&L|*Y_xSv}8FRHEhsfsk_d3Ae%?UW`O8;PLbbvYw zAJY60?Xu8F0`!hg9D+q?9HHaShT099CJLeAa^e z1D%M{S>X*LYlny)q4N#8){dYZqPvb*B3?&N9eN$Ti4W@NtD`?Zaf~a}EPo-f7MUy@ zW1s^sCP+BQaEPJAaAM>bqn$Vp0C3lHMkH2PXdo`P(x& literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerBlockEventCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerBlockEventCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..eca146f8eea4608b6e41be4a9f3596303f30f1eb GIT binary patch literal 2034 zcma)7ZFd?)6n-`kHo(TDMUG|FG#(rJRR~~26WeMTDQ{xgQG}Gp# zPOHk@O;)wYlF%H3S!L#$Vm&a1y@uJAa5u4>9lP)&H##0Uzn#(?x2{$@&8F$8L}7aS1KRAiw#!~I)nayC)jij= z>%BlCediLcTzr%SFt<(tOr1j_A;yK;o^AuEAGL zk*{kPM14!Bm7ytELrK9^tV_5a2;U^ic8@sMF|8VRWo#(;22TZAmoRra-T_Q(Z_3zG zP{uO_-=fk_qL7+O3&V2-+xSkw_jn;8_2*Cb9&y8>`)}}M$4>tBGa-44(8*fIWi(kl zxyw5WcJM;M4JoThlgf#>vzo|*C`V~u&7T7-PY zwUv#czLV3|^VE1V{_;5nk<0l&We+z5Z73ziX&-sM!KisG$ECu}Xa>L7}eWrfP3`&R&2JpxI^alKx=k!q|HFcJl809wiN~}daLHRvh zyQC#>Z)b|12;!_(qd2*ElW65R!={sPgM9ijbWSZ2!MqPa<$dyaNKoqBD;{?51D@IEtRc3%&G8rndh}>L7ojEY&Bh-B@FLB7V{+USH32sDI{y5|1|s zH|bMEPm#F&iC+2btdz<{ZD&iTilKM>KYMI-HC@KLxJ>_H z;u`_A7p~FxHmwSf$pVZoWDX#O=sU#7uRYjx8e_f9Nhr94cW6D^2O~*@;v2^eyhl`& zW_&Q9`~{;3)1Lksp~?ZmhZud0NaYan0mizBCSqO0yHL6qPrTK|L>H5#%n>e8v;2-k zCA6p?VQK`=GGv^VaDbV_Y+~*R^P@NsHcL)`X>vP*49R+kIXuODPvk=1{ZOQi5AhL+ WBS}ahO(A4xUZ62V)|+G>!Q#Jpi8HnU literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerFlyCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerFlyCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..278730ffe51ec107b89ee5af6e8bba98385ae023 GIT binary patch literal 1423 zcmah}%Tg0T6g`~;@?ZoFpooY8L;@oWDxwIY5QtipSQM`+(M>1m3@wuxoSCTk6x~}{ zV_8_ZaKX~OzhikjNm&Gg&Z2wzKF+K_3b-=89a@l3&T-#VkCy^7>(fu#-d1K zJVwJr1bPQQ3bZijIvj2VXZ1!+rvk)b!4DY}N~^0&gyS4<=I;>rB@ zHbW@o6a+(8M%v{M!iyC!ws-2#N++=kEdds)8Upc&h6%5GkyrP_$z({!d( z8ye2zu7*qK3u9KpJ=_mtPQwGthq0jHAr>_}!efS+<7#osmT$_UM067Sgq*O1mpHD9 zHCL2mx#S&J-GuPTO2#>ArC1DONy9Qy8dem>;Bhs#?O2Jzm?J&G%M_PeTvTaGd0!Sa ztRk)93DOJ-qIKvqo2y`k$)+>--{Dd9*72K-(`C5aLR&lZDSe%9N+#7Ybeh6n;XcoD zo14OA7)y>f>w?szJW8Y|0!cS8BporDs48_QEgL>d`gX!9xM z2lC8|yV8d~4llV}lkdKP^7@sKYQyrh-b49Hda8nT$G~Ckh1-{g9Tf-fO z@tdx6<68`q<;E|e<%ImHkoJya)gCTYXEqqdYC%UZ9BsH#EGK?jgloL*5mIUdHupAo z=&JDm9E-Qyh~Y+7%MN^>%T8os7BvD(S@wi{bQ#%{bb5UoCHJmyci<#Fj)tvGb0(@$eOU7BI);7~HaLx=32 z7$L%NxD|7IyUDwQT=iCvgtl08RW+tY<}|Oo7&wKRhPwvtVbQ=6zS2-P@HOr;9Qri~ zy^e;4fhLw2F7NN!b-x=#kxNB2JHoUaDw9uTGI?TdC2jMPffcM8_y*r~I;Gi8Q-jptyD* zWn$n*{6w}g8{!L@L>Biv>)$PG5~AT}0~~FJ>lyZ2Z9c<=(Lrm2?qE1OqCq$5QB8X0 zpmv}wb)%IoL%uw-$xv`a{6JNl;beJcxD)y)wcxQKr2$i;pk>;GH0F)&qL|k)g2a=A zdr{qyK`3fGqF_2;uk)(PQ!x^<(-cv}or74Ep)#>b8^bU+N+)|_RJ(X|AcB}OI-M!( ze^U%PX)cB?El)jPqI&fGC9&&S4L4G;N3sYNkh&tKLrMXed{)|zg&n8)km|a0pCqDA zWzNd3uh;KpWfelQagd%>hI7N|)wX!pqEgb8BvNtJdrdB>Rv|-~JZH1(cV;b#;=oru zIbhO~SKfw4-4b*K-9YpIbHNPlV$I`GMAr*0(bYOh_cf3MqvL*>-e+iZ2jheQ`fMdn z&mUmV`<$~1>(3m=1WK5q@u`%Fb2v{UHUADSkPgE|m;=2R$kPvyl|AGbp5Y>W4vg!szp`A|2`B=ra|4Y!KbU@k*)G z!wKa%59N89+=8+@Popd3`YL(6O)fXdVVkO86Y3MH@-b7Vukw*J|1RZ0?s1uTIpP6h O$X#6^beg_%c<&z*AlK0V literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerHatCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerHatCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..040ea2523d849523dc65daa73198c3123d00d04b GIT binary patch literal 2062 zcma)7ZBrXn6n-vA*(5B`LMeT*bxW%aM7pg-uu`j(rX`w0ue*hT6W*noqnZO{- zIL_f#0=Myg0(USL#|IcsaG8kV!!F##N8vKrg?soof&2I*j!!YA;XwjDn2zCL_)aG% zd=$gua5EF?W;A@J;d6n`dzNDb_XP%$*>%q>dU8uSh3%p_z5IA`cu62S?XD?--mK-Q ze8pZ>-hx~$QPP)n3$nB%JuBQdgwf!sQBuCKzoTY7Wm^^7-{0{J6;MjyU7}iF*YJ&wZ}FXu@9~2M zsbdudLe#MarD0u15l;mMkJj-)#VV~SF9c@^q!=UbR(wNlxsGoz8Y^6Q^|P_%2A(p4 zSHA?xC`*rF$8|izhK>?!fm5_IuIg}L>u^yP7;U-j|7sI~EA90c8hu2CrsimKJpvb6 zJX8X!oxLq^skIB6wRpi}ZJ6=~gB3m@kxsWnCcOlDiYj<01DTVK zEGkdnMsm2-6KNBkglue5B#3J*-rB1PXbdnXoehEUH}K|2%tpGQ9Rrsv#!mgqn%h|w9d3L2jmk- zvT98(5AVIswAY%%a{d4437iQ7kkc6_$FWqW{?JKLn#ms)d||sx?1Qc9ITqYL;&?o`AM^d{Gk!U3P5*;sU zYL~bsYKJ}0(TlgZKUY`AWnAHoX5j>+E5QIm4VQl*f+)|tkzWz1BATk=)Gj)o<8qUr z3hgK8slM1A;vIOA+CxHM4_yNJ(JJ&^bU(+P)bHq7eu>_`(^Z@a#Z~n2tFNC+6=!Rv zb<5E`4A2duMiAm2LX2xa-vbyS>J$^6;K>w`D`MXy-Y}n$I?~tqc({h^%!BCh4&G(9 b6PUyeB2U!IR5yY_Ag-_)D zp%muiWl5@is$f~cia_VMWn1n&f&RGu*wG4(v1{7-T0u*%&ZI_`1w!farYUe*w`?<8 zEp3?2lCe>wB&L`1MseA2EcxCLhTJWyB5=cxl`oe{hP_$Qc8W&LbhJh9HftK2>H0~E zeoBUAOVkrA1j1!I^UTawUAnyy*UL^p+o*1DTdro>uI1JmfT>6N6JyuViiTa#a;{_9 z1uulox?6$4SDTW6;S@-{uMG&(8#-cDyVo_)I{dwhU0Lv*ba^eAq^b;f5^A1cqL3&{5g07K;K`+pCsL*U)lOWu8ycL9y)6 zL4TcH)wPP+q~jPh-Kw}e9`Kj9w$m)}NIQe^lQG^SNF-OTI(c*2k_|I(qU_gYE)}e* zSi>U~7x1})FI0SqbroO15V+J*>NaUoaUGh14HbE8sxa|bK|#e9EEP|%t)Qr)1Y07P zRqWtvfy-?X{mD_`Kz4#xX@6oQ6uaQmUq6}YYQ-&=hPGH_6;I+Fq_r(>?!_5yKgwV)kUy52E|nk0MW|LBo{ zvAHRyN#IWWQG4v8VQcN^S);PWL8hlDIm#Jutupu0SwF?*0rh%X7_r@Lj{LxszL0*f zo?TeVtk)kG^||bfw=<7+m#0jCuv||K%cO6+9eQbvpl&ujEo;!%;(Ok3P3~gWJ-Vn* zu4W#t&t@j?%K>krM7M)JS552GTuuVZ;AMj3t`HdZ2Y*x_Z*H1;#5`3o-TPKW22`&< zzbeOj)?3NJxbzZamAo&{kdF`*p!{{?ZCoZ4yBJp+kU#Qc9OBt{;s8N`Z1QF32Pnzl%`62W zZs|YJu^Jrv6`i>QC;_Y_DDM(@j&LjziylDjfMgK#7!0D5&u2;VJiT2&FQsvENs)tO zG+Os{$Y>nHxJD-QPrVWHRdAbH3F0Lw?Sl9Ry$Z$nv-^E#cfXuJe}DZ3u!uqg6G%qUg~=#n+=^iewky*yxeDXN88hsie~D{hGQG1 z?p4s)U}YG+I+Zq{**fjK?-CG(=!WImW&X+#g%6zH{+ytdFfU^P_hfYAzD!ejAYn5ULkp?gNfcrag+Lw|I$o z{*$mpm(W(X&K**L5Rzk9H2$GyM z19Z(~e}Dx;!O%|xzI$Oe=o$4EdnmaVak2*+!RSLjS(JtW@-e!HFx-T65u_VPWoM2M zJVq#hj|ARvjLrbaC1sBg&c-A0=rLkJoRJNpgVOpDBhY>Vyh)JL81aac4aigC6!}Mq QkZ3SQk)o;uSpkgy194zkl>h($ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerPingCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerPingCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..9601de43f5baf64a9c474fb5fca5352a572278c9 GIT binary patch literal 1368 zcmb7EYfsZq7=8{L>oyALxC)4fw{C-#A)*MPG6#}WLWC?qKajE=YGvz|wp+wM#Al5e zQ4?eM=#MhKXRXTEL_Htcb97e=CBsQHC&IP7dIr_j3R(r5|k)95f39F z-pL52FfDqiFjVoL=|UQ_5^hVFV+bvomgz1t3@F;Zts1so<5vFAP%}Ggi}4&oFjFpY zhF;CI_(rv~$L(!>uShd7t(@13Io&qJ*q;o#uS|zwrWq?=E|qkv;HZ_Ne#mWgv+>$A zEhFQtED}#iH!XqMqJkk(wz6+{zUmU~jG~ooL*1($9GI@kE!T7peZa+++H1Y0t3};1 z)GgO0{Dy^)N6Rqs=TZ`&+XhMRYXd?GtdirYW|-0}?y4m^kG!q#yQ;(O8kwr4chmE` z&(mtQp~>4##-dy0s-5SnrZ}|07V9Y?S;8F|^SCSH0`4))o^sgW@ZJ8R@NH)VzlSJe z0rwe(&K|%@)hrgcEr3Z&;N)mQ#u6S#SeEe+kHp|HrQqbqo+vpoR*;eKL`D{?45_B8 z`0FJyjJGe?_HUWtQqzX2YZe_fqwyLqk_IiC%W7$c(dG!8-bEJX+T`?{f)~_8j3Wkj zpHc?JC8U)2|6O4~5fCB0QsGvCVOnXEvz96Us&_Pqc0fVVIyO4;b+w-_pM;NNb7YR|M(^ zZX`dWbLSYLm{do2`U4_$L}OjluS5Qb?hgFs>!DhZxG;%}qp!i4@X+v+Gl5Zz5f?Gw UGR8?!7?Zey394meR9Kw+0bg-v+5i9m literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerPlotCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerPlotCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..73c41792a679cec0039047e59fd74db8a9b8d5b2 GIT binary patch literal 1441 zcma)6?NZY~6g}HkLPHAJ0tzUiBKAWYP!zNXYAJ}O3^N5B@z)a85J?kE6Gq;_7w`%E zt>e_eA3lH&<#^Lnrj-v(XSRFqo_o*Py?6KLukSwqOraddRa}$Njq6<)!;LPC<7O~R z%g7)rBZpgYByd|s9;$>18I!mp;jV-!3HKN}W=-4l<{0|Z+8b9jT)r=C{lHL*ua*j# z4Tf0J*%k~vnrVv_zq%#dHNIt$C#g9)w>G$I26odK^LES{!$f;7-Kkc&yz3*GmKb|S4guAy%EySt{R3fnWigJ#0QYwa!H z=c>hRL#=qOX&a3#bcD1FL#Kz50PY$jJ#|77hD62V`fi!;HTNl39N*Q&q8XgTz_I=0 z1053XE11TNf*w4O@K8Ykvl1RDn8Un+$9N*)se&TrB`hc?VNt;VE=X8X@C?fg<84P# z6}BIopySbY9k0x7Ziq5DB|KN~0vf~UnE?c4$hSfMSr~?qlLOY8m17ue1Nfe4)zqRU z_Ju{=rIj{H+9bnpds$miRQstDdhd*YP5Oe?ym(q8FmxKid+E5=HbY-J(^~e1mpFS{ zf}2Q*f>wByDjLKbYbAy*0<7ESJ6|kQ;^ZGtup4!KeR+Y>b~nO~Jfy^P!d4{8zf;nx z?${nRJ~iHOx`nd1!`+G?B3l=Q%qGRQoibfcq9Qdx{liXh8PX)E4HmXc(XV+RDs|1NWKq8y_0v3%%W8V<@ z+<+x%l*2_R6r3V^plSD^pDYRst_P)}%44vZ@&lsu17>oEh%y`^#z50^40UwWA$>$D z`xTva#B)ixj;>GWJ+c+D1NJBa_9S97rZ9v)WQl2-SOOKJVSe(4DrN{VOzgyoOSnuL RM`#{HB&(433e6)J{SAYBdm#V- literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerUUIDCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerUUIDCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b30d8bcf6f8e5f0ec4ae7c612bbceb5a07dedb28 GIT binary patch literal 1128 zcmah|O;Zy=5Pg%xEC~x}2;Yh!el0}Up!gY!gE3lEt(H}gRH3IK8P}1`Zrtor@{2g@ z0Sc}1z|kLN*|UihAwlObyWKtgUQhR%U%$Wq1h9ru3iG(0hK`(ug*4*G58;OT-WT3}qV1T-30np}>%QCS4hg&%+f@4a01$@srWg8k@lvXrPxjTnqIfmj)v=5f9V0Lqrq0*$Jd{pD_$pka z@X3Lwd4Vr-st>u71805xiyatMwyAne*`v{HPCX1mf!7fXL-udNSs4*( zo9cWm+HG!=1n9M#A1_G_3mB#cs8$S&<~&OK7+Do) literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/PlayerWorldEditCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/PlayerWorldEditCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..bacc1e232a261015dac7db20bbc41c7ae941edbe GIT binary patch literal 2266 zcma)8+fy4=82=p-*d;6wQtnW?T9jK#fI@3cMQNlI4W$AFDWYzY)3C7FP4@!wu6_5h zed56xI=<0|RO<{6@K&e)fd7H-K557CI{_hqz%-fJv)|=>m*00uUj6%W7r-z!Dlvj< z0jRhx;e!BtxFO?1aYid~6Ca7UQ5heL^OGu!;g*b;j8A2Z%eXCLLdG2#lL35&&jYxG zcmPwlD`Q&5y#T(zjF8L<=A4ZC;+&VUAkHr(EJ}F5P;pZ?b$67Zp*#N2j-+jEotw$c zbR@Po5$&00@W-qaXQ++qCco=t65O8C5(aTXaVx1A^O~&-`jF{&S9FJAq}W!{%49S% z~8G~E=YPlduzX_@2S@ucUH?}6^PWv3$vZ*5I? zBiwX#ck|F{bSb{7t!oiOGt-e-*VfH+K94dz#lR*h}~T6zPD|wX?>k5_!eX&p&*HrAjn^*I+jfCKXcUmE!F6uIh$>m=nYb z9wIGaMS+f0hK?f34tLchcQebE)uoi?YRe3l)ft{4ppx8H4NY~p!IQ3TnQB(ERnJrt zhLt=Spl7BmhI+b5Eu`BjH&xBH_5EkI=$0ano=H9_e|6T&W^Fxl!VAGKvX!u=z(7WU z2}?p&!6Y6r`0{t#iwqW~pr@845QYvYZ4YS$(^w~yB0dH8g^BWf016faakZ$~-mX^( z!qT_q4x5>wrAR@P#fik?gpI)<#mDEzFASXe=C?BQaeoax6sHKm#4hcM`)K#S^1dre5hx)l3N%-W$c#ozUostgy;S!kk`b;pTJnl8`B zBGW87oX9isr(IX&T5)TG+Xs1`w>3}WH`y~!Yv>aFIEhag7*X%i^Ditqb= zgKzN#{Gsw3DxO2iK@L^YYYu^5QB{T`xpFM8E+wxyme-b&2an}-1@fJ+ZzvSX;ldMC z_2y9DmqUYKHRf4&!n^)0bRGrKbZn$Bh#lW(c(-B;fpGcIFK8ak8w&e}a%j1jL#wdY zR^*~xut-$kwL_rlgFtl#_4I5&IhqL7W-3ApI9l-o+VB`1_>oHWgv#?1;rufp{E9IC z9bvpiKmNb~{-l2#f8iS5;0BWrWwjX1SErY7e~ot1yh5I+0{_>E-ue-t`Uu_t2C0fe b6hRQuKX@D(e1jVHH)=v5(zr_eG7SF*dW~g~ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/ShortcutGameNameCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/ShortcutGameNameCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..94565fb9af7c8effdb5c0ab9bf4c7a87c627ed4b GIT binary patch literal 1763 zcma)6OIH(T7=FGaWI{4%8weV0(`iu%moRE6w#3?Mi0NgB)*zPVxEPW#3?wt0$%Iq( zUDUtOWjCBIbrFy4IV|YTf8oFAs`i;liirV^bIyF1_xik-?|u32p9cUI@Z&Htn2#b3 zRl=1hg18#NHE;iPnC#EI(_#eIz5VkTzQ9rh*(lz}jVQjv%?Q4V;A;uDB-|DV-!LuH zy(y4LYmXhZ=IFbIRoSblx%EPJdQBjdv#W-{SUt?wH=a zOANW2W>a9X-&VzLG<2)lRCnt7p5dsaP1|uREw`XIj3WPBho7alhHhG(?Ex$T!?u>ASjG*R7gbavjsE`GEv=r{-B6U@{3E zTmlzPwn}U?z}QBQu`dv*bz>1o4!F48GV4{tVSFPcSFdcZ=sSMC{37HeOt6ju(URSA zD#jht%kBp!Wu z;yVf7%h0gmU5WzZ%Chm;YYC-pC=^nvEoIAS$+(Mq5^^$rz>71;fR_IF;d6w9}8%p*BP;U|9H8w#eqHLUOK7*xd@D<2l3EitV#SU zMzg8cSV>Ndw;RuYXtAp9>MOcMA)=h3slLQ>5_lYMz%0KJr1gn+5c4q{%?$zdlsRx5 zI(*DI80Q!T0^nQ57}o@Ec}S!HBQvwlAcDbA@HqlceX((_(GC+b&fpyH(HNPL*bHli;O3*c#&Uz}SC zB|`^`L&3#xBAgid9jRm}5x%x0Ws+11Kg`5sZ~G-I_Fuo6X=7wILmO?JIr4Cp{0=P~ zf3MdC!2}5%m`9B3D25pOWl|;?#ykTk5PT6SJm9&^T-7jvUvbF~d4bXehM&Sm%oW4J z|G__jLRsO{KA}c{w#wAHOmCBJViLt1 zN|?`~j4OKes)+^ICa&UI7T2}qhKW2DO}vKJb9e)9X7ScIS>85L!IFV@Ox(n~2HrF9 zKEv3O^rgDVaHi-y4()cxcZBcmw(aV}JC)KpL#7(E1j9*3`eG&SY>IG|Z+c|OJAuo+ zbskE+9~d)gOGXTfqgZax>2SXl*lTnv0*p^94;rcg6*+rk}uXrOLk z8Fwu>Xc$AT4eW!*C3mLFD-Cv673QH|21}o^M?nm4(ew(H{uX0=|y(c5j(;o z{W`Vvnsbd|c2qROUZkwWL)3jtzy|%a_@|GO8AG-$)Po@OS`1Ug(y*u!E9E>j6g==W zC}@RuNH03(8KE-d$YCuRX`O)c|2XMt?6tM}ErLCfgza01i3<8cr<4aF>C_E;Mc0aC zJzE?~S>57cQ;>FiS5!(HlsXcAt0AI@w}~G;2M4i|dz5Pv{Ra2RDP))x?a%g|aSk)IqcDB335wxGoF72` zgf#tu#hwzK2!LXZJ9k!jt(P%yJL8Jy;Ci>4S;E!Ou9+!^v{~ zR1c>$pENX|i^$UVG-aQp^%UmFdV|cm3xEc6-d^IXOSvN1YYrdC{}D&}aN PL27QAte0q=!sWjKmObm~ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetCodeCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetCodeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..46ebf6715654388d02e2e80a54924367d18819a2 GIT binary patch literal 1771 zcma)6TXz#x7~LnSoi>?rNdXHLIv9ntK?W#zOTDH6qLYfIEmFL!)5#$no6N+yMC(7% zC*NE?;#$^K9(a&9f0WBTlUR}xs`D`GobR%~{aw!Y*WZsG1GtW_C-EvSWRSzfEDD&< zVgbeYbSZ<^a5)1LS0->ZmR!r=I2JQ>x{<}}cw+)@#*()(cpIe&ENOU0!@C0GOOES= zJe(|84}7!f%dT?mou*m7cdInNE-+U18cN`(<+y4kYHuokRc^K@$yuH)TkFzy;(K2> z7H&C#z>Q%n+iSO_+X&1~OYSJ&tZ#XKXh&gPg)w@$r!FyATRLtG{R|a>Nzbi(ujs|t zR|=NrH_gpxd)o<3<%UkUW8O)?OZTmBWLKIk={C)J=sRvR$z!}1Tj0#|T}eRtP4b@} z0U|I}52d|blbwFDnYtJGwz}!W<(M6v)a96rhWB*5j}LTA<3kN)9m}X_xT)h7ZtJMx zBMl$xuy9*LO~(p85xDl}FLu8$%6Rg#@jyDhGJ?oAx?adrM>2G)rHsgRzKv9yMbL2v zpX&Gwbq%XJ*08SOu8z-fPoOXe=d?Rs5IAg`(TIHMh6G6vLr3Y@zvwOyQfyJSI{l9h#oEz=6+D}{H^pHUmI<3GgTdJ#C z99*liUa_vS@WaD0XvK-TK4Pp7aoFG&PyNjE#!FzLslvOS-)ab)D9jHIQzB)|V*}28 zON~w|vduY(eV!Rmfh-Nyl1^3$ocq@(&c<9@t1c7vNaD6HA(PPS4LCy{grwH?+>pS(yvLEMn1=a1c#avYvY~q z)QF7d{=d-NT7kNL`GsX-~^F}wE!7QN!Uc%WvruG#_s5n~89qS1Qm}Yq30w(!C&cM@n znR(<%Y>{+Ilq`|NGR|>}%_Ve=9+7>zHR|R_ljLBqCMhBSV@Ty^D9!Vn!Yls(KXKcQ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.class b/build/classes/java/main/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..cb470ef08f138dc3c8fd470bed8ff949845fb549 GIT binary patch literal 1776 zcma)6TXz#x7~Lm{oiv#OhJu9(of?FsL554kOX@WZ5KStYHc0WZPLo4AHkpZYiPnFj zPrkW)#I>xeJn$fI{wSAwCb1-?tqePvTWvOd*3yY2=Vk zV*!QmbUB6Ba3uv3SChCFO0K8yB5tJU^m-aM@kSDFhLX2ZcpJqemNdMh;a!1=CCj#a z9!}+|4_&kE%D%Fj+ikOS|8_Co5J;4qmJ&E#wQRK#bT^c{DmOZmWU5Y6b{f*P!uwE| z@HZ__;O011)9H4l-SW&{M{Xo!W%;JEeaqiA??&jw2i0$6Uz#0hx6QimT6Q~1WMU9p;Oyb9Bp}^3 z6F7MQh`?0cm(8u3>PpB)!+Sd3#|Ju2;zJE39m^nvNBGB5?iBUz)?pDC6nR#zSej%J2f$=sP}7J;~Uejxqw<`ZiEq zRzb&Ie5&I!)HST?SVKd@JsqFpzCdmi&g%9Y&$HM#qZPQ)_6ZUp`j*nMjt3gP(D5a{ z61cG91brm~!wXwwu!_y6zZyMeZqS=8b$nx9U~#Nt|Fh!)=MQ#U9VRYtX3QY)t&V4w zs;aL#9NucVQLbJSm>r*&Q7aDB;sK+5gu^<&aPnskn=pZ7Tlx1Kx6=}s&gDnvDUveg zi4o_arADU}+2yE&KF`glK$-??Q7W@E0cRh9{REOOhEkcsaMW}G4SLsHvx zY@aWR6Fr+730c~dZe4L`?4~N_*BRPVcB`g5PqxXAyI?<7^n}uF(yvLIMy^1X1jm{a zYQw$p%!rKV{=E8~R_xGK;PMfVdsw)r0#(cN$7>Qw_=Y{}2g1a2`3f^@Nnh@9 zzOjvhzeKXwRKn&b3nCAZ!Z)Iqd08{iuae-YV z1bBQwUn65ZR+!qkfJwNe%{WVnhHEh-GIe&GH<>g?|9^ CE8Zsn literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/commands/shortcut/ShopPremiumCommand.class b/build/classes/java/main/fr/gravencyg/commands/shortcut/ShopPremiumCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..19d4247d85bdb6b5d8909e3aae1a95bb1facd55d GIT binary patch literal 3439 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/game/CYGameManager.class b/build/classes/java/main/fr/gravencyg/game/CYGameManager.class new file mode 100644 index 0000000000000000000000000000000000000000..b04939ce666158c7157fb0a5765350bcf8227f88 GIT binary patch literal 13752 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/items/ArmorManager$1.class b/build/classes/java/main/fr/gravencyg/items/ArmorManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7597458106a1b35ed987981ad996914e4f0fa33b GIT binary patch literal 790 zcmah{%Wl&^6g`ud6XVjf6dDSpEip9VQHu)LfRI9P(g-_2a#R*wO`K`s;@D{71o1m; zSOXG52=xQ_D8wBL5m*!?-^Ur9d(VvT{r=AeXOf9&$t=CL$KlFvotza5!DA|_L_At$k9$Q*STijVy;h=Sw^L$+2w zWXLt+p4#1 z`Qug~!l5l?EDhXIw7bgfq0X>#EUn*9wbG|rf6ANp7>rI73E2$!bSkC{5{g&&Y3y)~>OPrFy8@#V3LeLSG}5Dh$|m_?cN3aRQo nRw&Pqt&&|r@uh|faQ}8xv6iwf5(A{LPX0QXPCZH#Q7--j_=~V; literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/items/ArmorManager.class b/build/classes/java/main/fr/gravencyg/items/ArmorManager.class new file mode 100644 index 0000000000000000000000000000000000000000..55d18f1a4c2b0e7ed550f57f55d78039ac287975 GIT binary patch literal 2909 zcmai0TXz#x6#h+CrriX{n8nmX-i2qAiqOLK{16kOUA=%OoArq3NVdreMVj zc)u%NP`u#{FTA+uQdrgH<=Gd1f^WY12VCmj(@8QN+GW@GjF_s==c!=R)hH-}DJgTykVn{PgFlc^s-~xv;p zRYT2aCdHA|iHR7+7T6tjFH zghN_b4h<9I^GldL(%aGv2QhNl^xVR#m2 zWjx2y^9(OAyvXnp!^=GS3QMmtyvFc4!y612c=Sz{-eP#0;T?vHcvr@IxFq9!d?4dP zd?e7gQmx4N7?&k{BI8qhCgF1#U*L+2FB!gK_!?IPnqBp`%x25z#y0{jD+O_OQJ~h| zyR2$tBJtEoEluas`ahFG+XYs;!WWKEphk)IC5NL2#)qTIXf#O$R1lh0tXnGBKoGCc5CXK;BH-gVF7Ms zZ6T%-9U6*_4J8CBOJaQ~UP&3Sqm_8jiB;0n79y2YfkK@Acsxl#Ryn`HQUpiix7|BL zc6>WDP;l&UDWh4*xf!~+Ys2j;T>0vB&ahP7$d71q)EJgI@%EzvZK1>&-AePt4xKPV z#SR;?J8Z~q3j)4lF)AGjDzIreN6Qt8lrtxEL(SSfnWi_o%6dtgqi2IW#|nK?AiOlE z(iL26uSH8L?~u#sigxtc(AvZ5_g7=xes7je~a5=zkW^=?M5rT{9W{qfHs#KD*f&t=EEKI72JCXchc~m zC?g5tc*hNhjvwJWasy@GqrBrgl+R<;JSr9-mErIruk`RL5BGa`wTH_d9+*ds+keo* zYdyTq!|OeK^*q+N{WW;_Egrts!y7$(-8`Dy{?>c=tscI?!<&ozn!WpX6Qv z$6{7a#*`m+(Gq$!5aGT<%p8fhkX%%yj?& literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/items/ItemBuilder.class b/build/classes/java/main/fr/gravencyg/items/ItemBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..8ec9f4a16a0c60e6d0cfaac0ea4542b59daf6545 GIT binary patch literal 5974 zcmbtYX?qjb89gJ(mXQW920P$|#X#_i3N^IBF2OdCxV24EC2XMyV|lQJWyz672B!;2 znx$>hEKQdrw9VdhAqk|39YX?id7iduKX&`pUy`=xy)&8_*)ma|e$Z&<&bypl@Puf#@FQa*X7|Gayb{pgLp{p9+t~D@sxZ&9l=d_CW>eAJ-Iw5m+#Bv2lC>qi2P6< ze~lVE}WzvkVxutdRQ=?d(Gp+qT1Djjo zWoQNIlg{EA!qgu&Ch4xLW$?5yZNySWdMp;VvdQ#VcNwNaX{BAWSXtVDIo{&Wv6sq8 z(=t>=hIqqrtT9GM?@s58Q|5tmV%$hulk67_w-=?3)hxWq#e8zz1LYtUZ4F!fc$PHC zGNjCDGo@iw)||{t7o)nZJXB?XlKRCb@~PCJGij4GDMGg(TT0GJS4GB_U#>=J$e2?7 z&%tIxF_TViI5yscB$Q*h!>M!LN~U5|ET_o2KTk4?s#9DG8tRH?ab~J8j|0V`J!K`| z*GmIw%N*mp?q!QCizmm@hLz8b!sPbg5%!^x z(`Lfra^%3-ggIp;GwECyFY!5^$!8Ph!K7@N)ndTe0=J8@juz~c%gZ`$#x@P>Z|qk@ zU!l~E_a%|qp<@qT)$tl$XW@0cfuHGk6F=9nAHUEsfM2o`N;*>sbh%E)uW&&_qZev_ z%E;yVjhy91s^bp4rQ=S#O>Xi85ba#d@B1wpsxLGMcb#>-m3BivF_I68d{4a{kzbD?VmBU zlqcKD16dW}I2&$B#Pr-&p0$DF0<*@?oN7-c9=qCJtC4^zjhtP;twq~~GrZ0`D-982 zf>-+ut2N1HnAKu|IM6i(67VbWT)nigI&aw)e38SZRhe$c$_gQER>^mkbKQ66Rcrdi?jVJx-PgVWkm|2xKP3J^`1?T zt%tFRKQ6ZNhY(Md!c@Gg<9!QSd2QpM^%|W}w+W^{mji}`fsKiEe@VU+w zLnpTLi3*6}Gc+Q`b~wfkQbvqL+U5{wYkwa>&)y0;0-=NmV;O;XHY2Xhh=OR_-09dn ziVCG!qikM5=vaH>94boK?xgMQSVdf7d!w!8+OBc%0yX$7e-{Q6@?DOXQN|gf)*7Fe zrsw8RS;Eh5N`4Nj$xY&?&DL}Mta1IUas1FKc2grrU*t2#<8Ji~=vNRv*7hEPbEvvV zdv^9KDFy6R9&~lDJ03Ld58aN9J~!XgZ zs#Gs{W)T_cXrD(k0D0_~g?_|mzedG9MEk@1ZF~r8xtVx*uXpoNkA3K+{VL|Y5B)0d z`*FbWI7ENqF)A+F8)vcH=fV!*DBI!BQN1g06JK4F8l`28i0UU8N^d>?>3_(COVgtJ|sHUloT?`}% z^fWtXg6~r7&`CF}C?)$ar~o&+0XAbu==9%2)BkJj5f+J=7M&W3(gvR!A5N_yKC?QFo&ze~Ljo&4fL}ggxt)j7EG3JAtpz zMIlWB_BigPGjTfYI4v5hMIP<6*<m!vFOl^)fs=e^ zC(_{Eh}*>17`}8&kJB+jS8&s@j(M!rFo$*QpLx^==(nQnqTDyIw>vsZR_;dRo~8w$DITs>~CdXR7kq01qJI?}#G6Lg!wUOCAXY5gd) zPtY93Xc(pn<`l1z*xx(B>?<8i!+9)kAoxa&a3r9Hc{G(1&;lz~14WauK_5 zi9GqPFQ9#HK>OHLT|`txcDEU>j_4K!BrAo0bOb)Z7CRte;BmJ+g@}6n5zS%!FiW&S zV^6GFT(6Dggfvfhmr;!?++Bj`V2y)!1Zn!<6b)iP~*`^?lbgmuF@6gRRtO?*tG5pe|5Da%>Z`DAR`;?cv-Bdv;wjH!%R=R~ Si3(ViRvzc0$5p6j^bU$dV(;fdnX| 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 OQjl;TryV``=Kli6({0)S literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/listeners/ChatListener.class b/build/classes/java/main/fr/gravencyg/listeners/ChatListener.class new file mode 100644 index 0000000000000000000000000000000000000000..fe16cad54e41f4590d88a3d4bd70d20e3a9fcc91 GIT binary patch literal 2236 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 AmjD0& literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/listeners/WorldListener.class b/build/classes/java/main/fr/gravencyg/listeners/WorldListener.class new file mode 100644 index 0000000000000000000000000000000000000000..3e59b6b5b7323f4e29cd86cffea713066d4a6634 GIT binary patch literal 6514 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 u5H44Fj6b#zlw$w5?vKv$ajSQiq!S_r96Ydy*gt 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/manager/CYGDataManager.class b/build/classes/java/main/fr/gravencyg/manager/CYGDataManager.class new file mode 100644 index 0000000000000000000000000000000000000000..f9b637d741f43b433ba408dcf9c9994be28ec52f GIT binary patch literal 17783 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/all/ActionMenu.class b/build/classes/java/main/fr/gravencyg/menus/all/ActionMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..439d98f0368ece82dc494778ca80719ae44d3d96 GIT binary patch literal 4677 zcmbtYd0bT275**^ykX`kWa5SzJMM#k6RTn(N(BU+I)DL!MN`Rhc!81O4Vigk#qMdE zbl*3VZfO%~(zJ~x8A_~agUw>Puj#(;ZQ7>klGbYb-S=jg_XN}Ye*J^{?!D*SbH97e zch0@TWKD-jI^5NCE!H?JAMn7JQoBX&LuanK|6}-WZO1x3Qo8(4smV>t_ zc&iUf@HQXbj(5oQ@ATtcc()Jl!F#3PeNy$P7q`g4t+IK)7ax!yKIp}VeAtK&OO4y) zs*jZ6qqyC(Z5!ZerFL zxH;Lc3zSFWhTfhTKA@+%wF3#x1ft29mgvz^aXHRSdd$IiT41@`*0645(qS!;2sg&e zc+zO&n0tE+ZJ37UgsP$kwL@Asp&0|=E;AK31}OE$l7^`pCe3XPMU$z4@PW+GP}~f2 zE^dy7cPF$_Jyq|N#0{R!Or}P|k$kUSp20h;nL2SMcuc2$TW(tVL9>tvl(ZOTYE(dt z7>1r|PH5@0P6%^th#51U2)Ah?D=aO!Zp4Biu+VAP4N;(&$OM8;m6@<|_gFGxm;xdq zFwgDa(UH89BQs&y;xs;WFn1j6Gp2J1KC9w$cu1fuX|zZhhN|Smq>9sMSMhl~ED)L;+q7MeC76JNdN5-IPv1#R zo#|l)`!gwxpM)MfsAp6>f`?T+ipLb3QSmswpx}!tzJxC;_=<|J;%f@NuHqZ`rh;#& z_%@zk1&RAl9_a{Uq7TD37)>o zOzFYNF~f)-(zQ%by6cZj*2%FH6@yDv{0VB2nIsGr3 zrCG;;X5g5Lf7>BECop?*?8=twGw~5U*p$#S3eKze4>=)(#9Pj7bJEUaWn_;f+;qx_%VpDY zlzaQN{(c@vmzNYrW>TiGRbl9GUN4Tb&cF~FxCn>xw}=f<8WmU(iu^BovZz(KK=ZOC zzgV;E>eG}+#)f#Sgow?h=T5gyeITA@{L@6Z;<@Ot4o>Ys^Oxjr)_ftLommBHvFbD3 zSbS2WT{@}hR_Byk-O};W{W(6)b6KZzta+|c2DNm%ewY?noA=6l-Ws^?`5dE2I3nJq z^TwUk)Y-Bp(!QgwtGls%JCRY)qa`wosPtT?&ctPiSvz=-Uv{DA1W=l*Al`eNV zg-mzLnwH3!n$6*M&D7d7LmSYUBC9X7J#0(llgXjTT^2ZqML!mvCH4hnb9%W8%FMRx z)8+v2DORW(`6S>SXWe<$?dNOmXpH7-KneGix1J}#3=mixiacA|Nh95SOYlD9F&+4) ziU-5i7-2c|Q&T=cZc3wayR5*F(|8iA1A~J6byX+B>WVW1-|& zid`GA=+BY)@DYoA~xky?0xl>CIG9?Mg+u5=`hse)d zlIm@`so5bZj8#iT;%ON*$!;v=udpTv zH1n@WzOeZFrG))f>|nc-qgKur@#|YN4zZ^CeiR+&s0b0Zvr)`;4u7=FMH%Mdg&fVZ zwXq9Pj=0XU$|o_}(4Mnd%deoUI8b~KKen+_YigloM76~^BLW@R%^AWeY9u@b5ZBfe zpM&Ru;1Z)^Sj^$o?Kiya?#?C(}gY2<_yq6&bf>=ee)bP6w%ds9S(TCL-LKP09 z8n>br4`D5yKp0Qsa#4cutKBKpu^#kv8dwDT0M zLMMBDIEOCuFv^T^oXZ=yEyKt@C-7}6C*gD%J=^Q)BxD{J*tHUhzo0z06Sip3y=7DSI z(K;sLex~A0%&ME|^IOo3dvP@;`F)IDmPx$9c1qs=IFt83d$#}SGU&L@Dgb9Nz({y3 zzn7u7<}CJ}#Ws3)5OLejq(?5}E9&m1eP_n+n<3+iaM02kA}(1%Sk(BRo$k`I{{rAX B0{Z{} literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/all/EventMenu.class b/build/classes/java/main/fr/gravencyg/menus/all/EventMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..966d4064d66bbe05abd45c0fb7a1b923c39a4ee4 GIT binary patch literal 6946 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 X04wl*OX@}p^EX5#%UC#<`h))m1F~QE literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/all/GameModeMenu$1.class b/build/classes/java/main/fr/gravencyg/menus/all/GameModeMenu$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ca896ce74e0cc4eb03da52073cbf5b5056265589 GIT binary patch literal 781 zcma))-)|B@5XZj@2M2gq`paU~w#u~yt-WZ}7mW!*A*386y{10&!7RrXt{it}xx@JH z_~Nsg7-LNT0RJfCEH*(CO-ycQ=Ce0HHZ$}6$JYx0k6`6c#Puw)SkIDmL*Y#ww-jtB zv8lwCj@vp)3>&8N#*5sc&0m|L9GJa$H1Z;(6F85D31ruLh=ADSUBPuatdJIF(31jJshNprSn|v&6 z%4mxq-aqG4PN@$9*AFLNFt9~54Es7v9oq(WuxsE73ahtT7dwSlsum-=APUU@%%iAY{$wlZlux z6y_zmy>sD445k0b#IQ_VwSINgns+rl<$kR47R!~>_Fr6{GNhVERmWji{l|YjlzlHy zGoqQ$khFU1=$Ja&?6&K#UbMTlLxz04RkgdFOD=5DTI6U=SfQwTs4QfV$5qk`MDLI! z3ut@+yZDy-gv3YnB|k&cy6>SK&M-}wnxjsbo@0hkpWz2+RBr`qNYTobXmly;;vpWB zeu66Mq?0I6z4WZ=9u~;FXLDf#W&B`ga?X3+_dU;f@7q8B`RNw`Blxld zk0KsIAI5`7D3}Og5>p)rU^WF^EhDvdGE9`A+2V zl3ZR6;R0R>jQs@!#(o7P?_vmtajAoPuZD0LS0wK>NojJKmrFsxf&yK^RRu)>HEEi< zohWIQie3>2lr_T?2&b;vv7)W5>SkfB7)xB39u;UmZJ360R$y=Re(^w_mlM{4F0eCY znEFh$Jg?h1ZN5ZKIAs;IQeLwSd9E`9&Z5B=kF;Wyb+cNDX{AzZS}W^m0;b8~>j9Hz zfj!ZI)RMNU#Y&o4jAb3$FpHE13zq5VrbECp(UfHuWAoMJWy6V)XEc-1J>VTjFJ~RC zusoWSmMev-ZPU;P+tt)(JS!!Onj$H%!^KEzEA`AMMcv67*BNbpbb#`XtW~uO`jjDa zxyzfE<1!U0`mw0u2#yk}A?=fC6X9S5>S^)(#1@q8A*^(W`vr znu<5Drs6u56}+k9Eot!Ect^nv6*sZ2;$6I_;(dIe;zOKO@R5p-aZAM~_*BJblKNaO zU*ML&;TE5^FIa)@yHz?nzeH069^2+(!Ls#OqFQmRaxG#>()G+0{J*A$e zv+OX&v28jN&t}=E-m+@qYczQfJIg`7Ri03EWv3hsVxhlLClH;qcKh%=vCbl<#wQEyTGHAV# z>@~wFEOHV=_;{o?LL&`t1$-Ad4HU~>Ficry-r{TYJx6i&d?ugF$5Z#zUqeHd2-Dd( zGI%XkHu&x=4#g+(^!I#*-Ubty$#^a)9S>#aCKI`MZZ^YDYaf5CGyZ&X2JxHQM!FwS zt^+(xk?-T)aqJGnvB4kU`<^Esj&bdRpX*+JetQtYJ`D2IQ`5!}hI!&W7nPF|#}TVz z4s#cj`NRJ2xYfYgUDhENM6HSIAOer$1Ub^2AJOhUx-=B{8G#EMXbapydsx{-a1)^| zboepUUXygX64fgS)+9SzNtajBt<*$2T~W73bl2S;h6W7SL56IEA)DcU3kD*t#eFra znr<)Q2|Vd~u|(ac=%c_%JYDlb_=qI2)`$PVjp0q~+Cca#R0p@PTVRme9)S()4flli zZDD^K=>t-069FMl!_C;1y6+`yqNJmkY|^pk$LP9GxOTc>xDexy$O zrE`Aw`cY;O%z773d+1U>U72IfE-`D1On}1_+~gxN$0If4o6fE`on5axOV{uWPPsu@ z$Fmq^jhyDq5ZeC6Tqpl%{~4UE#e=0%FNp5Yx76|$#Hnox!iVQvtuY2)Rv14j+|eEU E7b4Ds4FCWD literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/all/PlayMenu.class b/build/classes/java/main/fr/gravencyg/menus/all/PlayMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..ebd5e757033f959eaa1f982861d55fb41082ee51 GIT binary patch literal 3827 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/core/CustomMenu.class b/build/classes/java/main/fr/gravencyg/menus/core/CustomMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..dbd4ab0c314250d7555ca0e97531c804790f3cc3 GIT binary patch literal 385 zcmbtQO-sW-5Pef)Q|m{2@E3SWF7Cx!@Kg{2l?nlmh3&E~+a$ZN*%abW^WYEgM~P!V z>cx|ndBeP6-n{qm`SuRr4vQ3*DXs{KldUFPXZdy`aF{@nuo4n(2&b5im|`~K8Ron}IOjUS#TV_tZ;=21 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/core/CustomMenuListener.class b/build/classes/java/main/fr/gravencyg/menus/core/CustomMenuListener.class new file mode 100644 index 0000000000000000000000000000000000000000..374d6a9e45ddc3afef838480247198b29edde78f GIT binary patch literal 4392 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 Y3GczFR?~7nW&BfZSIMcCcckq90wr^h5C8xG literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/locations/LocationSelectMenu.class b/build/classes/java/main/fr/gravencyg/menus/locations/LocationSelectMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..27cbafccc14ce293d09fd96aeadf239d0547b68e GIT binary patch literal 6398 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 MMjtjGu&A#8ANb?U#{d8T literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/messages/MessageMenu.class b/build/classes/java/main/fr/gravencyg/menus/messages/MessageMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..16bfb8025295c1a9d69222d3f9cfbbf9a163cd37 GIT binary patch literal 4461 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/options/OptionAutostartMenu.class b/build/classes/java/main/fr/gravencyg/menus/options/OptionAutostartMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..6e53a040ce291a3fc09a82adb9c97edb518418a3 GIT binary patch literal 4351 zcmbtX`F9&v75<(qYh-zns7jo~S(VgH%f3_g<)7djIF#?rNcPAJ<{W;|%)EE+d+&bV zUEbA;|9<`ofZh0egpaX0+z3646A@%_G6Dmq>M@R7J@P0hFy&yP9&bV}f-o!vc7zL@ zdK7V5!JF&w7EDI43U`I^R{4ILeB3R?Z6HnKKb>qJox?6s1GRkU<4n+ha*t&h_vEN1Rudi}1M)A1pei?P!+MPazEn7PLHfU6W|;JEfi0k~yuAO%6GhQOHsn&X@&9FF4$L zf1=N{vdPin__*ODIcGSN$)h=KQnxz&5~Dz%j%iIMdn;d^5|A+X>m~9Dca6XX|ElW! z1ZudAK-{mg*v0}YyzPc~qLw9)P4g%qi#g(PrIL37I$>l5wl1c3m|S$Z3RGP&|#*!Amq1)pPtDtJu6=LM9k?({l(Uf@uocbWZ~mw>|M?m0X#U^o(TRkRqC+evxI zp`wu+BiBp;o@^GnazjvUP&ZJ$9)pq4wUXM~l!<9_YvgpC39p*zB zwB7wAcSFWq^jJ-znPCwbGK*G5zs-;_zJ8Hd?U3QA;$}RqVh>)yMCfM<<%{|Fm>xf6 z7WJZKE0|L81fEpz1r=Y!Qwq+j_!4ea@MRTW!P5-7Dt0{-<>*lH3@#}6s)}dvoWK@e zwEIG@f<(nIZf7{CDB&WttM*;sH3eT&F^%V?{g(vR&P?qc)R`xS71s-K&9aQEPguH& z7jRj{6?|RAH}FjrGv11;0_)}{XE_{5-^>&jehc50kM9s+d}iuInUDAcNsVXBJS#y) zw^V#ra`Bjo??GdL&rE5@hkE*Yx`unY?@;l5TvqU+iXY&IDt?3?tN4i|`=|Jsz;#vl z7Aq{Wo+$XaieKQDDt?7utN0CmtKcQc=kHYf9`xQH@JAJY!k-0p(#k$MPA|^cr`hqb zt54dd#lmUFubv|k21EVKlvQ!Ciof8mD*h(zI*3C89n0EPRqzC&b3~>_Pw5#3?e<0X z$e5O%>?+!hnU}yAlD=@LDppHIN~QV8prnH6;Q&628mBqqWn2pOmL~pHO|ov~pwKjpO6go#j!{`EvqwT;x?{fgAlNm9MG! zY|P_V+OLg`d4+mU;`nk^uWY!B@rY)h^e9;Ev#VcobY8zXf!c$EgQ*eT;{Hu5VjkRB zRh?%AZedmI3aPu72eqK0aPxY{l%U+}gHcSs`D|RIWJw};rbk2*Z>(k1Wjuxld%A~) zQv*FLEK6WHB=tht#Drd;TiX}KGM99o&nlN0@9RXbKT_t4!;a}qvEDNbWHJ-4<#>$; zIiP2WLzit57v7 zcSGPN{sOW&;h&ulzi-A~KKF5S8|MRjM_MjIw6s2lz%v{L(8=dY)bP0)L99U?8gL6o zYdvl3#{rJG&fS#_G+v2Y%X_x-Ehwvr)jZ9Yx0yT^XmmGGJ#l#xAumkM&>XQB3XcNL zwmgeK3BeL-Tc;5cY*CZ|TaWNSJI8f$91(1A>h}es$_tTnO)!-X)~3?6N-7`@w&hR}KJXsm5eI`)Lyf|sGDYg!t@jlqj-tf#Ru zfRXzYG4=9GZPD;0tV&-%l%i{5u@Y97ux1(!HSEWT&gEze4Fn>q^`XU-*8%o%? zv4l;r&HN}~3vms!m9TZ=IjnAv#Y@;W(tZKk$^Eq>?L;hn=z-lpAV3=-wj+TgcHw%4 z)D3j}O)k(D@6cIzJuYMkug8TF;Hu3yh7s;3L4_gyCHubD((E)|=NT`WD3#}&X$VHc z=g>%pHwkzFab0U{M+rNpFiFc27qIqmm`jC9RiHG>2q>Y2%UVllE3e^aduxT44$|R? zH^q`3HPhG?K-)B~=lQMV=!QARcc7j&cGCU(v4Y94nK8VR4o(s4aXR$`-T43=`7mAh z2xn#T$UsO@=Qv(Z2NB^cQ)gxa;Y>LYr1TElNiO8q8@S2~gb)Io|H;r0cq6p3yJr(F TTK5#y{Rua?Xu^%UTABX<0$Hh+ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/options/OptionLifeMenu.class b/build/classes/java/main/fr/gravencyg/menus/options/OptionLifeMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..792cefccce21585f145d1921b77051377c6f5fb7 GIT binary patch literal 4325 zcmbtX`F9&v75<(qdt_;ns7{>3c9Sa2Ca)@_xHN7O5<5)EF*^0dO<^9>yMIYVm4}hMF^^Vd?tj? z%2l6}hCeSo{DOinD)^FuM+Jg8&BzPX^^RGIaZ5X`=QGpeiSG1~E`gfcjJ)CO7pRXf z6*nK};%;+P7g*P8@l>UzzLmOZXnh8&kBgU*Cu3$#}5mDBSDJ7G>a zhMBh$DfiuLjOl%xrw_rrmg9yS;?2FMw9{H5tL4WNgN|k7$0-eE%)F!L9d5fX-fLRp ziIKwOq~RnuXE@V|V_9ulx4QfiBhMHe)0$2s%U@kG7Gdz0WYAOY8i7Xts>=NYs<@3n z%&)TC#sX`+?FMO48)qQbFN&T3W*Ltwm5?)_F=JfdhUN5*5Q}bCfvRf;9W682r%k!= zx+y)Y;LGHtf^!PKBA|@xPSVkH0*B(sRrYIMArvlm?a*MraAe38L@_A06Vk|`f{`61 z)+9bHoB8gnk(m^@>;Fj0YAz*R4o+oF`qfbBSI))t7)5kk$rLP$8C*GGz9@sXyPw2v z(71;gtBN<17U4m&U}f~%4N33yl{D>;%v5m;zN+Fi=oDDnZ{|iUJvOSxP8+(d;4u}C zV@APw6&LU|1!q-!9S0OVq2e2Ol3c3*)pNc?3KiePQwp9|aS`7V*yk8$MyR19K> zEKu&GOnGsbQRCzvWge*qKYf{ zwuE!Rh64^i-Q z6~DkQRs0ISR`DDBR>AKin7>!?2b@&#GXALIPxv!AL_fPHw7Uy>?37v13sy`kSQ@?0 z2(-=3SZ*?7Hs`a{&k74;Cz0ohPm!g${eMssh{$5}dL%pjb>*|5;27Bi z8=x$4YV^A&#TpmBvWQ+&BCsp&J3c&EyZk3gX^JNb)rU~oYis0lVX_9Mqm99|gk4C%RJ;NYQTZ*nNj?&S||r8NX3Ohctz1ddi@YsFQJ zr=qTw%gx$M*0lBHLJyEtEIY}36~~uUF{QSz=ae+*rb-UY^VRDB^1NRu|CJv4uLqk}5D9Esg22+sm9>8`XBOo3 zB1H0*_z@(j$j+e6D>eJ;e~DPCMQk#+Pq%INj>zlw0t)38LapjdR@W?S;}w1n1plS5 zG0O`F|FP8Y`xd;G&s#aVo$~>{!!4H}T3Vk);AxHm*vscyRPnhUL2N)R>e0o~Mo$~J zVIN0a=kCh;F!tj>Y0q}P1!YxrRZsEdZ6?hE4elnYCoXLw@+l%nhE>WWxj#D-baS3#m!<)XNi zAptRlz6~wd&cA0n@hIPqA;1RqYZ(x3UT?>I%a4$j%`V{mlNGUj`;Ef6f1d;y-nz@!YJ`ZR-$yGtF>hS{D z*u(%XV^jJPHrF*2(b!Z(Q{DCaC}Io4>TfGzYtvb*Z?C(dh}dxZMQmeoZX9lBz%t2R ztc{EVXlHaC*o~WzApbhazyo|r_Oy65=cDU!BbLPIaU%(E)fU`=py z>o+0o`7U-)D(#%94@Mi$qJfOqF5od{M{C{AB6iJSnx5^xh>efKT!~8+Oo~ea6w%CO zEk(4J*0dJU)>_7eqDD{LRM+7_GmAt3ZL_$E_FIY3s}}O!fe3x! iz?OfaK&;-1lcj9WS7fy5399=ma=l2)s>*e<3N)Zn$=@7DX}pYVC~vA$;y1~o4@tFeR`8Z6-io(Hq2jbW@^-209Z@`t zcgnSQMezvUEseiN!I>yFV=RLA%J=)^3e=CvHvu1&P`AJm+ zo_DDHjzqs{O(aJPCr%hnl52)DmGpFV_$5Z3kvgU|mF%1Q)gdDi2LJjP`lM@LpwWLS zs867RY6Rl`ElVjDsP)th)1o%PKyFxo0b$HC9#<-XXF%h|gutey_8lM=-R=f%tsQo> z%!vVQ(goQ~?0E&BBSjT_UcqAmika`u8krLU_x>N?EEA)n=UfLm`dmItW=%(+VJWW< zQAB^0Ou@2<`(M9rQ3%{%Sw(4gbdeufba&@+ev9;f5FI( z=~f4;nBLOzu<-yhR*`5SEuzC_!OG}&8j|DTaY4l%+``%!G;^bt9v{== z$IXIXuOui{JSRPbdLU%^u(UckScpCKxq#zh5RRq+g- z71-!wypMi!II1{`*OC${inzqx0lkajR`4|yGk8vha9Lp8?DTCzI%~zS;(9)=S(b6_ zaZ6Y6Jg%s?im$8q2EM6cR>pe`-xAmw(7$ALv!)e%Tg7+qT@~NM_f@RPZAi z)Q?sC1R4pf;-~nTil5^b0_zu6ekoG|FQ1(r@7Lpb4``xmRs2qd(}n#Kh2Ohk=6fAajnCy!E66lTLn{6N zjfFTntsNci?eFbA+}m@Hia+9tfwSy}^sHscGS>tJHUtg0yqm8tR?kt^0jq({G8Wj%nIW)>1=FKB z+JKg4qq79Ivt?4Qcu=#Cc@V7e`8A+9I>&HUpsH(VC^f>42{L^?} zS&%ckmMNLPoH6=@H}`E`9N9Yl3kWhlVQrFNv7D9;V7}RTwK6w}d0nCzABqdb5y$kF z2$@X-1G;Uy*DT&!7bkB_`F zAJg&;f8XIWC!?Rk%bg+fqBK;}B5*L^;?XFK15vWmKjr}*-eNwYwMt3>t0B_%>mU9Qj_(Fuj7 zfD5h9AXG$U5mjw72n$|Mln}2Sk->I;SIh6H;N_-fZ)GgYi}L9;IHX51+@jhN^mH=bp%p$}3RQ6|MD= zhRRF4U(aAw2qUKzG5ykuJ7SHOu{wPbF^aCMt1Dtn5o>2qU%@LGgLI+VNWXzij4zH> zY(XB)IL-GX*pA20;zqrX(B}zYH+uLlA7d3Wn@9Vas$CW2>( z*P|qvq@lzzMI4V{1XVJ^GL~n{Se`9mDW$JQnpntRui+^V%P>M4{>lHKL-MlhA;xQX z6{SG0m-42j@FkSPqT9_)MQp8OY%(S?VUTM(o6ccPdtI`KT_f!maT7`VvJq}sE6MNC zqtQ)6H%ZZh1XI0>Nxp>%?qp(RIIW)1auB^PNhBe9-Q0a-1N( zh-W}T2%&xezrepBW>b(~iiG4nXU=$LXFTH{zrI}p*ur)S3%H#`8h4Up-Ia1t!96MR z67EZQAYn;DLBXvG?>tO!x-eH*u^yzoUt^Bu_cX}84;W= zNt>lflh8G3(>6_)v@SGl9h%4`G%10u>At2*y01U>FX-v_W+YpZ<+|ro=gji%yWhR< z-gn>k-sqKozwi=(o%p98`!HIC+Y$94=7)}xe#CLA8V1IyF^+_Sq-> zu7U;I4;79NY56>(;7&hQVAO}R@;T|pU3jZ}dz%;q`==~D;0V(;QY<|dx$9#Ca3U9!N z{rCu;@U!Qma@-&D;p6i8q>Swo3ZC-gllYW^Pb>J0f~OUHR>9{KOey%hg7X4ucPgb@ z?Fr4cbz7h!sTnDOK;)zqj$7IpJr$jdhuep{S_CTh8Y#osC$Ks+zq{cG!R=;D7g!!K zQhIMXIjUQO+Gv83K*Wq{i6fe2$aYp(;hZw)aZ91Cq@GIKVROPU%#mocs2Srr!%QScQN&*6DaU_lut^E0g? zgBb;1RdER~2y7_OG#HE>?&iHMZ6sp4rQouPui-^GqL&y|ubB*Xq=N_b^wp`|D!z^@ z0&9w^GK*!XSEqCpFXO6$Ybw5hh>CB@+qZB<#kcVt1>aTi3cjb}`_jb^Fv2RiI(4$+ z+WDkr$*KuzX~#@zj&VAzyB=T04>=6#1P_{NJ#B^T1{FV&=pSQ5j`Am5r|j<0&Kk*d zG8of?W3D3CNA(=cR`F8_`k8cDD_y3oYv*;T9@DeF>5n`iF}BXyjOhgZ94~UZC>uJ( zTqO+KaYywF{8GmGs)}DptG||3S5b@U8ns-jXAIqT4X$KPg0dBy(5&p(RQv|NRq&dM z-{JQv{vadyBQ6Lm3s113f^inVBmotF!k<{t}RVz(Uf(V&skJ<1F{;yz3#5E)J;(i#emo& zusM{s)p)6E$=`jlBJMs^A2O{(%-f&xJi1bjqNZ3TP(_f(Y67?9d&+KV#fft1t6&3I znP;>|b98R734ta3t^J*cx&HH+J=e{l)D~1&go)ktSoYy0rXQ0rj(0ajhUcgadzk-4#rv_<;b z4>4ngJ=W3g<3oh!dumR?JArQePHLn6^H9eB;q0dP?KMqsLh-7Ux^C{R@9w?vY!!uUtiq^PBRIfX0M4$(~lyEp@cR=9)AyGpkGf`_f@Jr!GP{Fk8)U&PXi87vDd&!FZqRt(P|5LlVP zs#@Au&1VMJWw0iL>o1|U99wIuJm_%KGHa6ovY{6p)@hh?(Pg3(Dns5zUdBkhR zt8Bl9F#d(@g6AI*z|CSc!eT9UibmWjTChuWVYfKQb{}pNQS1>8TEzX>D;{L~QI@nU z#hqTIvk#w&sEtm6A?k>^8SjG1?Z0CaB#TB%V(pF}qi_3G6Gc&}M zb)0z_V`h@fg-z)_%*4IS!9y6vKF&LH1_0*VSuIT&xiYmtv40!x7%!UZ;wL7{qo2=q_B5J@c!nq|mwWisrXGHijHgR%;Gv1F&r zamO%=b}Hk(2OZ6FjN;gkQP2mtPFuo7tw6zRlCAxxwX<3(uNB8qgO0^rT#e++qN5ib zioZSCZ(3uilch6f3@61o!P?)EE=kwAj9b#G=RDz^yBY zR_@GzHtxdghW3Jj&yu7HKBwUG0*YDe$s4&d0(bu(;4I;zqZeEQI{REkjOR^9plLCy zk8p|hD!Gzn5yz!rtBPdUZC9Q$raOI{7U)j)EhgKCNb7Qj3WN+-dw}u=#oH;Vq`PF~ zN5~fDF|DQMLE~OVtR~q?T0{rUl9ki%FeJ^J7pLn^$xs!y;!zcQa0}C6NH2`ri4i?P z+U9gp-cc~6;xRm~;0r3gh$j?WQ1K-kQ1E3HU%`{)UBJA8pCBrp!bJsNRq-^Q5!mP> zypMf!#f^-L<9Ib0p`wgS+#Qg+z-|0d;1|O4vH{Y(%$J{00Y9{1z{$_?`5m3*8cc-!tqy$8_cK(b?SzhPUWc z!)dAb12iV$%#?O~Fx{W-8A|t_Q1M4xQSc`ff5u-_{1tx_xM^8v=2t#}*qqmylc)6@ znY(2XF*(!HQ#~cyF$)r2f$M#w2vn^l`7&Du1vUf~xYV1=Fy_y3W&-np@pQM1sX(k!L99zJqzmY<(*nkS17!}F{M*(Q6h^OH=m7*6fOw_b$URwu<$RlUGi~d zE^pd;-yD}E8)ZgR*_d3wMy}ev+^OuO_Ld+W7vIMwWsd8-L+uP;7s$CzAKiNLnr*vR z4aw4>iE);fbwMnuxU)?4rw?}ZWbYa78tOUZ5nJ|AfsW;4;Ps43+g%s*#pRqQY4ZX= z77|iYx~pK8WZRB0CS4`RbZeEoq7i|l*Zpl?AXz^C3lK6!b=o)qV@fUV!(74h@@2Lk zvkFs<56St<5owdW5t3>)6%6RM?OwKcf1NMX4M1%!uWKw&>jMT?(eLYaE1Yya=xzhk zlVsH8y_ZGHM@zPzQ|t|FL5`hD&kcBS=)LP`S9f23-%yr4(of~3&X9mnDym2kI25pQ z$y095N++xAoLVRA$0P& z5;c6TMi^^Qk4Eg{Xsx#!w_`s?Jm*T~O&Tx5fr`uyz6IB6;x$k5Md7< z2-$==Lvut53RMB;+MY(JjBpvX?bE0eyr?K4UO*y;J2@r(th6@?11q6Uk)5 zv1le+8(Wph*2OkvvPx`UW^Zj%?bSVXHG7msrLpb;wl&o@Dm(W?c7(4$&DOLvMw-Hx zc(0zu$`FR{SH#qdFYJg#E@M^pB4S*+E*>vqbs1}>(OAQ~7=3b)*+?^iO>`%LHf+HO zw7}+j0^2c(R@ce>MEV5r>On6*_UKX-vvWujcL~Qi9K<04)P(!chnG`&8$a=0fqr5> z!1V+|FCv48g2M_j3XUkaQ^8RMgM!EZK}`ZfxT^wQ3(wc_)MR5g7CDb5BDGe)Lvmev z{Q5GQrZCY_#`=qBeiY_X7zYr(L4sJu1|Hj3#-_@d_A(Ofm$5l}30vYfmeJxZZ;fx` z|1!2uBN@VuX|z&*`;Ic&=CIp|2HMy`1XEanUD!Z|ZYPT}Wan`*bCg7QfCxTJhCM=R zNY+U#GsN*2hEXd$tYSG?#d5NOrCfa_vMzTg@hYD3u&hI9!$0}$9Fn(W4>8`qYq<)f zy^uFI*Ih!@Et=iZT*lToeUm>BR4h?~gKmke{u8p(B!9_!sO z^pX^5Bx%+z2KN?*_W*+`-D&fbR-H(@B$0$jyTK3f)CQ90ZpxE1h(P>HelgrbvtI+P aVth5tV)ajOlRwSwbk)pHvy<+w+UWB|X2J9f?o?X7B#~XXdgK3qzjIAPPcNCg>>fl!9IcJ z`wYwQb_;Z*=9{-3;oyv&*9Ddg7?wU%Dvs&Ss5WM@r+vWAY332lF=V^a+31}yT!A~H zSVi3`xoLaCGi=LEXZ`olGlr*|hU*Q|$Uqt`tw_{msjUNNwR2k9)T}~!#B&U*Kx;f_ zTb^!t#J)c@U^|8MSZRFR@Y3uvyvg)oQ=8PCzOcoxn5btvlj;8ISD#F%dBXP~nteKNK*)y4kZ-(!b@KdAU4{=_woNWK_e3>7cnMFlUZcp0w&*$EfVdiy5 z!K*4>!|O7THw0E(pVIc^JmZ}1Buy<@i%7+vaY10q^{JgBddbwOd@pJ0Zc-~6ZgN5| zNlhjl{j6jJB6KWdjGa%dbz}JFIg?!%6B^Qga;R#w9uFdy>n)<9&hKBU#tmr*eBL_=k!Q@S%c_ zRD6t!DyDEr!DUI^KNb8-#V7c;icj&G&&=r>9my(9H|YC0uK0;X%(Gcam%DJc!1i0l zRKu6S3AD`?jO^H1Jx7ghsDqKS9X*{Xxt?7N#!-N*2W=5oRz-ou)aX9V(*`w*d)nc8 zvMNQ~ih)HI(U2pz$;SV}O`uh7f}kd_qTN=lc_q&<)7&b=S-DV+<4)w@A-`BI@)NI) z;*O$4U~?)|K?6ei!bP>x#iC00qqbw_gR&c%(eGsxZFBp$`#2~lQ37{{XR6fdxkUL} zE>hQ)hCl~3Pv-$*lJnvH`$k5yL;Fwd9mr-L;(-*dTvb2D)EOy;HG^Nr6t_yvj$4N| zZ;unaRmO+9F^*yR55Lb^ON>G7Kss3BxNqr_V z**ybQQkwP*4`+{(t(2lWc09WNCFn`mcC0=1oz}*7svkwH_H}H`sk-)ZFuWV4~D+kw#Xm-9H1Elry zD4H+Ut~#S<)hwWLIcw#J9Hmb9=c&tEmO$5kph~*6y1JDg)LqxVIq(KHTga-r=?K>I zHkX3HR{k2~3CMeB6Tf@0jnD0D9bkV0--+&P5ZygrqTvc#4M_937%@JVq7lo`f)3ol z*7Cp`KfzDg;y52w5baLha05(IiT9lm+FG_MGo+bZ^zzP*$7>d09lRxv7I9XgR@y6e%84LE~McpjVme0Bse z*GM^!ow&!(@jULuE;7)GarEIn655RuxF5Sos=x#IS&+9V(jw=W>1b?=zmHBPxk?}) zVRcXYnliek@bR`X)-utHIJgi!5pve;YU*q%BS{w5R|fQyv7x7Z<1{ukAVBN5h{68} zEjAbJb|0;~r?-sFlCzjEp50i&?`|j*+ak)Xi|lNnNV1g4F|K%y9F3Ek5?Ohdj9erq zSIEaS_TpRY_jx_U(OIm)9`-fSYeVIWJk_|Ksc}71;aXZV*yoFPhDZm<^+Cqcf>_s0 f4Bq5F9f3n!#5rnhYx#s;VYMErtJVj7uZMmFh-Spn literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/plot/PlayPlayerMenu.class b/build/classes/java/main/fr/gravencyg/menus/plot/PlayPlayerMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..d108de3855aa774a4e9a45cd09974fa3e42bd820 GIT binary patch literal 6101 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu$1.class b/build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu$1.class new file mode 100644 index 0000000000000000000000000000000000000000..863627551491a4f1354bf5587432ee2bc071aa62 GIT binary patch literal 782 zcma)4+iuf95Ivilli4jk~Tkb`ZbA z3(tUr5JLR`J_<1#kfKT;A$cxmH8W>CGe3TQI|Xnbb`fPsI$|5PL(HpIDLdt$s2Z1+nGwSg3%945`CChWukM3}g^LVMtf1`wW?S zG!P8)%|MD)a@-fH$NM3@EH)#Lhx?q83IBPV>&Dz05ycc!GYrLUlqgR$0-dzf38UEM zlKa9HGTAxe6Hdh)>4niakiIM8VKgvc8Mt9$3)?2n!8B1p)x=HQVp!8DcF3h~x1w(1 z4I6<72aZyaGI3jn-O*|XRfftNW&4Uxg!JC|_AwET?GtLiKHG(Lm%-eVQmA^!$73;O zD9u>f{UhPU3|s$KjQ)|PYyY0EJ)3TB!ox(DE?26D&A)^^qT#n{uJgKAd%>{sj}RkL zgFxza(RyfK+4`>2?J?w@IkkGbMb2)!({WyvHs~&jbSJD-)+5v&@|eSUvh#%ABTXLA z_zHIVz4#faPx?!LK_=7wfXvG&%n{7apg}MjOA(63PpezR!LtcDN>CBS(Ng>0A#JL AtpET3 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu.class b/build/classes/java/main/fr/gravencyg/menus/plot/PlotManageMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..4c0ec822c967bfbc78eff0cf3082ce468658f1a3 GIT binary patch literal 3666 zcmbtW`+F2u8Gg^^GMmj1;z9_-l5Sur2_e~{RfGUFYy+gtg(d-nDmd9aER)R6tTVIF z;H4F<*2dOLwYK$sjj2^jEQ@KM#~a0=i>OH`hKYumvKeGz8r@U z$7~!qHOj{!2s;4>r4|g}D+##p5=8k*T2{F08g3-;JQg(E zOyH~dS^{6kHpJFaePa|w>7+^;X4|>E1-|swsfShYAab4QEg+eBK@$`^D^D)yl{SyKmy_>~-=eaoRIV#XN*~kGs!V0 zXISSA*Hq)R$wvR0$sIT7DoVTTWlEOgXU_69ZrDaaj&qU*G}=ay+P3%hjm;U?jf`d3 zh0L_?ns$NGc+RnXY5UZ9ym!oT3z^yS{JiOBIA{6`RA($mcc@lk+H}x&+=a~O`rnXp zq`4Ge1-fd{Q9S|;TrQBRh163hpgDHdGIR3+m;VpL9(bDN z+f~JrPmc@>h*7TdNCTM`cqAIzB13ACmIsytj09%E;xEnP%$V(vgf)QZ{%xevH>O{6xo3@rI6{;Z=bx)HIw6#8glE zIG&tk9-3|{FTK>P<>Wm6rE)=SJi1A@5iU+S3CCV-A*l+99yQ;%IT7E!w!@u zIX!cK*}A`6a$Mg~yXtsLEl`qR0eMn85w78F9Y4n}H2hM>ukdRPztQnq9MSMQ9lysP zbo>#2(y*lC&sf&+4kmQ`MG^ll{wlC9LUUM^Ycymg13FYuYWSOuzvDfDo;rBLvN9nz zA@*e*x3Qw(A3EO09UT?i71+Dkr_^=ndMQh$JmvY|;Gm9wVpYcnxFfKK0olMo6|X!e zT;Q=f*3{`K0__jdcye}5=9pl6>a5Kh+Al*CqQTkNJ zYs#J(nVw5m6#omu$09B|q8n)q+3+K*_J|*z@M+b3Z z`|eIp-!T2$H8$xqZAynnWO_YK1Y*yzML#4;>v0T?pIIm|2Rfq;uPdU@n&ak8TV-uq z&T>3iJz~Q!s5%NycZQ*NQy3`qYAS9GNww)HTlH}~r<{`HMP@Kk4UxDF)l@)m{|SzM zby}&w3k-Z*b`_k4bw&*f>O9n>@*`;C0)2Ir)?|meDXG3rg>he6QZ;%eU&M_nrtcDq z(35t4TzXz`dh=@bprfr_je>gtO;EQp^zfeA4}pVxV(N_L9kz-8hwv%BKh4o8&d2yo z9JmW{p#KhHw>gUOrVF&8f$#0S!*-wrJMbBfc7$kr7Kb_Fxs)d+;5uxy46CsgciaJ}MhV`4qUQTOicsn zYTDIY!Cv)BuVP;e7y6Trtzv%+OX#kZ_O46&0;yuPA;_{5*vkK7hV7BS+Mm4cJ|w<`Mec z$qUmd?$E@2U*j&LOunaS%T_e~2V)wZ(JqCNgUyR_aT literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/plot/PlotMenu.class b/build/classes/java/main/fr/gravencyg/menus/plot/PlotMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..048412763456d2cf460c0d7fa7cfa3e307c9441e GIT binary patch literal 3249 zcmbtW>vI!T6#v~OG-I2Occ2*+WlVXPkGNUI?ef~f!x z!BRt34JQJy1IPv72>3I)VG4wMkJ<52TR$nyoAo& zt&|jK>@`f;pU;d)d%r%C=1#cRO6uuh-8R&FdDHJ4H*x~2tFbcD%;)0SwB^JHIP~$A zSNlypL!2eC*4{Dwq#jS}=4gD-u?=&Sr@^FUI?{BAc2}&|vPa`1`SEeXiF40zCJ3ZY zNV~oA#4zcaW7!k>ux}E(n89g1%;59f4()TGe<0KEen@D@A4l7HG=or<6Mb(k>Yz zuyD}PljD7Qwj7RtWp<{GB+omsbn?5bi(C273bw;H# zXq+YqzE~>*6dJVhc2ag5ir~9Czi7bV@QCAJy;}9#=?D2(tXUj88ONz^CNBD*m(798>mM(D#mv$s}`N^(p5jYpLBG$ zj2>iyRoGn>8q$?aTRA!X^`bu0f5=qrDZ#W0d!Nd@W2EClLy0bip~0=`=^g4AImN;~ zr;Hq_Xr3jF60J0&!I5d1wQR@xcx|4Cw3+Gdesn@fTe7@Lq_3PupVGL2e@p8j5aUy$ zz9jsUTEKN1ZsNF+Z{6Il;T+m<31UOrMbv!5w;F8X*Z?2LCGaD{-=}88`PN*L#%A2i zH|n{l{Mh3bY$;=IAk}FDz&F@gAk-jQMZ+mZNx9whTBLfW9*U0)$O=Lal+M|XeVPDe#Lgm`EVCC7h%Eg zXcS@!_7ry9_M4kS9k{zh8h#`kNyG5QB36=?FVN4`s`Kb+yNsxS7xc?C21Tq^!C!M8 z%e{R{T{~D?K$CZ%1lL^)#4`S$gQ>EJhPBY(I8EJ+4h&)Ew1c$5bBn98TU?dgQl~p8 rt@3&pyWBu12WwF?h21JGJJD74YC4OX>b{~#WfphMn#K3HQr&+6CfQjo literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/variables/VariableMenu.class b/build/classes/java/main/fr/gravencyg/menus/variables/VariableMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..b459159aa7bbe641bb66952f838e5e54e8b4b241 GIT binary patch literal 4307 zcmbtX`+FQ!8GcW)yR+GyT5Tk+2jHseqQ+A$TxbQlH>hcJUg2(vK5NFo)+`(P51iOQ{dY<%0_D3*&x#D1-;_;V>SQd{XW{C6`Z2zaEw9p9$i#QtER-d_IIP;4$gY7ejRaOLF&R1z%C{ zRRv!Y@Xcz5DNr|f$cjx_+MI62=ci)*<2$+q0^1DJuzLg|(WUI>F)H^bCv}19LBrH{ zW@aaJYmYXOAf;|F8P^hHnq|oE9MNY_8)<>oVq3GinMudya-!*2UTKJQ`rtFQSsGjs zZ5}+V&1tcOW=_RMZObsH$PLDmrmdSc&E6axOj=X1iOkH5VaG@_?D^PmLYvpEZZF3$ z8Ka%F=3@i-UAK%y%t*IOoFV1})CA+PjifnX>$3t)%NQhc)YjrN^h_B18xW`{L?-j( zn9tZoA~vL@C{<%RS=)7JNKdD=DV=fn)3#>W3_NWoQv&5P`aI=4nuA8#rm8=l%$Sr5 zq?{N9R(YK&j-O^2_VRug5+P9Onj2+?=#RkaMb%=#6U@KEr5E9N#iynnw*fXwz^K@Q(<*Mn+ZfoOo^HxZFqp?xd>yA1JgMRgzMSO&w8t<;=4Gj;29O?@I4jJ;yDFb73cB1f&~>X;3*Xs5LfYiyhtQ2?hpkR zRr~-iDfpp^m+=a-E6@Cq!1YCE8ca$$CehKCF%pwHhvkn|yo%Rkcs~(nSZuf;_EQzF z<7X;kpQRd0UF9&uns9Qxx4U9;$7kv|;u z)F2{n)og7@GnpmIY~s8v5}S27@@DV|venl84`Q4X67ufU;Eb!yPjk;GlufbInf2w| z32cmdCV-pDZtoqCBe}lI92R_!F7e&DV&2SlPEwAOV&_ZCxkvPS2i zGAff?TnLhA%!4LJMzNEvtiW(4^a_u~{%OtbPbQLV0$<HM$o1A1^x_r9v%TCJ4?A)3hSZp9qMm#eoFGD-h5vju_iVnP$xV#4ay(1&L_VGng zT-L?8S!UYhPj=g64_^|5eX*Z~niBRYOP@26nY8;1xoW%8wVvJf3hF@jq;97-pt`Yc9&nJHaI{8)aO5+`P zC%>rYSmomoH=!$Mvz@H<3bj%BvAT4ImzATYyiX zRmBh;EjxYJkD-sx|rfGPzl1+u7mRSYenWKrD}Xbdc% zMxaxP_#*!4&Y<%X@gMB0kepgxEia;O0oRn_d93IPm3M|C!A>=zMk-F>fyU4RBJ4=@ z2?Wl-Y79lx1=LG_>bfc$1C5nA@9Mg$E}&uj99H_yqwxY(ji1N0=de19>l!PwxIT+D zSu_>sH%NL_p1wAVbzRkMk#J-60@jz~XjmLo#hEMjMU;sDH13J`9>bQlns)bu4W1L~ zHqu7K=bOx8lY0bBIX3c+`^h~xeOl^wl+cg5`UjWjOGNk_L>%USVIZmkScf%Ok2Y*z z{WqZx%@{)q4#@v2iMAAxc8nN1POV2-=2Jw+S>od&ZpJ0_;9qzb{*7C38GRy%ei258 zsKpMk5(8oow~G@Pc7SqKpXHPulJXA%7C<+p}mshYe3+mA6}DQ?#_S zwq?;uxsI#KwYhS#z~xSXH!?xMUewa{2Hb(Q7)KO$vV3>by#q|!L8fBDDb7~cnSA1y zpj_g(a}!5bDc|dik=@Xo#L1NSP!`?9pe7K{g;p3DHJwjWz&kSZk|Sf%k<$MQiUM$8 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/menus/variables/VariableSelectMenu.class b/build/classes/java/main/fr/gravencyg/menus/variables/VariableSelectMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..fd4b26c1d3e0e0692b838472dc31d588a9631bfc GIT binary patch literal 6161 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 OxoO-6bDhO?{eJ=ZbAccL literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/model/ActionProcess.class b/build/classes/java/main/fr/gravencyg/model/ActionProcess.class new file mode 100644 index 0000000000000000000000000000000000000000..1eca11d159c73c7896e372ff60f8b05991fd15d5 GIT binary patch literal 1464 zcmah}%Wl(95Ir|>nxr*tN$D#TNK1jlP3sN2RFx&YZcA{QmRv7l4;IT0{}g%UHk*Y3kB6q%n#(D55D) z?EBWpi3S3z?JMirGKaC}n{96pw*<=Po*P*4FmeQ%ne=fxj9jxb>~_7_bb{E6N9LL0 zYMrojr5}a1GZ;9Rr+#R6$#2Xf=tz*MpsKu}0s>pRUUFMj+Fszi8}>R*^ug-*j8xj8ZTS}#rP03$ zYVjwJd$8C37@2NlT|0q2a?KtoeDjqZdtq>v>=#vUOcIRxw9jmx6Q2XCG^S!Cf z@U6f#-*>JYI~K^-8yDE+^DOf9YRE}yPzSvnmiS|rJO3ViHdHzGN2aB8C}B$wy{Yo|49@Ry)AkY zpD2@GQd3UFq?)|?l6o{&gVjl{MEyeLbV%jNOjX7nVuw~LHn~bn!T65CSAOJ_xCIs5 zRzmaya3e(E5grqjEzV_&cV-kP3Z9U#Hj^ZuC8_efPY3&bjaX{Ppz*fL%O^LB_U<`*@&WMZrTA8nWW2N3o<* zQWuC^6iG4fD0svWe_ky&4&EM@8tPRyCAtOIi54vV@Usl?@(_t z$biW>pDIaNk%*QocY3%mSGwvAyQKv}_o&Zmy*KnN`-LNXCudiX7q&Gl ziwj=S@ECc9jsISnhBOQfx3R8a2?-5JBp4F2_6bQ0Vax4##C1KZ&&jQ|&unWzdY;WU zpyKj=zc>f`a|2ha7WWJE&@_6T(*CL-2WTdKV0le=pp1+dQn&_Urf7?1G1M{GXM`>x zeWZxt2K^&JP9l67H>dbrgo0f)CFi~%dlcW83exj*v*QXjgml~qFd0O#iOf{U5g8F9{|$00rAQZuo+B0nsvHFI@OMf{V|pts dd5n1d989oH%&8;?2$MXCRuhK1)DB_h-f!e!(?b9N literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/model/GameConfig.class b/build/classes/java/main/fr/gravencyg/model/GameConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..f8b9b8dc45762325cbd5dad89fb356195455ac5a GIT binary patch literal 1982 zcmaJ?*>clZ6zuERvMtN8aoC1sNLU>OB9>v9B!ndp2sl7hC@6SS9L0z@a!Qeb`~zRW zH}Ei1HHKoQYCd2-ikd!>h>ehW$hnK|>2teJ-}t|;fBy^MH!SO@;94HP>&W0*0W&hr zmN19wGMg`A6gMQ?lyFPJZ3zn!?&NVdk41$-%ieSz@lT=Fcx}J2t+ws8td+obz1FNk z#qI{3mB99cCvAJj@fFmPLV0)hsVk}aru{DZzO7Jv`^pWRw!0nh@JoeU+g*3Kug$rh z8_X*ltv5P;%UbPjY`B5tc!3-2SW)`yh=IabSzt667~gtX+(;ZIb9x5wl|t|b+1`p(EAV?~yd z(${ucd}H7j+*3G^^w90D+g=mj;~eeE>qJBmyZG<$2y@zxa1r4jpqYkXB&<=`-Xk_Lr~)GEls zkY|DkzNiWxrN(zhDx776O*oQEIFeX6l2$m98OJgdbvwj(n5*{~VJ0wVeugstLFUD0 zjMTE9kem7fO@Wh7$oEh%b3GKzs@{Vh#*&%s!H`h?GekeacpL@BF=VOdIE6h$NvBx- z0#&`js_|IpS36C-%X~$pQ*j3R6XBd4f+PMAoU`dTdh$NgLvX}*f^#k%rK|n$?HUPPCO>DuW$3hR-)WUt^b6rR zr4!}iF6P}BbCgKs56EQ&vYdpRL6NVZ4>|fhWRW13_)D9lJH;26q&q)^?q&Wv5V}`* I%M7mm58;16Y5)KL literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/model/MaterialAndData.class b/build/classes/java/main/fr/gravencyg/model/MaterialAndData.class new file mode 100644 index 0000000000000000000000000000000000000000..16bfc1bb37a3130dbe2ce1b8730ef73b3cf3769e GIT binary patch literal 638 zcmah_O-lk%6g_vwkJPEGw6YJVXrTtprd<(a(aLI32rZvFO=IH-(-`!hS`;Kfi+(^q zDmrh}h!Enz{W$lYa}V$H>-_`39@eu+Vkv_JmUSqlv69BBV5+MkC-jsrDAs$SYd8CM zcV1+ljo^JjqOBq&keVQM;00cEC@7UDF4rmz?jQHsj$pR#1si%O9}tS#8J>bp$B?NyH2D_fmyE5P>%iBs$i*H znP^Lpz3lbFmUHT9AB8bvq`TWu56VIoYZg*STbM#du=T$oL0(gBUj?px(d;;_C^pu> zCjU6ek2m-z8CO(gHbFPYFZ` zV@Ts9&rWaXGZI(&kimM6yTda!vz{fZuP~oj7|`OW7%awu)^K4YC|E#&i1zrKY&`!V LmnM>n@z&xuat(C+ literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/model/Plot.class b/build/classes/java/main/fr/gravencyg/model/Plot.class new file mode 100644 index 0000000000000000000000000000000000000000..06ac5713d3fad606575609f98db76c906c40f714 GIT binary patch literal 5161 zcma)9X?Gjd8Gc5VG?p~79Xn3!1e1jG#$HEr3E9L&smO!?iH)iFv}L-C2-P%(?k73x?e4XMVe`9hUWDb`9nShh^xOxLQ5c3H!|*~NOHTsP^G z;(EETLWxS@(NKU`eQQ?TUR-bOX*jG>x)KwkYWkF2wVf#qBcrpmdbzOBTwb=F0=;iL z>xD}dbKR;>j$I+MX_r~=tX;J(Hdhv``epHk1dz_GT=Bi*Z>HP;YS`OOL*m#dOrMqL z(sP{YyD z&H1o-M^4+dY^^gYYi6a%Blei3lAKaf#!ZGiH!gUI;;wTM0UG5h@CRerk|k2zTB)sB z0hoqC1tlSn_XK?-^m1{@DlP|lXKylZIw(I)WmnkOrGtCibwG(5IS<`;i%%+e&-y4^ zj{AWW7P;;1C4wjV?XUawqCpo$HHkqu3c3ZEqFAHK>#W z6uDEah)J&w0zsOZ z)=hkWb4-;Y(P{`BDizgi+H5D{H4i7pSt}95{Xv-N{_I?>Sua{Mw$yP(D(<*6V*~f& zr;NPYnB60tGaE|`y@7jh$iPt59x!kMU(j%mLNXpAgI~M*bo|1=JNTu6UtwOyuMPYLzcuhX z{NBJH@J9oG5(@9)Jp+Hndm45tfW;MTtF1576AL%2BDaP*^+*kOU2o65Sg-3Em9pO7 zX3P@_!uOOkN0vy*S~Q!LAo{}!4X=T+IlBFcI(LtbZEalw?`E!7OZiry7*@8s)g}-3 zU^LOZ6Hi9U*x&Knfm?jR&`9f+Bh$Lv#qHGYV1pCukC0!qOhdKC2#qxd9-^M z>$Mf{l5n|3w`rJ+0{Pd62xWg~tV6Xh^lf<4wUyP1YYN0>ksf{Oz|nRhj5x6dzkaxNPLF3kkavp zj%gidG!6JKO=vhvbFN!)lTck0J}mqvKE|E|drXhN*qgvrcY4e_Q|mPSJcnGw^Ni3C z&v%Ht0%imY`5eZhj4kbQ?;K|dmsuCIA#OevvN-Rv$kSSSB4RD!`Y!DvoQhb;hZgdo zg}iS;!{bWe?oPl{+Xgg6`$KfKDV6Djp_Z@7`4YE zV7ZW5E~GZ61QTisu-Q9+T@JzKneyVb5i-ks%90CPT1IwS@Lv0nKf0ik`speuG|!bI zA>R?7uM|GZtDon8D)i|Y-wP5UDf0FRdC+sn;c^7p2%%e1x}roBt}4W1bIdY(j5m` z*b?Mf%=1vGs{C;cIx#*N^&iAg;U^QBH-*CKeRRyW+}A zO66jh-O;-9KP&ONyWv83d913t5-de(7;z>Q1rskd7I~0zn6W4Q8c2^%@CzUBPt^#S zbeQ>Rxz-a!!;%`OFOIX?0Y`2)f@AZ$?#1?5pU)6u+xsbU6TEud#>j^gvc8SG<(yvW z_wWfcprgr~!_A0=p^)himR$>e`S;RDMQN%pW~xtN>P4D*iKbrNuBjDe+UxO9z3$?5 Vs^Y2=BohaDV@r@4J(a-f{{bSd%iaJ0 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/model/Storage.class b/build/classes/java/main/fr/gravencyg/model/Storage.class new file mode 100644 index 0000000000000000000000000000000000000000..91d831700ae03c560238fd7d9bd17fba467eb07a GIT binary patch literal 3172 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/npcs/NPCClickListener.class b/build/classes/java/main/fr/gravencyg/npcs/NPCClickListener.class new file mode 100644 index 0000000000000000000000000000000000000000..1d0d8afbea9863999310d6fe79859f7e16011553 GIT binary patch literal 2346 zcma)7TXz#x7~Lng(5xvF%!J7V2;LRc zzu>D6`YcQ1st+!o{Yko(xX(;OGc>3VnarGTfBU=bbIu=s|N0w%WB4YCy_o7mAKpyj z45m{!i;Q|Zm%@2m=)??WlgQ#?3U49Tfw?5+aVd!fTux#U`4pD$wt6f}TuGt_@1$@Q z*Oc=$_4%&EdlJ_r-WQ0K4a*kj&E0hMqHEkX?Lxh%XRgki5=fl3Y|EPx=o{H-9$lt$ z##uE5x^tFo&ezH-rn_XUl(^EHa|%Xj*>ElOy|ozg)~u?)p)i+SDOC0Og-oVo6*h8K z)iZ6=W$-S?UMLxL)AbDkCr5IQThv!-8yl9Vn@rTxD?UIEa9P_kU8CSld*^M>^6KXm zfdio+K94@_mK`^*>;wvnzbqa63GwN)mhJSY+4g6kcGDA2%11t7gH~6%o!Db4F2eENPHk+NUR8? z7i(lGo6A3;GpGxS7+Ial0T)6ifcKppTzJ}zzbUlrV^XY&ddrV z^G?kzm=`Q1mA)rue`MXbZD<%kLBl?zC2nX~g~^mP+(c2s8Z2h6VI3P1B@JcREJlNa zio`7qE|_}!j^mbAB|Hr^+?Keb;V$YD_cVNnk0d_U@CiQE@EJa54k7V36{+D1d?|5X z!vj<`e1)$C4z@*xv@6h~D$q-YUDPQ%v*5AIJG9%By1>yLw*S_(z`j>n8ojk7fX2bm&to4G#>ZW@T|CT`Ixu6cfkOm49D#E-=) z>9AC7E}6G#MyZ-D+Ky{xjH=oMBRhRZuMrxO8&73! zXBDwhm@{mnXu3h4La3&Ew-BmN|7PcQRE!ImynjUYHp{4aR!LVPCBZJgh{r43$W`ke z)242C6h`T7a#ixkp{E|x;C*(;5(ezUg?W(qC0}$(KDGyCmMKWQl{l5dU?W-c(;Jh z)0s|8G_dD>T>S9pp(-N^RmKsd`0PiVDQj#&FN=SfmKhdvo#m{ufV()vgK-e|G2)lI z$U?5OwCA~=AYuS7;6+Fr#bvxiOk9=uxET*HiZQk#&U1Af6KsQqIu0{(l+mit883!c v=re@qBa$Q}UL~2tF^S_6C)nq|aPdzPyhczLsZR3ux`|1g;>&3+M)1ZzXfSeN literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/npcs/NPCManager.class b/build/classes/java/main/fr/gravencyg/npcs/NPCManager.class new file mode 100644 index 0000000000000000000000000000000000000000..72c873f1c6bda28764a6188e66616d49852db49d GIT binary patch literal 4828 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/npcs/all/DevNPC.class b/build/classes/java/main/fr/gravencyg/npcs/all/DevNPC.class new file mode 100644 index 0000000000000000000000000000000000000000..80cf4e5b2ffd20916ab38575420a26b9df889b70 GIT binary patch literal 1234 zcma)5O-~b16g>~hw6vvQZBY;q5w(1jDNrb%O46ok(joyNA+BD_YZ*G7X=bJ*_y_zA zx^?BoXksuiMvbmCx^m&#_&YS-nKnoZ8sFm0yKnA2_ug~v`}FJ88vt=!_h3wVH}l|W z=>GRx(#kAd(vnt&epViT^DevI|0on(E9&PjUUXyJgQy1+(v7dv&XV4Kd}yyn?Fd8m zB8Evfro5O&+>IGGW*MX*H-cB)uA|shSzRzWqYejj(G8C;y(Ve@xs#B@utT0Vpq+$YjT~(DGVcaPcOkq)i z$jChcaO+x9Rq`c<{zyhQigK=6Dk+vMG)u7#8aRUJeG(S1TRG6iC8Y0 z=jVy~b+M-_+KwRxEk0P`lt5L59|O4P#+)DXSYQ}zV5%&%swr1g-J%|JD@&#ui+(I& znW3-2wTXO6ck(xh!Z3cy1e|0)l}e@4_F!~1z|gpm3Ps_RlI0qyVlYHVzXrEj-N~wH z=_H<3t$UKD!~f$)y6P1{gER3DHILPtRJm!AytqUUpxb#mZD1tMdD?r(&ccTl`i4ix zf-HoV5L_WhK~J##CA`n+M+ovb$?R=tDnQ6mDxpkR%hOszFB`8)yys zo{>upNTN%i(*f~2=hiw1!_XS76WBmwFWR2dbDsA+&vW|i*N0C4a+nVxC49dB^68IPSKbQ` z^OU4ZSom4@ui%$`AdDfTLl_TXLRk3j7hnK!Oooxcln6PDET%=wh?r#%?rDbRJYX13 zRqK}Au#{bHsCx~$wE1X0y}=MHnKjN3t7-;cc3WHAdZujYl!;eORna#TOY`DRGU#k; zHpA6!EMrHtWkuKJ6hPKJMr7z;G+k~sD@>`XpOO#GhY*VjqcNG@_$!bMyXaYsTP1roAL zo)$OUBO#Y45-}&Ch`U6utFl*d^7rI-a)M#<6yHxuUM`m_6>l8|yI^QZNcskMyjhkM zgRCF{Q)F6KS$po1Yda=6c34S9j{Q#^nQ88D+Loz*Sa@valCIb`d5UYa_Cx+3&=1-r z4AXst;wmEOqi14#BF+-%OCXql5D!J(Vc;$0`*4o#VZSCq2olayJksvL1&mTe-JVs1 zNZR8{2RY-%Kp-A|LnUn>fs#PX2a){uKnH{jKBYC%+d6b=Ym)f2`OLxN2SocnikpE1 zq}9z}bhQ^{j~ULG)uRfbjq(eD{8&+|`2!CWA;~$`3h+Y0UU>+m953 z?~bag_Faa7M6qJZRg>=sUD>V5xy^@*V;c zQ+4c?(`#?37Q=8mmR?sZnQNN7UZ)GnVtFOENXRv=>JHACdl>@OwyLkMKgu&i6Jy0^ ze22>#*Q@fHZK`^evcp@3W)NC!Nmv%IQb8fb&@{Cy%*U0AC2YDNG4_-I{Dz*>RArmt zYNBYERk_sI-d1f{=(cL_$}1Y*6{gG8S9i}0vA@SL1lNp)sfdE=bRm39Y09aRem|%k z?rExF3R6N9X@*geRZ`__Y9=|8;Yu={nNKA-ucVWy*}3Vt5?9jM^gP30{&26P8P6NS zjF*KK*VP@t8!seW#uYziC1fy1t!?X8P3Vob)-I95k9i4MEHK2|f;-4Sx}Oapc^D=; z%)?n7^7(wB;EYLM8w?E(=}{H7Q_d3CNgtCTK}xoTHLK4xEZZO%k0MFk(f^4fg^jwP z5t{mkt|w~FY230%Xk4e~(C<7Lbb|&A1GEp4RYWhk=o=lMh_EQSqVPuHiv*ogf2{E!L+YyWqY2Gl@LQc9i;E4p^P)HNVM@}H@f=KS!(*j|* z)*-d`bZURc)Hv~L@>y{C0e#({{F|OAq}5F#B(0vt89ag0cT~bKMp`%pcwCO5@plOA iBRmo5+sFCS9f{!_F+c7|=%^zhjN%4iG2C>?-}(bw1`;L! literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/schedule/CYGExecutionTask.class b/build/classes/java/main/fr/gravencyg/schedule/CYGExecutionTask.class new file mode 100644 index 0000000000000000000000000000000000000000..e8bc901a4c4117f01b51f5838644da590d133696 GIT binary patch literal 4406 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardManager.class b/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardManager.class new file mode 100644 index 0000000000000000000000000000000000000000..4b862e416b300dc0b8c2ca83d23e3ae755d5b069 GIT binary patch literal 6399 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$1.class b/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bd1abe358e381067e7bcfa9daae7070a0857dd56 GIT binary patch literal 240 zcma)%K?=e!5JmrJHMI&BynqWq+!zFJAPO$TMNg2XF}9Qhl3MU;E&huZ!Vndi5jZtn_3-6UDq#c&m!f1ZZD3XU}X0Exao=Kufz literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class b/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class new file mode 100644 index 0000000000000000000000000000000000000000..254599766c8f9cb34c57120f251b8c7662f66ca0 GIT binary patch literal 5889 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign.class b/build/classes/java/main/fr/gravencyg/scoreboards/ScoreboardSign.class new file mode 100644 index 0000000000000000000000000000000000000000..ed7f8ac3dedb76c2419cd80b3c1e84243f9bb211 GIT binary patch literal 7345 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 g^jAT_zpxkoMxWG+0qHO`dq>dP@48o}CpI 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 literal 0 HcmV?d00001 diff --git a/build/classes/java/main/fr/gravencyg/utils/LocationUtils.class b/build/classes/java/main/fr/gravencyg/utils/LocationUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..c7a80af3e867aa85e37842b557ad53b6efa775bb GIT binary patch literal 3010 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 literal 0 HcmV?d00001 diff --git a/build/libs/CYG-all.jar b/build/libs/CYG-all.jar new file mode 100644 index 0000000000000000000000000000000000000000..648063fcf58e8bf866467362d78bbcb35868f24e GIT binary patch literal 248723 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%0D+e0 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

owDmmu=skWt31c6Ee^!BvbIH^ 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 literal 0 HcmV?d00001 diff --git a/build/resources/main/plugin.yml b/build/resources/main/plugin.yml new file mode 100644 index 0000000..6788414 --- /dev/null +++ b/build/resources/main/plugin.yml @@ -0,0 +1,88 @@ +name: CYG +version: 0.0.7 +api-version: 1.13 +author: Graven +main: fr.gravencyg.CYG +commands: + plot: + description: Se teleporter vers sa parcelle + aliases: [pt] + locations: + aliases: [loc] + ev: + description: Obtenir un bloc d'evenement + actions: + description: Ouvrir le menu des actions + aliases: [ac, pa] + options: + aliases: [po] + setspawn: + setcode: + if: + description: Obtenir un bloc de condition + hub: + description: Se teleporter au Hub + messages: + description: Ouvrir le menu de gestion des messages + aliases: [msg] + play: + description: Jouer au jeu d'un joueur en ligne + aliases: [p] + pa: + description: Plot actions + po: + description: Plot options + pc: + description: Plot code + ptp: + description: Plot tp + rank: + description: rank + permission: rank.change + verifygame: + description: verify + fly: + description: Activer le vol doiseau + friend: + description: Invitez des amis sur votre parcelle + mute: + description: Mute un joueur + unmute: + description: Demute un joueur + kick: + description: Ejecte un joueur du serveur + freeze: + description: Gele un joueur du serveur + uuid: + description: Donne luuid du joueur + leave: + description: Quitter un jeu + barriere: + description: Barriere + we: + description: Mini worldedit pour les joueurs + ping: + description: Ping + head: + description: Donne la tete d'un joueur + gamemode: + description: Changement de gamemode + gamename: + refreshlevel: + permission: perm.full + forcelevel: + permission: perm.full + premium: + permission: shop.premium + discord: + description: Discord lien + shop: + description: Shop lien + twitter: + description: Twitter lien + hat: + description: Change hat + npc: + description: Gérer les personnages on joueurs + updateholo: + permission: update.holo \ No newline at end of file diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..e222f5d87dc3a67c3a92f660990a755a1fc6ca27 GIT binary patch literal 86655 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 literal 0 HcmV?d00001 diff --git a/build/tmp/shadowJar/MANIFEST.MF b/build/tmp/shadowJar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/build/tmp/shadowJar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..4d252d0 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +destDir = D:\\Serveur MC\\plugins \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 zcma&NbC71ylI~qywr$(CZQJHswz}-9F59+k+g;UV+cs{`J?GrGXYR~=-ydruB3JCa zB64N^cILAcWk5iofq)<(fq;O7{th4@;QxID0)qN`mJ?GIqLY#rX8-|G{5M0pdVW5^ zzXk$-2kQTAC?_N@B`&6-N-rmVFE=$QD?>*=4<|!MJu@}isLc4AW#{m2if&A5T5g&~ ziuMQeS*U5sL6J698wOd)K@oK@1{peP5&Esut<#VH^u)gp`9H4)`uE!2$>RTctN+^u z=ASkePDZA-X8)rp%D;p*~P?*a_=*Kwc<^>QSH|^<0>o37lt^+Mj1;4YvJ(JR-Y+?%Nu}JAYj5 z_Qc5%Ao#F?q32i?ZaN2OSNhWL;2oDEw_({7ZbgUjna!Fqn3NzLM@-EWFPZVmc>(fZ z0&bF-Ch#p9C{YJT9Rcr3+Y_uR^At1^BxZ#eo>$PLJF3=;t_$2|t+_6gg5(j{TmjYU zK12c&lE?Eh+2u2&6Gf*IdKS&6?rYbSEKBN!rv{YCm|Rt=UlPcW9j`0o6{66#y5t9C zruFA2iKd=H%jHf%ypOkxLnO8#H}#Zt{8p!oi6)7#NqoF({t6|J^?1e*oxqng9Q2Cc zg%5Vu!em)}Yuj?kaP!D?b?(C*w!1;>R=j90+RTkyEXz+9CufZ$C^umX^+4|JYaO<5 zmIM3#dv`DGM;@F6;(t!WngZSYzHx?9&$xEF70D1BvfVj<%+b#)vz)2iLCrTeYzUcL z(OBnNoG6Le%M+@2oo)&jdOg=iCszzv59e zDRCeaX8l1hC=8LbBt|k5?CXgep=3r9BXx1uR8!p%Z|0+4Xro=xi0G!e{c4U~1j6!) zH6adq0}#l{%*1U(Cb%4AJ}VLWKBPi0MoKFaQH6x?^hQ!6em@993xdtS%_dmevzeNl z(o?YlOI=jl(`L9^ z0O+H9k$_@`6L13eTT8ci-V0ljDMD|0ifUw|Q-Hep$xYj0hTO@0%IS^TD4b4n6EKDG z??uM;MEx`s98KYN(K0>c!C3HZdZ{+_53DO%9k5W%pr6yJusQAv_;IA}925Y%;+!tY z%2k!YQmLLOr{rF~!s<3-WEUs)`ix_mSU|cNRBIWxOox_Yb7Z=~Q45ZNe*u|m^|)d* zog=i>`=bTe!|;8F+#H>EjIMcgWcG2ORD`w0WD;YZAy5#s{65~qfI6o$+Ty&-hyMyJ z3Ra~t>R!p=5ZpxA;QkDAoPi4sYOP6>LT+}{xp}tk+<0k^CKCFdNYG(Es>p0gqD)jP zWOeX5G;9(m@?GOG7g;e74i_|SmE?`B2i;sLYwRWKLy0RLW!Hx`=!LH3&k=FuCsM=9M4|GqzA)anEHfxkB z?2iK-u(DC_T1};KaUT@3nP~LEcENT^UgPvp!QC@Dw&PVAhaEYrPey{nkcn(ro|r7XUz z%#(=$7D8uP_uU-oPHhd>>^adbCSQetgSG`e$U|7mr!`|bU0aHl_cmL)na-5x1#OsVE#m*+k84Y^+UMeSAa zbrVZHU=mFwXEaGHtXQq`2ZtjfS!B2H{5A<3(nb-6ARVV8kEmOkx6D2x7~-6hl;*-*}2Xz;J#a8Wn;_B5=m zl3dY;%krf?i-Ok^Pal-}4F`{F@TYPTwTEhxpZK5WCpfD^UmM_iYPe}wpE!Djai6_{ z*pGO=WB47#Xjb7!n2Ma)s^yeR*1rTxp`Mt4sfA+`HwZf%!7ZqGosPkw69`Ix5Ku6G z@Pa;pjzV&dn{M=QDx89t?p?d9gna*}jBly*#1!6}5K<*xDPJ{wv4& zM$17DFd~L*Te3A%yD;Dp9UGWTjRxAvMu!j^Tbc}2v~q^59d4bz zvu#!IJCy(BcWTc`;v$9tH;J%oiSJ_i7s;2`JXZF+qd4C)vY!hyCtl)sJIC{ebI*0> z@x>;EzyBv>AI-~{D6l6{ST=em*U( z(r$nuXY-#CCi^8Z2#v#UXOt`dbYN1z5jzNF2 z411?w)whZrfA20;nl&C1Gi+gk<`JSm+{|*2o<< zqM#@z_D`Cn|0H^9$|Tah)0M_X4c37|KQ*PmoT@%xHc3L1ZY6(p(sNXHa&49Frzto& zR`c~ClHpE~4Z=uKa5S(-?M8EJ$zt0&fJk~p$M#fGN1-y$7!37hld`Uw>Urri(DxLa;=#rK0g4J)pXMC zxzraOVw1+kNWpi#P=6(qxf`zSdUC?D$i`8ZI@F>k6k zz21?d+dw7b&i*>Kv5L(LH-?J%@WnqT7j#qZ9B>|Zl+=> z^U-pV@1y_ptHo4hl^cPRWewbLQ#g6XYQ@EkiP z;(=SU!yhjHp%1&MsU`FV1Z_#K1&(|5n(7IHbx&gG28HNT)*~-BQi372@|->2Aw5It z0CBpUcMA*QvsPy)#lr!lIdCi@1k4V2m!NH)%Px(vu-r(Q)HYc!p zJ^$|)j^E#q#QOgcb^pd74^JUi7fUmMiNP_o*lvx*q%_odv49Dsv$NV;6J z9GOXKomA{2Pb{w}&+yHtH?IkJJu~}Z?{Uk++2mB8zyvh*xhHKE``99>y#TdD z&(MH^^JHf;g(Tbb^&8P*;_i*2&fS$7${3WJtV7K&&(MBV2~)2KB3%cWg#1!VE~k#C z!;A;?p$s{ihyojEZz+$I1)L}&G~ml=udD9qh>Tu(ylv)?YcJT3ihapi!zgPtWb*CP zlLLJSRCj-^w?@;RU9aL2zDZY1`I3d<&OMuW=c3$o0#STpv_p3b9Wtbql>w^bBi~u4 z3D8KyF?YE?=HcKk!xcp@Cigvzy=lnFgc^9c%(^F22BWYNAYRSho@~*~S)4%AhEttv zvq>7X!!EWKG?mOd9&n>vvH1p4VzE?HCuxT-u+F&mnsfDI^}*-d00-KAauEaXqg3k@ zy#)MGX!X;&3&0s}F3q40ZmVM$(H3CLfpdL?hB6nVqMxX)q=1b}o_PG%r~hZ4gUfSp zOH4qlEOW4OMUc)_m)fMR_rl^pCfXc{$fQbI*E&mV77}kRF z&{<06AJyJ!e863o-V>FA1a9Eemx6>^F$~9ppt()ZbPGfg_NdRXBWoZnDy2;#ODgf! zgl?iOcF7Meo|{AF>KDwTgYrJLb$L2%%BEtO>T$C?|9bAB&}s;gI?lY#^tttY&hfr# zKhC+&b-rpg_?~uVK%S@mQleU#_xCsvIPK*<`E0fHE1&!J7!xD#IB|SSPW6-PyuqGn3^M^Rz%WT{e?OI^svARX&SAdU77V(C~ zM$H{Kg59op{<|8ry9ecfP%=kFm(-!W&?U0@<%z*+!*<e0XesMxRFu9QnGqun6R_%T+B%&9Dtk?*d$Q zb~>84jEAPi@&F@3wAa^Lzc(AJz5gsfZ7J53;@D<;Klpl?sK&u@gie`~vTsbOE~Cd4 z%kr56mI|#b(Jk&;p6plVwmNB0H@0SmgdmjIn5Ne@)}7Vty(yb2t3ev@22AE^s!KaN zyQ>j+F3w=wnx7w@FVCRe+`vUH)3gW%_72fxzqX!S&!dchdkRiHbXW1FMrIIBwjsai8`CB2r4mAbwp%rrO>3B$Zw;9=%fXI9B{d(UzVap7u z6piC-FQ)>}VOEuPpuqznpY`hN4dGa_1Xz9rVg(;H$5Te^F0dDv*gz9JS<|>>U0J^# z6)(4ICh+N_Q`Ft0hF|3fSHs*?a=XC;e`sJaU9&d>X4l?1W=|fr!5ShD|nv$GK;j46@BV6+{oRbWfqOBRb!ir88XD*SbC(LF}I1h#6@dvK%Toe%@ zhDyG$93H8Eu&gCYddP58iF3oQH*zLbNI;rN@E{T9%A8!=v#JLxKyUe}e}BJpB{~uN zqgxRgo0*-@-iaHPV8bTOH(rS(huwK1Xg0u+e!`(Irzu@Bld&s5&bWgVc@m7;JgELd zimVs`>vQ}B_1(2#rv#N9O`fJpVfPc7V2nv34PC);Dzbb;p!6pqHzvy?2pD&1NE)?A zt(t-ucqy@wn9`^MN5apa7K|L=9>ISC>xoc#>{@e}m#YAAa1*8-RUMKwbm|;5p>T`Z zNf*ph@tnF{gmDa3uwwN(g=`Rh)4!&)^oOy@VJaK4lMT&5#YbXkl`q?<*XtsqD z9PRK6bqb)fJw0g-^a@nu`^?71k|m3RPRjt;pIkCo1{*pdqbVs-Yl>4E>3fZx3Sv44grW=*qdSoiZ9?X0wWyO4`yDHh2E!9I!ZFi zVL8|VtW38}BOJHW(Ax#KL_KQzarbuE{(%TA)AY)@tY4%A%P%SqIU~8~-Lp3qY;U-} z`h_Gel7;K1h}7$_5ZZT0&%$Lxxr-<89V&&TCsu}LL#!xpQ1O31jaa{U34~^le*Y%L za?7$>Jk^k^pS^_M&cDs}NgXlR>16AHkSK-4TRaJSh#h&p!-!vQY%f+bmn6x`4fwTp z$727L^y`~!exvmE^W&#@uY!NxJi`g!i#(++!)?iJ(1)2Wk;RN zFK&O4eTkP$Xn~4bB|q8y(btx$R#D`O@epi4ofcETrx!IM(kWNEe42Qh(8*KqfP(c0 zouBl6>Fc_zM+V;F3znbo{x#%!?mH3`_ANJ?y7ppxS@glg#S9^MXu|FM&ynpz3o&Qh z2ujAHLF3($pH}0jXQsa#?t--TnF1P73b?4`KeJ9^qK-USHE)4!IYgMn-7z|=ALF5SNGkrtPG@Y~niUQV2?g$vzJN3nZ{7;HZHzWAeQ;5P|@Tl3YHpyznGG4-f4=XflwSJY+58-+wf?~Fg@1p1wkzuu-RF3j2JX37SQUc? zQ4v%`V8z9ZVZVqS8h|@@RpD?n0W<=hk=3Cf8R?d^9YK&e9ZybFY%jdnA)PeHvtBe- zhMLD+SSteHBq*q)d6x{)s1UrsO!byyLS$58WK;sqip$Mk{l)Y(_6hEIBsIjCr5t>( z7CdKUrJTrW%qZ#1z^n*Lb8#VdfzPw~OIL76aC+Rhr<~;4Tl!sw?Rj6hXj4XWa#6Tp z@)kJ~qOV)^Rh*-?aG>ic2*NlC2M7&LUzc9RT6WM%Cpe78`iAowe!>(T0jo&ivn8-7 zs{Qa@cGy$rE-3AY0V(l8wjI^uB8Lchj@?L}fYal^>T9z;8juH@?rG&g-t+R2dVDBe zq!K%{e-rT5jX19`(bP23LUN4+_zh2KD~EAYzhpEO3MUG8@}uBHH@4J zd`>_(K4q&>*k82(dDuC)X6JuPrBBubOg7qZ{?x!r@{%0);*`h*^F|%o?&1wX?Wr4b z1~&cy#PUuES{C#xJ84!z<1tp9sfrR(i%Tu^jnXy;4`Xk;AQCdFC@?V%|; zySdC7qS|uQRcH}EFZH%mMB~7gi}a0utE}ZE_}8PQH8f;H%PN41Cb9R%w5Oi5el^fd z$n{3SqLCnrF##x?4sa^r!O$7NX!}&}V;0ZGQ&K&i%6$3C_dR%I7%gdQ;KT6YZiQrW zk%q<74oVBV>@}CvJ4Wj!d^?#Zwq(b$E1ze4$99DuNg?6t9H}k_|D7KWD7i0-g*EO7 z;5{hSIYE4DMOK3H%|f5Edx+S0VI0Yw!tsaRS2&Il2)ea^8R5TG72BrJue|f_{2UHa z@w;^c|K3da#$TB0P3;MPlF7RuQeXT$ zS<<|C0OF(k)>fr&wOB=gP8!Qm>F41u;3esv7_0l%QHt(~+n; zf!G6%hp;Gfa9L9=AceiZs~tK+Tf*Wof=4!u{nIO90jH@iS0l+#%8=~%ASzFv7zqSB^?!@N7)kp0t&tCGLmzXSRMRyxCmCYUD2!B`? zhs$4%KO~m=VFk3Buv9osha{v+mAEq=ik3RdK@;WWTV_g&-$U4IM{1IhGX{pAu%Z&H zFfwCpUsX%RKg);B@7OUzZ{Hn{q6Vv!3#8fAg!P$IEx<0vAx;GU%}0{VIsmFBPq_mb zpe^BChDK>sc-WLKl<6 zwbW|e&d&dv9Wu0goueyu>(JyPx1mz0v4E?cJjFuKF71Q1)AL8jHO$!fYT3(;U3Re* zPPOe%*O+@JYt1bW`!W_1!mN&=w3G9ru1XsmwfS~BJ))PhD(+_J_^N6j)sx5VwbWK| zwRyC?W<`pOCY)b#AS?rluxuuGf-AJ=D!M36l{ua?@SJ5>e!IBr3CXIxWw5xUZ@Xrw z_R@%?{>d%Ld4p}nEsiA@v*nc6Ah!MUs?GA7e5Q5lPpp0@`%5xY$C;{%rz24$;vR#* zBP=a{)K#CwIY%p} zXVdxTQ^HS@O&~eIftU+Qt^~(DGxrdi3k}DdT^I7Iy5SMOp$QuD8s;+93YQ!OY{eB24%xY7ml@|M7I(Nb@K_-?F;2?et|CKkuZK_>+>Lvg!>JE~wN`BI|_h6$qi!P)+K-1Hh(1;a`os z55)4Q{oJiA(lQM#;w#Ta%T0jDNXIPM_bgESMCDEg6rM33anEr}=|Fn6)|jBP6Y}u{ zv9@%7*#RI9;fv;Yii5CI+KrRdr0DKh=L>)eO4q$1zmcSmglsV`*N(x=&Wx`*v!!hn6X-l0 zP_m;X??O(skcj+oS$cIdKhfT%ABAzz3w^la-Ucw?yBPEC+=Pe_vU8nd-HV5YX6X8r zZih&j^eLU=%*;VzhUyoLF;#8QsEfmByk+Y~caBqSvQaaWf2a{JKB9B>V&r?l^rXaC z8)6AdR@Qy_BxQrE2Fk?ewD!SwLuMj@&d_n5RZFf7=>O>hzVE*seW3U?_p|R^CfoY`?|#x9)-*yjv#lo&zP=uI`M?J zbzC<^3x7GfXA4{FZ72{PE*-mNHyy59Q;kYG@BB~NhTd6pm2Oj=_ zizmD?MKVRkT^KmXuhsk?eRQllPo2Ubk=uCKiZ&u3Xjj~<(!M94c)Tez@9M1Gfs5JV z->@II)CDJOXTtPrQudNjE}Eltbjq>6KiwAwqvAKd^|g!exgLG3;wP+#mZYr`cy3#39e653d=jrR-ulW|h#ddHu(m9mFoW~2yE zz5?dB%6vF}+`-&-W8vy^OCxm3_{02royjvmwjlp+eQDzFVEUiyO#gLv%QdDSI#3W* z?3!lL8clTaNo-DVJw@ynq?q!%6hTQi35&^>P85G$TqNt78%9_sSJt2RThO|JzM$iL zg|wjxdMC2|Icc5rX*qPL(coL!u>-xxz-rFiC!6hD1IR%|HSRsV3>Kq~&vJ=s3M5y8SG%YBQ|{^l#LGlg!D?E>2yR*eV%9m$_J6VGQ~AIh&P$_aFbh zULr0Z$QE!QpkP=aAeR4ny<#3Fwyw@rZf4?Ewq`;mCVv}xaz+3ni+}a=k~P+yaWt^L z@w67!DqVf7D%7XtXX5xBW;Co|HvQ8WR1k?r2cZD%U;2$bsM%u8{JUJ5Z0k= zZJARv^vFkmWx15CB=rb=D4${+#DVqy5$C%bf`!T0+epLJLnh1jwCdb*zuCL}eEFvE z{rO1%gxg>1!W(I!owu*mJZ0@6FM(?C+d*CeceZRW_4id*D9p5nzMY&{mWqrJomjIZ z97ZNnZ3_%Hx8dn;H>p8m7F#^2;T%yZ3H;a&N7tm=Lvs&lgJLW{V1@h&6Vy~!+Ffbb zv(n3+v)_D$}dqd!2>Y2B)#<+o}LH#%ogGi2-?xRIH)1!SD)u-L65B&bsJTC=LiaF+YOCif2dUX6uAA|#+vNR z>U+KQekVGon)Yi<93(d!(yw1h3&X0N(PxN2{%vn}cnV?rYw z$N^}_o!XUB!mckL`yO1rnUaI4wrOeQ(+&k?2mi47hzxSD`N#-byqd1IhEoh!PGq>t z_MRy{5B0eKY>;Ao3z$RUU7U+i?iX^&r739F)itdrTpAi-NN0=?^m%?{A9Ly2pVv>Lqs6moTP?T2-AHqFD-o_ znVr|7OAS#AEH}h8SRPQ@NGG47dO}l=t07__+iK8nHw^(AHx&Wb<%jPc$$jl6_p(b$ z)!pi(0fQodCHfM)KMEMUR&UID>}m^(!{C^U7sBDOA)$VThRCI0_+2=( zV8mMq0R(#z;C|7$m>$>`tX+T|xGt(+Y48@ZYu#z;0pCgYgmMVbFb!$?%yhZqP_nhn zy4<#3P1oQ#2b51NU1mGnHP$cf0j-YOgAA}A$QoL6JVLcmExs(kU{4z;PBHJD%_=0F z>+sQV`mzijSIT7xn%PiDKHOujX;n|M&qr1T@rOxTdxtZ!&u&3HHFLYD5$RLQ=heur zb>+AFokUVQeJy-#LP*^)spt{mb@Mqe=A~-4p0b+Bt|pZ+@CY+%x}9f}izU5;4&QFE zO1bhg&A4uC1)Zb67kuowWY4xbo&J=%yoXlFB)&$d*-}kjBu|w!^zbD1YPc0-#XTJr z)pm2RDy%J3jlqSMq|o%xGS$bPwn4AqitC6&e?pqWcjWPt{3I{>CBy;hg0Umh#c;hU3RhCUX=8aR>rmd` z7Orw(5tcM{|-^J?ZAA9KP|)X6n9$-kvr#j5YDecTM6n z&07(nD^qb8hpF0B^z^pQ*%5ePYkv&FabrlI61ntiVp!!C8y^}|<2xgAd#FY=8b*y( zuQOuvy2`Ii^`VBNJB&R!0{hABYX55ooCAJSSevl4RPqEGb)iy_0H}v@vFwFzD%>#I>)3PsouQ+_Kkbqy*kKdHdfkN7NBcq%V{x^fSxgXpg7$bF& zj!6AQbDY(1u#1_A#1UO9AxiZaCVN2F0wGXdY*g@x$ByvUA?ePdide0dmr#}udE%K| z3*k}Vv2Ew2u1FXBaVA6aerI36R&rzEZeDDCl5!t0J=ug6kuNZzH>3i_VN`%BsaVB3 zQYw|Xub_SGf{)F{$ZX5`Jc!X!;eybjP+o$I{Z^Hsj@D=E{MnnL+TbC@HEU2DjG{3-LDGIbq()U87x4eS;JXnSh;lRlJ z>EL3D>wHt-+wTjQF$fGyDO$>d+(fq@bPpLBS~xA~R=3JPbS{tzN(u~m#Po!?H;IYv zE;?8%^vle|%#oux(Lj!YzBKv+Fd}*Ur-dCBoX*t{KeNM*n~ZPYJ4NNKkI^MFbz9!v z4(Bvm*Kc!-$%VFEewYJKz-CQN{`2}KX4*CeJEs+Q(!kI%hN1!1P6iOq?ovz}X0IOi z)YfWpwW@pK08^69#wSyCZkX9?uZD?C^@rw^Y?gLS_xmFKkooyx$*^5#cPqntNTtSG zlP>XLMj2!VF^0k#ole7`-c~*~+_T5ls?x4)ah(j8vo_ zwb%S8qoaZqY0-$ZI+ViIA_1~~rAH7K_+yFS{0rT@eQtTAdz#8E5VpwnW!zJ_^{Utv zlW5Iar3V5t&H4D6A=>?mq;G92;1cg9a2sf;gY9pJDVKn$DYdQlvfXq}zz8#LyPGq@ z+`YUMD;^-6w&r-82JL7mA8&M~Pj@aK!m{0+^v<|t%APYf7`}jGEhdYLqsHW-Le9TL z_hZZ1gbrz7$f9^fAzVIP30^KIz!!#+DRLL+qMszvI_BpOSmjtl$hh;&UeM{ER@INV zcI}VbiVTPoN|iSna@=7XkP&-4#06C};8ajbxJ4Gcq8(vWv4*&X8bM^T$mBk75Q92j z1v&%a;OSKc8EIrodmIiw$lOES2hzGDcjjB`kEDfJe{r}yE6`eZL zEB`9u>Cl0IsQ+t}`-cx}{6jqcANucqIB>Qmga_&<+80E2Q|VHHQ$YlAt{6`Qu`HA3 z03s0-sSlwbvgi&_R8s={6<~M^pGvBNjKOa>tWenzS8s zR>L7R5aZ=mSU{f?ib4Grx$AeFvtO5N|D>9#)ChH#Fny2maHWHOf2G=#<9Myot#+4u zWVa6d^Vseq_0=#AYS(-m$Lp;*8nC_6jXIjEM`omUmtH@QDs3|G)i4j*#_?#UYVZvJ z?YjT-?!4Q{BNun;dKBWLEw2C-VeAz`%?A>p;)PL}TAZn5j~HK>v1W&anteARlE+~+ zj>c(F;?qO3pXBb|#OZdQnm<4xWmn~;DR5SDMxt0UK_F^&eD|KZ=O;tO3vy4@4h^;2 zUL~-z`-P1aOe?|ZC1BgVsL)2^J-&vIFI%q@40w0{jjEfeVl)i9(~bt2z#2Vm)p`V_ z1;6$Ae7=YXk#=Qkd24Y23t&GvRxaOoad~NbJ+6pxqzJ>FY#Td7@`N5xp!n(c!=RE& z&<<@^a$_Ys8jqz4|5Nk#FY$~|FPC0`*a5HH!|Gssa9=~66&xG9)|=pOOJ2KE5|YrR zw!w6K2aC=J$t?L-;}5hn6mHd%hC;p8P|Dgh6D>hGnXPgi;6r+eA=?f72y9(Cf_ho{ zH6#)uD&R=73^$$NE;5piWX2bzR67fQ)`b=85o0eOLGI4c-Tb@-KNi2pz=Ke@SDcPn za$AxXib84`!Sf;Z3B@TSo`Dz7GM5Kf(@PR>Ghzi=BBxK8wRp>YQoXm+iL>H*Jo9M3 z6w&E?BC8AFTFT&Tv8zf+m9<&S&%dIaZ)Aoqkak_$r-2{$d~0g2oLETx9Y`eOAf14QXEQw3tJne;fdzl@wV#TFXSLXM2428F-Q}t+n2g%vPRMUzYPvzQ9f# zu(liiJem9P*?0%V@RwA7F53r~|I!Ty)<*AsMX3J{_4&}{6pT%Tpw>)^|DJ)>gpS~1rNEh z0$D?uO8mG?H;2BwM5a*26^7YO$XjUm40XmBsb63MoR;bJh63J;OngS5sSI+o2HA;W zdZV#8pDpC9Oez&L8loZO)MClRz!_!WD&QRtQxnazhT%Vj6Wl4G11nUk8*vSeVab@N#oJ}`KyJv+8Mo@T1-pqZ1t|?cnaVOd;1(h9 z!$DrN=jcGsVYE-0-n?oCJ^4x)F}E;UaD-LZUIzcD?W^ficqJWM%QLy6QikrM1aKZC zi{?;oKwq^Vsr|&`i{jIphA8S6G4)$KGvpULjH%9u(Dq247;R#l&I0{IhcC|oBF*Al zvLo7Xte=C{aIt*otJD}BUq)|_pdR>{zBMT< z(^1RpZv*l*m*OV^8>9&asGBo8h*_4q*)-eCv*|Pq=XNGrZE)^(SF7^{QE_~4VDB(o zVcPA_!G+2CAtLbl+`=Q~9iW`4ZRLku!uB?;tWqVjB0lEOf}2RD7dJ=BExy=<9wkb- z9&7{XFA%n#JsHYN8t5d~=T~5DcW4$B%3M+nNvC2`0!#@sckqlzo5;hhGi(D9=*A4` z5ynobawSPRtWn&CDLEs3Xf`(8^zDP=NdF~F^s&={l7(aw&EG}KWpMjtmz7j_VLO;@ zM2NVLDxZ@GIv7*gzl1 zjq78tv*8#WSY`}Su0&C;2F$Ze(q>F(@Wm^Gw!)(j;dk9Ad{STaxn)IV9FZhm*n+U} zi;4y*3v%A`_c7a__DJ8D1b@dl0Std3F||4Wtvi)fCcBRh!X9$1x!_VzUh>*S5s!oq z;qd{J_r79EL2wIeiGAqFstWtkfIJpjVh%zFo*=55B9Zq~y0=^iqHWfQl@O!Ak;(o*m!pZqe9 z%U2oDOhR)BvW8&F70L;2TpkzIutIvNQaTjjs5V#8mV4!NQ}zN=i`i@WI1z0eN-iCS z;vL-Wxc^Vc_qK<5RPh(}*8dLT{~GzE{w2o$2kMFaEl&q zP{V=>&3kW7tWaK-Exy{~`v4J0U#OZBk{a9{&)&QG18L@6=bsZ1zC_d{{pKZ-Ey>I> z;8H0t4bwyQqgu4hmO`3|4K{R*5>qnQ&gOfdy?z`XD%e5+pTDzUt3`k^u~SaL&XMe= z9*h#kT(*Q9jO#w2Hd|Mr-%DV8i_1{J1MU~XJ3!WUplhXDYBpJH><0OU`**nIvPIof z|N8@I=wA)sf45SAvx||f?Z5uB$kz1qL3Ky_{%RPdP5iN-D2!p5scq}buuC00C@jom zhfGKm3|f?Z0iQ|K$Z~!`8{nmAS1r+fp6r#YDOS8V*;K&Gs7Lc&f^$RC66O|)28oh`NHy&vq zJh+hAw8+ybTB0@VhWN^0iiTnLsCWbS_y`^gs!LX!Lw{yE``!UVzrV24tP8o;I6-65 z1MUiHw^{bB15tmrVT*7-#sj6cs~z`wk52YQJ*TG{SE;KTm#Hf#a~|<(|ImHH17nNM z`Ub{+J3dMD!)mzC8b(2tZtokKW5pAwHa?NFiso~# z1*iaNh4lQ4TS)|@G)H4dZV@l*Vd;Rw;-;odDhW2&lJ%m@jz+Panv7LQm~2Js6rOW3 z0_&2cW^b^MYW3)@o;neZ<{B4c#m48dAl$GCc=$>ErDe|?y@z`$uq3xd(%aAsX)D%l z>y*SQ%My`yDP*zof|3@_w#cjaW_YW4BdA;#Glg1RQcJGY*CJ9`H{@|D+*e~*457kd z73p<%fB^PV!Ybw@)Dr%(ZJbX}xmCStCYv#K3O32ej{$9IzM^I{6FJ8!(=azt7RWf4 z7ib0UOPqN40X!wOnFOoddd8`!_IN~9O)#HRTyjfc#&MCZ zZAMzOVB=;qwt8gV?{Y2?b=iSZG~RF~uyx18K)IDFLl})G1v@$(s{O4@RJ%OTJyF+Cpcx4jmy|F3euCnMK!P2WTDu5j z{{gD$=M*pH!GGzL%P)V2*ROm>!$Y=z|D`!_yY6e7SU$~a5q8?hZGgaYqaiLnkK%?0 zs#oI%;zOxF@g*@(V4p!$7dS1rOr6GVs6uYCTt2h)eB4?(&w8{#o)s#%gN@BBosRUe z)@P@8_Zm89pr~)b>e{tbPC~&_MR--iB{=)y;INU5#)@Gix-YpgP<-c2Ms{9zuCX|3 z!p(?VaXww&(w&uBHzoT%!A2=3HAP>SDxcljrego7rY|%hxy3XlODWffO_%g|l+7Y_ zqV(xbu)s4lV=l7M;f>vJl{`6qBm>#ZeMA}kXb97Z)?R97EkoI?x6Lp0yu1Z>PS?2{ z0QQ(8D)|lc9CO3B~e(pQM&5(1y&y=e>C^X$`)_&XuaI!IgDTVqt31wX#n+@!a_A0ZQkA zCJ2@M_4Gb5MfCrm5UPggeyh)8 zO9?`B0J#rkoCx(R0I!ko_2?iO@|oRf1;3r+i)w-2&j?=;NVIdPFsB)`|IC0zk6r9c zRrkfxWsiJ(#8QndNJj@{@WP2Ackr|r1VxV{7S&rSU(^)-M8gV>@UzOLXu9K<{6e{T zXJ6b92r$!|lwjhmgqkdswY&}c)KW4A)-ac%sU;2^fvq7gfUW4Bw$b!i@duy1CAxSn z(pyh$^Z=&O-q<{bZUP+$U}=*#M9uVc>CQVgDs4swy5&8RAHZ~$)hrTF4W zPsSa~qYv_0mJnF89RnnJTH`3}w4?~epFl=D(35$ zWa07ON$`OMBOHgCmfO(9RFc<)?$x)N}Jd2A(<*Ll7+4jrRt9w zwGxExUXd9VB#I|DwfxvJ;HZ8Q{37^wDhaZ%O!oO(HpcqfLH%#a#!~;Jl7F5>EX_=8 z{()l2NqPz>La3qJR;_v+wlK>GsHl;uRA8%j`A|yH@k5r%55S9{*Cp%uw6t`qc1!*T za2OeqtQj7sAp#Q~=5Fs&aCR9v>5V+s&RdNvo&H~6FJOjvaj--2sYYBvMq;55%z8^o z|BJDA4vzfow#DO#ZQHh;Oq_{r+qP{R9ox2TOgwQiv7Ow!zjN+A@BN;0tA2lUb#+zO z(^b89eV)D7UVE+h{mcNc6&GtpOqDn_?VAQ)Vob$hlFwW%xh>D#wml{t&Ofmm_d_+; zKDxzdr}`n2Rw`DtyIjrG)eD0vut$}dJAZ0AohZ+ZQdWXn_Z@dI_y=7t3q8x#pDI-K z2VVc&EGq445Rq-j0=U=Zx`oBaBjsefY;%)Co>J3v4l8V(T8H?49_@;K6q#r~Wwppc z4XW0(4k}cP=5ex>-Xt3oATZ~bBWKv)aw|I|Lx=9C1s~&b77idz({&q3T(Y(KbWO?+ zmcZ6?WeUsGk6>km*~234YC+2e6Zxdl~<_g2J|IE`GH%n<%PRv-50; zH{tnVts*S5*_RxFT9eM0z-pksIb^drUq4>QSww=u;UFCv2AhOuXE*V4z?MM`|ABOC4P;OfhS(M{1|c%QZ=!%rQTDFx`+}?Kdx$&FU?Y<$x;j7z=(;Lyz+?EE>ov!8vvMtSzG!nMie zsBa9t8as#2nH}n8xzN%W%U$#MHNXmDUVr@GX{?(=yI=4vks|V)!-W5jHsU|h_&+kY zS_8^kd3jlYqOoiI`ZqBVY!(UfnAGny!FowZWY_@YR0z!nG7m{{)4OS$q&YDyw6vC$ zm4!$h>*|!2LbMbxS+VM6&DIrL*X4DeMO!@#EzMVfr)e4Tagn~AQHIU8?e61TuhcKD zr!F4(kEebk(Wdk-?4oXM(rJwanS>Jc%<>R(siF+>+5*CqJLecP_we33iTFTXr6W^G z7M?LPC-qFHK;E!fxCP)`8rkxZyFk{EV;G-|kwf4b$c1k0atD?85+|4V%YATWMG|?K zLyLrws36p%Qz6{}>7b>)$pe>mR+=IWuGrX{3ZPZXF3plvuv5Huax86}KX*lbPVr}L z{C#lDjdDeHr~?l|)Vp_}T|%$qF&q#U;ClHEPVuS+Jg~NjC1RP=17=aQKGOcJ6B3mp z8?4*-fAD~}sX*=E6!}^u8)+m2j<&FSW%pYr_d|p_{28DZ#Cz0@NF=gC-o$MY?8Ca8 zr5Y8DSR^*urS~rhpX^05r30Ik#2>*dIOGxRm0#0YX@YQ%Mg5b6dXlS!4{7O_kdaW8PFSdj1=ryI-=5$fiieGK{LZ+SX(1b=MNL!q#lN zv98?fqqTUH8r8C7v(cx#BQ5P9W>- zmW93;eH6T`vuJ~rqtIBg%A6>q>gnWb3X!r0wh_q;211+Om&?nvYzL1hhtjB zK_7G3!n7PL>d!kj){HQE zE8(%J%dWLh1_k%gVXTZt zEdT09XSKAx27Ncaq|(vzL3gm83q>6CAw<$fTnMU05*xAe&rDfCiu`u^1)CD<>sx0i z*hr^N_TeN89G(nunZoLBf^81#pmM}>JgD@Nn1l*lN#a=B=9pN%tmvYFjFIoKe_(GF z-26x{(KXdfsQL7Uv6UtDuYwV`;8V3w>oT_I<`Ccz3QqK9tYT5ZQzbop{=I=!pMOCb zCU68`n?^DT%^&m>A%+-~#lvF!7`L7a{z<3JqIlk1$<||_J}vW1U9Y&eX<}l8##6i( zZcTT@2`9(Mecptm@{3A_Y(X`w9K0EwtPq~O!16bq{7c0f7#(3wn-^)h zxV&M~iiF!{-6A@>o;$RzQ5A50kxXYj!tcgme=Qjrbje~;5X2xryU;vH|6bE(8z^<7 zQ>BG7_c*JG8~K7Oe68i#0~C$v?-t@~@r3t2inUnLT(c=URpA9kA8uq9PKU(Ps(LVH zqgcqW>Gm?6oV#AldDPKVRcEyQIdTT`Qa1j~vS{<;SwyTdr&3*t?J)y=M7q*CzucZ&B0M=joT zBbj@*SY;o2^_h*>R0e({!QHF0=)0hOj^B^d*m>SnRrwq>MolNSgl^~r8GR#mDWGYEIJA8B<|{{j?-7p zVnV$zancW3&JVDtVpIlI|5djKq0(w$KxEFzEiiL=h5Jw~4Le23@s(mYyXWL9SX6Ot zmb)sZaly_P%BeX_9 zw&{yBef8tFm+%=--m*J|o~+Xg3N+$IH)t)=fqD+|fEk4AAZ&!wcN5=mi~Vvo^i`}> z#_3ahR}Ju)(Px7kev#JGcSwPXJ2id9%Qd2A#Uc@t8~egZ8;iC{e! z%=CGJOD1}j!HW_sgbi_8suYnn4#Ou}%9u)dXd3huFIb!ytlX>Denx@pCS-Nj$`VO&j@(z!kKSP0hE4;YIP#w9ta=3DO$7f*x zc9M4&NK%IrVmZAe=r@skWD`AEWH=g+r|*13Ss$+{c_R!b?>?UaGXlw*8qDmY#xlR= z<0XFbs2t?8i^G~m?b|!Hal^ZjRjt<@a? z%({Gn14b4-a|#uY^=@iiKH+k?~~wTj5K1A&hU z2^9-HTC)7zpoWK|$JXaBL6C z#qSNYtY>65T@Zs&-0cHeu|RX(Pxz6vTITdzJdYippF zC-EB+n4}#lM7`2Ry~SO>FxhKboIAF#Z{1wqxaCb{#yEFhLuX;Rx(Lz%T`Xo1+a2M}7D+@wol2)OJs$TwtRNJ={( zD@#zTUEE}#Fz#&(EoD|SV#bayvr&E0vzmb%H?o~46|FAcx?r4$N z&67W3mdip-T1RIxwSm_&(%U|+WvtGBj*}t69XVd&ebn>KOuL(7Y8cV?THd-(+9>G7*Nt%T zcH;`p={`SOjaf7hNd(=37Lz3-51;58JffzIPgGs_7xIOsB5p2t&@v1mKS$2D$*GQ6 zM(IR*j4{nri7NMK9xlDy-hJW6sW|ZiDRaFiayj%;(%51DN!ZCCCXz+0Vm#};70nOx zJ#yA0P3p^1DED;jGdPbQWo0WATN=&2(QybbVdhd=Vq*liDk`c7iZ?*AKEYC#SY&2g z&Q(Ci)MJ{mEat$ZdSwTjf6h~roanYh2?9j$CF@4hjj_f35kTKuGHvIs9}Re@iKMxS-OI*`0S z6s)fOtz}O$T?PLFVSeOjSO26$@u`e<>k(OSP!&YstH3ANh>)mzmKGNOwOawq-MPXe zy4xbeUAl6tamnx))-`Gi2uV5>9n(73yS)Ukma4*7fI8PaEwa)dWHs6QA6>$}7?(L8 ztN8M}?{Tf!Zu22J5?2@95&rQ|F7=FK-hihT-vDp!5JCcWrVogEnp;CHenAZ)+E+K5 z$Cffk5sNwD_?4+ymgcHR(5xgt20Z8M`2*;MzOM#>yhk{r3x=EyM226wb&!+j`W<%* zSc&|`8!>dn9D@!pYow~(DsY_naSx7(Z4i>cu#hA5=;IuI88}7f%)bRkuY2B;+9Uep zpXcvFWkJ!mQai63BgNXG26$5kyhZ2&*3Q_tk)Ii4M>@p~_~q_cE!|^A;_MHB;7s#9 zKzMzK{lIxotjc};k67^Xsl-gS!^*m*m6kn|sbdun`O?dUkJ{0cmI0-_2y=lTAfn*Y zKg*A-2sJq)CCJgY0LF-VQvl&6HIXZyxo2#!O&6fOhbHXC?%1cMc6y^*dOS{f$=137Ds1m01qs`>iUQ49JijsaQ( zksqV9@&?il$|4Ua%4!O15>Zy&%gBY&wgqB>XA3!EldQ%1CRSM(pp#k~-pkcCg4LAT zXE=puHbgsw)!xtc@P4r~Z}nTF=D2~j(6D%gTBw$(`Fc=OOQ0kiW$_RDd=hcO0t97h zb86S5r=>(@VGy1&#S$Kg_H@7G^;8Ue)X5Y+IWUi`o;mpvoV)`fcVk4FpcT|;EG!;? zHG^zrVVZOm>1KFaHlaogcWj(v!S)O(Aa|Vo?S|P z5|6b{qkH(USa*Z7-y_Uvty_Z1|B{rTS^qmEMLEYUSk03_Fg&!O3BMo{b^*`3SHvl0 zhnLTe^_vVIdcSHe)SQE}r~2dq)VZJ!aSKR?RS<(9lzkYo&dQ?mubnWmgMM37Nudwo z3Vz@R{=m2gENUE3V4NbIzAA$H1z0pagz94-PTJyX{b$yndsdKptmlKQKaaHj@3=ED zc7L?p@%ui|RegVYutK$64q4pe9+5sv34QUpo)u{1ci?)_7gXQd{PL>b0l(LI#rJmN zGuO+%GO`xneFOOr4EU(Wg}_%bhzUf;d@TU+V*2#}!2OLwg~%D;1FAu=Un>OgjPb3S z7l(riiCwgghC=Lm5hWGf5NdGp#01xQ59`HJcLXbUR3&n%P(+W2q$h2Qd z*6+-QXJ*&Kvk9ht0f0*rO_|FMBALen{j7T1l%=Q>gf#kma zQlg#I9+HB+z*5BMxdesMND`_W;q5|FaEURFk|~&{@qY32N$G$2B=&Po{=!)x5b!#n zxLzblkq{yj05#O7(GRuT39(06FJlalyv<#K4m}+vs>9@q-&31@1(QBv82{}Zkns~K ze{eHC_RDX0#^A*JQTwF`a=IkE6Ze@j#-8Q`tTT?k9`^ZhA~3eCZJ-Jr{~7Cx;H4A3 zcZ+Zj{mzFZbVvQ6U~n>$U2ZotGsERZ@}VKrgGh0xM;Jzt29%TX6_&CWzg+YYMozrM z`nutuS)_0dCM8UVaKRj804J4i%z2BA_8A4OJRQ$N(P9Mfn-gF;4#q788C@9XR0O3< zsoS4wIoyt046d+LnSCJOy@B@Uz*#GGd#+Ln1ek5Dv>(ZtD@tgZlPnZZJGBLr^JK+!$$?A_fA3LOrkoDRH&l7 zcMcD$Hsjko3`-{bn)jPL6E9Ds{WskMrivsUu5apD z?grQO@W7i5+%X&E&p|RBaEZ(sGLR@~(y^BI@lDMot^Ll?!`90KT!JXUhYS`ZgX3jnu@Ja^seA*M5R@f`=`ynQV4rc$uT1mvE?@tz)TN<=&H1%Z?5yjxcpO+6y_R z6EPuPKM5uxKpmZfT(WKjRRNHs@ib)F5WAP7QCADvmCSD#hPz$V10wiD&{NXyEwx5S z6NE`3z!IS^$s7m}PCwQutVQ#~w+V z=+~->DI*bR2j0^@dMr9`p>q^Ny~NrAVxrJtX2DUveic5vM%#N*XO|?YAWwNI$Q)_) zvE|L(L1jP@F%gOGtnlXtIv2&1i8q<)Xfz8O3G^Ea~e*HJsQgBxWL(yuLY+jqUK zRE~`-zklrGog(X}$9@ZVUw!8*=l`6mzYLtsg`AvBYz(cxmAhr^j0~(rzXdiOEeu_p zE$sf2(w(BPAvO5DlaN&uQ$4@p-b?fRs}d7&2UQ4Fh?1Hzu*YVjcndqJLw0#q@fR4u zJCJ}>_7-|QbvOfylj+e^_L`5Ep9gqd>XI3-O?Wp z-gt*P29f$Tx(mtS`0d05nHH=gm~Po_^OxxUwV294BDKT>PHVlC5bndncxGR!n(OOm znsNt@Q&N{TLrmsoKFw0&_M9$&+C24`sIXGWgQaz=kY;S{?w`z^Q0JXXBKFLj0w0U6P*+jPKyZHX9F#b0D1$&(- zrm8PJd?+SrVf^JlfTM^qGDK&-p2Kdfg?f>^%>1n8bu&byH(huaocL>l@f%c*QkX2i znl}VZ4R1en4S&Bcqw?$=Zi7ohqB$Jw9x`aM#>pHc0x z0$!q7iFu zZ`tryM70qBI6JWWTF9EjgG@>6SRzsd}3h+4D8d~@CR07P$LJ}MFsYi-*O%XVvD@yT|rJ+Mk zDllJ7$n0V&A!0flbOf)HE6P_afPWZmbhpliqJuw=-h+r;WGk|ntkWN(8tKlYpq5Ow z(@%s>IN8nHRaYb*^d;M(D$zGCv5C|uqmsDjwy4g=Lz>*OhO3z=)VD}C<65;`89Ye} zSCxrv#ILzIpEx1KdLPlM&%Cctf@FqTKvNPXC&`*H9=l=D3r!GLM?UV zOxa(8ZsB`&+76S-_xuj?G#wXBfDY@Z_tMpXJS7^mp z@YX&u0jYw2A+Z+bD#6sgVK5ZgdPSJV3>{K^4~%HV?rn~4D)*2H!67Y>0aOmzup`{D zzDp3c9yEbGCY$U<8biJ_gB*`jluz1ShUd!QUIQJ$*1;MXCMApJ^m*Fiv88RZ zFopLViw}{$Tyhh_{MLGIE2~sZ)t0VvoW%=8qKZ>h=adTe3QM$&$PO2lfqH@brt!9j ziePM8$!CgE9iz6B<6_wyTQj?qYa;eC^{x_0wuwV~W+^fZmFco-o%wsKSnjXFEx02V zF5C2t)T6Gw$Kf^_c;Ei3G~uC8SM-xyycmXyC2hAVi-IfXqhu$$-C=*|X?R0~hu z8`J6TdgflslhrmDZq1f?GXF7*ALeMmOEpRDg(s*H`4>_NAr`2uqF;k;JQ+8>A|_6ZNsNLECC%NNEb1Y1dP zbIEmNpK)#XagtL4R6BC{C5T(+=yA-(Z|Ap}U-AfZM#gwVpus3(gPn}Q$CExObJ5AC z)ff9Yk?wZ}dZ-^)?cbb9Fw#EjqQ8jxF4G3=L?Ra zg_)0QDMV1y^A^>HRI$x?Op@t;oj&H@1xt4SZ9(kifQ zb59B*`M99Td7@aZ3UWvj1rD0sE)d=BsBuW*KwkCds7ay(7*01_+L}b~7)VHI>F_!{ zyxg-&nCO?v#KOUec0{OOKy+sjWA;8rTE|Lv6I9H?CI?H(mUm8VXGwU$49LGpz&{nQp2}dinE1@lZ1iox6{ghN&v^GZv9J${7WaXj)<0S4g_uiJ&JCZ zr8-hsu`U%N;+9N^@&Q0^kVPB3)wY(rr}p7{p0qFHb3NUUHJb672+wRZs`gd1UjKPX z4o6zljKKA+Kkj?H>Ew63o%QjyBk&1!P22;MkD>sM0=z_s-G{mTixJCT9@_|*(p^bz zJ8?ZZ&;pzV+7#6Mn`_U-)k8Pjg?a;|Oe^us^PoPY$Va~yi8|?+&=y$f+lABT<*pZr zP}D{~Pq1Qyni+@|aP;ixO~mbEW9#c0OU#YbDZIaw=_&$K%Ep2f%hO^&P67hApZe`x zv8b`Mz@?M_7-)b!lkQKk)JXXUuT|B8kJlvqRmRpxtQDgvrHMXC1B$M@Y%Me!BSx3P z#2Eawl$HleZhhTS6Txm>lN_+I`>eV$&v9fOg)%zVn3O5mI*lAl>QcHuW6!Kixmq`X zBCZ*Ck6OYtDiK!N47>jxI&O2a9x7M|i^IagRr-fmrmikEQGgw%J7bO|)*$2FW95O4 zeBs>KR)izRG1gRVL;F*sr8A}aRHO0gc$$j&ds8CIO1=Gwq1%_~E)CWNn9pCtBE}+`Jelk4{>S)M)`Ll=!~gnn1yq^EX(+y*ik@3Ou0qU`IgYi3*doM+5&dU!cho$pZ zn%lhKeZkS72P?Cf68<#kll_6OAO26bIbueZx**j6o;I0cS^XiL`y+>{cD}gd%lux} z)3N>MaE24WBZ}s0ApfdM;5J_Ny}rfUyxfkC``Awo2#sgLnGPewK};dORuT?@I6(5~ z?kE)Qh$L&fwJXzK){iYx!l5$Tt|^D~MkGZPA}(o6f7w~O2G6Vvzdo*a;iXzk$B66$ zwF#;wM7A+(;uFG4+UAY(2`*3XXx|V$K8AYu#ECJYSl@S=uZW$ksfC$~qrrbQj4??z-)uz0QL}>k^?fPnJTPw% zGz)~?B4}u0CzOf@l^um}HZzbaIwPmb<)< zi_3@E9lc)Qe2_`*Z^HH;1CXOceL=CHpHS{HySy3T%<^NrWQ}G0i4e1xm_K3(+~oi$ zoHl9wzb?Z4j#90DtURtjtgvi7uw8DzHYmtPb;?%8vb9n@bszT=1qr)V_>R%s!92_` zfnHQPANx z<#hIjIMm#*(v*!OXtF+w8kLu`o?VZ5k7{`vw{Yc^qYclpUGIM_PBN1+c{#Vxv&E*@ zxg=W2W~JuV{IuRYw3>LSI1)a!thID@R=bU+cU@DbR^_SXY`MC7HOsCN z!dO4OKV7(E_Z8T#8MA1H`99?Z!r0)qKW_#|29X3#Jb+5+>qUidbeP1NJ@)(qi2S-X zao|f0_tl(O+$R|Qwd$H{_ig|~I1fbp_$NkI!0E;Y z6JrnU{1Ra6^on{9gUUB0mwzP3S%B#h0fjo>JvV~#+X0P~JV=IG=yHG$O+p5O3NUgG zEQ}z6BTp^Fie)Sg<){Z&I8NwPR(=mO4joTLHkJ>|Tnk23E(Bo`FSbPc05lF2-+)X? z6vV3*m~IBHTy*^E!<0nA(tCOJW2G4DsH7)BxLV8kICn5lu6@U*R`w)o9;Ro$i8=Q^V%uH8n3q=+Yf;SFRZu z!+F&PKcH#8cG?aSK_Tl@K9P#8o+jry@gdexz&d(Q=47<7nw@e@FFfIRNL9^)1i@;A z28+$Z#rjv-wj#heI|<&J_DiJ*s}xd-f!{J8jfqOHE`TiHHZVIA8CjkNQ_u;Ery^^t zl1I75&u^`1_q)crO+JT4rx|z2ToSC>)Or@-D zy3S>jW*sNIZR-EBsfyaJ+Jq4BQE4?SePtD2+jY8*%FsSLZ9MY>+wk?}}}AFAw)vr{ml)8LUG-y9>^t!{~|sgpxYc0Gnkg`&~R z-pilJZjr@y5$>B=VMdZ73svct%##v%wdX~9fz6i3Q-zOKJ9wso+h?VME7}SjL=!NUG{J?M&i!>ma`eoEa@IX`5G>B1(7;%}M*%-# zfhJ(W{y;>MRz!Ic8=S}VaBKqh;~7KdnGEHxcL$kA-6E~=!hrN*zw9N+_=odt<$_H_8dbo;0=42wcAETPCVGUr~v(`Uai zb{=D!Qc!dOEU6v)2eHSZq%5iqK?B(JlCq%T6av$Cb4Rko6onlG&?CqaX7Y_C_cOC3 zYZ;_oI(}=>_07}Oep&Ws7x7-R)cc8zfe!SYxJYP``pi$FDS)4Fvw5HH=FiU6xfVqIM!hJ;Rx8c0cB7~aPtNH(Nmm5Vh{ibAoU#J6 zImRCr?(iyu_4W_6AWo3*vxTPUw@vPwy@E0`(>1Qi=%>5eSIrp^`` zK*Y?fK_6F1W>-7UsB)RPC4>>Ps9)f+^MqM}8AUm@tZ->j%&h1M8s*s!LX5&WxQcAh z8mciQej@RPm?660%>{_D+7er>%zX_{s|$Z+;G7_sfNfBgY(zLB4Ey}J9F>zX#K0f6 z?dVNIeEh?EIShmP6>M+d|0wMM85Sa4diw1hrg|ITJ}JDg@o8y>(rF9mXk5M z2@D|NA)-7>wD&wF;S_$KS=eE84`BGw3g0?6wGxu8ys4rwI?9U=*^VF22t3%mbGeOh z`!O-OpF7#Vceu~F`${bW0nYVU9ecmk31V{tF%iv&5hWofC>I~cqAt@u6|R+|HLMMX zVxuSlMFOK_EQ86#E8&KwxIr8S9tj_goWtLv4f@!&h8;Ov41{J~496vp9vX=(LK#j! zAwi*21RAV-LD>9Cw3bV_9X(X3)Kr0-UaB*7Y>t82EQ%!)(&(XuAYtTsYy-dz+w=$ir)VJpe!_$ z6SGpX^i(af3{o=VlFPC);|J8#(=_8#vdxDe|Cok+ANhYwbE*FO`Su2m1~w+&9<_9~ z-|tTU_ACGN`~CNW5WYYBn^B#SwZ(t4%3aPp z;o)|L6Rk569KGxFLUPx@!6OOa+5OjQLK5w&nAmwxkC5rZ|m&HT8G%GVZxB_@ME z>>{rnXUqyiJrT(8GMj_ap#yN_!9-lO5e8mR3cJiK3NE{_UM&=*vIU`YkiL$1%kf+1 z4=jk@7EEj`u(jy$HnzE33ZVW_J4bj}K;vT?T91YlO(|Y0FU4r+VdbmQ97%(J5 zkK*Bed8+C}FcZ@HIgdCMioV%A<*4pw_n}l*{Cr4}a(lq|injK#O?$tyvyE`S%(1`H z_wwRvk#13ElkZvij2MFGOj`fhy?nC^8`Zyo%yVcUAfEr8x&J#A{|moUBAV_^f$hpaUuyQeY3da^ zS9iRgf87YBwfe}>BO+T&Fl%rfpZh#+AM?Dq-k$Bq`vG6G_b4z%Kbd&v>qFjow*mBl z-OylnqOpLg}or7_VNwRg2za3VBK6FUfFX{|TD z`Wt0Vm2H$vdlRWYQJqDmM?JUbVqL*ZQY|5&sY*?!&%P8qhA~5+Af<{MaGo(dl&C5t zE%t!J0 zh6jqANt4ABdPxSTrVV}fLsRQal*)l&_*rFq(Ez}ClEH6LHv{J#v?+H-BZ2)Wy{K@9 z+ovXHq~DiDvm>O~r$LJo!cOuwL+Oa--6;UFE2q@g3N8Qkw5E>ytz^(&($!O47+i~$ zKM+tkAd-RbmP{s_rh+ugTD;lriL~`Xwkad#;_aM?nQ7L_muEFI}U_4$phjvYgleK~`Fo`;GiC07&Hq1F<%p;9Q;tv5b?*QnR%8DYJH3P>Svmv47Y>*LPZJy8_{9H`g6kQpyZU{oJ`m%&p~D=K#KpfoJ@ zn-3cqmHsdtN!f?~w+(t+I`*7GQA#EQC^lUA9(i6=i1PqSAc|ha91I%X&nXzjYaM{8$s&wEx@aVkQ6M{E2 zfzId#&r(XwUNtPcq4Ngze^+XaJA1EK-%&C9j>^9(secqe{}z>hR5CFNveMsVA)m#S zk)_%SidkY-XmMWlVnQ(mNJ>)ooszQ#vaK;!rPmGKXV7am^_F!Lz>;~{VrIO$;!#30XRhE1QqO_~#+Ux;B_D{Nk=grn z8Y0oR^4RqtcYM)7a%@B(XdbZCOqnX#fD{BQTeLvRHd(irHKq=4*jq34`6@VAQR8WG z^%)@5CXnD_T#f%@-l${>y$tfb>2LPmc{~5A82|16mH)R?&r#KKLs7xpN-D`=&Cm^R zvMA6#Ahr<3X>Q7|-qfTY)}32HkAz$_mibYV!I)u>bmjK`qwBe(>za^0Kt*HnFbSdO z1>+ryKCNxmm^)*$XfiDOF2|{-v3KKB?&!(S_Y=Ht@|ir^hLd978xuI&N{k>?(*f8H z=ClxVJK_%_z1TH0eUwm2J+2To7FK4o+n_na)&#VLn1m;!+CX+~WC+qg1?PA~KdOlC zW)C@pw75_xoe=w7i|r9KGIvQ$+3K?L{7TGHwrQM{dCp=Z*D}3kX7E-@sZnup!BImw z*T#a=+WcTwL78exTgBn|iNE3#EsOorO z*kt)gDzHiPt07fmisA2LWN?AymkdqTgr?=loT7z@d`wnlr6oN}@o|&JX!yPzC*Y8d zu6kWlTzE1)ckyBn+0Y^HMN+GA$wUO_LN6W>mxCo!0?oiQvT`z$jbSEu&{UHRU0E8# z%B^wOc@S!yhMT49Y)ww(Xta^8pmPCe@eI5C*ed96)AX9<>))nKx0(sci8gwob_1}4 z0DIL&vsJ1_s%<@y%U*-eX z5rN&(zef-5G~?@r79oZGW1d!WaTqQn0F6RIOa9tJ=0(kdd{d1{<*tHT#cCvl*i>YY zH+L7jq8xZNcTUBqj(S)ztTU!TM!RQ}In*n&Gn<>(60G7}4%WQL!o>hbJqNDSGwl#H z`4k+twp0cj%PsS+NKaxslAEu9!#U3xT1|_KB6`h=PI0SW`P9GTa7caD1}vKEglV8# zjKZR`pluCW19c2fM&ZG)c3T3Um;ir3y(tSCJ7Agl6|b524dy5El{^EQBG?E61H0XY z`bqg!;zhGhyMFl&(o=JWEJ8n~z)xI}A@C0d2hQGvw7nGv)?POU@(kS1m=%`|+^ika zXl8zjS?xqW$WlO?Ewa;vF~XbybHBor$f<%I&*t$F5fynwZlTGj|IjZtVfGa7l&tK} zW>I<69w(cZLu)QIVG|M2xzW@S+70NinQzk&Y0+3WT*cC)rx~04O-^<{JohU_&HL5XdUKW!uFy|i$FB|EMu0eUyW;gsf`XfIc!Z0V zeK&*hPL}f_cX=@iv>K%S5kL;cl_$v?n(Q9f_cChk8Lq$glT|=e+T*8O4H2n<=NGmn z+2*h+v;kBvF>}&0RDS>)B{1!_*XuE8A$Y=G8w^qGMtfudDBsD5>T5SB;Qo}fSkkiV ze^K^M(UthkwrD!&*tTsu>Dacdj_q`~V%r_twr$(Ct&_dKeeXE?fA&4&yASJWJ*}~- zel=@W)tusynfC_YqH4ll>4Eg`Xjs5F7Tj>tTLz<0N3)X<1px_d2yUY>X~y>>93*$) z5PuNMQLf9Bu?AAGO~a_|J2akO1M*@VYN^VxvP0F$2>;Zb9;d5Yfd8P%oFCCoZE$ z4#N$^J8rxYjUE_6{T%Y>MmWfHgScpuGv59#4u6fpTF%~KB^Ae`t1TD_^Ud#DhL+Dm zbY^VAM#MrAmFj{3-BpVSWph2b_Y6gCnCAombVa|1S@DU)2r9W<> zT5L8BB^er3zxKt1v(y&OYk!^aoQisqU zH(g@_o)D~BufUXcPt!Ydom)e|aW{XiMnes2z&rE?og>7|G+tp7&^;q?Qz5S5^yd$i z8lWr4g5nctBHtigX%0%XzIAB8U|T6&JsC4&^hZBw^*aIcuNO47de?|pGXJ4t}BB`L^d8tD`H`i zqrP8?#J@8T#;{^B!KO6J=@OWKhAerih(phML`(Rg7N1XWf1TN>=Z3Do{l_!d~DND&)O)D>ta20}@Lt77qSnVsA7>)uZAaT9bsB>u&aUQl+7GiY2|dAEg@%Al3i316y;&IhQL^8fw_nwS>f60M_-m+!5)S_6EPM7Y)(Nq^8gL7(3 zOiot`6Wy6%vw~a_H?1hLVzIT^i1;HedHgW9-P#)}Y6vF%C=P70X0Tk^z9Te@kPILI z_(gk!k+0%CG)%!WnBjjw*kAKs_lf#=5HXC00s-}oM-Q1aXYLj)(1d!_a7 z*Gg4Fe6F$*ujVjI|79Z5+Pr`us%zW@ln++2l+0hsngv<{mJ%?OfSo_3HJXOCys{Ug z00*YR-(fv<=&%Q!j%b-_ppA$JsTm^_L4x`$k{VpfLI(FMCap%LFAyq;#ns5bR7V+x zO!o;c5y~DyBPqdVQX)8G^G&jWkBy2|oWTw>)?5u}SAsI$RjT#)lTV&Rf8;>u*qXnb z8F%Xb=7#$m)83z%`E;49)t3fHInhtc#kx4wSLLms!*~Z$V?bTyUGiS&m>1P(952(H zuHdv=;o*{;5#X-uAyon`hP}d#U{uDlV?W?_5UjJvf%11hKwe&(&9_~{W)*y1nR5f_ z!N(R74nNK`y8>B!0Bt_Vr!;nc3W>~RiKtGSBkNlsR#-t^&;$W#)f9tTlZz>n*+Fjz z3zXZ;jf(sTM(oDzJt4FJS*8c&;PLTW(IQDFs_5QPy+7yhi1syPCarvqrHFcf&yTy)^O<1EBx;Ir`5W{TIM>{8w&PB>ro4;YD<5LF^TjTb0!zAP|QijA+1Vg>{Afv^% zmrkc4o6rvBI;Q8rj4*=AZacy*n8B{&G3VJc)so4$XUoie0)vr;qzPZVbb<#Fc=j+8CGBWe$n|3K& z_@%?{l|TzKSlUEO{U{{%Fz_pVDxs7i9H#bnbCw7@4DR=}r_qV!Zo~CvD4ZI*+j3kO zW6_=|S`)(*gM0Z;;}nj`73OigF4p6_NPZQ-Od~e$c_);;4-7sR>+2u$6m$Gf%T{aq zle>e3(*Rt(TPD}03n5)!Ca8Pu!V}m6v0o1;5<1h$*|7z|^(3$Y&;KHKTT}hV056wuF0Xo@mK-52~r=6^SI1NC%c~CC?n>yX6wPTgiWYVz!Sx^atLby9YNn1Rk{g?|pJaxD4|9cUf|V1_I*w zzxK)hRh9%zOl=*$?XUjly5z8?jPMy%vEN)f%T*|WO|bp5NWv@B(K3D6LMl!-6dQg0 zXNE&O>Oyf%K@`ngCvbGPR>HRg5!1IV$_}m@3dWB7x3t&KFyOJn9pxRXCAzFr&%37wXG;z^xaO$ekR=LJG ztIHpY8F5xBP{mtQidqNRoz= z@){+N3(VO5bD+VrmS^YjG@+JO{EOIW)9=F4v_$Ed8rZtHvjpiEp{r^c4F6Ic#ChlC zJX^DtSK+v(YdCW)^EFcs=XP7S>Y!4=xgmv>{S$~@h=xW-G4FF9?I@zYN$e5oF9g$# zb!eVU#J+NjLyX;yb)%SY)xJdvGhsnE*JEkuOVo^k5PyS=o#vq!KD46UTW_%R=Y&0G zFj6bV{`Y6)YoKgqnir2&+sl+i6foAn-**Zd1{_;Zb7Ki=u394C5J{l^H@XN`_6XTKY%X1AgQM6KycJ+= zYO=&t#5oSKB^pYhNdzPgH~aEGW2=ec1O#s-KG z71}LOg@4UEFtp3GY1PBemXpNs6UK-ax*)#$J^pC_me;Z$Je(OqLoh|ZrW*mAMBFn< zHttjwC&fkVfMnQeen8`Rvy^$pNRFVaiEN4Pih*Y3@jo!T0nsClN)pdrr9AYLcZxZ| zJ5Wlj+4q~($hbtuY zVQ7hl>4-+@6g1i`1a)rvtp-;b0>^`Dloy(#{z~ytgv=j4q^Kl}wD>K_Y!l~ zp(_&7sh`vfO(1*MO!B%<6E_bx1)&s+Ae`O)a|X=J9y~XDa@UB`m)`tSG4AUhoM=5& znWoHlA-(z@3n0=l{E)R-p8sB9XkV zZ#D8wietfHL?J5X0%&fGg@MH~(rNS2`GHS4xTo7L$>TPme+Is~!|79=^}QbPF>m%J zFMkGzSndiPO|E~hrhCeo@&Ea{M(ieIgRWMf)E}qeTxT8Q#g-!Lu*x$v8W^M^>?-g= zwMJ$dThI|~M06rG$Sv@C@tWR>_YgaG&!BAbkGggVQa#KdtDB)lMLNVLN|51C@F^y8 zCRvMB^{GO@j=cHfmy}_pCGbP%xb{pNN>? z?7tBz$1^zVaP|uaatYaIN+#xEN4jBzwZ|YI_)p(4CUAz1ZEbDk>J~Y|63SZaak~#0 zoYKruYsWHoOlC1(MhTnsdUOwQfz5p6-D0}4;DO$B;7#M{3lSE^jnTT;ns`>!G%i*F?@pR1JO{QTuD0U+~SlZxcc8~>IB{)@8p`P&+nDxNj`*gh|u?yrv$phpQcW)Us)bi`kT%qLj(fi{dWRZ%Es2!=3mI~UxiW0$-v3vUl?#g{p6eF zMEUAqo5-L0Ar(s{VlR9g=j7+lt!gP!UN2ICMokAZ5(Agd>})#gkA2w|5+<%-CuEP# zqgcM}u@3(QIC^Gx<2dbLj?cFSws_f3e%f4jeR?4M^M3cx1f+Qr6ydQ>n)kz1s##2w zk}UyQc+Z5G-d-1}{WzjkLXgS-2P7auWSJ%pSnD|Uivj5u!xk0 z_^-N9r9o;(rFDt~q1PvE#iJZ_f>J3gcP$)SOqhE~pD2|$=GvpL^d!r z6u=sp-CrMoF7;)}Zd7XO4XihC4ji?>V&(t^?@3Q&t9Mx=qex6C9d%{FE6dvU6%d94 zIE;hJ1J)cCqjv?F``7I*6bc#X)JW2b4f$L^>j{*$R`%5VHFi*+Q$2;nyieduE}qdS{L8y8F08yLs?w}{>8>$3236T-VMh@B zq-nujsb_1aUv_7g#)*rf9h%sFj*^mIcImRV*k~Vmw;%;YH(&ylYpy!&UjUVqqtfG` zox3esju?`unJJA_zKXRJP)rA3nXc$m^{S&-p|v|-0x9LHJm;XIww7C#R$?00l&Yyj z=e}gKUOpsImwW?N)+E(awoF@HyP^EhL+GlNB#k?R<2>95hz!h9sF@U20DHSB3~WMa zk90+858r@-+vWwkawJ)8ougd(i#1m3GLN{iSTylYz$brAsP%=&m$mQQrH$g%3-^VR zE%B`Vi&m8f3T~&myTEK28BDWCVzfWir1I?03;pX))|kY5ClO^+bae z*7E?g=3g7EiisYOrE+lA)2?Ln6q2*HLNpZEWMB|O-JI_oaHZB%CvYB(%=tU= zE*OY%QY58fW#RG5=gm0NR#iMB=EuNF@)%oZJ}nmm=tsJ?eGjia{e{yuU0l3{d^D@)kVDt=1PE)&tf_hHC%0MB znL|CRCPC}SeuVTdf>-QV70`0(EHizc21s^sU>y%hW0t!0&y<7}Wi-wGy>m%(-jsDj zP?mF|>p_K>liZ6ZP(w5(|9Ga%>tLgb$|doDDfkdW>Z z`)>V2XC?NJT26mL^@ zf+IKr27TfM!UbZ@?zRddC7#6ss1sw%CXJ4FWC+t3lHZupzM77m^=9 z&(a?-LxIq}*nvv)y?27lZ{j zifdl9hyJudyP2LpU$-kXctshbJDKS{WfulP5Dk~xU4Le4c#h^(YjJit4#R8_khheS z|8(>2ibaHES4+J|DBM7I#QF5u-*EdN{n=Kt@4Zt?@Tv{JZA{`4 zU#kYOv{#A&gGPwT+$Ud}AXlK3K7hYzo$(fBSFjrP{QQ zeaKg--L&jh$9N}`pu{Bs>?eDFPaWY4|9|foN%}i;3%;@4{dc+iw>m}{3rELqH21G! z`8@;w-zsJ1H(N3%|1B@#ioLOjib)j`EiJqPQVSbPSPVHCj6t5J&(NcWzBrzCiDt{4 zdlPAUKldz%6x5II1H_+jv)(xVL+a;P+-1hv_pM>gMRr%04@k;DTokASSKKhU1Qms| zrWh3a!b(J3n0>-tipg{a?UaKsP7?+|@A+1WPDiQIW1Sf@qDU~M_P65_s}7(gjTn0X zucyEm)o;f8UyshMy&>^SC3I|C6jR*R_GFwGranWZe*I>K+0k}pBuET&M~ z;Odo*ZcT?ZpduHyrf8E%IBFtv;JQ!N_m>!sV6ly$_1D{(&nO~w)G~Y`7sD3#hQk%^ zp}ucDF_$!6DAz*PM8yE(&~;%|=+h(Rn-=1Wykas_-@d&z#=S}rDf`4w(rVlcF&lF! z=1)M3YVz7orwk^BXhslJ8jR);sh^knJW(Qmm(QdSgIAIdlN4Te5KJisifjr?eB{FjAX1a0AB>d?qY4Wx>BZ8&}5K0fA+d{l8 z?^s&l8#j7pR&ijD?0b%;lL9l$P_mi2^*_OL+b}4kuLR$GAf85sOo02?Y#90}CCDiS zZ%rbCw>=H~CBO=C_JVV=xgDe%b4FaEFtuS7Q1##y686r%F6I)s-~2(}PWK|Z8M+Gu zl$y~5@#0Ka%$M<&Cv%L`a8X^@tY&T7<0|(6dNT=EsRe0%kp1Qyq!^43VAKYnr*A5~ zsI%lK1ewqO;0TpLrT9v}!@vJK{QoVa_+N4FYT#h?Y8rS1S&-G+m$FNMP?(8N`MZP zels(*?kK{{^g9DOzkuZXJ2;SrOQsp9T$hwRB1(phw1c7`!Q!by?Q#YsSM#I12RhU{$Q+{xj83axHcftEc$mNJ8_T7A-BQc*k(sZ+~NsO~xAA zxnbb%dam_fZlHvW7fKXrB~F&jS<4FD2FqY?VG?ix*r~MDXCE^WQ|W|WM;gsIA4lQP zJ2hAK@CF*3*VqPr2eeg6GzWFlICi8S>nO>5HvWzyZTE)hlkdC_>pBej*>o0EOHR|) z$?};&I4+_?wvL*g#PJ9)!bc#9BJu1(*RdNEn>#Oxta(VWeM40ola<0aOe2kSS~{^P zDJBd}0L-P#O-CzX*%+$#v;(x%<*SPgAje=F{Zh-@ucd2DA(yC|N_|ocs*|-!H%wEw z@Q!>siv2W;C^^j^59OAX03&}&D*W4EjCvfi(ygcL#~t8XGa#|NPO+*M@Y-)ctFA@I z-p7npT1#5zOLo>7q?aZpCZ=iecn3QYklP;gF0bq@>oyBq94f6C=;Csw3PkZ|5q=(c zfs`aw?II0e(h=|7o&T+hq&m$; zBrE09Twxd9BJ2P+QPN}*OdZ-JZV7%av@OM7v!!NL8R;%WFq*?{9T3{ct@2EKgc8h) zMxoM$SaF#p<`65BwIDfmXG6+OiK0e)`I=!A3E`+K@61f}0e z!2a*FOaDrOe>U`q%K!QN`&=&0C~)CaL3R4VY(NDt{Xz(Xpqru5=r#uQN1L$Je1*dkdqQ*=lofQaN%lO!<5z9ZlHgxt|`THd>2 zsWfU$9=p;yLyJyM^t zS2w9w?Bpto`@H^xJpZDKR1@~^30Il6oFGfk5%g6w*C+VM)+%R@gfIwNprOV5{F^M2 zO?n3DEzpT+EoSV-%OdvZvNF+pDd-ZVZ&d8 zKeIyrrfPN=EcFRCPEDCVflX#3-)Ik_HCkL(ejmY8vzcf-MTA{oHk!R2*36`O68$7J zf}zJC+bbQk--9Xm!u#lgLvx8TXx2J258E5^*IZ(FXMpq$2LUUvhWQPs((z1+2{Op% z?J}9k5^N=z;7ja~zi8a_-exIqWUBJwohe#4QJ`|FF*$C{lM18z^#hX6!5B8KAkLUX ziP=oti-gpV(BsLD{0(3*dw}4JxK23Y7M{BeFPucw!sHpY&l%Ws4pSm`+~V7;bZ%Dx zeI)MK=4vC&5#;2MT7fS?^ch9?2;%<8Jlu-IB&N~gg8t;6S-#C@!NU{`p7M8@2iGc& zg|JPg%@gCoCQ&s6JvDU&`X2S<57f(k8nJ1wvBu{8r?;q3_kpZZ${?|( z+^)UvR33sjSd)aT!UPkA;ylO6{aE3MQa{g%Mcf$1KONcjO@&g5zPHWtzM1rYC{_K> zgQNcs<{&X{OA=cEWw5JGqpr0O>x*Tfak2PE9?FuWtz^DDNI}rwAaT0(bdo-<+SJ6A z&}S%boGMWIS0L}=S>|-#kRX;e^sUsotry(MjE|3_9duvfc|nwF#NHuM-w7ZU!5ei8 z6Mkf>2)WunY2eU@C-Uj-A zG(z0Tz2YoBk>zCz_9-)4a>T46$(~kF+Y{#sA9MWH%5z#zNoz)sdXq7ZR_+`RZ%0(q zC7&GyS_|BGHNFl8Xa%@>iWh%Gr?=J5<(!OEjauj5jyrA-QXBjn0OAhJJ9+v=!LK`` z@g(`^*84Q4jcDL`OA&ZV60djgwG`|bcD*i50O}Q{9_noRg|~?dj%VtKOnyRs$Uzqg z191aWoR^rDX#@iSq0n z?9Sg$WSRPqSeI<}&n1T3!6%Wj@5iw5`*`Btni~G=&;J+4`7g#OQTa>u`{4ZZ(c@s$ zK0y;ySOGD-UTjREKbru{QaS>HjN<2)R%Nn-TZiQ(Twe4p@-saNa3~p{?^V9Nixz@a zykPv~<@lu6-Ng9i$Lrk(xi2Tri3q=RW`BJYOPC;S0Yly%77c727Yj-d1vF!Fuk{Xh z)lMbA69y7*5ufET>P*gXQrxsW+ zz)*MbHZv*eJPEXYE<6g6_M7N%#%mR{#awV3i^PafNv(zyI)&bH?F}2s8_rR(6%!V4SOWlup`TKAb@ee>!9JKPM=&8g#BeYRH9FpFybxBXQI2|g}FGJfJ+ zY-*2hB?o{TVL;Wt_ek;AP5PBqfDR4@Z->_182W z{P@Mc27j6jE*9xG{R$>6_;i=y{qf(c`5w9fa*`rEzX6t!KJ(p1H|>J1pC-2zqWENF zmm=Z5B4u{cY2XYl(PfrInB*~WGWik3@1oRhiMOS|D;acnf-Bs(QCm#wR;@Vf!hOPJ zgjhDCfDj$HcyVLJ=AaTbQ{@vIv14LWWF$=i-BDoC11}V;2V8A`S>_x)vIq44-VB-v z*w-d}$G+Ql?En8j!~ZkCpQ$|cA0|+rrY>tiCeWxkRGPoarxlGU2?7%k#F693RHT24 z-?JsiXlT2PTqZqNb&sSc>$d;O4V@|b6VKSWQb~bUaWn1Cf0+K%`Q&Wc<>mQ>*iEGB zbZ;aYOotBZ{vH3y<0A*L0QVM|#rf*LIsGx(O*-7)r@yyBIzJnBFSKBUSl1e|8lxU* zzFL+YDVVkIuzFWeJ8AbgN&w(4-7zbiaMn{5!JQXu)SELk*CNL+Fro|2v|YO)1l15t zs(0^&EB6DPMyaqvY>=KL>)tEpsn;N5Q#yJj<9}ImL((SqErWN3Q=;tBO~ExTCs9hB z2E$7eN#5wX4<3m^5pdjm#5o>s#eS_Q^P)tm$@SawTqF*1dj_i#)3};JslbLKHXl_N z)Fxzf>FN)EK&Rz&*|6&%Hs-^f{V|+_vL1S;-1K-l$5xiC@}%uDuwHYhmsV?YcOUlk zOYkG5v2+`+UWqpn0aaaqrD3lYdh0*!L`3FAsNKu=Q!vJu?Yc8n|CoYyDo_`r0mPoo z8>XCo$W4>l(==h?2~PoRR*kEe)&IH{1sM41mO#-36`02m#nTX{r*r`Q5rZ2-sE|nA zhnn5T#s#v`52T5|?GNS`%HgS2;R(*|^egNPDzzH_z^W)-Q98~$#YAe)cEZ%vge965AS_am#DK#pjPRr-!^za8>`kksCAUj(Xr*1NW5~e zpypt_eJpD&4_bl_y?G%>^L}=>xAaV>KR6;^aBytqpiHe%!j;&MzI_>Sx7O%F%D*8s zSN}cS^<{iiK)=Ji`FpO#^zY!_|D)qeRNAtgmH)m;qC|mq^j(|hL`7uBz+ULUj37gj zksdbnU+LSVo35riSX_4z{UX=%n&}7s0{WuZYoSfwAP`8aKN9P@%e=~1`~1ASL-z%# zw>DO&ixr}c9%4InGc*_y42bdEk)ZdG7-mTu0bD@_vGAr*NcFoMW;@r?@LUhRI zCUJgHb`O?M3!w)|CPu~ej%fddw20lod?Ufp8Dmt0PbnA0J%KE^2~AIcnKP()025V> zG>noSM3$5Btmc$GZoyP^v1@Poz0FD(6YSTH@aD0}BXva?LphAiSz9f&Y(aDAzBnUh z?d2m``~{z;{}kZJ>a^wYI?ry(V9hIoh;|EFc0*-#*`$T0DRQ1;WsqInG;YPS+I4{g zJGpKk%%Sdc5xBa$Q^_I~(F97eqDO7AN3EN0u)PNBAb+n+ zWBTxQx^;O9o0`=g+Zrt_{lP!sgWZHW?8bLYS$;1a@&7w9rD9|Ge;Gb?sEjFoF9-6v z#!2)t{DMHZ2@0W*fCx;62d#;jouz`R5Y(t{BT=$N4yr^^o$ON8d{PQ=!O zX17^CrdM~7D-;ZrC!||<+FEOxI_WI3CA<35va%4v>gc zEX-@h8esj=a4szW7x{0g$hwoWRQG$yK{@3mqd-jYiVofJE!Wok1* znV7Gm&Ssq#hFuvj1sRyHg(6PFA5U*Q8Rx>-blOs=lb`qa{zFy&n4xY;sd$fE+<3EI z##W$P9M{B3c3Si9gw^jlPU-JqD~Cye;wr=XkV7BSv#6}DrsXWFJ3eUNrc%7{=^sP> zrp)BWKA9<}^R9g!0q7yWlh;gr_TEOD|#BmGq<@IV;ueg+D2}cjpp+dPf&Q(36sFU&K8}hA85U61faW&{ zlB`9HUl-WWCG|<1XANN3JVAkRYvr5U4q6;!G*MTdSUt*Mi=z_y3B1A9j-@aK{lNvx zK%p23>M&=KTCgR!Ee8c?DAO2_R?B zkaqr6^BSP!8dHXxj%N1l+V$_%vzHjqvu7p@%Nl6;>y*S}M!B=pz=aqUV#`;h%M0rU zHfcog>kv3UZAEB*g7Er@t6CF8kHDmKTjO@rejA^ULqn!`LwrEwOVmHx^;g|5PHm#B zZ+jjWgjJ!043F+&#_;D*mz%Q60=L9Ove|$gU&~As5^uz@2-BfQ!bW)Khn}G+Wyjw- z19qI#oB(RSNydn0t~;tAmK!P-d{b-@@E5|cdgOS#!>%#Rj6ynkMvaW@37E>@hJP^8 z2zk8VXx|>#R^JCcWdBCy{0nPmYFOxN55#^-rlqobe0#L6)bi?E?SPymF*a5oDDeSd zO0gx?#KMoOd&G(2O@*W)HgX6y_aa6iMCl^~`{@UR`nMQE`>n_{_aY5nA}vqU8mt8H z`oa=g0SyiLd~BxAj2~l$zRSDHxvDs;I4>+M$W`HbJ|g&P+$!U7-PHX4RAcR0szJ*( ze-417=bO2q{492SWrqDK+L3#ChUHtz*@MP)e^%@>_&#Yk^1|tv@j4%3T)diEX zATx4K*hcO`sY$jk#jN5WD<=C3nvuVsRh||qDHnc~;Kf59zr0;c7VkVSUPD%NnnJC_ zl3F^#f_rDu8l}l8qcAz0FFa)EAt32IUy_JLIhU_J^l~FRH&6-ivSpG2PRqzDdMWft>Zc(c)#tb%wgmWN%>IOPm zZi-noqS!^Ftb81pRcQi`X#UhWK70hy4tGW1mz|+vI8c*h@ zfFGJtW3r>qV>1Z0r|L>7I3un^gcep$AAWfZHRvB|E*kktY$qQP_$YG60C@X~tTQjB3%@`uz!qxtxF+LE!+=nrS^07hn` zEgAp!h|r03h7B!$#OZW#ACD+M;-5J!W+{h|6I;5cNnE(Y863%1(oH}_FTW})8zYb$7czP zg~Szk1+_NTm6SJ0MS_|oSz%e(S~P-&SFp;!k?uFayytV$8HPwuyELSXOs^27XvK-D zOx-Dl!P|28DK6iX>p#Yb%3`A&CG0X2S43FjN%IB}q(!hC$fG}yl1y9W&W&I@KTg6@ zK^kpH8=yFuP+vI^+59|3%Zqnb5lTDAykf z9S#X`3N(X^SpdMyWQGOQRjhiwlj!0W-yD<3aEj^&X%=?`6lCy~?`&WSWt z?U~EKFcCG_RJ(Qp7j=$I%H8t)Z@6VjA#>1f@EYiS8MRHZphp zMA_5`znM=pzUpBPO)pXGYpQ6gkine{6u_o!P@Q+NKJ}k!_X7u|qfpAyIJb$_#3@wJ z<1SE2Edkfk9C!0t%}8Yio09^F`YGzpaJHGk*-ffsn85@)%4@`;Fv^8q(-Wk7r=Q8p zT&hD`5(f?M{gfzGbbwh8(}G#|#fDuk7v1W)5H9wkorE0ZZjL0Q1=NRGY>zwgfm81DdoaVwNH;or{{eSyybt)m<=zXoA^RALYG-2t zouH|L*BLvmm9cdMmn+KGopyR@4*=&0&4g|FLoreZOhRmh=)R0bg~ zT2(8V_q7~42-zvb)+y959OAv!V$u(O3)%Es0M@CRFmG{5sovIq4%8Ahjk#*5w{+)+ zMWQoJI_r$HxL5km1#6(e@{lK3Udc~n0@g`g$s?VrnQJ$!oPnb?IHh-1qA`Rz$)Ai< z6w$-MJW-gKNvOhL+XMbE7&mFt`x1KY>k4(!KbbpZ`>`K@1J<(#vVbjx@Z@(6Q}MF# zMnbr-f55(cTa^q4+#)=s+ThMaV~E`B8V=|W_fZWDwiso8tNMTNse)RNBGi=gVwgg% zbOg8>mbRN%7^Um-7oj4=6`$|(K7!+t^90a{$18Z>}<#!bm%ZEFQ{X(yBZMc>lCz0f1I2w9Sq zuGh<9<=AO&g6BZte6hn>Qmvv;Rt)*cJfTr2=~EnGD8P$v3R|&1RCl&7)b+`=QGapi zPbLg_pxm`+HZurtFZ;wZ=`Vk*do~$wB zxoW&=j0OTbQ=Q%S8XJ%~qoa3Ea|au5o}_(P;=!y-AjFrERh%8la!z6Fn@lR?^E~H12D?8#ht=1F;7@o4$Q8GDj;sSC%Jfn01xgL&%F2 zwG1|5ikb^qHv&9hT8w83+yv&BQXOQyMVJSBL(Ky~p)gU3#%|blG?IR9rP^zUbs7rOA0X52Ao=GRt@C&zlyjNLv-} z9?*x{y(`509qhCV*B47f2hLrGl^<@SuRGR!KwHei?!CM10Tq*YDIoBNyRuO*>3FU? zHjipIE#B~y3FSfOsMfj~F9PNr*H?0oHyYB^G(YyNh{SxcE(Y-`x5jFMKb~HO*m+R% zrq|ic4fzJ#USpTm;X7K+E%xsT_3VHKe?*uc4-FsILUH;kL>_okY(w`VU*8+l>o>Jm ziU#?2^`>arnsl#)*R&nf_%>A+qwl%o{l(u)M?DK1^mf260_oteV3#E_>6Y4!_hhVD zM8AI6MM2V*^_M^sQ0dmHu11fy^kOqXqzpr?K$`}BKWG`=Es(9&S@K@)ZjA{lj3ea7_MBP zk(|hBFRjHVMN!sNUkrB;(cTP)T97M$0Dtc&UXSec<+q?y>5=)}S~{Z@ua;1xt@=T5 zI7{`Z=z_X*no8s>mY;>BvEXK%b`a6(DTS6t&b!vf_z#HM{Uoy_5fiB(zpkF{})ruka$iX*~pq1ZxD?q68dIo zIZSVls9kFGsTwvr4{T_LidcWtt$u{kJlW7moRaH6+A5hW&;;2O#$oKyEN8kx`LmG)Wfq4ykh+q{I3|RfVpkR&QH_x;t41Uw z`P+tft^E2B$domKT@|nNW`EHwyj>&}K;eDpe z1bNOh=fvIfk`&B61+S8ND<(KC%>y&?>opCnY*r5M+!UrWKxv0_QvTlJc>X#AaI^xo zaRXL}t5Ej_Z$y*|w*$6D+A?Lw-CO-$itm^{2Ct82-<0IW)0KMNvJHgBrdsIR0v~=H z?n6^}l{D``Me90`^o|q!olsF?UX3YSq^6Vu>Ijm>>PaZI8G@<^NGw{Cx&%|PwYrfw zR!gX_%AR=L3BFsf8LxI|K^J}deh0ZdV?$3r--FEX`#INxsOG6_=!v)DI>0q|BxT)z z-G6kzA01M?rba+G_mwNMQD1mbVbNTWmBi*{s_v_Ft9m2Avg!^78(QFu&n6mbRJ2bA zv!b;%yo{g*9l2)>tsZJOOp}U~8VUH`}$ z8p_}t*XIOehezolNa-a2x0BS})Y9}&*TPgua{Ewn-=wVrmJUeU39EKx+%w%=ixQWK zDLpwaNJs65#6o7Ln7~~X+p_o2BR1g~VCfxLzxA{HlWAI6^H;`juI=&r1jQrUv_q0Z z1Ja-tjdktrrP>GOC*#p?*xfQU5MqjMsBe!9lh(u8)w$e@Z|>aUHI5o;MGw*|Myiz3 z-f0;pHg~Q#%*Kx8MxH%AluVXjG2C$)WL-K63@Q`#y9_k_+}eR(x4~dp7oV-ek0H>I zgy8p#i4GN{>#v=pFYUQT(g&b$OeTy-X_#FDgNF8XyfGY6R!>inYn8IR2RDa&O!(6< znXs{W!bkP|s_YI*Yx%4stI`=ZO45IK6rBs`g7sP40ic}GZ58s?Mc$&i`kq_tfci>N zIHrC0H+Qpam1bNa=(`SRKjixBTtm&e`j9porEci!zdlg1RI0Jw#b(_Tb@RQK1Zxr_ z%7SUeH6=TrXt3J@js`4iDD0=IoHhK~I7^W8^Rcp~Yaf>2wVe|Hh1bUpX9ATD#moByY57-f2Ef1TP^lBi&p5_s7WGG9|0T}dlfxOx zXvScJO1Cnq`c`~{Dp;{;l<-KkCDE+pmexJkd}zCgE{eF=)K``-qC~IT6GcRog_)!X z?fK^F8UDz$(zFUrwuR$qro5>qqn>+Z%<5>;_*3pZ8QM|yv9CAtrAx;($>4l^_$_-L z*&?(77!-=zvnCVW&kUcZMb6;2!83si518Y%R*A3JZ8Is|kUCMu`!vxDgaWjs7^0j( ziTaS4HhQ)ldR=r)_7vYFUr%THE}cPF{0H45FJ5MQW^+W>P+eEX2kLp3zzFe*-pFVA zdDZRybv?H|>`9f$AKVjFWJ=wegO7hOOIYCtd?Vj{EYLT*^gl35|HQ`R=ti+ADm{jyQE7K@kdjuqJhWVSks>b^ zxha88-h3s;%3_5b1TqFCPTxVjvuB5U>v=HyZ$?JSk+&I%)M7KE*wOg<)1-Iy)8-K! z^XpIt|0ibmk9RtMmlUd7#Ap3Q!q9N4atQy)TmrhrFhfx1DAN`^vq@Q_SRl|V z#lU<~n67$mT)NvHh`%als+G-)x1`Y%4Bp*6Un5Ri9h=_Db zA-AdP!f>f0m@~>7X#uBM?diI@)Egjuz@jXKvm zJo+==juc9_<;CqeRaU9_Mz@;3e=E4=6TK+c`|uu#pIqhSyNm`G(X)&)B`8q0RBv#> z`gGlw(Q=1Xmf55VHj%C#^1lpc>LY8kfA@|rlC1EA<1#`iuyNO z(=;irt{_&K=i4)^x%;U(Xv<)+o=dczC5H3W~+e|f~{*ucxj@{Yi-cw^MqYr3fN zF5D+~!wd$#al?UfMnz(@K#wn`_5na@rRr8XqN@&M&FGEC@`+OEv}sI1hw>Up0qAWf zL#e4~&oM;TVfjRE+10B_gFlLEP9?Q-dARr3xi6nQqnw>k-S;~b z;!0s2VS4}W8b&pGuK=7im+t(`nz@FnT#VD|!)eQNp-W6)@>aA+j~K*H{$G`y2|QHY z|Hmy+CR@#jWY4~)lr1qBJB_RfHJFfP<}pK5(#ZZGSqcpyS&}01LnTWk5fzmXMGHkJ zTP6L^B+uj;lmB_W<~4=${+v0>z31M!-_O@o-O9GyW)j_mjx}!0@br_LE-7SIuPP84 z;5=O(U*g_um0tyG|61N@d9lEuOeiRd+#NY^{nd5;-CVlw&Ap7J?qwM^?E29wvS}2d zbzar4Fz&RSR(-|s!Z6+za&Z zY#D<5q_JUktIzvL0)yq_kLWG6DO{ri=?c!y!f(Dk%G{8)k`Gym%j#!OgXVDD3;$&v@qy#ISJfp=Vm>pls@9-mapVQChAHHd-x+OGx)(*Yr zC1qDUTZ6mM(b_hi!TuFF2k#8uI2;kD70AQ&di$L*4P*Y-@p`jdm%_c3f)XhYD^6M8&#Y$ZpzQMcR|6nsH>b=*R_Von!$BTRj7yGCXokoAQ z&ANvx0-Epw`QIEPgI(^cS2f(Y85yV@ygI{ewyv5Frng)e}KCZF7JbR(&W618_dcEh(#+^zZFY;o<815<5sOHQdeax9_!PyM&;{P zkBa5xymca0#)c#tke@3KNEM8a_mT&1gm;p&&JlMGH(cL(b)BckgMQ^9&vRwj!~3@l zY?L5}=Jzr080OGKb|y`ee(+`flQg|!lo6>=H)X4`$Gz~hLmu2a%kYW_Uu8x09Pa0J zKZ`E$BKJ=2GPj_3l*TEcZ*uYRr<*J^#5pILTT;k_cgto1ZL-%slyc16J~OH-(RgDA z%;EjEnoUkZ&acS{Q8`{i6T5^nywgqQI5bDIymoa7CSZG|WWVk>GM9)zy*bNih|QIm z%0+(Nnc*a_xo;$=!HQYaapLms>J1ToyjtFByY`C2H1wT#178#4+|{H0BBqtCdd$L% z_3Hc60j@{t9~MjM@LBalR&6@>B;9?r<7J~F+WXyYu*y3?px*=8MAK@EA+jRX8{CG?GI-< z54?Dc9CAh>QTAvyOEm0^+x;r2BWX|{3$Y7)L5l*qVE*y0`7J>l2wCmW zL1?|a`pJ-l{fb_N;R(Z9UMiSj6pQjOvQ^%DvhIJF!+Th7jO2~1f1N+(-TyCFYQZYw z4)>7caf^Ki_KJ^Zx2JUb z&$3zJy!*+rCV4%jqwyuNY3j1ZEiltS0xTzd+=itTb;IPYpaf?8Y+RSdVdpacB(bVQ zC(JupLfFp8y43%PMj2}T|VS@%LVp>hv4Y!RPMF?pp8U_$xCJ)S zQx!69>bphNTIb9yn*_yfj{N%bY)t{L1cs8<8|!f$;UQ*}IN=2<6lA;x^(`8t?;+ST zh)z4qeYYgZkIy{$4x28O-pugO&gauRh3;lti9)9Pvw+^)0!h~%m&8Q!AKX%urEMnl z?yEz?g#ODn$UM`+Q#$Q!6|zsq_`dLO5YK-6bJM6ya>}H+vnW^h?o$z;V&wvuM$dR& zeEq;uUUh$XR`TWeC$$c&Jjau2it3#%J-y}Qm>nW*s?En?R&6w@sDXMEr#8~$=b(gk zwDC3)NtAP;M2BW_lL^5ShpK$D%@|BnD{=!Tq)o(5@z3i7Z){} zGr}Exom_qDO{kAVkZ*MbLNHE666Kina#D{&>Jy%~w7yX$oj;cYCd^p9zy z8*+wgSEcj$4{WxKmCF(5o7U4jqwEvO&dm1H#7z}%VXAbW&W24v-tS6N3}qrm1OnE)fUkoE8yMMn9S$?IswS88tQWm4#Oid#ckgr6 zRtHm!mfNl-`d>O*1~d7%;~n+{Rph6BBy^95zqI{K((E!iFQ+h*C3EsbxNo_aRm5gj zKYug($r*Q#W9`p%Bf{bi6;IY0v`pB^^qu)gbg9QHQ7 zWBj(a1YSu)~2RK8Pi#C>{DMlrqFb9e_RehEHyI{n?e3vL_}L>kYJC z_ly$$)zFi*SFyNrnOt(B*7E$??s67EO%DgoZL2XNk8iVx~X_)o++4oaK1M|ou73vA0K^503j@uuVmLcHH4ya-kOIDfM%5%(E z+Xpt~#7y2!KB&)PoyCA+$~DXqxPxxALy!g-O?<9+9KTk4Pgq4AIdUkl`1<1#j^cJg zgU3`0hkHj_jxV>`Y~%LAZl^3o0}`Sm@iw7kwff{M%VwtN)|~!p{AsfA6vB5UolF~d zHWS%*uBDt<9y!9v2Xe|au&1j&iR1HXCdyCjxSgG*L{wmTD4(NQ=mFjpa~xooc6kju z`~+d{j7$h-;HAB04H!Zscu^hZffL#9!p$)9>sRI|Yovm)g@F>ZnosF2EgkU3ln0bR zTA}|+E(tt)!SG)-bEJi_0m{l+(cAz^pi}`9=~n?y&;2eG;d9{M6nj>BHGn(KA2n|O zt}$=FPq!j`p&kQ8>cirSzkU0c08%8{^Qyqi-w2LoO8)^E7;;I1;HQ6B$u0nNaX2CY zSmfi)F`m94zL8>#zu;8|{aBui@RzRKBlP1&mfFxEC@%cjl?NBs`cr^nm){>;$g?rhKr$AO&6qV_Wbn^}5tfFBry^e1`%du2~o zs$~dN;S_#%iwwA_QvmMjh%Qo?0?rR~6liyN5Xmej8(*V9ym*T`xAhHih-v$7U}8=dfXi2i*aAB!xM(Xekg*ix@r|ymDw*{*s0?dlVys2e)z62u1 z+k3esbJE=-P5S$&KdFp+2H7_2e=}OKDrf( z9-207?6$@f4m4B+9E*e((Y89!q?zH|mz_vM>kp*HGXldO0Hg#!EtFhRuOm$u8e~a9 z5(roy7m$Kh+zjW6@zw{&20u?1f2uP&boD}$#Zy)4o&T;vyBoqFiF2t;*g=|1=)PxB z8eM3Mp=l_obbc?I^xyLz?4Y1YDWPa+nm;O<$Cn;@ane616`J9OO2r=rZr{I_Kizyc zP#^^WCdIEp*()rRT+*YZK>V@^Zs=ht32x>Kwe zab)@ZEffz;VM4{XA6e421^h~`ji5r%)B{wZu#hD}f3$y@L0JV9f3g{-RK!A?vBUA}${YF(vO4)@`6f1 z-A|}e#LN{)(eXloDnX4Vs7eH|<@{r#LodP@Nz--$Dg_Par%DCpu2>2jUnqy~|J?eZ zBG4FVsz_A+ibdwv>mLp>P!(t}E>$JGaK$R~;fb{O3($y1ssQQo|5M;^JqC?7qe|hg zu0ZOqeFcp?qVn&Qu7FQJ4hcFi&|nR!*j)MF#b}QO^lN%5)4p*D^H+B){n8%VPUzi! zDihoGcP71a6!ab`l^hK&*dYrVYzJ0)#}xVrp!e;lI!+x+bfCN0KXwUAPU9@#l7@0& QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..69a9715 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..744e882 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..af117f8 --- /dev/null +++ b/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Mon Jun 13 17:38:46 CEST 2022 +sdk.dir=/Users/killian/Library/Android/sdk diff --git a/out/production/CYG/fr/gravencyg/CYG.class b/out/production/CYG/fr/gravencyg/CYG.class new file mode 100644 index 0000000000000000000000000000000000000000..211c466b8d97af6e0064b02af13c1dcfa09ca6f8 GIT binary patch literal 11108 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/ConditionAction.class b/out/production/CYG/fr/gravencyg/actions/basic/ConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..d9cc3ca9197b8cb99f0542995f2742c293cd2553 GIT binary patch literal 3357 zcmai1X?GMw6up&9(#fPD7$RfJ@8TkFw|>lF+}Q7aeQaD$v}ufq=cyipD}N%77)+}wa$aBCDA(zVC` zA|U_CRYne3xvAG<7jhDEcN7NpL@@+Y4#RTSio!-dioI|e;KGwbLBU7^;<&92x6AEO zIo#2JJ8@SOcjF$pcW)i`$;EvVeZPYH6+9qN>u6Ti9u{ay?a@ZGWWh7c&y z=<~i$67Q7$GJfApftH|B&~<@XCG@hV0_TL^JzX>c4Qbo+>|sBAWoYQ}Bq2NAZ}7Bpw%-GnI!@ z{)CG2uu@>YzZpn!SHUo|x})Gp6;I)570=*V9`nXsiB>s(PQ~+Bt>OhdEwE%zcZ^+z z?!;XqzPF&8{LSpPT|KV5UVOyS3kD;^$91-HqopH=fljH*T)b_ZE!29#>Js5f$HJwSsXK-{Gi&?^XPO zV=9j034ybHfRcII(5;i~Pv9*TKjMHuTd0yM?3=d!1Qt%KT%y0g+yFT%%pe^@Hh~hL zo1v}ByC;}05DO{D`^Zgpr}PosWKpDg2YXYi=v0`*K`rv~{Aq5h84Tn_R-KSzb0C`T z-I~{Jo3=wbb)~NF6_^(+gNbcft6DyLWIj{|kj3eM@?WJ2ciehg?alDHeC1UB4KSJ-Gte1WrOXdJCON}hBV9EUBXWN^t$2B-9~ ze11Ker}?bx;tej(eRP{`nWFek=c^HgbnwMN_X_TJ1=Q&&zii2C?H=l zw&k(Wy4UKXe!ri*X)8o#kktegSbiFsmksDc1+?T&xtvay7S*mjxmDXvy(h_xIKrFfb)$4?5rt=t#&tj}y7R#WJ(;aP{>r!GH|ND%5kWQ{q6%Dw)n)W`v=>tMC~66+jG?ZG`le_R4MnJ5 zai@e|>uW9aan+JV8CPJ<3}~|?+U)7k;?tsa;_{Mj;twc{2O`!njz+-_HfMG-&LG&_ zHIYeCqc5n5MT%%1$C(1ZB628JQ(28+-Us-y?HkN5qNTlv*sC}&xmvKMwye5PusbeV zqr{Y7urF3y#91+A9A{Uthwq(OF0R4}#M{TQqzbR$qW1EkHJ!r%V@eTA8LfOSD+N4` zbD7g3mXBkFz=udo7$jyen2dy`tp~AaQZRuJ#k4G&bnzwf^pW1tLVpEQHu?@n)F?Uzp;_C8eBuKS`hgcs}x+z|Nr781t|r6 O|6o}waW?q`+x$NaOn~?R literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/DropItemAction.class b/out/production/CYG/fr/gravencyg/actions/basic/DropItemAction.class new file mode 100644 index 0000000000000000000000000000000000000000..40c55c87587163062757fcc711d03a5b43fa222e GIT binary patch literal 3658 zcma)9dwU#J9ez);*|XU_NlV(a-6ADzg=|vjLcxj&BFQGLrQ0SpX=}mTWHU*pot;@` zXA4m)qIkbT6~!wTrQ!{!kanpyRaAWZ1b!ACAM1N&cEe1v4g7O5d(L~_^E>bFcJlB4 zy>SJ=-S}50j^TJ3{rI@Vi8R{rU?*QYdWJLWmIZo>r;Ia3zUEtY{zx!4%+-4>$MWwJ z=*<=9y!^apoH3o!!hF7PV*l{KF@Z$Eoizp46)nd+Tr1C*-n21ebEc>0mJIut;aU23 zV>02Nw5kHT;#@|_w_K;1pE0UdDL>}9l>@$69tmb?L!xY0jwW1XfIx?D`TDetxq;Ap z+i>RdQ@&?8^Lnf8dR*;vo$*J_QqAZ0@m$gM=JPYP)2A&zZ#pDc$WPkFg6R!MS7vOt zbUHt($Km+NW!~7%hvrRsZpo}x11Z`pU!X6_VL4RGcfEzYzR;9!kV`<4^RQ74Gzuh- z+nlaej7OYF*K$bL8>Q2VYNa&CELEzQp1{^9A~aen$Th-}mEdA4Q1MGs#9*7imeo|@ z{RO&0A2qHku;bk&q52iu?KwSej2KrqY4`=#c3B4!qs61+lrnm|=Elaxt_Mw#vJvcC<9uOi25Y30#7!?$NV?+KLxyj%$J)e11HL&; z$B&MW6ebR@=q1f{Zd(_*Rdvc_=G@Tirom%?b(yGmDu%(_yz)_<03@2D*qobQ4uFA} z&`o%YaN_}8@04ktD3B?+j?d0tJ!mcj?~ivXbu(%oq{K8{;MRAE>Ba^DEq4$O;gcca zzF?MStY0}7Y9BUi6_qNeJuch2er!y;yj{U9S8O%|f#Ik@jiiaB-Eta54qH|yw301R z6Wx5>pa=joSle`<`Osizj&F#RuO^0ju2bNe2#QbA0`+I1rek;J2Hr!}OtIw!FE@dS z)_#wsOT@6{w^1xf8a+b4oQAQTkK=y6vIW|7-{x0>--Fo2@izXNV>9x&Uzz zZG)H5e&Qk$ucPBt&bQ%qj@?87TaZF8HXw`L{Ix0Ehdl1!FEZ#pO;&-s_@)op?}4cLDlZ_lh|Zq$A~K6muW%*gPX?%)0$vsFXz;S;tijf$*}7Y^?P$ri7at656IUV8 zMGKY&U&FdZtlzbW8-^0M)zKsPI@r*?j=UR(Iv zt!;P)k4I;2Y{ON&Zz!pE-Biamc0A&5&L-;!moA}iNb->Fg1{X^scfo_odR{dUtp*+ z+j(Vgx_xh^H`AMb9{t(Q-prmMl~r#cc^*AkNz$y$syc3I$MGjJ;{3J$XeYG?PTB*- z?|xn?hi!E6ZaVmWj?6`$*udC5)mFgu@cXFiv~AsMbF0XRvJ}_eaUnfdkxq z5Q%Fz2PN@<#6gLo#36~p5)%@W!T2$WBZ4vWU-U{$y^Zc`+?rgCCz+tJI)aY=ACi~$ A3;+NC literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/KillMonsterAction.class b/out/production/CYG/fr/gravencyg/actions/basic/KillMonsterAction.class new file mode 100644 index 0000000000000000000000000000000000000000..0eacacdf832a4de61744e9684bdc872e4f2cbc58 GIT binary patch literal 2077 zcmah~ZBr9h6n-uw*}SX@6r!NDky;xRS+Uf%#9Bj))Ve?l2#tNQo6R*WYTjc`|?M$aL&N$P4>QCt3=!{c(?oFf{!yq%8E ze6d-taBtP9*t9dGyQX2U8J;EV&SoUouzZH8ZY;wLEZ6b1is4(PcGt4)1u_Hf<)tG> zRqBT22+ST14AH;}M8V9|w32PKxR(oiDz(%Dbyu#_p>3^AujIKV_kF2GtPRF67RKpRD9S=a zDb|p+4v*^apmWLc45z|SVM+|g+RAkpFpR&RB_*u{hPkz1G-OW{d`=_4kX&(_p2=@p zLdtYc52l2&3YJx@U{%E_++#TTs@ii+%dT=yxYrb{tM~$C75DKa6%8R~C&cDgD!#_J zif>S6IJes5UM6sR2eR3Lzil)vdPUL*L%-8ou|aE_|7FfDn1^#?I_|jznrI8NQW4Q z#+@NvBTej@*N>tq+5PKS;zlxn%JR2)6iqtcC-ROox?e&ay(pSkthO3-wKCnz<(#*)_Kb=Mf<6;EMUS6O zlwV$0T7IyynqR!da5k(%Pc)&$N_xIrT&4$)*WGQ7b4b&NL;OWR7Y3uWj**q8??oT| zCN5su0egzRCuH>DG_6VL7(kpp4QI$sw*&De&XPqbcncYVp^J?14%|(OVIuZd^p~F^ zvV-U@VnfO<;=4%vOrAD&Oh%1JT(zCi!DV>+2(+X?OC63jb|~6;ywl$4CUD7>i&W$D+6w6A>K8ed2LKJnk23 z4}|d`9*RK4WCR&ZMWJC@JhC!Q3X~qjDa;6fApkkC$&_J5u@!k?dsv1oqadN-Hr>>n zgAz8x)6;e$Ypb)GnVHKbQWJ-h9pe(}Qr46vp*gLa+F&s^soA6Iq`{SSX)B`|}t6|x+hAp%2jFu@n{C_N-w(M+TvN$uNI|@Rs z3!-k#mayHA@G?o+n(7p7&EB2HS91=Ot6-O(EEs^W@ZM|ysHBlj*Oy&$cR<6Gg`kcy0>v<-#Z0^GG-N= z#u)|IV2-fmto9UjV@k7y`4Jh9DtHX@3LeK35}I6|%6{V=V)aP{PoY!6)0mgArC-%; ztzFIMRa?~^{wtb*t9f{Ygxyo7ViUct*ar{ER5s^B%e zuHX%vm$9JWO}xeW6ugZKGTu?}F5Z*zzJd?%p@NU_v4l0tOHl9$K9%vAg3m>6U*Lj* zFL6=9SNK{&yHBcBWuV|2e5>F)d@td;K-d23V3C5Vcu&_PJ7D!RAo?m{y)UVXdMShe zzUb&iA(2XJvzkF+r~AhH();%_W>7AE7zMMh%Ai?ggP1|Jaq(>NrIb3UIw{Mrc#P_L z(qnxRTK&>rGK&+$_G{)8sf+uj$I#>{E#o9t4wSOoxG{h)Pn*^7A;bZ=-{ z!hu!h;_@`y0a!ldtv>2~V?{!g(JBEbC)VOaRt(I&K4VxWhd`}5#ZGLF_xASw8#F|h zJq9PTzy(0Q$aE?nqA=9=#nxz0v)KptLTsc8UqnYcE&OtUXz6* z8V4mW?0@D=Mb5`bF_V|Dvzm3~1_^?0S0~>6>T937$~4w2U-P*4Zb8LQl{-+ZoOcRF zEmoJZa(P1&S8~#yQ28|Z@>x1xzF;-D}xfk}y=gOMY>$bP~{Nz?{T3e%S5cMx#5J@agbj%Ez10Jv1H1XgE#d;B8xAUTmfam9MiSUxQ9E%Nb(c_I zLc=<_gis0LA8GM?H@K*n>sRr1l>PGCZ53}3;VoL-TU%9c`>@~3O*#mfH318|e}+;* zxgV?os5nFgg5r0*zVG*9`3a;*w8Kg}jaBEk{1;*r9Xc6ra7O|}sU133btxNh& z(h7E}kv(c-hdNo*Ard}HvTYJQ&z1AI!7cR!v7-pY5Ydb&r53tC2HtZ(c%*L_U zrFJdg7ToGmy?`zx-DWP}Hr&q0jW|m`cTgK`C^Fsw)KeKi6w;sKtD{Foid%cRRD-_1 E0aF}gzyJUM literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/MusicAction.class b/out/production/CYG/fr/gravencyg/actions/basic/MusicAction.class new file mode 100644 index 0000000000000000000000000000000000000000..7686bdd4a0a652edcfdd1e2ba4f271ea046f5604 GIT binary patch literal 1962 zcmah}TX)+;5dJo?E!mc7NON-=S~ozko5m`o+~N}AxNe%FB&KOy!d+GtSB)$Md6h$c z3jcsd$U}Mp=WyVa-^AfCE4e|+4L_{4Gv9nO`_0b&_0O-r1Gob#i(7a*hl{wa;GG_%#gWjyS7+h z7%v;&`Fhtkce!irb@j&Pa;?&4NHx4I&Tzr7UA`9dI^2J3b{w*d8lGi3ZPT~qeqcj%RJ_OLDCxGxzAY zjvkfQ@;!_9`=Ji3!!Ui4V$Bmgq9HAJ!bA+0;<#iHbf_>l!&Dp;uZN)!2{uU2F!TQ< zG7NP{_}9)L-4LeWBw2wztnF2EC+wGk2MoClFYqmX-`#F|r;k}Fuz@DQJ97=ytu zdAtovf$eN@U%FQntZ7(BOT(vlM8r~esZY5gEgKphOaE7;WVIlfTvrG~HYwT5r-tp*d+r0a=`bmrA#xO^%w z>O6T*WDnaM3Q6@RVgq42eZ67uUGC5|Fq-YAahoWTZHuF*6}OHJi5$3d0^}?Xm*qMZ ztE}|e4?(A@Pi(#%D8>aQnb8d;+$@v;ImI4#_!SJ1j zSA`d$sHWvd^-ZcNR&ng6GpJoI28v##89yEN^6pN>+=-!L$PTB^(nx+)&VB?~OuRuy+0USkn?tTj z8`m&O&%FGlK>fxztrN7X)9XG&|JfU}`(Q6H^b2iv*RJIZwJv!=7bo2~WP`!BwjbT1jO#O+%k0=#Wf1og*o}E3!D-8R%P)r|Ugy9gc zrXckg4)vHon!c}*9y1uh>tuTabGRO6T_EO3QfP+k5>-7?sY<9f!xL5s`&Ou76=hV2 aRVB*}%u-!9DMkhR8*>VAGK!Z<>Hh+>TJkLb literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/PassAction.class b/out/production/CYG/fr/gravencyg/actions/basic/PassAction.class new file mode 100644 index 0000000000000000000000000000000000000000..eca02eb5dc5e1c06b62b922167398f6ef0357ca8 GIT binary patch literal 1332 zcmah|Yg5xu5IvWcrmayFc?qZmMN$xgZ>7kqQyFJ6%826d@itt_g^+ZTl#zd>e1I99 z@dx;$9QP(2NTgyrz3J|rJ-hep=GX7YTUT-*+&=LTk-2hujzc@V5bo(j<)aOoaIxZ5x{LSMQKmFjptMGKx=`y%XCNdG?@mghIjdTW1QhNf_d;K*Ee z_>u4{$w=Mt?0s`pot1Ru1G=qa#_g^9o-KkPk|EcOSQv(rJn0J5aYW28lmsPxioIhSr$38LYNPSby;;~Jhb4E`(inc=O z1ZLF|hr*$TtlDPHqKzC$%aTOV(C0d==_LtjgENLY`x1*$-Q{7`b3C7xXw~{uV;D#d z>?}<6a=h6T?l!}Wk=Via^*v#Sm5XcHR-6)3`1a0ThR=syjG~^_KCEnE3_88f>XQYd z3HH!=ovamljl1Ysn3_HYJ4M$wGP-bs&SDf8L>@!vC3_$S;wJjYq7?L#kI{FK5HZ~{ zVVJ`HKxXR{*<*B{AlIv%Ab*0wSBk{kxd=5H@#=9#o0sN#30qOIUFpm=){$)(BkkVa rQuQqT*!dOXHYTFPsW^CcJ%&--j#^{5gS*k?8A_yNhP>m^Rqp)(Luowl literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/basic/RandomAction.class b/out/production/CYG/fr/gravencyg/actions/basic/RandomAction.class new file mode 100644 index 0000000000000000000000000000000000000000..cbed87cfc4a3eaf1d72a912a380028bafa9a0089 GIT binary patch literal 1452 zcmah}YfsZq7=F$eyIF2y+(9RzZbK+2UWdvy2Qg`sfMWP~*40tyTG9)Vf8$S35+RYq zFMjh!8Q;@3*vW!fc6#31^WL8J*YEE?0IXmmjUq}J3}QZsdl~d#A&mhnCLw2#5W*6c z#qE9y55#jt91n&1Q3{Wfc#_0ZhJ?+{rqyQ1D*OD1%bu$n@|LeFlXX=$b@v6sNJ05% z%PpH9X{LJIl54vg<>C%Qyk<2uh5n;K!O>j#?Uqr5?ytah5wXx2a!44$9lKEmd)zgipW+(Ad!Wt?Ps;Duff+U5akY7otV@AR{ zDhzX#eT#-|=bK)Bk2~CM=6`<9d#0AxO~JgmG^aq(dd#d z%;K%$hliTkWLPLfc>A`ouc>bNGL^#xP+*6D$n&fGQ?31^f{*G?gQAxnUt@V&--Tq%eMaT%^( zfz~I``n#h|cSXB_d|2CS${wdb``czv#;hM$3XB)+F&gEpUmC+L%=yhT+{PUm4RPCV GrSJ!fPhT;^DTR5!PLqwQP!+_ewdMtyUwQrcih z*1Z;I7&e8=U-mjp?!UE~4tesXXIsvOI&O_GZ58Se5kuB<8y~pcll1;x zH$A^?G<&gy45Gfe+KKSOTa>-jcc6@m6K4d;|HX*|+U!J>vd9y6T#SFKu4 zI4$n0>!mcFXjn#7Lk)G3FJ#k8%CVxMfe8((s4|SNd!p^~B9}#7Q%Lm$LTuxZ7fw)gxQ_s=32$Svk76 z;V39Dh7Y%T5I!TlK8k8udsE${HH%anTSXdcm&>Qza^yCl^%d2hMy^%QYlV6y^=G9G zOksq+CF)6n{)RY9wm_#UeL{xlH#<}Q4E6;>pXe}zQL?$-7;aA!hT0$^9z!napDlEeEJZXLu5bFO`kgzpb7!6){h8z87>WA%PF># z$Fq$e%QlJ2VQo!nHAxlZ%LQm(aXNwWNZ~7nhw!)O(}V#gskh4{S219m=|}zPJ5T

xH+~*89G%Vq5F)&Fm(#n~?SoCNuAS@Av)Q_x--_ zz2)KmJ$M?xRd^K0Xk_2l1g0?!bvrM{!iL_?Z0scmSUW;FAjORq!c+5=%?=nL`5Qv3=UG7R}g3BD&2PYvSxW zBWc*{1uCjz{Z@3q(uVb9d}JWnx_e_&%?<&7tJ$Xu%#ImJeQRc@SGRh!-ULU=V`f}S z?9ePjerE^$_Ff|`P?wLT#cjh(rlY-D+K5Mc^n{)=ExXwnB?teIW+Wxx6aoUpwqZ+e z^Q&uI`Ux#L5bd@tBRL?KCQOU7K{MIDUyo;OzVED#nbttGH#0bB*ik)6fRSidLL1So zChtsd!i*0_TjaAT-}4Z6oQS&gx-2uUr_)X-Le7#Nv&T#^US2F23b{ox5(fWu2+VTB zo|~Bne*ymiZHSyN&LtzNO;ZILFORGHT-qy4hwMV2Z!rs5y?r;2~!5f%T&e-u2a z;=ByrfAN&`{4^`!%xLdq5M7L6-AYFo0#5B=1S4#X`;D}gv~`ZwHxk zL)RB7RF;fq%2S>Kkvzm{N|Lgg#za;kd)8!5WjeV-kDJL(R+R_fX;v)ryeWCqq@%4d zeOOPh1I5~Rw8yUCuJen@YsG3_HO)aZ!va}CYR#bc1OK0ysJ#IHmJ#?})$c1_K*%N6d`+#k_R^+sCTk~!fN?x?s z@R@=E-EPxtZHt!F26WQDoCjZ?*^oOU&j*ho`7D1PW^Dg-AhW%}GKY4WR-!ML*Uo-{ zH8b?YLK@B?neE`S37W%6ck5Kn+}wHXTsPR8NwCyoMH$kBhF1|vhn70z!S8H^aU<^4wYmV z&|K@IsEXqWb_j;Ox~;A4LK_Ycxh27ih_uTy^3*nYE41t3@i--TTQs(JLrc)cTe7)f zlG)kbQgCO#|1OM7!`=T_=6Z5$vv>xnlQgykXZPBkI0k#;X`9Z88VuqZFd`FFb-rbt##YsRuT<1T2JX+eHnc?gi4 zM9TSg?p-swW^m?CYKAe>o!V7~wM0gjg;kj!x~v8L1ai`&3e#*uTX@-I;TNbd*In4< zR1(Xnn}r~yxtBzq1?G^8-eVHB)f`GCba{<#^6EV6-;?|t zqYIR9RbJe4e4A?aU@3p#tl`fw0iV3(@U58dYwtI}PE7hyfWh#)UEL=|X8OBVfV+6ZZT3MB+p zjw3LJV0mZ^rDIT!amK|jajYT^uIjGH;tI6RfL12aW=)TF>9lBVXm`2!o`8Z71Cy>j zf!Sl2Q#XdWjsCEI4CVFXm?wB`oIj2V9}bI6r%*}y7c~|aPFMNx5WceB zkdjL{=o1*;bKxR4i}GOslXVPjbph>Cs11#4#?G)jN&$TdzW&1 zmmS978(<^jI^FTJ9WciNt{%au#!$9G%{G)}lgM6csEh ztt+n^N4*bHSbj%X2eE|jwJ1Y9mSZKKQM6$dw&F@$OX*%m@g^zTgOuzo6zw4<^>#|* z4vOtw&Yz$-#<}7g)A|@T;Bjo?J#{lLlriDMRxt~mViCH;YHSzVuuE*mbz%TFh<)f4 z7Ia4?>2APA1kr;VaSb{s^>h5%M63YOb|Ho>2oST2+&VZ@FPhNFuVS=`<>b1V z|95e%sKhpOQ&^N$t}yu4gY8n(eA|JYvTXRa3%glVWuhN@xJy5-XB?#TUEG%t_oWyEM5qM5r_fo&Z4PqAhs6H@7zYw2 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/block/RegenMapAction.class b/out/production/CYG/fr/gravencyg/actions/block/RegenMapAction.class new file mode 100644 index 0000000000000000000000000000000000000000..568636e28eaf90dbca78f68283eb313d563a2cd0 GIT binary patch literal 2078 zcmah~ZC4XV6n-WIHVG@xhzL?Klv)!~T-$=B##%!fsqLaPC>HxV*^KMTvYWHnaLP~V zFYx%S_0)LUp3@KYn?K6aJG%?rD)=ae z0W4;*gsXD&aR$q>|3o&|m0>sg$^r#alfXF1$NRW>WKsb%oF?CTla8pbNVP;gtp zmkdMKEywb2Fq|psk37xv_^xn_JyWY~tyW5#4C$KN5)7ld<%m1oou=^a@up2HdEGU* zy~#aG&ZEV&|Jdp-+Pcm6gjb30 zgkn~tq)O8B4xQN6LV4?+Ylu!K428*e$icZJS}w|HQAdJ?+JPsDI#C6kDsav)83)A$ zF`Np67Wrp*C+YP#jbyapb7Pxg8(l|k!|i&8xMj%@o=yh-vJ9t!uT&o0wJc01Xn`c=gPD^~@2T@Cvr*6y(`D zg_bDTywK*JZwVDMxS-%06Q7;71idfis-{=czcL;WB|DdxPxBya^)$ z$$S#t5lCTHK}&_eBZg8Uwff~F!}PJ(FdZ1C61!dBvO8K$7rVly%h&6hb$y8_l9v@n zQI1?Wrqucv$SNEt%62@KQnkn2uerACQ4y@@_v;K3@nkyKmO07WZQ-;S7K*VNy4!pr z48L-;tfD(7!vsF6xqkSJ?}jMSwA!d{F^namMODHuVhUdt%NlpMDM zS}yz#gov$9Smw7K$xq4A=OrjT43*Tno=0y)XmGWk!HF74T*iyuw7}^}N`prv+w@%C zGI+;l&<-U+?BJEyP3=dXGGH>60g0!LVYowgyhd*oMKyTN57#oe$1MF16ZE$LX;8Ui zlG-VnRp}E+QJk>)NeFN;T*NOU}F>+jA5GQ6Cn_9<2=pCL>4m9FcgSBq`OHN zCb55EVCyB)&oS7;P+sXF(?j-G+6lRb0@QfGtA-X4FTEjs*m9C>_;|LdW7+2LZlvu6 z9d(ctROf$(+QX@G4N|+DATSXb~6Z--o P(?~5Vw11h#DQN!!T;~~$ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/block/RemoveBlockAction.class b/out/production/CYG/fr/gravencyg/actions/block/RemoveBlockAction.class new file mode 100644 index 0000000000000000000000000000000000000000..1f84a861fc8607370c3ede06ab87251469588938 GIT binary patch literal 2656 zcmai0TUQ%Z6#h;~nGgorQp%;Zg0yM^(y5BIEwz@Uv{pllKtWn>Lm0xqWF}4~SiIlw zcc1(LuD)uQrVCli2Os?>{sz}_`JI`B&XknC%$(VKpMCkxxA&R9|NG-l03-OZ1*h>; z68$)%;OQiqaJB_~7*mi*qFH`qaZawr6F4v57v$p^DZZG%v(omtByyNY;u0<=F^T6} zF@@S$@8fz^kp$v7jKYU{Rpi)$K*6DA18x z(bsgX;+d8<<;zB?J#E^icSc};D!1fn1y^4)?EHE`%g$dIP0tF%v(BO+usdhk#-&Pe z!Ek5v1&fl7oRinBS=}||cTE`gmd&!j(Woyy@0pHW))p)$zp70cMQ6>($n}`7U>fnF zZral4wj2a@d8Q`=cBaxn1(t3Xv}w;Z?SkBDIWDy=jy-`0@r{aBl zpx{FlAK_yapWsu16Jbt(&4lh5q^C7zFP_sqUBzekT-Nf1f-hBkg|Ah7gKq`;|GHs> z^EKE5-qC{L`P4|I(+a**@jZSJcq9_$9>f+n*w8%Sl|XMqD;u+{Wpj*9gqm~Xv*Wqr zbP+xEuocO6tU=rEut9coQ%XKNL)^?R>t5Ee9GBgc$z2&IQNpa;QcH5{rIKNDtPH0@ z&3JiX#mIZ3+xxRd4sMLt*P3@H`-JBNR?O+b)Yv>Z6G4mZCeY3^l3h2U+j_xZ`iD6q zB4(l1tQj$vzI&L^u~`o0#YJ2C7dW)TNJ(EMg(5B+w5C9!PAEekj#*c7k3=zBab1!=DE9bH#oiTPdg_Uw5W+qP zl5q`v)$b|Z5qs<7+`o`Gu(-dKnaFEJUKiV{tSe|Ik&qqjlR3jiiX^;MT1FDR?e;Wd z5bh{dJb@Dp=({taYaD0ra{U;38i$opdqU?Bxqw(?nGH0-8-^n2RV7^m9q`QHScF>Bc$ynn(0)zi9{7G9my(Mt5AQTCh*_vTlM*V z)nG@>FaH5{@YW{1wKw*5q@gzr$7;F#!yl$y%)lA^4ZEw@GgQUipKxusijEEJ6S#@a zpD}Y=x&KtWH(o_oV9+hFiJti_>tN9@EaIgt;QbHdaxG#nqXdUV}w1N9$kf1jC zpbijD5VUr}c8Em|veY?f$TP(yJPsSj{Sro)<{(buQ9Q=OW5QdIJG2_{;d1Zr;F XcoHWV;Uw41i2aKtg%+py6~pNNcKpDM literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/block/SetBlockAction.class b/out/production/CYG/fr/gravencyg/actions/block/SetBlockAction.class new file mode 100644 index 0000000000000000000000000000000000000000..425005e74f6612613b9481d8f35d0665694516cd GIT binary patch literal 2958 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/game/WinnerAction.class b/out/production/CYG/fr/gravencyg/actions/game/WinnerAction.class new file mode 100644 index 0000000000000000000000000000000000000000..4c01fa007ee1bf58d43065ac96cfc1723737e502 GIT binary patch literal 2268 zcmai0TUQ%Z6#fo`ObAnMrIdi!wAGS;?Nsf>l7fXu5gjN60^O=<93f@g4DG&EBBX_eY6y@)Ga+#CY_fwdcy6>m4fDh965V~9z(^$fTE-d3= z7gn$;mo)_?DO*>tq2MEiq{p2tx5Ch`@9;gY)qTs>R)V_%N$*;Y}D{jsg^6LzVqPry+dUVSXOZ7@wcx$|D(@nqb8r)vzo+Z!C%Y?se)fkRpal^M< zr>2>_BD4+5afCM$ToHjpg;UxZC0*@_{$Y?*VaOM%bsh9S}lkJ zt1=8nA>!b~MtUc8VvYnZQ!Gg)qg@TCkY@n_hM_28loZ36FltQ>442}-C-EesRi7KX zi@X}-L&2tkj~UXdZrwA)eM<(jFPeaBvLqCIqT*A0reYMIGxQ!W6M6rIiV?iRa6S-5 z@-SPs>@DFb_)-N&S%rZu@{bf)Bc!V((Cdv#Kb&=h1>!R*u4Wh&yKWlQ+5m}pO ztK9P~(tZuEE7(?HVMoEP3L6y_4qS3ZMHOEu@Kn^`lV>XG*i-Q}_9>F5vxR|d+V-4W2O=RUZgaor+LBUYRxiyl3`R@uP%Mj-SF6IIBwo!$y6!=F zM;LzLsHMtjqambk~a(~>#(E-V+Joujf|9SURx6Tq)quJ!U-oh#HVL7k2E%gZB;CX%dvU8 zg(s&wl3&L~`X~+4*Nve~&Ij5hXg`WqX}v(FW%|ms(eJ?c#1pWmXd8cy_RXhA{EUtt z>AnqFTDwULIExf|X&oR`U@)}9C0wQxA;`f%sMN_AYogyH9VT_3BT1mj6QmmG>`yn) z)qwf~NkaT&pfwcWs-Z;_mp)Z3(9TG-?vv3*PejXOyvglP@<|~ErSYH8(?IV;1AULN zaCGXQOk@%boPCA?hRKdh$1|K`c#JD@H^}fC&QB&Y$%*gK*EGr`rNPkm|NbFE*B*p! znEoPwLex#c8KKZjkwXuW#~R)U2u_oHih?&m=Ok&|!Bt$NBoVR0(3YT)R0gty>v%H= hdADT?{0DIUL$&|_ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/inventory/ChestAction.class b/out/production/CYG/fr/gravencyg/actions/inventory/ChestAction.class new file mode 100644 index 0000000000000000000000000000000000000000..a88e824295b9a6d0831f8a4ad66993fef4d83845 GIT binary patch literal 5766 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 CqK+H@ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/message/ResetBossBarAction.class b/out/production/CYG/fr/gravencyg/actions/message/ResetBossBarAction.class new file mode 100644 index 0000000000000000000000000000000000000000..c30b99a76f0c7c8d0eca42a5995a97e3b2d01e87 GIT binary patch literal 1918 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/potion/PotionEffectAction.class b/out/production/CYG/fr/gravencyg/actions/potion/PotionEffectAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e6ae26a3d00137eb393b5eed24ba5b2bddc0bbb7 GIT binary patch literal 3107 zcmai0>r)d~6#w0jWJ9uOL0(amsHllpLLX{NtQ8P7Z30vfi`v>vvc#2SH*Pj4t*y4T z@Avy@A6AEcDy<*lP-i-hUpmu2$?5Cd-2l4~F*CWlchB#fdmg`g?)~fE-~RycFs|0( zAP)Jl8F2wm_)&u=Ymq>bzYY2@#Gk`_c#3~M?88U^qc|d9EPy&34d7{v`*94%YjFb4 z@ZniLJt^S102(3rkwRKP#t#`2e8~FIf>Qw~IPJrvA35ZGQ27d)4+Z}Hi~wCgk-@u1 zQ59n^LsK|0p+~d2G$pI)>1?!r{9r6H#^CPPGBU&JgrdrWrF=@(N2OGbzBDAXw3Hi@ zbcN3=AKk_&g{*cvZAocE(bQtJpz&vP*nA93Ovq`Y*A&HQoxG%|-0Ctf7(9kz@Fg3= zk;G|fN{Z$rH5(lDpC#fZu(8JLa^=cH*_ zkJ%-uoR*%9_VF?1Tsco+=c1N-!@8E1i$yaZF2!I7*=;B)rOeRu>1f=L^CN~tws<_U zAu(*Nj^x5h9+LD*c)yjL{Sw#OVApbFZFIUI6PhXXk5l;yW=srg?HbN_DSu{|46SyM zJ#>aTt45Vb88+QJ8)Ua=NNR?my^393K1#5XW<(G--@`5?h=pqt@ct(CCz7mwOa|J&!bUF6m zJ$Em|x~dA+=5YqF81%wsVF)_ZONNpwM*9=;l$;}mCkDm_61!;)CnN1BB3O5o_O*fn z?`$<;J~rC2+kZ+j`n8;f(|TU1P#|(K+#j~Jq@mPl>S?j%U8+J- zQgq-eEo>#c&(JIs`E>Ab?>PBn^VqhD8GKpUpnb;sUpsZm>M#>PeuxB)&v!0{uv1~N zOnpRiSzkbsW_1oP!7&JY0cwa0o5OL3H;cv>I6!7Oo_9B5t<#qzMMQ^8jxcL%G0lIb zS_}`3#)k&!470~PFDJFSk>Nz|$f1+-xIo1<-g>D;JC|GZ&fJ#V#Y&5=C$&DQC|e!H z>eL~pvSWX81g+j?b9$MaVI>QdZhuz`R=(=UFRK?=^CbZ})?CDqXFLx{>0D)}(SD#4 zCE_?a@1`4%^S#q*i_CH6(0xJ5I65z9fxS9a496nJ=-jcHtb(xu2kFc#vXkt#2vtXYdBr&S9MkM@eL+q@j)6Hz8%Lr`LuJm3gp?_J)uZ+Z;B!aLL1F z{!8%hkC~;P#a=v4z65X;`-nMi g^pQ?8JpW*ofPVHj)(hC*dIzaHWQ~zuyxa%=2b_{u>i_@% literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/team/Team.class b/out/production/CYG/fr/gravencyg/actions/team/Team.class new file mode 100644 index 0000000000000000000000000000000000000000..59f085ee695547d741f1069c6db4d339ab942322 GIT binary patch literal 3304 zcmb7GSz{Ab6#j0r%uO>#2GgX9`@Spg z`@Zi>04bt~`}QAv^bh#rlX}k0P*SX-eYhv*JNvok-04q$e0mtbO8gvv7uN@I18&q{ zX}BqfUfj&bEiAc}kK6dTJ%~GSC;z%Dgu8K%L|*{+;y#J{g9JXnk_RO=F}O$KA?6>J z=x6>BiAR}#Od`ho;}TCW|D?ob=AV*yn)zoW;u6mW33^WAd4^t)7+{qbC0=6wWr;!N zUy*o~`PU>aV*YiBH<*7@BEkGy5^ppAjzm)8UHh+;kO-!t*nuzHoo#~bA8msMGwJ6V7B~kUxxvRj+G_uEB99xmv zV^yhV&_lB>u(aB@n`yQEbno??8-SYxms`s0E@onV#uzwd?8XW^+R|dMn=r zz48?~`bF^UDp8IXR6BALsw(lHv)-_RzIMIz4}rO%iN_ZpN;9h{4XL6unu^jyDoR7B zC=H#WG-Zm?a4AX?r6^64qBKK_(&$j68s0BOX~h(!Eh8#2MsS{!i~JmeXe7e1@`0Q}*F`=N!Ky!#=;O}_mIe5~|2ej|KzE+y?V5kdGhUzk~v2~a~0I+^Ote5 zIZr`N3YzcN%2;61Rg&RC1)ZYFGEOxYDQK~RPLqb;Tr!2z%`+6bRH0`YeuJ!A%vJ@4 z6?m4R8DxL9xlDn}6&Nw35h&vvbAx=~-odUJyUJB-@TsT0(OhGdE=pPNki%4kZasN{vo6y>=%nWDs& zCQ}AMVIqVrCqiHw5z6m8B9zf;B9y~gB6=Ae$-NMV(3v`buDu9Np}RkPxZSh1dBH1K z5N>XZ(?wFPJ>kitf@aB!-)1&hTVqK{+A(WxM;4p-CmcyJB*uSLxt;u;Me UA$~_QjacQ`*o|vRScB{S0ti^*vj6}9 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/team/TeamAction.class b/out/production/CYG/fr/gravencyg/actions/team/TeamAction.class new file mode 100644 index 0000000000000000000000000000000000000000..0065abfc1777ba98c8473f81a055856ae2a70c52 GIT binary patch literal 4422 zcma)9X?R>!8GcWanLEpE(uQsmXqhh3NmCfyDozTLjT$;>(k5+aRrF?Zn@)OX?r`T$ zY!r7C1y@wGfG8*_RZyrkZHiW)idc7X!+k+<_m97L)cT%#XOep-lj!p#=bq&|@3)-y z`_7qj|2cgIz>DyYFf@!rkVHnoXax1p!#IF3**h3QR({82b4X4bA>^XS!;GMS8)Re2 zrYPs^FiMz^z1K!?7?UBqPJUl6n;S!TLlkeso5HvZZ;s$Ccxwc2!%ebzyKLSeH{Tq= zJMk{LdW#gkHHvrR#t7bn_eStOygz~u;I;@phz~{aVcf3ZBXaOjIXEKM?vR`A4B;*X zA5(C*KyX_&pS7AYt2eUORRai1p;=~ zmWq}qTGQj&gqAe4{8)0(wzBy#xz#W&u7=Hg&tW}Nve_R_q)lrqIZ`@wC~GJ6JOL(? z1BN!KTkYPJ5yQ+JN_NV&-LE-EXN{z5-hgFh^kUJC!kCt$f)>BDoRop$hX#oefz=DC zp}nJ;tx>9zT^R_0xF2m^lq6=B|Gfes+N#MQ@}Rsb)Oy$+Ln zD!zm>D!z641b@VLNAiSL|Zd{mDc6=W4>@f8(cMM|J9zD~hCDxSdCRJ;UND0ouE z*Ktn4H&lER-%{~yd`HE1@jVsa#~B7o#Z&l!iXY-fDt?TgD0o`IPgVR3KUeSz6~Dx< z6#QDnZ}3}&RmJb{jDp{*_ye95SXv!46@SDtD*l8&tN084s^V|>JGuV&QETYzG2`s9 zf@#^V0~5Mcj0~TXN_XAE3HrH2I-dW+1r!8f>H3NidTv`dwGqzyvPPw zvg;GFUG9lT*FnwhG7ZyWndnUK>0ubXNjUDdQ(*o%$gB!>_H=ah?{p7RLb_fFZ2SMsn~&_e zD;Y5x_)XP;&$&k;-y0smGC77#%U~|Zr;;aUoLNdNt)An#`cAAiHaC(EgSKgr3!RgD z_Vji;^=Lks{NZ;iV0jJx<`6e#z&?l=hw}Qgt;EiME-0C@G(!?$^S1@$>1a9~0Emz?h+3#gZ#YOrO zvUNk3w>j^-1p>7n>-hU5$sa~Q1IPzFpY01c>fkS+I)1~O+m1t=MBT$2)Zv9}BhJEV zgb?HJDPW~5h!?5e(cM=W95tv4>S(!#?8sUey;$jCK zsWlF+>h37xG8&7ZMI>6ZHro1{Xxnh5Yg>IB3RFPcxn%~b;45!QV^iZa8dD9ihG{g- zV5#8SaoH5^s^1z|5m*|#7q`uct_a*Lg(;W{#)1{$`w%<|LynsTwkj)>Q@9`%YAbu+ zyquQC==lnoEx#){ZeHb@KZDhE*n9%9X|%LW z9Nm}1!ZX-Zhewe}MPiXBkdhX)#v(J=T!$lQ^X#2napg~;EfsBxMQ5<34#Tryxm1QF zSPl!1lyFqRa7gmiJLDTj3;PKy!)9`K3);xv4)S&vS-YPS8tHN?33!AQoFV~FQ06pV zhI6=@kLeCPjV?TkZu}G5aUQ*5Bd!%~*dex|PYhtEFwrj#W4E{i*EzI#fSRVzh^vSZ z=KdmaIuN9;{pci?LXCsO>tQ-<#O=6-xB;Ss@pAMcO8g02iya72i-|P)5T>r{v6H-77q%!EehwqgA#k3*RiX;6Q?QS73ie9@1+P%>N(HY{a6SLPh^#}PN{WyIuV!0^ G*ZdbvUdrnL literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/toggle/ToggleBuildAction.class b/out/production/CYG/fr/gravencyg/actions/toggle/ToggleBuildAction.class new file mode 100644 index 0000000000000000000000000000000000000000..562577938d0f50178f9e657978f05f7132b5e253 GIT binary patch literal 2175 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 hAv07W%Q=do(fQ%LaxI*j4Ne*q*AH3I+u literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/toggle/ToggleFlyAction.class b/out/production/CYG/fr/gravencyg/actions/toggle/ToggleFlyAction.class new file mode 100644 index 0000000000000000000000000000000000000000..21eacee9f656d815a41eadca965abe6ad5cceefe GIT binary patch literal 1808 zcmah~ZByGu5Pr^fEZZnR9p0SK)`5oDI6(3)j~IVOb8>Hp6AfIa~;%Mbm2}}*TC20S zX9pU03E)s$bBsgoRpXkLBg{Q*QPOIE3Gu9WUBwQ5Q1K(S z7z$@?9=j5ptQabNEhEMM-DwQh&b5{y1@&K{Pb&w-*Xla&a)&|D8_kA3f0r=&?<#Ia z{dnh`Il90>j##oJ=}4?+>$^r!7mo0#zZdnV4TiCJFP*C802>Df+-=j$m15(u+Ir5- zp!)8_^e&Yg`|Nw;bdh}~5Rnz-w7kARS2q#MxNim+27MkZIF9&v$+4~7fLuyD@{k$Z zr@5!e4Ntv8?c`JPD>Pq*MUzX9(Ah2w=PpZdksq$p<2XhyCqqK^EpaL03%E-38tvBT z1x?U8GFv$Udx^yCYb3W{BK0RO{Xy~sCW#J`6_7^;L%2fU`?MR2{O|!jq#YrkNYNO5 zQ<(0d*T{xR+t)}FsB(nNF|zsGF$RvI{!W?*KOI_)hq!9w(Zgl<=mNCM5^eB&w8?YP zZeXUD+Y!Z1Q3kb2>I6dxR8BC=@GB-O`S(tcCjrT?L<^~3pis$=M2cjjpoJ8&O3AQF zGsqG@1%)ym#to|W4Atf)%9zDGD!7kZ^s|`@^O}ufpH{C%cBSy-wa{MPNsWAN5%z83 OQ%ICYNk2z?0@_<7Cbmcb literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/toggle/ToggleFreezeAction.class b/out/production/CYG/fr/gravencyg/actions/toggle/ToggleFreezeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..d8319ce223969149514ce4a20e443b8d935441b4 GIT binary patch literal 1792 zcmah}T~iZD6g>?wlY|l2fQY&p{7ztH@LM;2K@3rMP!x>I?o(%I$AMvnn#@pQ`A7T( z*1oNl6-%w!hxN@LWqG?Nr87doOV4!QbI-l^^zHlQ>&O29T)^LXOyIWyhHys1WC6V} z@|eO|`FAdd^YVK^E*ItTr5rBjaHS7d@p~RcR13I<>jm7vP5F0A!?cDOhU_)RbHW=8 z`^x6iz_0_pAv|l-Hfl?aYNg4Lsrk!-VZd}eaX(sXiC~epTskS5zQx@p4;;Dg9%jO4 zPMcvW&Bd+I@x8VY`nK%~V^Mu(10i0BX=SQXoHg!vl66ZK40}Q+lp%-96?27eaKq)E zZ7hU=H^#iizeXsspSW!s-Ps*kr*hVW_U3Ef3cto&i%)5M31l6Ra<@(mDF(cP% zI`SHo?HX}<^MP-Pc3bI@T~{m&2a`PM2$ZoRW*AL^lEE1E#;SC=8IJ89pPUv#ZmrJo z^{(E91wRTbG3!Wq_HPw-Qp%;FrsFp1I)*Vzu%9KIi5z!X1k&8la7V{o+|%&~Oosj> zWw|0x=XBi15giY3kLqiD{>K%8aa*{;7QtBLjji~RhysSb|6jMBsyi-MG|cOGh(|gO z;a3d{Iu`L*LsQ2S{HbFJe=$s^E`HaRVK}s{LwsWl2U6B3blkR4GsT8*sp-vnvu>Uz zinQiQ6!q2AHcw&)2l-lh%W@q~^j_^54{N^blOmZJ^KqSFB-s<+%@i-o*Vl!&%y6ch zX!8fH6=8+dt)1V!HgZhiyU$`Ld@l536y?--G`&Rkn8-NQ%XE)z%4v?;pWD=9G$wv- zAN4E-Q*zVrpx&`X*x+koj(g-v^&h9_n}XS7m4oI7h>9ug0wH3j9Y5u}o^)k6yu)j+ zP-_jwgGYknsk4hq6Gv%e4$;^JGNAj!K3Yd;H%;@khrapoiML?y(es8jJ=jlcK^gjy z!vIEUKN16R00(JDF0%KDhGOGLm+lr}n8bcU@6vl@-eOM&*`n4#u7mu)WQn=63N@s7 z_1L4!OM30VR*-Cc+p~>s%Qi-($ECic*cr;8G*Q$)U~dn`-=V*Qfr$X zK(7*@sNjc5fD#oyMrj>WA;x2x??RO5{J1KjgcCTaWGdklP7_aAu`#JnMO8ok4ID$o AKmY&$ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/toggle/ToggleGlowAction.class b/out/production/CYG/fr/gravencyg/actions/toggle/ToggleGlowAction.class new file mode 100644 index 0000000000000000000000000000000000000000..341cb4b9c5f57480c2ca22e446fd1d744e67ac3c GIT binary patch literal 1614 zcmah}+g8&+6y4K?-Uy-y2;!wum6QTOMZDAtP%2)+MNwSvmWCk&Lc+=gky)MiRaXgm6%?!p{aSOMFxg*ToG|Fk*V@Tbz94mOh(4}Z=o@#pf4tI=QQ>`q| zl#5FYQpH{64DFib@VRiS#=Vz%&8CwM%{6p;N%t(VZyZX&y5%#BG;`@jV7ZR32Ciw^ zTzwgRW^DJ(WaKDQmMz_K1m|BhFth|#AQE;eMQuah(N$Y_Om#8vEXNd~w(F5M>pIo9 z+z10&zg9HYGu2wSxoHI|cZgtDU9k0C?v>-7n(Z2!>XfkM=FD5vw5`_5Tku?i`+lTG zYCB?KI2-3_&OjAM#0))gP&^q!TV0a|H$(sb^Hb1bpc|XB`gTL@+@c$L27hD;dAk0T zbwr4j#(fzN@K8nvCK%5ADd1FS*{j?W?#VQ!WK=LMql!l~8sdhOqS(#Ic#Ly0o?x0` zRLHW!J$0J%#nVSQz?_go~nF8lm1MZx~p%uU0g^!)=DNR$Z!U*T#vXS?)NDMr!nk zw{T2=cqU0j*v{D4Ro3;O;@U2?FHLE$stn!naX55SzLdVb&7D<-VI?-<^R*3b1m(Yn zzHw(1*o1Gqh~w~?z^$XGrkNL$%QT{~ikrrmq1C6FW@++uQ;b)cfQM%Q literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/toggle/TogglePvPAction.class b/out/production/CYG/fr/gravencyg/actions/toggle/TogglePvPAction.class new file mode 100644 index 0000000000000000000000000000000000000000..394390d001b8f4e59d1e03ac206dd6eaf08e7752 GIT binary patch literal 2141 zcmah~T~pge6g_JjWE(-i1;R(un9`&MClP6BTH-VbI6z5FLNRel`neX15SArIl9}>T z@(c3XW;)Kao#{g#`wRM8I-O4MN=_mX2jQW-)<} z6x_%niH|e*1WWSkW*Q|q-;%?p(tJCOI~knE-7J=|l0_N!8rJ3TSsEMCazBmF z)2Iw!6Au(TRItU+f6KH@|2D%|p|bC4hRctIt)CcLd3U`uS7S((ojt*Du43BaL91C8 z?hdb8WXV+=om(~TnsVJSru+lbW4IdU;<|4-wx{`yVOT=j38t;%t>wU8qC=Y8v?b*m zAu#m$rZ3MMEzDI8`7zflZW~(FcTL-nu9oA{ZpN`!e-L`hr|-vwisKquz13)#z9wuU zIMKE&ej?mbbf<1PdP7^0V<~=elkRM3VR&1vqYKXq#V~l24w#CgrBUid69v?N6r3bc zXGTG{3JzzOh=QU4F${*Xba<*4teJs|r^LS| zB~`GkqKX|AlX%2%{9B zAl%Q-s5nG}VYp-6uq8Ly8AkqiCgNBHmWn1Qy^68y3e`O;DH*1_qUDVo;+lx%&qN{-5EZMAZp*yE2GMNtkdbScIj4zf;@1v!pJQm%Z!{jy^@E)~g2 z<4O{XvTCGo1 zZysxQRGl8Z>LztB(lKc9rz@Mf8fNI%o?lYy;idrn<6S!sSkEf6-O@D1z$z&rsVKEVeQ96n9>) z&fQE+rrH>m!^l&Nc6KIHxm+7>J;TUr!)Ra_DCWj~!FU2vv}7RKWs(IX&=5&8O~T~q zIt5(966UauBJSfFwy_X|x=7(n;|kso&`aW4wb-eCvi#Kztnn+Z@ECQ349#W7l0rp=(Lkq5LZ)5fVxK z0sbiCx$Od-EHh1S?>Xl=&pG#;)BF3+&tCwRv6(;?xg-WLE8$5JJ(x>i0P_;mBw|8X zz@peK#qm^pm&Ni-sGrC2Lc&W4uNY#kZdaW;LrOc;Pjt2EnU=ck>+)n>F>TXZWf)ep z&#qc?^%HIzr!}>-znRbOGDJ&Gl`{-zrp@0s>lN;P)GHQgQkrAv)~@cFLT)Le-htU* z$hC9nhG#lKqB(9&tu&90Oi$%D5uB=9mVV0JeArU49OFnWiZ$OJxlRYR)F8br z*D-jb;a4Jd?6WXTgn8N{P{uwn!&n#;4#vr2Egf|R>|2A6aS7qEriec0@hU!>snpTy&64qp_qadS*5`!c{D2rJkzLinN zw2TcDs80pY<95~MnZ-mwq!$c7z7yW*Bd?idk)_C5@kOi)K|T@0PVC zqG&Hz7)3*|&|#9hIEW$dQN)@K4NmDm_ezfCxHM!%?NgayB;3#|v-pMd<6|la!<-VD z(GQhFZg}~dW7{e>Ikw?jGu;gz_nZJlIc;ti_HmD{gF(707$Ty#w2RVy2x(e}N!p@2 zBSPPFZuSi90+HM$diF06{ej-^q>o^P)_y{PyyL_+M9(NmBY_{rFisLNU;>lG$}olL z7W+D3n802lMx@di;^#=DlIOT}4*45d0{)nf8ufYQz@x>>aHk7fpJ40n%r@1L?JhE{ t+}=_2D820Zm_ZsD-!T^$ua3v4lrw&64EOQCKRm-jJfhMtJob;G`~?>RR|5b5 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/actions/waitable/WaitAction2.class b/out/production/CYG/fr/gravencyg/actions/waitable/WaitAction2.class new file mode 100644 index 0000000000000000000000000000000000000000..5c100399c2295413b0d7812cccb8da6dddc255d3 GIT binary patch literal 1440 zcmah}druQV5dUo{eR(`AN<#UaxC8xZaWL7Uf$hiI7O* z2k=7~XYU%kN>g*Wy`7og{APA$Zh!s$@e{xbHsi=5m%uRQqj;1+9~R;m!eSI^0ud?X zu_SlPF+7&v6}dc->ZdV0i{g0{FBl@OZr7X!LsC1`Pjs~HbqalOgV%bx@k+oYY8y)3scBwsZ7>S-_q^6x+7fEu1iSlD#+6rfim`p876|DU@(ROzaVXHhPnU8XGrWgE!W^1rYy&Bpn{9C ztx>#GP{68!5xgS%zpa+~H3c`3WEl61fkKvArd8u^6t5Mmqo|;SGDA$p$SmcvQhuYL zf>{L{DAKGHh2VD0<>{q-Gu`BdW7jyfJ=@X1UR`IH?uzw`&M?_wl_T3!%Njr77LBY{ z*{x_RMA2EcAc{sK-({eCILKM=%g8kq7@zWiF3OJOxHM`d?PG;uEZEj7v;33v<6|lc z!$Kx7sqd?Y+z^H9!`rSoIdmZ>(-Z5eup=X?=G2agpm?Vi9FokJi zWthQin|+-yOkyt)A=2m>V&{k_6X&>b4&^IZeEx`s8uxe=-=odTaH|K~fMgr&&NkDP x?KaZw+}=|3Fum;WG5s{so@358ULB87Dd)V@81CYpcX)>TctE9Lc<3D^^9RLBSm*!% literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/AdminForceLevelCommand.class b/out/production/CYG/fr/gravencyg/commands/AdminForceLevelCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b42e60149b26a8801b251f90c730d836ce18f844 GIT binary patch literal 1738 zcmah}(Nfz+6g_Jz*vNu_LIO!j;}lYC3@D{EX(3HZoRFq9B#kKzX7aFDi&2mz&q{Jj z^C$fQrjMEFIFocH5A>}c)#+W!r7?EW2d#8>&z^hF*}MAd@7HetETN)f46_*&Fqg)> zdM~754dNWG>-YqVIzGjc8a_+mh7KJ!)A(GyzerUG{`lyob$lfDlz*=BFH18!$44?QkAkP!9k=N|HShr@ zQ~1Wf1ALppcLqvWH?W~t#!oA_6FIIeq^jT{WiE;AGd~iMBy!692;VbIQjV+$!mR!0 zZ-FoAtb(lPGzE`h&|{PhY~qI$wha7;CkD3hgki4hF#o3s7(VO|-|Tb=!$hAJtyC(i zODEpd6?C#r@UX#<%;hT#nLv2h7@~J1pA$hq>;QB;Ee{UWSH;6 zlkXwwoIe$s4*mGvFpQD99&2ctTqsw4DRzA>?GrB+PJ0oYU;?WLPnl-BEO{@QVKi#k zJQVRQ?BhidJ!kW`M!jf~F;3g1u-% zCTP^#3p&!s;3CBrVjwQzGDWmST{NPh=Eaqmj%AP}Lg0Df6%q`;!YG)@SI`o8G54k& zo#{l$#f>>_aao)F9Rn?-<}Ye3r2h?C7%cn&efuRcrqROCJU!+x4GJ~X!r3-Sj2AGDt?;E&r@`RqE&Lp#z*imgI^*BrFa8sZ-_3(IY3VpHH|N~@-E+@5-#MrI_ub!a0oaV6 zf`}m2fIZk7z&`oAKY%BK7{mbu2ZK-$m&%Y_4oUT}l#WR0$spF_Xb{6V)_~&}k;_vG zo(>{}6LJ}qXJbJ;gOd{aY!IjLoZQm_NCc5YN}ACFI4zZQ0B7X;hFs1DFdjfAfNTI} z0G5KBg69SNI}FoscM3E|;-~Fs+SVp?GdY=##!l=X=o}I7#;lYsuq1An`k{O_q1(r_ zM20(|xRum0BbseUy}apl&lrwCjjg1W&1z=KiS9~e4fCjGj>k$n1GJyj3{zU0^SVI2 zW$rz%C-W|!+YpIcb~>8KkB=K}R5xA2os1sIXp_1pmd*2=L^*msWywh9IK!(pZ3+0~ z&#=IvVOL9z4{5n#+7!@*;INgqllneG=C-*uQGL>;icUBRTorjt(8%qn*kCqiIgUXB zRGhGGj4<+0mScF8j;C&N-bYvuL4O-v7!aL(4VMm}3nvsTKg$eLtJ zUZaC5CUHSvMQv=m^F}76^SBc)sCW@CsdyO|RJ?*$rTUtR*QNRf-c<0GinsBOf_GKC zhxb){fDf7as?76wJwpyHTT3&fk8oba$I`$>e4^k}6`$dA6<^>>1(#HOg|Ah7gUcjw zOu@G*uHZZQ^!EZ#@dK_hWDbhJ#-O?Z*u6ObY zr`T5l%Oit>^FnFwcrI75=hrBkDS_U|T)T7cm&=IV)*PANe89Czt*;w_o;hmdiJV}2W`H!k=6}Fwog<@MfNb{0N?znlh_Yj8XHhYql?~oVTBge><{Z=~ zYw~?KaaK>d1Co`x;wV}-I~|qNSs5yC2`G;4$^k@)7mptw+(VWfPG=eMtPACNH+M%8 z*Ep+Ub{8in$)vf`+!W}W$5Q7)!?MvyTDG3BG&^;VfWBG+W-v~4xE9a+bye}OAet?b z&yjAuZ43MorKwJ`Eo8IGONN+*o5 zs_f_CxkTGc*-NX#Mp_R4>QMuJHS}7k_3V5J^2SaUTWtCJ`Q(;_Tfs$L(X!oGIa_=Dtr5g>QHC%e7 zu$BwmF9tk?_IuEd3SiwVfJ}THWa5vaiR%g`xD}09$@I6O1*;L}zjmxa2iB614jd+@ zr^uyCHZSt#B~o*RkVzX$%Hn9=?MFNkKnkyLMH|Qhq6R{mzu$A9~q^m+I zrENUrpGQjDdC!9mu^0o`LEn0XACFS<^5uW9laddQ(bEuop~ZLcmx9Mj|GU~~VHZz4 G*!>>?()b1d literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/AdminRefreshLevelCommand.class b/out/production/CYG/fr/gravencyg/commands/AdminRefreshLevelCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..17dcf7876fd7b550c2b4d01342af06a633faff5e GIT binary patch literal 1563 zcmah}OHUI~6#i~o>4T|2d5WS{Q2UTh#RqDAVdbR-jU^;tTwK~q8E9uFGgBge#g)6R zNlcBJu&6s1{v_kM(}q}DaC7ILbH01dcV6@B&-Wt$ckwoa0o>@tO~e9-%WoopWDxzh z6~Z)9A*e|EaXW+{W&*e)zjx(vPnz$CFpCF%JoMucL(gMP*PN#e!?E19rIswdFZ9Ae zNzHC7X5#A%zN}Fc41GCG7pv9Emax|NR+%)BoKfKAb#7@=ZYh1vj%G8Y+kF*`N`>o1 zTb(ObH2s~}wuHTt6Z@i^ZCWxEr@}Q|dhKAr5H$4pkD^d@C~P{GGpv%jRo&au998I! z<{YSR%ltrCnfJL}zR%S%*Gp>Nu{6EprqE-$W`^<8pArFXm5BOa7bjFE(-zgDA^CNL zU62Cmn)`W+Zq*B!81H( zxZbGEs*ReknuRON!bM55_L<>w z_XlgOL0}l`GKZU+n{pJ#PHQ|hPqW{c4Bl9LlcCoZdT~YAHZM{AX|PY0z@3WzHYPOg z4ChP2dC48V!gYFTG2D#B+vkzSSX$(E`~#%%oow^g9mb%vTIkNcOPA8>;igH18K%22 z?I7RkAH@tfMsvy;hKOiKmZYYH@&&^ZTL!m^$7!Wbrez;vY_$VVkrHj$orz``sG3FY zh~`eVGMzYMYvb#3_`nLfd(2ik{&LNWKaE>%UFp>26ykEf%UC1zx@qUBPgTq@#u5_*?d1qD=U(i#B zf4Yu9@&|$&UlEG*)}fF>sUz$Ho0#*-I{G9tFC?=Rdg+W1gCR<4m~LalY8+RHNfehc xMK_ghOO$pVlP>#2lh-l(HB1naNv?#BQf^a76aE^-m?W(ao=BMNQ*`&>`d>>BoI?Nr literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/GameLeaveCommand.class b/out/production/CYG/fr/gravencyg/commands/GameLeaveCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..97c620f3022672bb18b51c3342ee650311a1b18f GIT binary patch literal 1069 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ManageFriendCommand.class b/out/production/CYG/fr/gravencyg/commands/ManageFriendCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..aa517248deb999c307410b535be2c14776e360f0 GIT binary patch literal 4406 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 Q==kecMbh_^ObLnq0#hvBn*aa+ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ManageLocationCommand.class b/out/production/CYG/fr/gravencyg/commands/ManageLocationCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..966fec6ce14e16d683f70114e68740b7b7f7a06c GIT binary patch literal 2781 zcmb7GTW}Lq82(O^cDKm_B@}w$7HEN#w5(hNBv2`7!D?Et#cGS7+vE_o-RzdVREif= z1n-ye!5MXi!6%;KAxvea&M-dt?7K70_^1!~a* z0I&~VG~#I-4PiU_BpeGNfTWCm@g8WzahwpRXJibD_p@O)r3h9=&VGSWgQBY}r-9$5(& zBVJ|ny?bF(%L6k_! zN^8cLX6xd;sV2pQCCY(4{0-gil}@N zrWit_mS?B=ab2Xcy=q=|34bI^D=?5#umhB#mPdU&=IKU;+k$N|Y`cH!fO`KHFGl9v zzhy_YOeT89@odw|osIr_{mZC=8C;Y=N)B9c@fh0rrYuUa9ra8eH7#$J8wQVFwoI;I z7OzRTq+kx08DiB;*gR*=@=7ZVO(WdZ?L|xh#jy49+L~eb-Z8Wm^<3eS6E)~3)G5Uq ztLf*s=@nH^db74}lSNf3f{&$3f{$4 z3GXSmhU?T1g-EFo>QauQ#pp$X6}*oRsA&r{ib=tT_(*g(IjP`de8SLG(dB~Sl+e`T zbPN$)!lw#8!{-d~3Z2>m#jvTm^y$TkD~4Y-E7SoMI$~5DHJRen2o!c|U~C|@n_+$B zgqBOuMD4AzLux2YOiYLk6NrgtgElk6O`6r7Sd~FuMq2E9GTL0W5t0`)H)$D`O$k3S z(l^equ6%Bn*rZlr=H%oQPrHe(8fIkIDr^<97+Wq#h^=LgRIDb3utT8@amS(U=dapF z$Jk$0P5h##8O~tVv}~T#oX3eyFi0l9W_8Ob6hJYMtM<^a@ARxtLk!8Sc~R? zVOI?|%CeL+G{>PX!WR0N79Kpm*kh|#l)ZvAK=3ZU$a-vJ8*f_G7O+n3r&&ydes zjW8mJ(|uh*7TxHf8);z|R6?RpFm@LZ*`Ela9$=l_3*X>s{2l`1cM*)#=h1KnQXX=o zk&bzU<`J&L5??9tS5)J#Eb&)W<2RM~tIPP^3&HR3ZFgW#B$CIPuhDl8&E(J8;i6yb zNVsS94#I57qm|q`6zpE8zX`cJxaUxCXC7_wwqSf7?F@OW7eE_)pv{DQ6G}X?(U0Rc zi4XhIJ$Y;rVw-)juusb)Do9&=(h4GNjYm52=oFa_KxFzHTIktAnQNs=wP675;8;(e zmre9_*o?2Jf;X@g^XSA6RLLKyf!n)XzCeU{Ww516|{qRiYkAIJX{OuA+G(6 XUI_^ahyTK=HYL(bVn>Kshu(hySPBZ) literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ManageMessageCommand.class b/out/production/CYG/fr/gravencyg/commands/ManageMessageCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..66811ec0c0146520c63b2f97fcb2f9d90387a6ec GIT binary patch literal 2945 zcmb7GTT>Hf7=AtyvP-fEMnEH=!4nYzQBk^cyLlgjK7C!FpN|DbXvr#{5|5sD9(s@O~japvm#y> zF)m_4#H1H*;2eLvDdN1Bti9!hj42Uu5ea@&L|owSq=<{0pAssG8X1wbgr4qa@ElBODeEvpV<>jPh$Ia;qiFHDWF$I%ynp8ygFC7x6o$H3 zN>hgI^ps+pk*8Fm_+xrpR>x!`#qW8d+q#%C8N#Ku;(9tw4$a7rtjS4bNHI-%MRQaF z;ZDmbLg_En;s_XObZzjm61OdKxhoXYjbvoXo|#Em5k<37)?DPYD$glK|70#YRo0S` zQOihaNe8}5Hj;(Vi~-^+3b-V} zfGHsailzSfI&-=$VF%h7);r9iOyuKa*!y^Xf8_DJl8@1RJZ}W$L?Sq8+J>g5&jlwl zx@9Qm^Zawc-*4RsO32`C0hcAr;T?W?m(npXty8^>psfWp-Oebo9n339cn?0KVSydf)l(i*Ai!cRM#ax0yHEF4!pH?(G zuiAXd&KN0!lt_oDi4tWO<%WtR;eC7{;X_7W-&(YWoYu!&Yt zn3$O0d&(8!Pmer1t7x?BxFT8Ue$x)Cisx11OnLgjeKqR%A!`La4&`T2Qu)>^%C$(B{~WKz=&B`TY=9%zA= zi%w8Va-z=(EMX-9UqZIz+-{+W+X+@l4QX@JvNre!;pnm;A>H~P#At=lm=wYpSY?5i zqc5lM64&O2rC>Aizie^~YjYL`R5fpeRzd43R=5sre$6ftcwl#Zw>novP>@!cKa2&~23dEUM_e zzN7O2n9JpUh^mf9aE(8N`zKW2cN9A5xrY8!fOYVp9!+RKm~KruRdk`7Ze#=z>>|Sq zyU~+#P;~`v)R2EQyl@ZKJ0HPArUk#4Ma=_vv+(&PI%ZM(GuBk0z^_~8*H_}NUFQ2M z@z*W$8;bbh1^4%O5_a|Y8?$J-i`#iT!{G(b57<_4zXH7bVRuiTJKR?ts9xyxxO#;~ zp^^0V1*#i`o<1=klI1Mc-$N@M-TZhLo_W-D1-L=~26~*mA+Y&piyc`6Is@)53OtLA z98j|ZXfq-F4pOJT#mNVEIPA!hWGffj=DiPYBV-;%{vUNskZ)eN-I zGk|Jrq&8@#U(XgOXvIwg=|j?nZ?Fa5Qj7dZ&G9R>$8XdWi&WbuRMV&EW+K9D4R*5@ z>|yQL%et_S?L#l?#R1lbJ{H9xHjKk;33q z1pA5RChZ!$Kqu-drY?05oerRnI)~Hxagh4!5aB-n-`}|T6fX)m{0wyv1%7-%Tg0T6g{1Uya=G-4T_Bj1`-$$5H*O82y6mULQw@2i_WAC1CyE5WQLNRD?h-c zJ6DwMWC5jCv4EYQ;fGk>Nm5i29y3)veII?!?Y^hy&%a-%0H*LV1djeNns7gWfiS#y z5X7MS9SY$gV(x4>h!OW2Z$tv40gMHpF!*ORL$l`?+GFYWmXfo?zBJT>oRZpDOb)Lz z_)=z8GPI;MLoPe{jI`E7Mkh}+ZK^_F7nbJQ6{pYM(TWUpSgM)N3nN=pmV_a4a(N|{ zDtnTIpBI|pqFrKV2${zG2dO$X(T&H_rj=7N&fcD8E7Gtv`#@RI#euYvTj^b~FBDxE zIc3$hG$U6k-Crn$8G5c?N(BfjMmp3cYG~eOcBN`3hi{+>+Gbh0#2CArNQhlkh1BSu zp|MC?Tav{h-LBGAt`{BM2lOLCKM42nfRXxIXuL(%8~DisL`LFAU|z591fCzItlKn( zOR;7&Qht=|j&d$q(MA@nLOb~wy`AW)AbzCZjF)1G#OW6d#DBxPaROho;TZlS1db7m zhG=?>@J}>)kT~^yh1X^D!exxYM`Ifr2zih&vFPI|gSFOev? z0xB+8-ryu2Oj(u(s3NG8u_}}otMotc;>CY~QVacF&m@^40jcWh_q}i5yMKB3!z_TE z_$+`!=nP^jx&#~!!h<6LJd2|OUI@aEBO;FRGZjELdN|Z8;y6D~gm4mlBKk$VC}JRp zQ+P?lpok$6!y-mRoEGu2h*vn}RS|NK)Q<8?I*1Gu5obhXMV#e$Rlryf8j~mGgk!5(;-su+j9fc|f3K>m_I`$nSn7yp z469PAuJky$QN`?+M>WDkQbtJXGRq``ZD#v|b2pD?jc_r=GWVAV!GR$mZ)EOUF?S!J+sy&rBuE|r1**=_)Pm}d* zqR%!}J?jSGkE* zAMXz_lWEGv+GRXrSkY(8>G5uP!c84DhyX*tKJu#1aLlyQrSdFqSUzP3FRgpV2ON~V+(ti(b*iGe~9y9qDglQ2HTHHLVJ%>PUy!!ygX_ZP->zSD}D ziKeGShVK|FkxVI6b&4s~InbHfPR(38-o;!rWILAGKu-`D8XDsJ$rIymzdSLa=(OY- zV@t-ky>1C=ak9&c)=BcLY$pxPFe&4QPaYg(s4SlD1v2?sVy1U=Oi9~MG$YzZekC!K z$Cmm-8rKy$QnJ?=LKcPAtymWAPIpm1I?L{!TdkaPWX(F7)eTcg%GTpphbUWl)<<;B zhd~UXjBLyK%|pr9Mjn@xmzFuXV)Adqp+(00p41$r_YA|<;yTQ0UQ!1V+42;c$swBX z`QB#ed%{;>sg0+>@E!{BVOj_}wj^kG)RK;68#z8+1x^Z~wlsw0`KYH1YEk+&KArPP zO|~p5EH=>xeJlN3&{v$Va)QbTu0uV&8|cm zQ~eC88=~H*uaPqG9cpIq3=eXn8>EMW(jvIY1y_*F=7z|Y8PxJBdBCfrV}n}vbP;u^KWx6}xCNcu;r>CaTlU#XhEQ3e0R4i>^r zR)rQ;gI3mzJ*=I6F}iS&oj?a0MwiP4e2*jaH#%D%;<$k41stH~A%X(gWdC40-Tp%80elY- O2?onax`SlOko*r~&=r9I literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ModFreezeCommand.class b/out/production/CYG/fr/gravencyg/commands/ModFreezeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..a9c819cfc9de9f0bce3f2463e6e50ed7bf5f1f91 GIT binary patch literal 1563 zcmaJ>>uwWA7(HW~tmABMOA-hz;Bd8b+cc!5#gvw$1X>&eO`syEQpfh-F0ps5^*U`3 z>Kl*;;02=mM5;n*C4MAQfAo(-apu}-1%QO4k&U}|M^UvEq-vF4w{S+*WCNb89 zaZIEz3A+>hm`dRjOn2cDW(<6qLK2@Paar%5C-H^euV`Z~iK}}5(!ezXUkM~?(s2c> z{A1s)_;OXbrL~GZ_wZ&;pyR6JI>9x8!OTH(_5p+Eys{GL%{#6tG;2lWFUew+8Y}OW zWc7jc9WC!F6T#0;L!bq#1`asww=v+q{rn(}jx@=xTdw5!ss*o%ShxRsnvuOpCtMFj#U4iBYQJp^Gj^k#lX z+n@=gBCLX}h2Ol%z2QF&n?dRFBWmgm)hv4yek81kIecT_hKYIHG;tII25y=77T+1TZ6c2a zfn%*H&NiKDS^4_3f58iEY?`=-?@cUfoPoX8^3LY2 z!;-dL*hiW}Cn<2Mz2nmEs0I33vlTdg*tltG;gF{5^768tc~?WZUy5%D5IbLtT=*=1$2QA$lt+s-?UfIROBtN)-8 zNR~V|;KgLXz7p;fpQuuh%Pw<(nULbLUT47q6KykY?dmQEcw{p0qMO1AzfWoJ{ow(! zOxzA%)x1@O5xy}NA0UC4<{Q6a{2s&**JG5f;|MiC=jd1>5q|~oGITl4H5D3q`2_W0 znDS8Mh!gmT5<@~jL7=#J?=d*{IG$kgZ{nk{rl*zYl=hH zG!2vM0COBdHyhByYAohIjMMy$UCMF0Q* literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ModKickCommand.class b/out/production/CYG/fr/gravencyg/commands/ModKickCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..95d38483337cdb9b8a6f02bc2ab3726e4035d50a GIT binary patch literal 1688 zcmaJ>O?MMj7=CWPW-?7bNC^;-I%>g`v<+4$nqrX#C`eK(t#~Mh#ceXiA<0afOgMI} zYtM1Z5*M{gHX!tzF4}Wk@QZLGK6et-rl~n6_ulvWdEa^Nef8JN9RL@wYTyWRI?fN^ zBg`217#B2LG!VtCflK&Aoj%o(SNoif%Q`+&p7T1csQq&dS2ZjM#4g*8?avFOGR1Gb zT-B40ET_Ct%@yt~&Q07Eh!ot4B`{pH9c!uGShu`Yxn8FxS#-;?eph<7lDo=?|DD|u zIJ-Yr*=;nWQ)%T&ZsoRJt`$1+9J4p1?WkM_Y74|&=lTy;x$U#q`ApIEs=4)ct!Dc< z%kgc0Bez_a84vz=-HJS@Gc%6!1crhVEhU*P27S?T3jvgHz8 z`aq6_wq38VG@Y6O2zJ7h?0mEj8UdqIa7i}U%ixMH%e9hh1~UsjL_xzD4cGVu>AT{# zy|Q(~Rzn`$Ke1`mOae(<7s!9@+jYBTnY)`-Zg;vf34w!h^S(JJMz^ zO2fZ~LIO9isNrS;xA29)@!lzQJ5;r96IlX9loD9Nmjc2}U>RQtWKC)AZTWj!Tp#Xj zmDQ<9@Mc|_UQmzK%k%RDX9|pPBet?4fZ3EDv)oZx#;AW_8piHsb9rBIUPT)TtYA@K zd>=s$ArzDKcU$c;PT<60G$O#>8PL1WrC3{AQ}<$^WjU3S)oRHqzY}jyZ*)MyBmXJ4 z5RjL=CiObh6`1Z9_kW}eXH@YK>-)B>w{BG(*Ru+;br^y*5>z&uL@F@Vw^T3cf0?cO zZs#@$9L-D|Y)?RABOOW`ihP}(@E%6^G^t+*ynh(wdX&;tzCWuWY2cFL zY6ONs=orE=%Evm6IF1vP7=koTGL66~ywgc1engmY!1m-$^a&E#WatILAv~Q7&n!*- zj>sSQRc-mmHlp{QBbJX&=40vD&a4)m)l+&(dxDGUSW2JC#~G52KZEudr_<4{yHe;$ zwLF8t^_!n`vH9jzwrieJ)&VZ*XvfYqsGojYFPWe<`vQXk%6F*OcbHfSKMXa1JR1jR z72~9as2OJKqe0WBV6x>2j9~%qqQvP|d2Zkge#Tk6q(u$vCis|Bcbc|1BOcS&M1H#u3+$(J-OmoQ7<0nB-Y7aOO3l NfAUEntLPuX^xwrGtNH){ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/ModMuteCommand.class b/out/production/CYG/fr/gravencyg/commands/ModMuteCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..7d77a1eff0bfd012a941abe963f0054f82051357 GIT binary patch literal 1286 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 MnuHmd$qP07FP&H-fdBvi literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerActionCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerActionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..cd781e8231c407cb1f6e4e8b3e20d0822dcf9e4d GIT binary patch literal 1014 zcmaJ=+iuf96r62BOpHlOL!lQaEfmNFvLJX1LP93+;#QSfMItv*nMpCF1H`XuIuz8K5sm7Azg+mm3IQUpTjOz^(~7^ zCyYEkOixc$!lh1BGM-9y-#eegNN`_hj~^wG(q3MDiJ|7nBx`kFXyM6-q0wj-g(ics(>Mu(87396SCG4aN7ophN%B!=flX#yV*4VF z$t3g|40We-D85Eoq(J#@=Jl=-%}D%6#f>F6#mTp(f5zv0 zaj2;WAN!-4&IN>JLigd$-gD16-*@i!?f&`u<2Qgwtb6bTPrYczvsMiG@EkA1^3sDK zLav3cfY=U;B`jmagI5^!!VA@hF^tQ2En`B0drmiWYhFTkQ2S)68IzrHBXyopqx-9o z(4GWWG@s@Y+BMzao5fs`o4YKTrHEh4r&xB6nY!3lgD&e>FGv_^?3K#ra?D5<)a@)g z=jIYKO`V(3N;EAO$MkP`ZCFC_xZ%n6GZdm-KrKeUqeFC(z69Ms_`?PC9i0) zy_iO(>2DOuo<(X-G;z`$1qTNQ!e_m<;Tx2d;45$=y}=6wmLUbms7;mjWw<3QY3X_L zQco~s7yRac=ylkDNLeFIp(SlAx_-2|wHrIy*5aG1Wp~$|R!*Z*k1$iUW~9N3wf=U{ zO4-Va7*8Q~@f%Gg1RLqq)vnm9mPw!i8{Z9Par)j!3wddAXD1%pq5H5y-Xu_6Zv(;F zfgm$vYk4a)VX$;sxKF}V@X(G@uc?_c5~`>oyr8bJ!tn+>jnEJ39{r!h;{aVVI%)OO zZW(Th0LpOq5|Y#Dx`N|-IV(V`w|v${|F3)KqW%3!F1qPWJPLZyOP$EA=&N@81{qE| zn+f}!CAb_2hf8RYa0z#tUoN4w1r+emr~V7xedkYFF5$a^k|?3gfsb``KU~zuk5&Yz hdl#k&SFjkY^slj)K|dZ6I$`1w2FepYrkw+W{{SZafd~Kq literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerBlockConditionCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerBlockConditionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..410a70a4ae69a451618be1b56cde950cdd219202 GIT binary patch literal 2016 zcma)7T~`}L7=9)RED5V%_-v~+)~bP&ZV_zN)D}oX!7d*XNDXLlk_=&Bvx}PzM}CnP zUdcr`v_~(z^hbGoCkbH}D4KIJyEE@Q&-=We`}aSu{{%1%CyM(pVz`M18YZLo98)ob zF|FZ?7`pK=ibwcTy?xb#uhlcHmd8rxn;tw-&!=jc>BTJOG-P`53|Y0AkK#ENBC}*B zGBX3HvqcTxYIwoW{aD)4d%`f3G1$oU&l(Go>w->(!!g z*Ll&Rlep=WxRvLwRQvW}#M_lMhN&P{$*ESkU9K6c7C#d1oaL1EGmc%Bo^e2EA{)UmU_h*I4n%MX&K<5rAfeScqihOj;99krp;Tjm}=(@tl;mRE;+(b<#ey$6P{-s@~CK96NB@SIK zb!_96j-Nnmi#kdu6H#9#u84yMp<@RX9lMYk_H^vS(oqHFc{1SR|EZCSap~MyZx<26 zjR0uflUB{hn3Ot;YTeA{v*skjtzd=uwJ32@S9HQP7dAIHRi6y_00k#kcB#|} zpqH1+6KCK_n z?iqcYLiE(fQ^#Q8aQFnF-h{j_L^fsV3@J{^Q2KpN4UrwFkJ?fP|5HEx$a;F#w z;bn>r2N{kr6d#U{oMN;K=fsA|2rxiq2a&=Mo)Wb+j5JA(x6F4)=I|*#BXUFuNsN&T QDSD368m7~GbRNRQzjdlDNB{r; literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerBlockEventCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerBlockEventCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..fe6340bc75767ba448f17e9f403ad90fcbf2f4fb GIT binary patch literal 2018 zcmah~U3c0>5WNc+8Bps4$JqI3O4Bbeag;P}(v~!_!8oCnu^Vhs>^80t8;}u_j}STa zFY4*(Q~iLCo6|ldZ~aj{odt{~ehFVpv2@LOzBi6vSdVg2#9g zS|m52g#|#^iW0t)@I6ELfngc$Lx!o8`od8fj`osU`d&lHS08876^2mWu5*S7)v$P} z+pckEU8|X7iL17*nH9}3#Cm89xlNAyOsXN+BO))jAp_E<6up0dc z!n=L13|G!SN&+;eLCPo3AYq7dp|-D^A?c+tEU{xddrHye?Xs)sEs7>uw!4nbmkp7q zYv)9LOQ@Bg%2+{3##O8`T=#`<5M`%Noa-89ojVfNWc+}q0$pa9J{j*2CbrilY{;nK znT#J%9VAgmO{IllQ^pp4lJPU1Go)Vsc7KWMCS81!C%abi&F_TdZ9*sOT}PwIk>N-&G_hlQY7v537jb zvX8Lq8fHhyt8{lJ6}noe6x2HmSN$dCMbXXOJ);fYa$s|FQ#8q>CkZQ>%c&>GWlUXM zE0(u&>S~@kZOU6VM{yp@TmBQ6IepKknKC6iH2;CMHIy!`+hBre2u$Y8i3+ zuI*IO6G2R?*C|de9wAz}_NdtyZjet;hR&!#BAD?YsH~444Fn`94Q?tkrLEzO;Zy=5Pg#X`C$1lhynrzPzbEDsE8tnVjxIWLQ#BGiC!kjWEt7);_e3Jr|8|v z8Oy@Lg9nb@{X3RDNy;J^+(Yk9_v_c)GjHeT@9#eVOygw~9T<+F9V1cP!tE$VF&04r z<54mbVd$;6gS*O1hGD4plrs0ixF5oU5T+Sg=A|wD1%~cKy5Jh7%MXQ}J2H*rtChL& z9fqc)lNSsfX=#hKQZXysEuOW=6H7ZeZtZYas&&oTQ z9VM%tIpQyJX)CsWsxw3!d-;RNm3%5Ul}J0TX=F?L`_ear?Mwft#y9sm{gxkc!{WAS zZ2GRW%}VPn2bFRReV3 z6Av|9M^6Yd8XnQsp@y$!DaFtuc%tLEN|T^v9FbPTvcHb$#OG?NF2Oz6R2@Eh211=2+} zS_!lvOsQ9CeXR;aH+`umqGV1q487>9(fuM!kYf3XuLztVsGp$e3z|P;;GE+GEgzxj zvCt{P0UYb6h%kIYzaEQLJbKe9S_4ooEr2q5^;laq5Ud91MFG`m5USHjw36+@F!eS; zUFp=%G;UxX{YYW}8N{(oTkwVuIl3&>H1TSmf2YY4zMrO`-YH{{=D11U%{0PLH@V}q H2w>r!|KvnS~Gjj*|X1?J@eP|KmG)89Y5=s#Jfe5F|U3L zMO1L5fU7zdVHI#qf$yo`6&+{rzK#!Yy@(I-k-|RK@d-XH;4`&W)o??{5^ievT*DU( zV>evs#y1(xmK(o>mJ{;FLfU(dRlB!Zo!?;?sRbRuaH`=-v6lF45pMCeM@Xp=*xcLU zp{wQta3p@7g|(DlG=iVp+p212x<>a0e?IRtYF%LFjcf zd}ZKkG#D-&?%Q?08$^*y-84JGv>a-aPi-=JVm?UP=8Sn{(X}D*grO1~QnP-Y9HeDHuu;a#x@o?XJL3+3!QjpouF zsPTxB=`y_>S5=ydk&vCHh$8MB7ey5+5gT+MbdQGdWG{(wh(~uIh^eCUnZEwF#Gn)B zO6bz|Wb+dBBh{D0u4gseNadc)BGf=~LrnLQ5;FCyw;u{S?$<-C+tPiMh&r`7OS`>Y zzn!I32+_tt|9Vn8l&hLtQa3_|GO5byPd!&lqB!uC+Xj(DdinpvkspGtpl4*L~p?r-Gj17zg@Iff^=NP|4X0Y<2oqdkoM4x>`i4p7M9=>jc| zGxVVMQ0$KnVB{!m?noL9PpF`il>J0ypBiNMFi|O;?xCbK=b<#ukt(J10?jUy>RB2s tlgbt;Y{P_&OYqYb&@5H@q8>@e4AnvE@eal1C=M7wZgz>#SsLds_YVb_#%TZm literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerHatCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerHatCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b20648a41c387b10ad960c05e57df57ae7993ee4 GIT binary patch literal 2046 zcma)7Yf~Fl7=BKYvPswi<=Ts_TUy&dq-h1gO07~zOEf{`rciH(a7edgcf;<6k)PrZ z=rH=NjFS#J;|Kc9|KY!I9G^`>Ndk2Ia+33&_kG^yz3yNC{{AO`F>J>$f;({xAQeMD z?#6KsAH*?=u^2wYc$~*X6d$$YK0XeP$#y)zCviN)r!jnnDGiU}=)iOoGr?~NXPvw(u1MDm?sZ|re`b0DEm(QSvZTG?rRIxrSGlv&pRP$JiEl~M4$w|` z7l=7_`X`ky`*e3Vk#*ccYQ4O*W%?;)`=-BJ$D4ebeJ*!oswnM3YSDL1yHKUxR;s!a zxO}!L2}rj<$~~umFg>O{OXdPbBZO%)NxtLmrZT>=7JZrDVkGCQe{!-^&4q@nKzz|D zyLt843=-DY8vUJswT7IIIee+(BIb3x3q!+KIu@{~VM)g_Ry2IA;~T8%Si@6+vBSO1 zW!u~?D~lwI5A9GIGGvtnAdj`ER!}-_07(0&dD#L&MtFMfb zbm?|n$8&7yD8dprM?2%X4jYyZ2PJ`9P1QcLKLoCwuDDchASyI;#VK_WxYUGD_RXS~ zn$D^nRb+Xy>6LW$p1_sn_G{E)Wk*~3Ihc*N7_6?s#b-U*z>bbCHaTi|Bl`S8I+t0_ z1rv3a77?PRH|O{{hhq~?46PBep+-%UE70yKdn2bjk5N~bP-_QPCs}7$nWLfOdSTWY zAdkylo3J;U=m}g19B`I1c8=?)Hu8gKd1)N_AmK~9C2}8VR?kUaaWxjnp{Iev zk(jBO$}BMA#z2l9X~V>^h1z7P#QX@1Bu-gzCq(sWrFq1b7CH5j(}{$#K)zF3lU%W$ z@@G}iQa)R(sb!9{dK~Z23a;~eG{BD(5CSWUOFS?0HiI@w0DU;Q4-t-pUm^6es&$2D zy!zIOc68w#-ur91xQc7M(JEMcL=wawtRw!7Fd}?&hkrx3f=IH0bNgs}fvXLI3bdc0 zC%dBuh=uSnd4RaU0on!TMk>(vasCBHlYgLN^%Xk1yDGR4h%4ykzwRC$74%k3YnCGi z=pzihh7s@{M3iSQfBP}axRZ=^f)PxSw<70lz69|M*O+cp literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerHeadCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerHeadCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..5fe927d22e1f8445327d8a46d66271c55686ca66 GIT binary patch literal 2406 zcma)8T~`}b6x}xo3`vHTh5{|Ewc4+w2~BM)YJ(L>fyPb(8VV9r9Fl36l1y+ip^YE^ z#V37L9*S7)a{1_Qa=F}hl9WtIRUQWJx##S??>!%vKmY#aIe=UEHi#6aLKw&UVcfw7 z@-wYqCWOJA)cLYYF+Cw{8w)I`ZDmKf>^x8rywjvNn*Gh)Kam}=h zT%)>a*vtB6g_ej`E9#XM-8SXAZ45YDW?dlW#VXdSRoyDplS>u7Y1sD+y_9a5QY5JA zrX}Hy&*4z`L*l@^qJ*w60a&oh=y=^*4!*Wcg*#=ClYmf9@Jz3GMax(AOrd4*e z_wTrT0^_d^r2yS7Q}b{S5Z;f&UBi+3j!*~;<{iDboz-{T<16??K%uuhpunx@(U4fT z5YysaJ2ktR%s58Xg_8GS=~W&#VA3XV{=WnI>f4PCW+gde+j>(o>khX^y?Jf!baET(6)<)5jCTkU%GVlp(U>=7rHmd)`!#u&3f5E< zu&&|^K2`9UiqEm3;tS{k=ekneFz}Vm0gkPl)FHbUR`L18E#d|3r}jj_<#JUKrfYK z7YR&8*L!0hHd%Ki-_z?`Y+y2lsZrLxW7as2#=H_c8}u9MQp7U1*y=;G+G6_tMs9I= zZevNygtn!_)~*W%3eNo?70F91a4Py{A4*jN2$3KVlxM8_r#`F3;0SJl~I(Yt@~> z{-|W}Gd=DbbLg|U`N$|bsaS!@BN(-FR1CLK+~#u!l8heU{^DcHuwR1cjCw+Z>C%zM z4)mP(Ri}s*@CM)4aXzPjAM6^O<@YtN?xG(){#LKX_aOZKz&?CGaqYu7enalwDBs^P zyw3G#%NOT~Cx2ADi3>zx_2N<+@q50y0q#x358xNbC7uVqgOc#y$k7nsRQ?TpYyOF! z(Vstn;=^j3_5p!C1S6qH_yB4jqyoRIV4V6uwF*~*_$~Ud2yZQC|$4>ya@hF4K$m`HCts{e(EM_s6!4=GhUsuE2 zH607MuA!iz$dF!>u2hd1Mhn&l-?V+cC*0<~ZC2iGmWwrpRK?pC3`3T5#mk`85dIc# zIF!j*UXwdD?#nRlBvb06Y%}z6HN94gyW4H^mBaUi|14-!jxuH9Z*l2{Y=5aUWIT7{ zi)aRl+;q5Wn^omY*N#e0??!SAm(Jcw1#sV{ zl7~+rVbH5y;5Wrn8FoC{U;a`kt6|YV2{#O6anryOObyEhR&YzhszILIF>n|64BW>9 z4G#^JvBt0vYxm3pVwgT1xYap9hRGNpP||6e6-(?1hupO`Y8%!H!&Lludr{=UYM)=B z_y5>Xuh+xL7_@~VE5k8R(jyPY3&q}p?khW!fNd^9XsJEY|MS4YEIz!&8s_L)>U4jB1gK;f^gd6~6Qn5v7>lKEV98YSI}%?b)F8d} zXl;=2L-YV+M_63IMT%$_au_Bih7pW*7;VBNX)Rw`JV5dgsRZ5<_qju)6QGn5k* pL=Gte50k_QJ!AB58IPo9k4TQC^0YQi5=4v%Op*v)I*JmQ`U6G;Et3EM literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerPingCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerPingCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..471201893e65fc22a3c6ed82fea19c4e0d11ba2b GIT binary patch literal 1352 zcmb7EZBNrs6n-un>s~78#+!hM_(HbaTqA~`OR6>L-0Y8wkU20`(m$qBPKg4H^ z8Br5s_~?%^p1Uo`*dW>u?Y+0>JkN8^dD>sUzx@C(hqVyy;$9ftxG&*B7(R?kP{Qa$ zJcxvNCPSFOq*zS_p^E2p1S!l&n3XWc5Lh%V(_3QbRkQ;~H5|Rdt=y5JrgzpB;#mfN z+Rk%^Zq2m#M!C4poo#);Kqpbn&gq4$?wDfVIP`n(OqU_vjFq#CMcvA~>SjSd;?AaN z8R`1b0udB-(-Lqk^b8@}%6#CtvPXQ=ie@{8x?es#G(DADp6MMm02khB@AZnV7Ie!{ zw>*dNYuW>)8Xv>p<*6hYA-dj z_a>!gYMScNR9JY+E;~8CYKm_4wUj<3BujWG;}IUqxQ-_bGv_L-aWtwuqiB?!7W{QY z8S{9`(0{Q3%Vo2W=Z*j-Exyy^c^Qj%CSgg&bG#6nmo)y4Zu3q-DEvKcMKFw{Kz^HHRIwv98dNZ8%o6}}A_ z+{lYYGO%@qVP!pj1#Hl> z>*i+Yp^7d}oQMa``KRd%VTia?%4_brx(Z57o9bn{~8+4D-ZUq54 z0pvvTGnmisJ3+^%T2zeg;o7?{L@2k1_I>qO^wLUPGWszMsr&G|6#llY4Nb$va#6qwDnc(pKv2*ksHGs9GRzcktiP79hDe&!G-2c&d;y=p z-#Shm{NV%mP>v^UVOqJ2?aa=elkc4G+db#(?>|3(0hmQ0hFiETqYHQ97{%Q<#xNf2 zk}^_A%gEqf44s&eF$q<|l#FTImoOt?R>A{@=z?jR-XcSPQhVpBhRY9xtsfd{?#*g8 zwapO8IlF?PTQhC3?w5CjyUBMf@+34z=hilN&A@ItBi^1_Wk|K>(w%ad+q+eD!{Ud+ z-LM=l*KlQtpv+A>NOy{!A?Dcmk3#o7;+slpj%%np{{Ft{slxV5@35IL`&N6;54dV^ z+fa+1YuZL#d$dyLV;DL=lmu|sAkDpJBw^?*dR*Tx@JjQ5a?$Z!U96bF6%3p@&t#xO z!b1gfm{-t^M-m<@$YMdl69tP{Qt%YdBs^D;!;*w$1$nF}7{CmH%AS_s zCQ_oHbzY`Q1~I2vh#^jZE!+Iyi#1A|I0glWQMb0%mMLvlJ?z9oN<630f<*amO8Tlh zwnq(54L6)@q0H@Zwt(W*5hV|xq%+^Z!r|}_gud2M z30mdGH^eErm+XP2-G_d%C@Po=%0z|7U^C+)>;=K+J7Ic`2jx#`Ks88E=jVozV)1)K6h-ZC( zL1%p6(I4e_HmwYWVjea*x9>YS-`U@Pe*6OP2*ng;aXSqiISq4Z#4$gBJL-LR5chCD zjRhFWG?bawu&ANHkbEg!8LTsm8P-SNw0+(dZtcJ}OM7pM`7%SIx85?}JN!WSySrN(rH-pe1Pv}-1$T*_ zA?3N7Uqvkph;PNPJl{5};r_l1OyLGHIOqZvKUkl6o0|@IZF4*DrE5pMCz}x;!}Qgq z)ByKw>N(p7gdx4{g?>%Emg<+sFZI8ycr`rGv4mwELogX8F81;&luljvD!fAB(?e1A z0$=3R9CD|J&ieZ4p`X*SiiaB3bQ1Hih9^3n;+c-;c)_sHGn=c&$uQeLbEi9RhN+%} zFpy5mELoy099jlzv%G1oGR*XfaXyO_TkEqb|0$?cDr%A9hB}kH*%WS_Vae#D*(FzZ zbVNFNmG}&Uwg`4z`6U!v1e`JQ9T?TMsb);o!;vOu9)^Ly>nsYx=)Z#V>qDq5>hrB= zwYW{v)AhJ0E3FvjFi1B}JuxuScbLu*vNn(;51=m=zJtXR@ngikMOoMBOh>UHsvX7+ zvd25Q$RJA=RbdokghU&Mi7sNDu5O%S^M#*??;RtNxpstP;RG7P5eDe{2&ogKW4OqZ fp)Ru#Pp*S-#xsveOc6ezVj45iKiniMhFgCDyg?YT literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/commands/PlayerWorldEditCommand.class b/out/production/CYG/fr/gravencyg/commands/PlayerWorldEditCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..241e2798c7aa6d7d0c223386b1fecc9407afdae0 GIT binary patch literal 2250 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 Mu9Xs|UHR<)031}QQvd(} literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/game/CYGame.class b/out/production/CYG/fr/gravencyg/game/CYGame.class new file mode 100644 index 0000000000000000000000000000000000000000..eae8d7fef7f79bfc7aa4256d11766157478288b9 GIT binary patch literal 7652 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/game/CYGameManager.class b/out/production/CYG/fr/gravencyg/game/CYGameManager.class new file mode 100644 index 0000000000000000000000000000000000000000..d594a9bb9ba6199e5f5a7ac7f817191e91f881c4 GIT binary patch literal 12347 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/items/ArmorManager$1.class b/out/production/CYG/fr/gravencyg/items/ArmorManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7597458106a1b35ed987981ad996914e4f0fa33b GIT binary patch literal 790 zcmah{%Wl&^6g`ud6XVjf6dDSpEip9VQHu)LfRI9P(g-_2a#R*wO`K`s;@D{71o1m; zSOXG52=xQ_D8wBL5m*!?-^Ur9d(VvT{r=AeXOf9&$t=CL$KlFvotza5!DA|_L_At$k9$Q*STijVy;h=Sw^L$+2w zWXLt+p4#1 z`Qug~!l5l?EDhXIw7bgfq0X>#EUn*9wbG|rf6ANp7>rI73E2$!bSkC{5{g&&Y3y)~>OPrFy8@#V3LeLSG}5Dh$|m_?cN3aRQo nRw&Pqt&&|r@uh|faQ}8xv6iwf5(A{LPX0QXPCZH#Q7--j_=~V; literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/items/ArmorManager.class b/out/production/CYG/fr/gravencyg/items/ArmorManager.class new file mode 100644 index 0000000000000000000000000000000000000000..153f8c2b6e831d8aed3c7c6b24f35d8a522acb43 GIT binary patch literal 2897 zcmai0TXz#x6#hOQBMVwA4mOLrVY^(Uwcvh9-8>APFF#mPtCKL(@r_Ou>p5 z@P1dkpm@U@UU+fQrLd~Y%d;>31mAr154hC5r@2grcA2&EWq3H63>k)T2F;5gPO$TA9kyVCC0)WvFU_BT0e}Ibnvfrg~a4GPBu`ZfR46P?*j4?Iv?I z{koxBy9KHO-G>CK2lL}(xKYs!ZFFWTt(hq`og+=NlFz8QLn@ghUQ||F6FP0Ob6FR0 z)ljpVNq!`Cd^|?J1$G6T+tdt8w`N28bLuS3bB^c+ZQ073vmsuWwA9RGA8)Z{+MX-W z=A6CQ4h6!23T$xBS;`^>KBZa$EzXJM+zI$>$CP?IWC@Q5c$4`VGo$U(IWH^iR2Jjh z!iObOt=>fgm4l0_g$c4CV=K0i1sSs#knt$aN_b4h<9I^GldL(%aGv2QhNl^xVR#m2 zWjx2y^9(OAyvXnp!^=GS3QMmtyvFc4!y612c=Sz{-eP#0;T?vHcvr@IxFq9!d?4dP zd?e7iT&>9X7?&k{BI8qhCgF1#U*L+2FB!gK_!?IP+8y<`M6zY{;TwUD<(w3=D9~i* zE~gsVP$GR&%h36B{?8)+Hi1mGh&s zqcWMEp>6C8EL=Iq-uiCVblbCtw~Eqd`*LvGQ-wE`{8UuFl9z!*B1JA%6n`5l_KO;?ZM;Nm%SGZVnJscD zt68bpX}YXy0^Q48^ZHEQuvFbBjA*me43;?M?xO--{^S|m%J60OpD_L9uIjhDs^4w} z0-j?rDi?ApuyH9vOBIKdH^+5D&DnjJmbW@ec~NVlr-CfUO1)7ausEj5wOeSZ<(X8{ zeuvRz=g|vO(5$GIo8kbv7B%b2qQx!QM=J&=w1P#g*`hqx6IZlsRyVTrJk$~!$mcB* zcLa_(4`4}q3+b_6ykg_*LnpoVz4R}DlFLn$ezz0z;12o62fsu099GPsW*$-%4lnRp7q4@1uZ!2axa{J-IW#!!H@bL}i?4L?W*1*I zht*DdEiQhGi?4C6ZbuNCZi?4U__AR zTdvYn9JOu0Ue``C*H%A$M>fxsZ}iM#qlezLt!282X=j-Rm^PPbH`A(X3%vR#1dmkp zBZG<({G$=P0K0*iDb~UOVF8LR7_wDL(9? wQL1i|_Rt&;S-OBQ2FU&(X?>{q8$%L?8tB89BSK0K_K`b~YeD}{>C;sE9}v>W=Kufz literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/items/ItemBuilder.class b/out/production/CYG/fr/gravencyg/items/ItemBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..8ec9f4a16a0c60e6d0cfaac0ea4542b59daf6545 GIT binary patch literal 5974 zcmbtYX?qjb89gJ(mXQW920P$|#X#_i3N^IBF2OdCxV24EC2XMyV|lQJWyz672B!;2 znx$>hEKQdrw9VdhAqk|39YX?id7iduKX&`pUy`=xy)&8_*)ma|e$Z&<&bypl@Puf#@FQa*X7|Gayb{pgLp{p9+t~D@sxZ&9l=d_CW>eAJ-Iw5m+#Bv2lC>qi2P6< ze~lVE}WzvkVxutdRQ=?d(Gp+qT1Djjo zWoQNIlg{EA!qgu&Ch4xLW$?5yZNySWdMp;VvdQ#VcNwNaX{BAWSXtVDIo{&Wv6sq8 z(=t>=hIqqrtT9GM?@s58Q|5tmV%$hulk67_w-=?3)hxWq#e8zz1LYtUZ4F!fc$PHC zGNjCDGo@iw)||{t7o)nZJXB?XlKRCb@~PCJGij4GDMGg(TT0GJS4GB_U#>=J$e2?7 z&%tIxF_TViI5yscB$Q*h!>M!LN~U5|ET_o2KTk4?s#9DG8tRH?ab~J8j|0V`J!K`| z*GmIw%N*mp?q!QCizmm@hLz8b!sPbg5%!^x z(`Lfra^%3-ggIp;GwECyFY!5^$!8Ph!K7@N)ndTe0=J8@juz~c%gZ`$#x@P>Z|qk@ zU!l~E_a%|qp<@qT)$tl$XW@0cfuHGk6F=9nAHUEsfM2o`N;*>sbh%E)uW&&_qZev_ z%E;yVjhy91s^bp4rQ=S#O>Xi85ba#d@B1wpsxLGMcb#>-m3BivF_I68d{4a{kzbD?VmBU zlqcKD16dW}I2&$B#Pr-&p0$DF0<*@?oN7-c9=qCJtC4^zjhtP;twq~~GrZ0`D-982 zf>-+ut2N1HnAKu|IM6i(67VbWT)nigI&aw)e38SZRhe$c$_gQER>^mkbKQ66Rcrdi?jVJx-PgVWkm|2xKP3J^`1?T zt%tFRKQ6ZNhY(Md!c@Gg<9!QSd2QpM^%|W}w+W^{mji}`fsKiEe@VU+w zLnpTLi3*6}Gc+Q`b~wfkQbvqL+U5{wYkwa>&)y0;0-=NmV;O;XHY2Xhh=OR_-09dn ziVCG!qikM5=vaH>94boK?xgMQSVdf7d!w!8+OBc%0yX$7e-{Q6@?DOXQN|gf)*7Fe zrsw8RS;Eh5N`4Nj$xY&?&DL}Mta1IUas1FKc2grrU*t2#<8Ji~=vNRv*7hEPbEvvV zdv^9KDFy6R9&~lDJ03Ld58aN9J~!XgZ zs#Gs{W)T_cXrD(k0D0_~g?_|mzedG9MEk@1ZF~r8xtVx*uXpoNkA3K+{VL|Y5B)0d z`*FbWI7ENqF)A+F8)vcH=fV!*DBI!BQN1g06JK4F8l`28i0UU8N^d>?>3_(COVgtJ|sHUloT?`}% z^fWtXg6~r7&`CF}C?)$ar~o&+0XAbu==9%2)BkJj5f+J=7M&W3(gvR!A5N_yKC?QFo&ze~Ljo&4fL}ggxt)j7EG3JAtpz zMIlWB_BigPGjTfYI4v5hMIP<6*<m!vFOl^)fs=e^ zC(_{Eh}*>17`}8&kJB+jS8&s@j(M!rFo$*QpLx^==(nQnqTDyIw>vsZR_;dRo~8w$DITs>~CdXR7kq01qJI?}#G6Lg!wUOCAXY5gd) zPtY93Xc(pn<`l1z*xx(B>?<8i!+9)kAoxa&a3r9Hc{G(1&;lz~14WauK_5 zi9GqPFQ9#HK>OHLT|`txcDEU>j_4K!BrAo0bOb)Z7CRte;BmJ+g@}6n5zS%!FiW&S zV^6GFT(6Dggfvfhmr;!?++Bj`V2y)!1Zn!<6b)iP~*`^?lbgmuF@6gRRtO?*tG5pe|5Da%>Z`DAR`;?cv-Bdv;wjH!%R=R~ Si_9KBtsaO%*2@qg5rZ} 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 Cw{j!^ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/listeners/ChatListener.class b/out/production/CYG/fr/gravencyg/listeners/ChatListener.class new file mode 100644 index 0000000000000000000000000000000000000000..fe16cad54e41f4590d88a3d4bd70d20e3a9fcc91 GIT binary patch literal 2236 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/listeners/WorldListener.class b/out/production/CYG/fr/gravencyg/listeners/WorldListener.class new file mode 100644 index 0000000000000000000000000000000000000000..3eb224326018d067f4bac12119d92b7d70f961d4 GIT binary patch literal 6510 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 BEUEwi literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/manager/CYGPlotManager.class b/out/production/CYG/fr/gravencyg/manager/CYGPlotManager.class new file mode 100644 index 0000000000000000000000000000000000000000..9a78f88c94a62f545a2b5975920a8a652fb01c27 GIT binary patch literal 6435 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 G-1jU9UZuGJ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/manager/CYGWorleditManager.class b/out/production/CYG/fr/gravencyg/manager/CYGWorleditManager.class new file mode 100644 index 0000000000000000000000000000000000000000..491a50ecec21296cb024c571d0d0caf21aeaeba4 GIT binary patch literal 7284 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 N6hL@*A5I3VzYXM|fHnXC literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/CustomMenuManager.class b/out/production/CYG/fr/gravencyg/menus/CustomMenuManager.class new file mode 100644 index 0000000000000000000000000000000000000000..735d9f89243ca663eaaa5ceade5e2f01e6a12c26 GIT binary patch literal 4236 zcmbVPYj@Pv72Wa-jFDwyp1}~ny#2sdAhdB}#|=0E9Bd#NFm)0r@>mRl8EGPE984c+ z-tRv0YDt?{o1{&eFIlUF(5}_h)sOwqAJ8Are(w)RyN|9s)(mp&cFkHk`)bZTXP=hV9Q63j_aC9ukC7pxIIh1s)z@;3@I$A`!I$A|~ zI#!CT=vXE4aUE+!`a0H$40PNkGStx_vZ`Z~$Qd1*MLwZptH>)lwuzk8u|wol9lJz+ zSH~Wa-_y}8^7}e^h13v!(1IuNLwP)Vt)FW^N%FSX!hypqGK zqWGF9{wRkZ=kOB^D}B4@1flKQ)8n>V4ftm4k~L$Q)zB%K<5p!*!-~99bgi)J+ZxLC z{|>2P$#RS4NXZIhEo&HVWa0TmbE+4fJTbWDu zK%?=ct~w2^`Oqp{=DLn6clv+G!&1FSMVejvN+?TK!{)DXA*x2jw`Ux$8YuO)q8*M@ zeV^-i3G+uav`jIgQyv5JLk)V~tNI1|up^6g{Vj{HUpBXa5&V=jn&0S0t>7Y)V&Gm3 z8#oB=jBRymQ!OW}R5A}1LdSE*SxPZ;zkxA~vz!ZPKOnnTlr@+sDkW|vF&CIpYe9Lt zWEbKY-AkIGtnW$DE!#oB5(MVB0!njhilzi69YbmKrD!zTO7h&EqAwOtSJ()rZDn*< zijr4R!Jmkv((7MT?_f3b0;#r|uy4@`(b90-;wh&blUdx!nTt+nmv}TNCuzlNU~gSf zJvUG@(u!9v3tOCt8*yOHwd95Q-m04{V%iF>l)RAZ!i$rz zJB8-FO4QxOyMfp7MhL)v0#I3EqXi}wt?j}LPA(7>tO; zKf;r7#wu0q6BpRmx<-?B=1z7pA$6X^DNK_3HNQEk=bfwUl#HCMH0yG~X;@nqbw2dD zcNq4n#EE$*x@_=*Q1ERlv}?zfhDYn#eagvp)GJN%7BHH~R_vmC@iVbmGR2n4+T2^` zsNvd^pqfGIbn0faz;a1Q#B{jMRjR>7s82Zd6HH;VlMCD@CJoD1aDM$li=GG z-Yj^F!dnG*D!fhbc7=Bc-l^~|!MhdSBe+Z9ZoxeY_X^%i{6&sXmSfsh2ejhNUOc)_sI5MM_=zv^k;Bp zo~e9l0e6w*K*DN!&1yT2<3wcjBp#wJ%Z-20>N3i+Vs-CLm`!*G*)KR+M*Godbu`F) zi93|TSaV+!{(}9-wZ5CUQv;s|G<=C~+>`C=?a1E5H#3OjT}_H&7Lv^EXy$VWZA{%J zuE-u7BH0m!dq46d^caatLJlZWHR@;aF#p$tC{E!t$qz8q6AUNAxodC+-)4a(`M*)q zdW2e!@(tH>oA{Ew@EHF+%aTTG9YMU-`{%>Gh8@u$eiH>ba2z-CTl(R3y=u(mPy z&oiGl#5_TlXSfk26D~VzF?ZI-yoJuDYB8USU3Mg0w#9>c;?;j5$O QtE1l62Kp+HY!jyc3#RORLjV8( literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/all/ActionMenu.class b/out/production/CYG/fr/gravencyg/menus/all/ActionMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..bf2b7bd98b57c386f800302ed0b2560b253651c2 GIT binary patch literal 4700 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 X04wl*OX@}p^EX5#%UC#<`h))m1F~QE literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/all/GameModeMenu$1.class b/out/production/CYG/fr/gravencyg/menus/all/GameModeMenu$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ca896ce74e0cc4eb03da52073cbf5b5056265589 GIT binary patch literal 781 zcma))-)|B@5XZj@2M2gq`paU~w#u~yt-WZ}7mW!*A*386y{10&!7RrXt{it}xx@JH z_~Nsg7-LNT0RJfCEH*(CO-ycQ=Ce0HHZ$}6$JYx0k6`6c#Puw)SkIDmL*Y#ww-jtB zv8lwCj@vp)3>&8N#*5sc&0m|L9GJa$H1Z;(6F85D31ruLh=ADSUBPuatdJIF(31jJshNprSn|v&6 z%4mxq-aqG4PN@$9*AFLNFt9~54Es7v9oq(WuxsE73ahtT7dwSlsum-=APUU@%%iAY{$wlZlux z6y_zmy>sD445k0b#IQ_VwSINgns+rl<$kR47R!~>_Fr6{GNhVERmWji{l|YjlzlHy zGoqQ$khFU1=$Ja&?6&K#UbMTlLxz04RkgdFOD=5DTI6U=SfQwTs4QfV$5qk`MDLI! z3ut@+yZDy-gv3YnB|k&cy6>SK&M-}wnxjsbo@0hkpWz2+RBr`qNYTobXmly;;vpWB zeu66Mq?0I6z4WZ=9u~;FXLDf#W&B`ga?X3+_dU;f@7q8B`RNw`Blxld zk0KsIAI5`7D3}Og5>p)rU^WF^EhDvdGE9`A+2V zl3ZR6;R0R>jQs@!#(o7P?_vmtajAoPuZD0LS0wK>NojJKmrFsxf&yK^RRu)>HEEi< zohWIQie3>2lr_T?2&b;vv7)W5>SkfB7)xB39u;UmZJ360R$y=Re(^w_mlM{4F0eCY znEFh$Jg?h1ZN5ZKIAs;IQeLwSd9E`9&Z5B=kF;Wyb+cNDX{AzZS}W^m0;b8~>j9Hz zfj!ZI)RMNU#Y&o4jAb3$FpHE13zq5VrbECp(UfHuWAoMJWy6V)XEc-1J>VTjFJ~RC zusoWSmMev-ZPU;P+tt)(JS!!Onj$H%!^KEzEA`AMMcv67*BNbpbb#`XtW~uO`jjDa zxyzfE<1!U0`mw0u2#yk}A?=fC6X9S5>S^)(#1@q8A*^(W`vr znu<5Drs6u56}+k9Eot!Ect^nv6*sZ2;$6I_;(dIe;zOKO@R5p-aZAM~_*BJblKNaO zU*ML&;TE5^FIa)@yHz?nzeH069^2+(!Ls#OqFQmRaxG#>()G+0{J*A$e zv+OX&v28jN&t}=E-m+@qYczQfJIg`7Ri03EWv3hsVxhlLClH;qcKh%=vCbl<#wQEyTGHAV# z>@~wFEOHV=_;{o?LL&`t1$-Ad4HU~>Ficry-r{TYJx6i&d?ugF$5Z#zUqeHd2-Dd( zGI%XkHu&x=4#g+(^!I#*-Ubty$#^a)9S>#aCKI`MZZ^YDYaf5CGyZ&X2JxHQM!FwS zt^+(xk?-T)aqJGnvB4kU`<^Esj&bdRpX*+JetQtYJ`D2IQ`5!}hI!&W7nPF|#}TVz z4s#cj`NRJ2xYfYgUDhENM6HSIAOer$1Ub^2AJOhUx-=B{8G#EMXbapydsx{-a1)^| zboepUUXygX64fgS)+9SzNtajBt<*$2T~W73bl2S;h6W7SL56IEA)DcU3kD*t#eFra znr<)Q2|Vd~u|(ac=%c_%JYDlb_=qI2)`$PVjp0q~+Cca#R0p@PTVRme9)S()4flli zZDD^K=>t-069FMl!_C;1y6+`yqNJmkY|^pk$LP9GxOTc>xDexy$O zrE`Aw`cY;O%z773d+1U>U72IfE-`D1On}1_+~gxN$0If4o6fE`on5axOV{uWPPsu@ z$Fmq^jhyDq5ZeC6Tqpl%{~4UE#e=0%FNp5Yx76|$#Hnox!iVQvtuY2)Rv14j+|eEU E7b4Ds4FCWD literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/all/PlayMenu.class b/out/production/CYG/fr/gravencyg/menus/all/PlayMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..fe1148492bc463f90af98b2f2de58678a40f5135 GIT binary patch literal 3759 zcmbtXX?Gjd8Gf!L>nhSDI0id$NWj^M?Zgpy%?u{aEjCy>Ri1WfEsU;>tUOiI`Z#F3MjO5i7O z63D}iLqj2sXMkRd{ZkG6|8gGeX32v3REskZl zGKSmLc!yHu#&D;a+@&P$j^Q3P-m4z>C2&6;h~q&#q)d1?hM%eN=Muk=_@%_J1R|5V zX$!RUk2}e%qfZ-lrkG9k?cCNY5Zz?jrn_07wR7%v*9Z^y<;DzwqxwzT7%WVV8qWFp zsKu3*{#-`4Ms&wi^YUWE-DTzlmIrlB8g?O{)GaGHWa-5L&Ukag)+edvn9i>L-TJhi zv~)Y09CjVk&T==F$=R-9yHs|1XMfJgCPxbs6Q-Nwn&}ojMTXN`yJOn)%*{E)WV-U! zt2~f-F6vp{wY1JGdS>xTZ_pPUETFSY2ZsJ z?^0rm?K(vPEp6L|(`V`Vyg}z$edi0VX(b2rsa2j76-K9sl;H?0sdX{vyg-;f3v|?q zG(th3El5^zszTV-M)z;3VI)l&vI^-y@Jt4v+f0M!54(D1f-ZQGAn|K20QX2d!X#mS zNIWX>7}?0#eU_P-5V-t%@OlJ~U1QQSqc`mlpD8#FAv-ccRe6SE-pWx@q-kQ-aEHxn zNN2dSi}Uz!uHa;ht)>e5`IQh}ub9?w683615kDZq+j9lOk$7Cg6L?bMDGg8K8Hr~# z{07fS?9=c(eoJID{0=W@co8oN9PPzRkbVs>tF0wRMqFZ#hF9>a#A_N}M@qvRcvIpn z4JGWS!CUN(GhLNFhK9HCjD{H{^9~MZco**pEDos7GT>D?;Gp4sd?4{5+0yV4E)zH| zAZik^d@{}FSq0M?GaL;E@v%bT_X3ORW4|mz91rfJ>ObHUf_re^#*WcqhlW2YoBo7P znG@V5Z*C#qk>bW@_*BE6@i}8h!x#9A#9uXhiLW$#jlE2bq{O@d9s zXO+@1!ZD&-1*WNby)frkV}6IJp~hRKaC7~dpZJ4>(|;TC3PMk3O))IDr#g)NVyMKa zc2NNS*)6tEWu4bLD&1vGJzKu`EbzWy*)v5nnNXacZRS-D__iigt7M1IpKGwcu#eZr zd#^$+%wqy4G}@hez{gLeB(YdtZ)Huucp|iKS-|Uh0Uys{56=Yc7@%H$HdsW9x@&l- zY*1r+pgUAIyuu#Ur=|>>)HWt()_=iXA5T?D|clonO5<>W1KC% zGhO>7Rq5Ldn2eRn8|lh75tAshOJ^(uBBkQ@2$u89cRd7>{Do9!<5zJL-%rBHd~V=u zE7wCDzuX6B}MZKk^o)XR9E-Mk}#U`%M9PtlC5#yOd-ESgPLZpPI8AJtpo)j4DnL$io z55D2cJb@1pPes}zGf1d+E!EWCv~~vbmGlC^?s-%R&8cY1!j!CPYiVyP;piD06QY_G zbCz2}RMb|&q7oLTa{4b~|8K7ShkX8*j4FQ4f#kUoPRC|4y&X^C4E%_o4q`9P#97?!VwdkD?-2!a zmB&Na#q1a4 zhCLWtJoh#-a8KhutrT`J!W29k{Clfz4^`bBD!Waqa1nNTp+AI+aY@;6rp^DTM&MFh mR(7Kr=gp_QNZqw@enx{h58-l8>I!V(7^jjr|3RJ|o%eqawe0x- literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/all/UpgradeMenu.class b/out/production/CYG/fr/gravencyg/menus/all/UpgradeMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..d0a21d7b3894f9af47293a3470469d5c6cdec7c1 GIT binary patch literal 4755 zcmbtXd30P=9scf{<<0UkxtV0rPSYiAS&}r#lu`nnE|R2a8<=K7lNP51;&k$w4xP-T zGm}UV7Zh^-R*aO z+x;zX9)I)U69CrY?;dm@>&8XMxscZ}?#2Y(?tvZGxiG25>lM7iiyQDx58j1$d+{FJ z=)rsOJ{N9M)bH1Evj-Ac7e1iI4=VVO3m;bFM_l-*BKnvIhj5F6k1KwkaO0EslnbBs zaJ6t}u?n+xAm)7xFR!-FZ@ zsr0(bjk|G={n8fzwLGkr-_r4I9rx|^TW=XbsgnYtmt05V zd6PP)Xma`0?Zs`SRw|RV44g+PXFQQlX6Q}(a6BI;%Pvlnd2>{tvC?R@nG5w2yT+5L zVQMN+mB@^arOdn;F(*uF&`^10JfBSELfzJ(a==(BlOIT4PhFPGN7!FHCaEnoL3YkD z%OwJf$}OvO7isAwrEQr<=kpuoE3XYuh=8_-u5+XcT00V%@iaHR1#v}Nss{4$#DVSc zF)I|T@Vj5f5gof3!8*RfEYtCTjt6y23+S12cPg1UAaKq9@wR8Nfj+mCS>LN3Ur&r@ zvvk7QZ9YTKx6E1g>LX^+^R}jDn(i6MjAs+(mZXY&Sr*0ZDn<;1an!&iSVzjv(NlM& zl8m6Nz|xA0n-dZAih+l)P2E4nSZXxzFpe8|1mC6S44lBDIvz9dJ)G2WzkyTe((!!* zKfn(KVBkmCCa_?3lorE{s`Mo%%=mcY$*FY)evF?ec%13Rjf?l3oHBRzMWWr8_iX0! zY6Cw7L)l+EOO&7d4BPl}2A;sr4g3O68u%rS^C1m9g#iJBtoq~hPAX+KGQ1kYwBu=H z)bu(|e}!jsJZs?BYOCht)V_$BYwXU9j>gl&W-e^tH~1}M!oYL*oq^xud3t!ZP2|Ok z2L6C&m_(gZV~&5Z3obyu!2YaSd==D4+Q!v-BM82A%j zH1HB$*70Wpf59sT{))dDconY*tf+Xdd8<~1ZqdEhnhD0$eD@NJfKc~%E}t1y)lOhx zS-w@IB*UcaXr5FQs4XKX6)IX

BEcU}c%-tW+=f%$9%E4OO7Bah6PaxJhM;e_*h) zx36dO(AG%jz`#&{XI~HNNkxv9G+5u;W#w1S%=cM^d~MU*I^JAax#r{miGdf0Sr=MW;-4hpncm_dk&ECU1tYU@!;?28|)p74ejcU zL^`+j>=^2ca{P}a|*Z9zvsZ|`um z23*Hsj~#)-F7=~u`t@nJrr|yYj}15JV(Ro$_6|qO1JI`7U3CnGz%;5loI!h759%j6 zT(%B(z#VYiDxMDN0e5?c$L|XpwvMWRBjCIZEk{rt_8y0f9Yu}bKaJXeV;Xh-0B6&v z4;!+oqiPB(=Ta;vQ5?ZS#lap6ddahjItC5u81_AcV8CG?UK6ekR!?J5SO$H5-!vMo z49X)|d^@^=z7pFdWEPauSjy4Athi`YiYzZ%P$BDji4D1~IEIyiKjn6i_c`+%p3BUs z3Dz9Ld5Wr4&CVBi3{7GGjPzzDL)l&wFm?J#rEyD<_wF-#`~0hB%OKJJETd${88@^l zMJTyVS>8UQP;0;wr00r{?hrS*#nhXvD(!7n+TV>9&X?jAEE5~CT?wdc^Uy@)HcSFuC;2L^3**lBCWF53l&+16pV zZ4a)p?Z?%&18A`w#E?}@rs1cKOVGn&=AtGmuoc_jCErEp#bxl5%OYH^X5tNzE}V+P z;!&2Y%NXMKiboK^c2sFKVmJB_g->e`{piOPsMc19UhKdCq_|U@!XRaMRDCKHK+bkz zm#Sx+U5U4{+TEhPgcx?iCN^ppVGn0^afA3LuHs#XI3!-i)totT4ZVCE-qT_mTsnqy zyiG@3$KJx9Aj{XV`ZOBhnRO}zN!0mimR#Tbhiqy{SR~8NN}^-9K=dYZI!qn=bd0=? zCLR0#g*C5ZbzyRvw(4`FP{#TmdBb*;lF lJ#Ducx|ndBeP6-n{qm`SuRr4vQ3*DXs{KldUFPXZdy`aF{@nuo4n(2&b5im|`~K8Ron}IOjUS#TV_tZ;=21 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/core/CustomMenuListener.class b/out/production/CYG/fr/gravencyg/menus/core/CustomMenuListener.class new file mode 100644 index 0000000000000000000000000000000000000000..83332e8c9a6d463c20369bc50155586d76bb3739 GIT binary patch literal 4182 zcmbVPX?GOI6}>eYsnMu~1|dK~vDpM@r6DE>AVPpafE-CCND%?sB&Aks)TpOh^z^RQ8FE%z=NI)F%!N=cxPEP)T|B4SMx4K7~ZZs(4e3-87y;twv_v%&6zaQLx z2f$(6%b*jd8nGRxGsxkLh9T9SRiATBIFI2Bp2VjcF@n)1jNz#!T)<~qse7pjpTp%= z2t2ELS2OrLzMzDqlABT=Gefm$Wy)&84DzZst9o_@*D$BS(NNIf3Zx6tX45({;~RNj zE?BO)m^X5l&kYJR9JgINI3cj5d+l=1B$adCv?b6oV!PH@sW4^v6LQMoOzVheN@r5~ zwi=fw)4{A=6zEUdDp+o*XqcXF8M#t1@Cu`x7_p0i z>w19S z2}0u#s`2=U^;PQP>k$Q2ti*DphHMP;D6JAzpsN=7wV)3QoJ)YN;?!U*rhBdkWX8Rc zZ(3(U+DNHZs_iHH4ljJ`6{?dE=?6YnDkSI^s-(m1L#l2s|EJ zs}iP13aq3cOG3A*JO^TSYRE*M`Mecen)Sluw5A1ib@wE)If~f%QbD>yVV`wEr_S(7 z=@ZzURH@=Vbv9Bb7uBL+I=!CO3MN&)s5K@FOu060QlWG_@NG9wfovisyh5U#R6QS+ zuFR`S+D+AjSQNTS4wofquB#R~UOv8+SGR?4O{<+)1zRHLN`dVdETA;i9D2Jl!NR^E zosvb-_7x=ITF!GEW(R92b=oRAm3gW%<1IOx!H`sF} z!z=%m!2XBs)T%j5ao)0lRb>rKxM__`}js%$5(zE$uR*x6StPHRIa&@{!z$b`qIh|h35woW({DperH z9gmW%f5WUQRSxh&?>vF4>lls4=>LiFu<}YTve-%2w0O2zQ`6m7)NI-fD_QJj;L&9n zV->Tmm!wl1&bxe)=A?QmCGt9wAeTh+jkeK+Z?5^o8OJ7<2Q>mHlY!%*u&A*NE%((%MtZL ztAf_{VL#WD&G)%SJ==-CCDgr(^eEf(A;PQz9pT#4zl_!tpKf*Kad~+en^U+{#@@e#whFMVp|gE- zuAk5j@N00FLm`lz(H^Tnju6O^5XiwY5asj+h!4N39hOm-w*>D$5G98sg)=mal$)ChO*=9KN58PpT Xbl@V#Dow{JGl9=yGVEQ!(|G2;7e=b5 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/locations/LocationMenu.class b/out/production/CYG/fr/gravencyg/menus/locations/LocationMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..322d39d34d73e061bb280ef5525f8d8d37656442 GIT binary patch literal 5240 zcmbtYdwdjE75;9ryR+GyJYj*QfGMSr5W=?{zJ zst9V;YO5B-SCJy17A@E=q}W=iqSp8OQQwdHs_%EJ#qZ8!l9^<|{(kp7Wh^ z@9q=NJ^UzuxngV#^HHe4HP{iw&Nz0VKZf0Sc^t36o;YsDD`R*SUM*>RV|Wer#jqc* zjp228eH?e-4f63u1#gPuPP{pWx8SZg?v~`c@m9%un}WAj;2s=^A%S-&cxMa~q`!lB zmt4JDKHeiA@09}YlZ<<%??W-XU(ycaKFK&DA0Lq69hKIOMR8mzeK3j-#qeR=FGD*K z<1RiTS09zM2jt^q9H;OxY4Ab0dMJuw4AnR-4WE(Z0R;~$IIG~}0->yC@`HfKnw>oC(= zW}Rjk@_mpPvbP#}fu^9Xtez|6QyI$JhMCK!q^4YTlFk@HIW0?rV;dSfwrM-GR7T77 zrn+p)$n}yNO`ADe&)GD4Z9|7?^`N87aeQ|;br zq1=nuF2gS2L+lVxz4+Q~Ju6Uu5rbrQ*;;x#BNGNc?E)2^CPS=t%@=GVlj_v^C{>$t zvbJiAw`)p;^R{N$+-_>XKGhB*Z&Np%HVZk*Mf#jg3QY7z6-)rlaNidX zd?*tFm9Duirbz2$<|mCP7b~7&0UR!)h^GsdMQ5uW;i{~*OQvYGZn=bUa%00l=$4%#WrlroU-EJ(-9Sic+l7sRIo=*mLmyh=NBId_uuv3O*^In7Ou$k!ICz z`9F~3Pq`0SLqKSk&?+-JW#B$|4vS`WTT985b#lSLLmAUz)}tP5*nECP4=0pV1~V^_ zk}(McrB}DRjNQ~OZ)ha+VqIpzO6$uF*^#xLrtGWP66Puv;hc(A&{joCwkEr+zKC9q!DxSbH1)o>(1$Cr6(KUeV!JS8{qOM&qttq+O)O2x178x_CB)AI2<6~D(a6@S1VRs2aZ{*1pU_^X1y zsrWnoq2iyC^DjK3;#vG##eeXWz_@eA7Oc@ZGYqT#@k8|)t-g;?ua^d&<6I(lNhYHQ zcnU74?0%t&GEuJLIxJU3h$|5m5mhK6s)!0z#N$Ne5_%}wtLfpBPZy< zKO5MCPGP)hCr~x~E<4wODZ3+_&gh!O_ye|h0#SpAUZ&YvrOLFtRq76z?cUmyc(sHhgHvgcWe2JMSXNR06tDULR{Cqbg#Tn7~ zU_{PdT}vu$dQ*t!T&;JcdkCR&DDTX#2+zDOod^lakVF|DtQ;A|HkVkI#zV59;U-`5 z-6mMrSc2v?i{sf*W;_us@51uRl4eGnI}D_p`;m8}cK_96(5t|7f8M-UMu#Ub#)rdB z&DMEm$}pOx*DYyVwQ|Jx_xSXl3{-H4;T$+)eJ0zsYId8+Q-#@G+R=R-Cz}628Di69 zMCIOMn$cqeo&$Bxh*76p|J`ct@1VCPv`z(EjVHWc474VXy zhM`4s`mVw2V|=TYm)nweA?JA5=oWUEHa+NdI6EWnQBzCiFd)U<(4VXWv60T0dEIxi z$pPrHf>`n{-}%0b!S0_?0tA7HGYA9cc=M1n$2K_!1s0Z2E`=c9R=oL13`A``qxYHe zr^1B5EEtk$+=$Eh^Kd={7VuLh?|S?J9OilvuH|zv-TcXZaBD|@kLUO8zxJOVufSNL#L2YZSyd|E9wx|g; zQE?b|CSwDr<2Y9DL*y84PsS4J0LGNzF;ur!CL_tp0gQFus?H*@;S|P&PGkI8OxSQ5 z$y1nE#AV6KA|@3vxrix4^cRrM;OphaE>BjS!BkJ?iXx`9R?kYrlZ@%ga_ozXeX2Ni z!AdBJ@Dc1xgbrfPteR%m+jO6|x*4>Q2!(ozXmH)plw-r&M3~%7TaQTnc_s84UHwg? z^d&Sx4m7r5BG(P9)=UDV35}SAX3QqCihqXk*QZ!aOTpOCwY6~34CKf$`6 zC0L$h-JiyCQHB*lLA$8M4Pq=7iHTS#F2`!ojT^;1SnnX_Fi~*=y;yYm zdX=~VFX8_icku6*4s=3AmspCGSjE_G77MVNGzDof2RCvRMOHLm4ObP|E5|{2Yg@KoG6~-;hh-?qn|E=`z zde}q{8hMKlzQ8am6>Mfe3VIaif;-qEu zP9+HcLzvcF#LQEeeiRe^Z6h0`X=c-`B4$x;-X-OlUAgA-*yI`;cNFWmntc$f_>~&K zRf7LhwGpdV^S~#iHJl6&U=F*+>w~%%7BM$8r#0g1#$@CS=CvwKNo4>nWmqo}RPG>X zF>40qu$Flnk6SSnn~0}0N0mg%pby7k;Uo$UD%LOydoY($ z+nN6ZxQw#bGw;V)-7Iw!nIo^BTn*NfE4QAKYZ5(j%$=fbSx;Fhg+HNZJj;Lt-CJ(b Y3GczFR?~7nW&BfZSIMcCcckq90wr^h5C8xG literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/locations/LocationSelectMenu.class b/out/production/CYG/fr/gravencyg/menus/locations/LocationSelectMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..27cbafccc14ce293d09fd96aeadf239d0547b68e GIT binary patch literal 6398 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 MMjtjGu&A#8ANb?U#{d8T literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/messages/MessageMenu.class b/out/production/CYG/fr/gravencyg/menus/messages/MessageMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..16bfb8025295c1a9d69222d3f9cfbbf9a163cd37 GIT binary patch literal 4461 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/options/OptionAutostartMenu.class b/out/production/CYG/fr/gravencyg/menus/options/OptionAutostartMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..6e53a040ce291a3fc09a82adb9c97edb518418a3 GIT binary patch literal 4351 zcmbtX`F9&v75<(qYh-zns7jo~S(VgH%f3_g<)7djIF#?rNcPAJ<{W;|%)EE+d+&bV zUEbA;|9<`ofZh0egpaX0+z3646A@%_G6Dmq>M@R7J@P0hFy&yP9&bV}f-o!vc7zL@ zdK7V5!JF&w7EDI43U`I^R{4ILeB3R?Z6HnKKb>qJox?6s1GRkU<4n+ha*t&h_vEN1Rudi}1M)A1pei?P!+MPazEn7PLHfU6W|;JEfi0k~yuAO%6GhQOHsn&X@&9FF4$L zf1=N{vdPin__*ODIcGSN$)h=KQnxz&5~Dz%j%iIMdn;d^5|A+X>m~9Dca6XX|ElW! z1ZudAK-{mg*v0}YyzPc~qLw9)P4g%qi#g(PrIL37I$>l5wl1c3m|S$Z3RGP&|#*!Amq1)pPtDtJu6=LM9k?({l(Uf@uocbWZ~mw>|M?m0X#U^o(TRkRqC+evxI zp`wu+BiBp;o@^GnazjvUP&ZJ$9)pq4wUXM~l!<9_YvgpC39p*zB zwB7wAcSFWq^jJ-znPCwbGK*G5zs-;_zJ8Hd?U3QA;$}RqVh>)yMCfM<<%{|Fm>xf6 z7WJZKE0|L81fEpz1r=Y!Qwq+j_!4ea@MRTW!P5-7Dt0{-<>*lH3@#}6s)}dvoWK@e zwEIG@f<(nIZf7{CDB&WttM*;sH3eT&F^%V?{g(vR&P?qc)R`xS71s-K&9aQEPguH& z7jRj{6?|RAH}FjrGv11;0_)}{XE_{5-^>&jehc50kM9s+d}iuInUDAcNsVXBJS#y) zw^V#ra`Bjo??GdL&rE5@hkE*Yx`unY?@;l5TvqU+iXY&IDt?3?tN4i|`=|Jsz;#vl z7Aq{Wo+$XaieKQDDt?7utN0CmtKcQc=kHYf9`xQH@JAJY!k-0p(#k$MPA|^cr`hqb zt54dd#lmUFubv|k21EVKlvQ!Ciof8mD*h(zI*3C89n0EPRqzC&b3~>_Pw5#3?e<0X z$e5O%>?+!hnU}yAlD=@LDppHIN~QV8prnH6;Q&628mBqqWn2pOmL~pHO|ov~pwKjpO6go#j!{`EvqwT;x?{fgAlNm9MG! zY|P_V+OLg`d4+mU;`nk^uWY!B@rY)h^e9;Ev#VcobY8zXf!c$EgQ*eT;{Hu5VjkRB zRh?%AZedmI3aPu72eqK0aPxY{l%U+}gHcSs`D|RIWJw};rbk2*Z>(k1Wjuxld%A~) zQv*FLEK6WHB=tht#Drd;TiX}KGM99o&nlN0@9RXbKT_t4!;a}qvEDNbWHJ-4<#>$; zIiP2WLzit57v7 zcSGPN{sOW&;h&ulzi-A~KKF5S8|MRjM_MjIw6s2lz%v{L(8=dY)bP0)L99U?8gL6o zYdvl3#{rJG&fS#_G+v2Y%X_x-Ehwvr)jZ9Yx0yT^XmmGGJ#l#xAumkM&>XQB3XcNL zwmgeK3BeL-Tc;5cY*CZ|TaWNSJI8f$91(1A>h}es$_tTnO)!-X)~3?6N-7`@w&hR}KJXsm5eI`)Lyf|sGDYg!t@jlqj-tf#Ru zfRXzYG4=9GZPD;0tV&-%l%i{5u@Y97ux1(!HSEWT&gEze4Fn>q^`XU-*8%o%? zv4l;r&HN}~3vms!m9TZ=IjnAv#Y@;W(tZKk$^Eq>?L;hn=z-lpAV3=-wj+TgcHw%4 z)D3j}O)k(D@6cIzJuYMkug8TF;Hu3yh7s;3L4_gyCHubD((E)|=NT`WD3#}&X$VHc z=g>%pHwkzFab0U{M+rNpFiFc27qIqmm`jC9RiHG>2q>Y2%UVllE3e^aduxT44$|R? zH^q`3HPhG?K-)B~=lQMV=!QARcc7j&cGCU(v4Y94nK8VR4o(s4aXR$`-T43=`7mAh z2xn#T$UsO@=Qv(Z2NB^cQ)gxa;Y>LYr1TElNiO8q8@S2~gb)Io|H;r0cq6p3yJr(F TTK5#y{Rua?Xu^%UTABX<0$Hh+ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/options/OptionLifeMenu.class b/out/production/CYG/fr/gravencyg/menus/options/OptionLifeMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..792cefccce21585f145d1921b77051377c6f5fb7 GIT binary patch literal 4325 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/options/OptionMenu.class b/out/production/CYG/fr/gravencyg/menus/options/OptionMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..4a270b1d14f4e8aaea692d551429745bd824f8c8 GIT binary patch literal 4461 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/options/OptionStartingTimeMenu.class b/out/production/CYG/fr/gravencyg/menus/options/OptionStartingTimeMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..babc31817dce582b6cc012e92baa72617a9dfffa GIT binary patch literal 4346 zcmbtX`+F2u8Gg@Zli6$r*aiX(DX`E0n}o2`V%idlgpfis$o6StJF+Pt!?986?o%3DZ z^M2oV=J|g=dlkT5{5{IYSS@ab9>I7N6F3!xfzx$3gKQmg$SW}AV6qOcLpF*CECqIy z8=N{6a8|+VYw-q5MX?6=MDRxWzE?ipB*kx*Tkn%<-=g5HQM?Urk3z-$a?3lUvInAg z5D&?@cSi9pyjvQ7kAjDz*ov_T-YehllaKdD@B#V$pw#$?)IBYoI44bgD1r}1@DZut zqY->ePJO%rJ|hs$X+~b4zHi)0PFUJmJ)fDHNOq@>bPCk$H}Zya zK%gP9RNQi$o4d_1U0_Y0k=F+bxs$pztewnqroPY2XxZbMWyo=9GVGi(Y=N7Dx^jBH zU?FX6nFqvCammcG;4SuL5>@)OA+$KonVBN;RA z=y`|gZ%_1@)y8kMZg&Bf zt|D5QGyU463$uH)7ZiM!BvtS^1)mpC%zSs&$eaoQ_8YdQjr zmApPi5&cy%1*6@VJ66sQ4nDP;f!TmvB(QmsNZPPm*^5_i}!MsCWt&6?|32(|AT; zvybpT_AwOqWK@je)ntTU6?{#_ES{DAUlv$DH*?#d&Qvk1xSo$|mStRf z%+ggnhbtQcQu8QyB`zoH727iDbD)^BM z>c=X60*(At@l*Uv#n15zfenijzjROnJLhJ``}Fu}y%5isIhxGqmPWj8~sb>`WaZmakW4yyPqUQqEn8A%roNdSJ&W9L4mE4Po&ua5J0 z^G^9VEfs%&#zdT((ME@Q`g*#Ddk&va@kd-y@Fx|2#$QzY6@L@BX+>xjS3ZH*Le!~~ zr}Ye(yRCwnjA`k~?t<-@ISH@8^*&Mrs@Af6nJMdj#^JkQqzZo^pR!Z$CX*OUnCNcg&l2WzLlv6QCRSh#$|w6bGf>+xag&eBwD@ti;{H+kim z-Og{R)UOt!u?S!3zcx1J)w_aM}T)CfDe zU+KJ-5pBJFD5Y zd)1IE9iEzGdD#%eqKrEaY@}4lg*+2!_R|el}7Nvf>AsB>9Hc!*mB}gn~qU3T{ z&Me4&9phni6&%woQu1!b&=X$Uw|R49-S{sE$iu18CW#btsd5YpmCj3)`9{q0OEW$Q z7mFj(CwUbl$7~wt*KOOqW%1&=SgDJAbtbE8tV|mN4wqr?J>-@)8G10>I_4!=sLKm4 ztCf$B>^Y~{6xe$lJK3`^;Emz%U4vbRdi#2Z(`=4@4llQd%!|@cNsGYIfS1eeB1D0s zUYdf~%I|}{5O^tnA$d397f%iU--_G#+{e)!oDcCGZM_81+V%`WPjM7NC!ecP#phat zu@1Fpz5@iH7N>1^j)P*zo6^(0@OGHDiQbd{){xTHkL?#mgv zBa%>P3OLvLG(ts$i>Pj!MUCJMMG5id5gBObxK@s%g7=%cec{M+(R5WLl@7b=S{ovb;Y++w&ti25 zBljy}=EWCw#UhunCVdeximt1#FJf&G>t@kV#Y-4ta*^3gH-Rk-CyrKZ!wEFQ=6eb| zF^v{C$OA=;%%3)HGK)&>TfKf*%NQC-@*Sy?3_g+ zgk7^}q5Za9MYJwpw;Ofzv7HDeu?l;zi45II7Ny9}Q8II!M0k)0K1_x^LTX6XNi0*u z@i<0MEh8*rIbFtbx`d^az7lDdyVH0TcX?RWAhhY9{Adoz>#>IzFW%LZ0zKZ5H#OB< zLOCqD-P}~f_Ik!9VmEHey2o&sr079{ zZtdaW-ooQO$U~Lkw0cI%LG-vJk%Z`R4?o0Rn@FC!sZY`%0`V{Tsqh-Q{aR=x=gVmp Vt9^ot{AqTlYi4npope`a{sUB&sG$G= literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/options/OptionWhitelistMenu.class b/out/production/CYG/fr/gravencyg/menus/options/OptionWhitelistMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..d12a02ab038389c964088a01c0a31ae72e8dcdc2 GIT binary patch literal 3543 zcmbtX{dW}A8Gddy$!sUWB|X2J9f?o?X7B#~XXdgK3qzjIAPPcNCg>>fl!9IcJ z`wYwQb_;Z*=9{-3;oyv&*9Ddg7?wU%Dvs&Ss5WM@r+vWAY332lF=V^a+31}yT!A~H zSVi3`xoLaCGi=LEXZ`olGlr*|hU*Q|$Uqt`tw_{msjUNNwR2k9)T}~!#B&U*Kx;f_ zTb^!t#J)c@U^|8MSZRFR@Y3uvyvg)oQ=8PCzOcoxn5btvlj;8ISD#F%dBXP~nteKNK*)y4kZ-(!b@KdAU4{=_woNWK_e3>7cnMFlUZcp0w&*$EfVdiy5 z!K*4>!|O7THw0E(pVIc^JmZ}1Buy<@i%7+vaY10q^{JgBddbwOd@pJ0Zc-~6ZgN5| zNlhjl{j6jJB6KWdjGa%dbz}JFIg?!%6B^Qga;R#w9uFdy>n)<9&hKBU#tmr*eBL_=k!Q@S%c_ zRD6t!DyDEr!DUI^KNb8-#V7c;icj&G&&=r>9my(9H|YC0uK0;X%(Gcam%DJc!1i0l zRKu6S3AD`?jO^H1Jx7ghsDqKS9X*{Xxt?7N#!-N*2W=5oRz-ou)aX9V(*`w*d)nc8 zvMNQ~ih)HI(U2pz$;SV}O`uh7f}kd_qTN=lc_q&<)7&b=S-DV+<4)w@A-`BI@)NI) z;*O$4U~?)|K?6ei!bP>x#iC00qqbw_gR&c%(eGsxZFBp$`#2~lQ37{{XR6fdxkUL} zE>hQ)hCl~3Pv-$*lJnvH`$k5yL;Fwd9mr-L;(-*dTvb2D)EOy;HG^Nr6t_yvj$4N| zZ;unaRmO+9F^*yR55Lb^ON>G7Kss3BxNqr_V z**ybQQkwP*4`+{(t(2lWc09WNCFn`mcC0=1oz}*7svkwH_H}H`sk-)ZFuWV4~D+kw#Xm-9H1Elry zD4H+Ut~#S<)hwWLIcw#J9Hmb9=c&tEmO$5kph~*6y1JDg)LqxVIq(KHTga-r=?K>I zHkX3HR{k2~3CMeB6Tf@0jnD0D9bkV0--+&P5ZygrqTvc#4M_937%@JVq7lo`f)3ol z*7Cp`KfzDg;y52w5baLha05(IiT9lm+FG_MGo+bZ^zzP*$7>d09lRxv7I9XgR@y6e%84LE~McpjVme0Bse z*GM^!ow&!(@jULuE;7)GarEIn655RuxF5Sos=x#IS&+9V(jw=W>1b?=zmHBPxk?}) zVRcXYnliek@bR`X)-utHIJgi!5pve;YU*q%BS{w5R|fQyv7x7Z<1{ukAVBN5h{68} zEjAbJb|0;~r?-sFlCzjEp50i&?`|j*+ak)Xi|lNnNV1g4F|K%y9F3Ek5?Ohdj9erq zSIEaS_TpRY_jx_U(OIm)9`-fSYeVIWJk_|Ksc}71;aXZV*yoFPhDZm<^+Cqcf>_s0 f4Bq5F9f3n!#5rnhYx#s;VYMErtJVj7uZMmFh-Spn literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/plot/PlotManageMenu.class b/out/production/CYG/fr/gravencyg/menus/plot/PlotManageMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..da1c811552592fbc3c64df6e7cd1a4614e2edf19 GIT binary patch literal 1636 zcmbtUTXWk)7(E+1mg9&tb$X$J1f`T>Cr!mAP$0cfn`fiw{c3H7kgE2rJn9VXYKwiLL~RH58VySp;p_I3kW%FW34f*mhbX5BaD^^YnM z_#akRhH2vN2a$FkbJ*}guOl~TG~`0BOSDUsYV(`@^%sH6DMZ5;otnvE3pvsi)I;pkBufgIBXoZ*nO z00pcltOv^96Zq~mh@DeM%Wg}1{@!ZCFt_|Pj!E=8yst?3feNZ zaL>klJTM?%3QWCxF1J&jgOb6^=XY#8L``6h)|!%`<44_n?x`J1Cy-7e;{%z-HtML^ z_zI6Ktl3z{*8(?3s-CMPf$0BiD~&>DJRkM_r@9tT*iO%#gM=JT0l} zK*0X?Nn?Ba(dPHHt*vi(M~08aS1P9!ULC!3r=jp+5_kPm(6_u()i9z0fyBN*_Z27?|9`A~}rN%KY z#^f_9mnZ7*B*vxnaW9_o;)EAZ`*0GczFo?yP;~wxj5Y1pC}=6Ss>D;^B8-AyxynMo3K~<|c^S@#u=36*ST<^Fv8h2VU7*8b z8a+upHl^U?|A=7`S8S1TuIr4*AU(0HWigh;T`%dA`V9T1O+whC`UNJz6>23xzELx4 z#YCSj^Si8=s_im6Dz+k}Vl%eTT1q@HRG3J6a888My z$YNR|J)@xc-#IU+DNyHT#fU~fl1UL%aUL^rxuBpaI5%sB=4Q2CJ(D&Kon^;^Ru#`8 ztl}b`qYt$0?hcalb6F8gGn}9$CQaRlTO!!irQ&%!r{V>?=)p@WUdAgbE`jM@Re+8~ zjCcjOg3WWYF+%p!|N*Ez?&YtrQ&VL?K^l^#d~<)gAY9TP{l|1Sj8v!RK;hw%(Pa}yFg2^BJXlK zJTWO^O!3AAtYW4m!adoHZKh-^I@xChHCCu{JSeDVf%Iy&HmDg|LRbp6vRNzCQhAA- zCS{83-%aa~#M%Y8nz}vOp9TjxVYaU)zr^Vxp zOvpjZoo&kAas~ji%(RqoQZ}!OIs{m^utsrI=3SJa3hoa@{tHji=Ia?gFmUSNz;Mrz zMd6DMOq(9Qi zIO}bZ6lv44i(iu+6$M)ndguHyb-n_=m?hW{@;YW@343Z|1OKpW0<+Cul^pH-GgHm? ztq5^#<*twCRebu|u0d&Q{}EN+aaV;luJv$nT?sb={0Gy7cJ7+;+SrB;?r7(r^6QK3 z2p2Fr_*5u!`CZ@gkq4`Bj#?ZLH7_oJDA<9WJfS8oW19JAMs5e_al0!0kSr!!mz8-*aflq0zrQ2Y(JL zu4APOv$#l&FUkM{ivTp;1!%4S=q%lR52mZiOfR{W*}wNnYF!SsTSzFd9x785V2V~V zMNv|Df+@O8CVu1j@8m~PzKe`B;1@iA2bl_TQzHL1We+)A-o|e1A=4^u;bH2z@CY@R zqxw%YD9Ro5-NF7ne>k~+6rFjp@hjmZ+0l+1?jxOFV~B4pSJ2;n9jg`ObFhY+wF+`r z7jWmW{tDI<&npDMSu_>}QgOrGU|X0}Fv-gqLNi?s)7isxa133g0O>_3tY|5$Xdx^q t?ZRHC9;4`Xh>!u+pz00|%W~R>{e`GX)z?`24OPmkZ{LE|cfip)_zz!7A~OI0 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/variables/VariableMenu.class b/out/production/CYG/fr/gravencyg/menus/variables/VariableMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..b459159aa7bbe641bb66952f838e5e54e8b4b241 GIT binary patch literal 4307 zcmbtX`+FQ!8GcW)yR+GyT5Tk+2jHseqQ+A$TxbQlH>hcJUg2(vK5NFo)+`(P51iOQ{dY<%0_D3*&x#D1-;_;V>SQd{XW{C6`Z2zaEw9p9$i#QtER-d_IIP;4$gY7ejRaOLF&R1z%C{ zRRv!Y@Xcz5DNr|f$cjx_+MI62=ci)*<2$+q0^1DJuzLg|(WUI>F)H^bCv}19LBrH{ zW@aaJYmYXOAf;|F8P^hHnq|oE9MNY_8)<>oVq3GinMudya-!*2UTKJQ`rtFQSsGjs zZ5}+V&1tcOW=_RMZObsH$PLDmrmdSc&E6axOj=X1iOkH5VaG@_?D^PmLYvpEZZF3$ z8Ka%F=3@i-UAK%y%t*IOoFV1})CA+PjifnX>$3t)%NQhc)YjrN^h_B18xW`{L?-j( zn9tZoA~vL@C{<%RS=)7JNKdD=DV=fn)3#>W3_NWoQv&5P`aI=4nuA8#rm8=l%$Sr5 zq?{N9R(YK&j-O^2_VRug5+P9Onj2+?=#RkaMb%=#6U@KEr5E9N#iynnw*fXwz^K@Q(<*Mn+ZfoOo^HxZFqp?xd>yA1JgMRgzMSO&w8t<;=4Gj;29O?@I4jJ;yDFb73cB1f&~>X;3*Xs5LfYiyhtQ2?hpkR zRr~-iDfpp^m+=a-E6@Cq!1YCE8ca$$CehKCF%pwHhvkn|yo%Rkcs~(nSZuf;_EQzF z<7X;kpQRd0UF9&uns9Qxx4U9;$7kv|;u z)F2{n)og7@GnpmIY~s8v5}S27@@DV|venl84`Q4X67ufU;Eb!yPjk;GlufbInf2w| z32cmdCV-pDZtoqCBe}lI92R_!F7e&DV&2SlPEwAOV&_ZCxkvPS2i zGAff?TnLhA%!4LJMzNEvtiW(4^a_u~{%OtbPbQLV0$<HM$o1A1^x_r9v%TCJ4?A)3hSZp9qMm#eoFGD-h5vju_iVnP$xV#4ay(1&L_VGng zT-L?8S!UYhPj=g64_^|5eX*Z~niBRYOP@26nY8;1xoW%8wVvJf3hF@jq;97-pt`Yc9&nJHaI{8)aO5+`P zC%>rYSmomoH=!$Mvz@H<3bj%BvAT4ImzATYyiX zRmBh;EjxYJkD-sx|rfGPzl1+u7mRSYenWKrD}Xbdc% zMxaxP_#*!4&Y<%X@gMB0kepgxEia;O0oRn_d93IPm3M|C!A>=zMk-F>fyU4RBJ4=@ z2?Wl-Y79lx1=LG_>bfc$1C5nA@9Mg$E}&uj99H_yqwxY(ji1N0=de19>l!PwxIT+D zSu_>sH%NL_p1wAVbzRkMk#J-60@jz~XjmLo#hEMjMU;sDH13J`9>bQlns)bu4W1L~ zHqu7K=bOx8lY0bBIX3c+`^h~xeOl^wl+cg5`UjWjOGNk_L>%USVIZmkScf%Ok2Y*z z{WqZx%@{)q4#@v2iMAAxc8nN1POV2-=2Jw+S>od&ZpJ0_;9qzb{*7C38GRy%ei258 zsKpMk5(8oow~G@Pc7SqKpXHPulJXA%7C<+p}mshYe3+mA6}DQ?#_S zwq?;uxsI#KwYhS#z~xSXH!?xMUewa{2Hb(Q7)KO$vV3>by#q|!L8fBDDb7~cnSA1y zpj_g(a}!5bDc|dik=@Xo#L1NSP!`?9pe7K{g;p3DHJwjWz&kSZk|Sf%k<$MQiUM$8 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/menus/variables/VariableSelectMenu.class b/out/production/CYG/fr/gravencyg/menus/variables/VariableSelectMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..fd4b26c1d3e0e0692b838472dc31d588a9631bfc GIT binary patch literal 6161 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 OxoO-6bDhO?{eJ=ZbAccL literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/model/ActionProcess.class b/out/production/CYG/fr/gravencyg/model/ActionProcess.class new file mode 100644 index 0000000000000000000000000000000000000000..1eca11d159c73c7896e372ff60f8b05991fd15d5 GIT binary patch literal 1464 zcmah}%Wl(95Ir|>nxr*tN$D#TNK1jlP3sN2RFx&YZcA{QmRv7l4;IT0{}g%UHk*Y3kB6q%n#(D55D) z?EBWpi3S3z?JMirGKaC}n{96pw*<=Po*P*4FmeQ%ne=fxj9jxb>~_7_bb{E6N9LL0 zYMrojr5}a1GZ;9Rr+#R6$#2Xf=tz*MpsKu}0s>pRUUFMj+Fszi8}>R*^ug-*j8xj8ZTS}#rP03$ zYVjwJd$8C37@2NlT|0q2a?KtoeDjqZdtq>v>=#vUOcIRxw9jmx6Q2XCG^S!Cf z@U6f#-*>JYI~K^-8yDE+^DOf9YRE}yPzSvnmiS|rJO3ViHdHzGN2aB8C}B$wy{Yo|49@Ry)AkY zpD2@GQd3UFq?)|?l6o{&gVjl{MEyeLbV%jNOjX7nVuw~LHn~bn!T65CSAOJ_xCIs5 zRzmaya3e(E5grqjEzV_&cV-kP3Z9U#Hj^ZuC8_efPY3&bjaX{Ppz*fL%O^LB_U<`*@&WMZrTA8nWW2N3o<* zQWuC^6iG4fD0svWe_ky&4&EM@8tPRyCAtOIi54vV@Usl?@(_t z$biW>pDIaNk%*QocY3%mSGwvAyQKv}_o&Zmy*KnN`-LNXCudiX7q&Gl ziwj=S@ECc9jsISnhBOQfx3R8a2?-5JBp4F2_6bQ0Vax4##C1KZ&&jQ|&unWzdY;WU zpyKj=zc>f`a|2ha7WWJE&@_6T(*CL-2WTdKV0le=pp1+dQn&_Urf7?1G1M{GXM`>x zeWZxt2K^&JP9l67H>dbrgo0f)CFi~%dlcW83exj*v*QXjgml~qFd0O#iOf{U5g8F9{|$00rAQZuo+B0nsvHFI@OMf{V|pts dd5n1d989oH%&8;?2$MXCRuhK1)DB_h-f!e!(?b9N literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/model/GameConfig.class b/out/production/CYG/fr/gravencyg/model/GameConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..f8b9b8dc45762325cbd5dad89fb356195455ac5a GIT binary patch literal 1982 zcmaJ?*>clZ6zuERvMtN8aoC1sNLU>OB9>v9B!ndp2sl7hC@6SS9L0z@a!Qeb`~zRW zH}Ei1HHKoQYCd2-ikd!>h>ehW$hnK|>2teJ-}t|;fBy^MH!SO@;94HP>&W0*0W&hr zmN19wGMg`A6gMQ?lyFPJZ3zn!?&NVdk41$-%ieSz@lT=Fcx}J2t+ws8td+obz1FNk z#qI{3mB99cCvAJj@fFmPLV0)hsVk}aru{DZzO7Jv`^pWRw!0nh@JoeU+g*3Kug$rh z8_X*ltv5P;%UbPjY`B5tc!3-2SW)`yh=IabSzt667~gtX+(;ZIb9x5wl|t|b+1`p(EAV?~yd z(${ucd}H7j+*3G^^w90D+g=mj;~eeE>qJBmyZG<$2y@zxa1r4jpqYkXB&<=`-Xk_Lr~)GEls zkY|DkzNiWxrN(zhDx776O*oQEIFeX6l2$m98OJgdbvwj(n5*{~VJ0wVeugstLFUD0 zjMTE9kem7fO@Wh7$oEh%b3GKzs@{Vh#*&%s!H`h?GekeacpL@BF=VOdIE6h$NvBx- z0#&`js_|IpS36C-%X~$pQ*j3R6XBd4f+PMAoU`dTdh$NgLvX}*f^#k%rK|n$?HUPPCO>DuW$3hR-)WUt^b6rR zr4!}iF6P}BbCgKs56EQ&vYdpRL6NVZ4>|fhWRW13_)D9lJH;26q&q)^?q&Wv5V}`* I%M7mm58;16Y5)KL literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/model/MaterialAndData.class b/out/production/CYG/fr/gravencyg/model/MaterialAndData.class new file mode 100644 index 0000000000000000000000000000000000000000..16bfc1bb37a3130dbe2ce1b8730ef73b3cf3769e GIT binary patch literal 638 zcmah_O-lk%6g_vwkJPEGw6YJVXrTtprd<(a(aLI32rZvFO=IH-(-`!hS`;Kfi+(^q zDmrh}h!Enz{W$lYa}V$H>-_`39@eu+Vkv_JmUSqlv69BBV5+MkC-jsrDAs$SYd8CM zcV1+ljo^JjqOBq&keVQM;00cEC@7UDF4rmz?jQHsj$pR#1si%O9}tS#8J>bp$B?NyH2D_fmyE5P>%iBs$i*H znP^Lpz3lbFmUHT9AB8bvq`TWu56VIoYZg*STbM#du=T$oL0(gBUj?px(d;;_C^pu> zCjU6ek2m-z8CO(gHbFPYFZ` zV@Ts9&rWaXGZI(&kimM6yTda!vz{fZuP~oj7|`OW7%awu)^K4YC|E#&i1zrKY&`!V LmnM>n@z&xuat(C+ literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/model/Plot.class b/out/production/CYG/fr/gravencyg/model/Plot.class new file mode 100644 index 0000000000000000000000000000000000000000..06ac5713d3fad606575609f98db76c906c40f714 GIT binary patch literal 5161 zcma)9X?Gjd8Gc5VG?p~79Xn3!1e1jG#$HEr3E9L&smO!?iH)iFv}L-C2-P%(?k73x?e4XMVe`9hUWDb`9nShh^xOxLQ5c3H!|*~NOHTsP^G z;(EETLWxS@(NKU`eQQ?TUR-bOX*jG>x)KwkYWkF2wVf#qBcrpmdbzOBTwb=F0=;iL z>xD}dbKR;>j$I+MX_r~=tX;J(Hdhv``epHk1dz_GT=Bi*Z>HP;YS`OOL*m#dOrMqL z(sP{YyD z&H1o-M^4+dY^^gYYi6a%Blei3lAKaf#!ZGiH!gUI;;wTM0UG5h@CRerk|k2zTB)sB z0hoqC1tlSn_XK?-^m1{@DlP|lXKylZIw(I)WmnkOrGtCibwG(5IS<`;i%%+e&-y4^ zj{AWW7P;;1C4wjV?XUawqCpo$HHkqu3c3ZEqFAHK>#W z6uDEah)J&w0zsOZ z)=hkWb4-;Y(P{`BDizgi+H5D{H4i7pSt}95{Xv-N{_I?>Sua{Mw$yP(D(<*6V*~f& zr;NPYnB60tGaE|`y@7jh$iPt59x!kMU(j%mLNXpAgI~M*bo|1=JNTu6UtwOyuMPYLzcuhX z{NBJH@J9oG5(@9)Jp+Hndm45tfW;MTtF1576AL%2BDaP*^+*kOU2o65Sg-3Em9pO7 zX3P@_!uOOkN0vy*S~Q!LAo{}!4X=T+IlBFcI(LtbZEalw?`E!7OZiry7*@8s)g}-3 zU^LOZ6Hi9U*x&Knfm?jR&`9f+Bh$Lv#qHGYV1pCukC0!qOhdKC2#qxd9-^M z>$Mf{l5n|3w`rJ+0{Pd62xWg~tV6Xh^lf<4wUyP1YYN0>ksf{Oz|nRhj5x6dzkaxNPLF3kkavp zj%gidG!6JKO=vhvbFN!)lTck0J}mqvKE|E|drXhN*qgvrcY4e_Q|mPSJcnGw^Ni3C z&v%Ht0%imY`5eZhj4kbQ?;K|dmsuCIA#OevvN-Rv$kSSSB4RD!`Y!DvoQhb;hZgdo zg}iS;!{bWe?oPl{+Xgg6`$KfKDV6Djp_Z@7`4YE zV7ZW5E~GZ61QTisu-Q9+T@JzKneyVb5i-ks%90CPT1IwS@Lv0nKf0ik`speuG|!bI zA>R?7uM|GZtDon8D)i|Y-wP5UDf0FRdC+sn;c^7p2%%e1x}roBt}4W1bIdY(j5m` z*b?Mf%=1vGs{C;cIx#*N^&iAg;U^QBH-*CKeRRyW+}A zO66jh-O;-9KP&ONyWv83d913t5-de(7;z>Q1rskd7I~0zn6W4Q8c2^%@CzUBPt^#S zbeQ>Rxz-a!!;%`OFOIX?0Y`2)f@AZ$?#1?5pU)6u+xsbU6TEud#>j^gvc8SG<(yvW z_wWfcprgr~!_A0=p^)himR$>e`S;RDMQN%pW~xtN>P4D*iKbrNuBjDe+UxO9z3$?5 Vs^Y2=BohaDV@r@4J(a-f{{bSd%iaJ0 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/model/Storage.class b/out/production/CYG/fr/gravencyg/model/Storage.class new file mode 100644 index 0000000000000000000000000000000000000000..75127790aacb5a4528b273f1a4cfd1a20c68d291 GIT binary patch literal 2838 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/npcs/NPCManager.class b/out/production/CYG/fr/gravencyg/npcs/NPCManager.class new file mode 100644 index 0000000000000000000000000000000000000000..49684adf5ec77eb2a844b3451e5d7682a0b6ddac GIT binary patch literal 4828 zcmb_gd0Z6d8GdG27#Jpscw!LIXyp(#7^4Xw&9bOy5iA(Z#x!PJ1{~aj&hDbbv`y3W zv{!m3J#3RS^lr4eh%~89uQaiD+NMqK`@XN(wDx&tc3~HY$M4ra`1U*B<9Xiq{l4L` z|DJjnz*_uUgC9v1LmE6t7U4P^kmjH?!zymopyH6m!EGvDq(Q?W6))DH<4`ePg4?Be zsfs&Pyi7w0?$l6=muq+hUa8_$8s;Neh*!(+Yc$Nk;X=Gt2Cvibdb~l!8#OG!UDCWs zmftMBw@C9=Y2GHg-YyI8kmhdDb&oXfEXKR=ZfV}5;)tkxZxNNhPsP1OxDWShsK@&? zJb)1uAJDJ{A5`%n+3{g-;C8?pI1W0p79Y{@QG86r$BWU32UQ#`Ml+5T;S)G6y%Q=@ zDn=D}ql2Nif|8B_W61C&6IR&QVZ{?o3W|EH{-}{i+NOe*Da*|rQ8VF-SWz=%8+{31 z+_Z;G+c(s(r(w;W?grn+Xu?ViZx0*8rrp#+VXCO<+B=}2dYY&{+t+U!LuNEI-0zcp zzRv9d=ae^MSWyL~9XVS9!OfId&}>DmM2mv?RnwQNcha*!te2+G?x2;O$;e*Q-eK$w zbEdQ-7Ba#+4cn4&dNPlS6|BA#zi0ywIZiFiHDSUD1%+WMOIR_wF~1{b_xtuH_wTn7 zKCwZj=}BH9HmIN?d)0LC^ZD&a%X9miR z)BRRB><@>@N|iWL;4(3@A#RjYNB)7B9VR1;tVxD<$y^gNkXH7@l6J`4WJ&nVroCxW z>LuxPY(+%D+{py=+qN+*S*W8G0Uev9X$Pq;&q)M_93vd|wV6W{DuSM;;}#esXy%Oq zwZn7e%~@i}~6#~1J@8L4b;*6~F=s^T#nkK+tM%fdU8 zQ98baFYEXUzN+JE__~g7Nbd=0w&I&QzJ)V7zKth!dv@gp5S z#!nQi$&&2UxOCo5l(=+?2BiME5v=2d0aOrPEo?Te}SxsG4q z*J9~!RQy)Q@9=vCO_w07(}JJJwT!IMqbh~NvcE=JN-k+();k zY^I0;V{p)vd!eq%y<)S{swvygoJzEB zm=HYUjXHx|;wKWKNTQQ(4!OQc+^c!=x>m6D{Kh{^v0Je*nvA$EN$vBeUkmeQp4PYU zL172NMm%ovv7`Ch+V*Vk@CP?`E9kfYdY57VvAM14|0!?x1%%~LD`8Q80W_VLQ8xTq zoN4d+$mjLN8Q)T$iq7#?J(RWf?Bj+*YH*fmOakgM|Zty8kUds|oco}L~4PNw-xPwX6N1-2Q9 z4VhTRZ$dvmA@lg%$QKwCv~lFYM*i_JHZk7JG2dle%jXiK1^Xe=!AmeHM+cY2hObL~eR5Vx`2 z#IIc7a(J;2v#|(^QI4gk;P>rPtVbn5U5;*C!Pn~w#IOd!v@mh2;wP z?b}HyHxb-ha1Xk$ofO4z7|-WfFVEb89_%0)N3a{$VmG>fvuGsHz~40}!&Qz83*6Hg<%FY)E-<&S7ooI{r)X+EPY#HVF;pqowt5WJ z3hqXbof^dnf!foc{?*4(*XS+tj-x(!3_kBeC<*4(^^D@m6dGiDO|WhhSEUDQgLQSs zadqjsfztKS!*`A18ZL~SyML0d3W5c!<9{mFlZ0!S57*L{M)aWx7XN=BG}I9CYHUC+ zO!k%#JeLq!JmJ>>PxR9t0ks&OXP~LrcNRBu%HlSUqzil;5o6>Fd=IkY;#S~Hwm7`jKfWgyv+=YcE{XGQr?Vth%!38+_@fu yc%ei2uCxmR$RgxFgCYX*A5^HY*;(~8JZHJjgSZ1j0>9+1Mi=j69RK3Fvi|{Q0z2aX literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/npcs/all/DevNPC.class b/out/production/CYG/fr/gravencyg/npcs/all/DevNPC.class new file mode 100644 index 0000000000000000000000000000000000000000..194755718a102af9a2bef949de7c730a0f6f3afc GIT binary patch literal 1234 zcma)5O-~b16g>~hw6vvQEhq?xh+00%6ez9bOOiHKlNJdG32`;FuVv_TW->Evf`7o@ zpj%gNj3x#XW7OzMqbnD#jlV_SfP+FBw~q3Jdxy)STR2nNzN4uk!UO#jq#`y zosCC{`VGFX$!fviBbGFxOO!xSxF5r~=*D$Fl2~9EX=19v)v77#ie^y{nw2BdjYU6} zu*@*n(~mX`(C&4ddzuBI5yB8 z^gSb&I*>q@K(_S76WBmwFWR2dbDsA+&vW|i*N0C4a+nVxC49dB^68IPSKbQ` z^OU4ZSom4@ui%$`AdDfTLl_TXLRk3j7hnK!Oooxcln6PDET%=wh?r#%?rDbRJYX13 zRqK}Au#{bHsCx~$wE1X0y}=MHnKjN3t7-;cc3WHAdZujYl!;eORna#TOY`DRGU#k; zHpA6!EMrHtWkuKJ6hPKJMr7z;G+k~sD@>`XpOO#GhY*VjqcNG@_$!bMyXaYsTP1roAL zo)$OUBO#Y45-}&Ch`U6utFl*d^7rI-a)M#<6yHxuUM`m_6>l8|yI^QZNcskMyjhkM zgRCF{Q)F6KS$po1Yda=6c34S9j{Q#^nQ88D+Loz*Sa@valCIb`d5UYa_Cx+3&=1-r z4AXst;wmEOqi14#BF+-%OCXql5D!J(Vc;$0`*4o#VZSCq2olayJksvL1&mTe-JVs1 zNZR8{2RY-%Kp-A|LnUn>fs#PX2a){uKnH{jKBYC%+d6b=Ym)f2`OLxN2SocnikpE1 zq}9z}bhQ^{jY&ZQLPC7nwzp;NcDL?si6p-I z1N<4hX=2bAV~D&Nee%H{;eRmBZX2LbjrZa1o!Oal=ggV=_4mim08&`;A|@Oxy#DoS z^uwBPKTS?r!a-#Gr+sjLdHLx#Cq@hHy_ip7i1 zT!haN}{cYI2J%h{c~0fJfJIs#2~q zT#XfVqb8MF^}1q7T(cBwS6Wr&U2ZsBg{E_6i2OZ{!MCorj504Mb{7K2lxFNI>Gy-i z;hw7K1~){6kYbofRVw95CY4E~Gg+QURm-!9?0mJ7NT#yM6i>>@xpa~toIl(vsrvI4 zH=-48Mm1%J%dHn8F5`*^3nJ3UP;0xo)!)oC>lK`a*DrAOyYQdknlK ze;+Q;?sH-W2|>g~vcv5hTtb8_%C-d~M4C5@c90W}4Y-27Hx$wa637Vz91zhtyE-5Y z*LtK5o=zR^nHnX2Z9a<*KVYc;lV{5ng1ELtgv7PeIN=jGLq{cyVZ4J=fXm_NpL_@Z iJ_1w0p?#b`-H`~+5%c4Y_>Vf`#{_N=7Q;=4{H;G&%n~C2 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/schedule/CYGExecutionTask.class b/out/production/CYG/fr/gravencyg/schedule/CYGExecutionTask.class new file mode 100644 index 0000000000000000000000000000000000000000..f11c3241a2559dfe48338af5845ed7f7a679c46d GIT binary patch literal 4406 zcmbVPd3+RC9sj<~CPQ`~BqRh#I7$hS3s_oF3js725ZN3i0m@-V4PS*88gdS3b1(eKWi4Y)H!I<0r|>d%ydBZ_Yh` z<}m>4@!tTh$6gKl0`OsPDXznQwY(~bn{XhAS3_6JpoT~(hF}Cyih~Ll4PY2%0EaLV zKn!sWi6F{hX&4Qn04#{xKvBZ_%k!_5KIxQEv&nXgmQU$3Zc3E&NQ zqk_FDfH&hUYI&<7zEyF)O)YO%bnj5GcWSsThz7h%>ApRHcjGKm)4R;Ipa7o6&@xO527&;}rC!uw_R>gXxhGGZh+)S&@-Yt6H14kg;TwnJ`mZ1gh$< z)ZDO(cC}eU6j~NG6GnGBK4{nj`e2NZim(;YW4mfdWw|z zIPReiiBI5OiKDoW4ozQd8t#|)Bp#4Bh6#yJp+&=|B|d}CYWSSQgX;W{#OHCG_3aVi zBu(OB1z+fa7i3)G5qv?z35k=)NSs28#A&sg#2F2bN_-K=CBB5m1eRSbiV|POStal* z5?@vJehrUn_`1Y5@J)$t;oBO{Nu0+M65qjhCBCN!&*S?_EtenQhY~-U!P?%KK5p0& zKgLfaeu|%I__@R{@T9~q@hc6#miP^ROaEIfE0s*y`e>Jt8n%X#WhMAsIeuSOidE(K zgTzyKTH=rRlfbG1cV_G}fm%=Oa%6U>)fozX=|m#i)A@{drVLwWD+tWV162hG%rYNLlrnrv84b{j`X&DP$_F_Lf&^K$etJrND{3?4EfYJ63Ctn1P#-PB{`Z0YP{ ziFzA7hg2GpMrwfl!n&xRmc*GTk(i;=hw_3rvFPbm)JSd9<3^XB;4mOfEp00xixR6w zR-TAzuek~d!!yb>hb=Wb=6d{cW6e=by-rngcvR%V;hp6{5;&90G)SWH?GY;QQ*!DbWEb*+w27A)Ye7 ze5;e9o1N+s}W%_2n?v zZ5%ZOvcfnxrp;QTO45d18vZKr zH~folro10!V$2#bLSa2VIHdEs(+{$VESnF!U_5`)@C>bFI7iZ)sO>a&0DLCyEFGsv1v0G(HO7 zo>M3~34deLNfbZqux#R50YBGjt_x7cFP(WI$k`ek}sxWTDa<0p;g#TBemLI<>S$}oJHQ+`x;Rx2?R;`~s0^71d}LP1q`Kz&6o_?V<-^u@5~Wie6!%PuziiaSwKi zqu4DT#C~xcH;Hr5or2uYFZCt-YegGN^9btEjt<&-BX(dbw!uekiS6iQwKO4#SCFol znja#*jdV}p9Kz^gSDY0AbUU5H(#;ll4}Fy^YZuqc-75*%fwGGTXz06ur5CY?o9D1p zLq9hcQKw7SV2TUFcG928majrK0GueMg|QO3a;(7RVHhyOu#m67CTy<273iWNd-W0;8dFN&YpW*i{EaS6bL~tvE z^eecH-?uCH9Piwr;7*=@o+sBT7zpE7FZ1?L2oJK@?fm!(KfW5m*O>C55FTc29|_~@c(j~GI~eL44D}cjK3FsrDJU=(_*^KsZ55^ z0!%}%9#WFAeGcPAwt!y5BYFsOdB!sO1=Ln%kEb=$)Ja0MM?$-nn`cuI%QU~o`g29E zE%7k0O3i-3;~lV+(BdAZQ7O&NVp_}e#5ye_mFa2nV|k5Wlu4bImgpsZJAewFp(>&R zqU5H0r&OmL5(sx@^F~5nk>a>d@dmMheW~JXtX6RrS`~at#kcXSf?XL8RD1_} z6?|94^LT;qRlJCoRD2KL7dUb(5~CKV_yKQCpUCwpeu#Z4UdE49{22QbyrSYKcvZzu z@iP@a=h18Ug^FL|R|Oq0nC`lJA`P_ zzOuHZwX3y*+&^nVU)!W?Map!!=9C$=7%`&F4Rz^tN!B==oC8>gKdR zi{`tW-qk}A%36|+f4bX@HA^=YIf_9om(w#uQ12yh&rL6$v*b2dH;YMOF81jZH&3gG zZ_vnW+94_*YEi65lTuWLZ0?}=P>vL{-qYS$EEfwO>H-xeDc-J|Cbg3i1B?1o5R_GI zE$i$Gi1@OFi^+_|m(x{{yj*4{v%t~*1oRTIaJsCy4694B!AI!_@l;Qf*H0wab5-Mn zImRFBQs-19^@O4K5uYckCQE!9=3q8`8m^>IMFENL zpfr+bd^XOZXB*8{&|IQ-c;QZng^M1C^r%hKPS44Z={X$%`phdw4LWEx&7sD*SVc49 zvr*}CgAZf1gBes&M)Z*1UHBNJ0^|Y$!zdFNMv#Oq8ipb;AiqX~ke~~3dHZq02=l0- zqrL!@ev^hVSzsHEtKWem3aA{w92!k2pvr+fl4z#7==D|A1xy=dVubr_Mk03^3F459 zM=_&~TR9*YV)`K7coLCyG^`oM(E>YhOk*HI>XSNU_u@wRsH2W2dxub8oEK#+ zA#CEAUcd=eCpvN*kDla+A?FC%KY0Kn3~f7u1~sLEPAOXHM(-seQUmv3&p5)yK&cL= zvb_Pn#22nSPF^Cy1D=jVapa{wr z#|WyOlW3EFPRIvPGsfdhu;pXR%Z3ij;RX@_H4rfwaT?D;Ew!N~^mkAj=Ao1R&bb8h z(Th4XI9=4>3{i^~(SW!(9xKFJ ztP~gE9HF62q|q*JK!>;;tHhmHEuKcFcoyf27jdC@85c<*Tr3@pOQhwvRJshBbPc+t ztw>0>A}MXddg&4LNIQ^{hOtrFgI?)*9n?<_Ifb&0IC)Ayod7?Y*3Io^?fuc*eL9^ zb_Kl(($YZ+UYUYET6Cz00vJJa-Fw(h1hjqtClc{~Oc}wn1F&d3g2}Pd7Vk%RgoH`R VkT?lhGL_E@I?w4(!OMc>{|C<1y`caA literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/scoreboards/ScoreboardManager.class b/out/production/CYG/fr/gravencyg/scoreboards/ScoreboardManager.class new file mode 100644 index 0000000000000000000000000000000000000000..9ea4b4fa6c2129b125e39084da60561bc3a9ddda GIT binary patch literal 6191 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class b/out/production/CYG/fr/gravencyg/scoreboards/ScoreboardSign$VirtualTeam.class new file mode 100644 index 0000000000000000000000000000000000000000..a656d573cab579af5a5dac8ed391b3faf6b3205c GIT binary patch literal 5857 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 XycI9z93*uCe|_Fd?$_}fb^d?ZS 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/utils/CLevel.class b/out/production/CYG/fr/gravencyg/utils/CLevel.class new file mode 100644 index 0000000000000000000000000000000000000000..ce7cf3ea4e4c4d25cfbde692527cb8a219b8a979 GIT binary patch literal 7926 zcmb7J3wRXQbv{@7x{?N%U7i92ivc5qK_FhX!59ey7D#}#ykz1yqt&dmV)nu8tgxu# zG_4=R@gs>7$8loEaU5eD*N?R^5Z9DK+NS9%ZQUkq<2LCteWhuewn^%S{^#z@Xe4j= zTE34t_s;##E9aZ-|2_^_>UOA`yX3H^7B z-j(z}l71@biWJl!gs77uBt=+?h!jyNVp2#c>cJ`+Bt0xeqZFDHQ>2&*Nn)C$N2JiD zh)a=>V!9MF`1MRlACqF16tj6YN7BckPBb-$xniCa^QCB(VgWBLl=KNHlDx1;ifg1; z%x{-SdQ^&~Qe4ZkWs*KAMT->6dDbfFQ&Oyu;yRwKl=K*jUd59(NuQQtwG?Z3)-LIB zDc16Eouto5v7Uz;Bt5}&qomI=41E zJvP)kZaP~LFLwkhc5iL0BdQ_IK?wRPtmbI7zeUF86_K$>P1 zY;#*7moxH%P^Sk3_GC*A5KAV#3MxrCb~Zn>i3K&XppLYYE#x7m-Zl+O9kU?Ojk#kN zio;{Q*}NcGvT8#%~L zyjK{`cXKwMb+!mPP(xRDcXusqzF#IC$fn8j9h>V@1!nk(U3TlA5PJ zNpVdK8xzlD^MfiHI>+{_K;VPwzPe9C)~F>Y(v^4YF~n(iK5yFFETdH7W1bmMjkH*z zPzac4HO>Te)dB$K;tS+qLI;GJ$ZV1k6;-EMrsHuisRkTJI z#9@sti++t>qt`V$!;hEg6^$zVc!SPr^ksT6CT`Qj5%Ip5xLp(P7kA(QH1PppXkvgB zOrKC3t5Kkdv^b>EAJN+yJxCA5#GocjI*Zz-z-p6K?+Qv@I%T#MEo1D`sZ6qnO(jPP zWz$YxemYssCr8Y(prutv!SNx50msZ|Z6M5K(SRQ;cEd`>SttXl0{Y;g%cpG!w9HcS zL?MsoV7V$+;WKvD%ny!(O~#HEO38F#Wg3OlvCC=4EZe1+$Y^3n3=3L)>C}c!=t&mx zUAR@9mgVE@p_ZNnSEOX!J zz5u?EZ!2Un*iEuHS`@U(!**HOTo#v-8NizA9fY$d;nlJ&=vt2<<&-m-0C*@nY9{cD>VwZVB_nVekEZ9MpIK^@G2sipFsyiQ4&McLTA+uD= zcix(RR4tx@6b`Gm${8>T`*T?YT^EGz&pKAnBN-#>usLlGLdG_Z2ex?#O97FFgAg0E z&E%S7$wVLwni@S!4=MR(+kjysZfw&x-iycqj*DzQjUrjS)0XgFhj0z$aOwH*^e`F( zK6Nw6?*r$!O|9$%LoXHr2DJ_4#vLhWgSX9UknFHc^F$Cngp;t_2GM|k1{vEYF&dV& z-N@l20=m2)Gm`0HM5jiN@Xi-|oIlf5s}VQIs$leXmb2Di4bf(DfLAp77(JwkES-&s z5ltMWZwm6GsSnoYQTPMwHor<*Mlxq0`UAmSD6-E2$dXeia+;_T;)^_#%?B`<0&0iy z&X9qQF7IgcasP~mO=G++c<0L%$GQB1gH%BkQ8}dvOXLE9lrkNz4o3reP~TiV93KH6 z^&u=q&B<`vbh2EA5U7mT=o4(zde5<(1N#bG(xw-KZr2B~}4v z0vow(X!J=Izs|Fcchy-al{zOB8#k?!ICSJ3Z)*S;L2Ep=KC=XWzlX0>E*9-<4o>6^ zffd{N6h~T~ueHZmGpbNEP*X+Yc)piwy&0@?C4SA;=F~NSB=v3Gowcm@GB|v1IVk5! zr^^MspLX3?)dqtdv=RZYl*}Yz&1zYm#KC1u6X~MSeU2Ze`0+eH zPU9hLUVVYhh>tfHw-}{ilmfm%-qGkQ^kz)JwHJh=iLw|KG;?LF*>g?W$lkDl}+u4Qf_IB;; zfET(B@9*pC#f#9+z1zLWQD@|SX7DNDduKdMyw4A?6wBD-^)=K7;1dlB#?96>_|5F2 z_+4)4)+X+Ei9pdSD2kg?QCxG1;(k#SC0$X}SVd6`6-AL!6eUVg6c0sF4-`dmD~kM9 z6zQrcl2B3Pp`u7dMUjn)A{P}!Ix32cR1`_6DDqNKWTm1=Ohu8KiXuG~MTRPh{KSqW ze<6^dU&6SKUc!HTK=|`lF~_&WggHJn6c%3_isCbaNT17JEtoe@J?Az!ei^fCK>1%o zg~S_FcacJ`U?%7-Jfmt&0)K&i#l^3KKIUjhgj>&1ik+c`)~3iAYJ3&AkdnQCVi?~G zo9?4Vx*xx#o}}6I5o)FfXfYz=B38Fx6>{mq_q7?&O zz_NJn-0RL$f`{QZX!^4hJ$2Svl@HS*^n>frxNSjWauKU+*COop z>-0Oy!cO{Kb-HXb`?|XJdszDh-oz>NE=`Tm@4rh+WAq0FLS9Rz`eTVjseYNbCe^P;6N?#pmX^FmGnC+^ z;fOvBlEYQW*Ya|-I$p+-T3FI@pQ%+bt%yYRb}&V%!0Q;eGQhctU$imjYM*nB;%tw` z^xfbLffJfs0c#n*&WEm7&|4#>sWBDOR=Q=zN7;Rc~EcE zwRr3sRb=82wyoqGR;&HGrca62f7M;R&09U9R^O*j(Wl0>pRcZZ7Tm7Z-mg#9r^TnA ztk4~9OniVfdmuxB2J~sV9-ns@AS}4Jv~S^{0+~86@r7Ffa`);IWoJfVhV;0eh%aub zjTu&$te()P$Cv4~F(V3dRG+TTh_Cuig{&I7atf2zXXrEIH$Gk)Q&5+L`UByeZ0+&()?W1Yb zPfh4A=Ao-xgl=aE?)g^y<+e>Mr1heMHi})eSvb@oo}wM%YqVQ@k9zA8)K|Bf4%Y3V z+v-N>NZoyOd)*^+N8Rg`uKN}Z*1bz+C`p;nb{Y;1Q#SMzICN&1|LeiS1t=5W25-f-Xu_fsx1CBU~jDf*4z2&(N z{TOLq`p}XVyPB1*tkt)EsIKlkj0)aht#i)av-fYGeVO_9zrX$lFoS1qh=_ZTz>0*B zgro;!Smotoev*=q_CUs(hlC8D*7@{_2cII#%LCRu4Lvp(4jl zdDd*mxWO8Yg-scL778qE$q2BZv#>2AC}TpxjsVwkG84_D1PsPE%b`M9-PcO_r-e|} z)Qgo+B&C*iW(7#Asc0gWNeFOflbN;5qU9njW@7QBC^@$$l1u;mkP5HGk}Cq7;iW{3 z_qnp-;M=uYc}l4@4V#2@gVZ!QDW%Z6ii(o>*| zVt1n*m%yxE@?_$yl@FgdBM0V4+lCJ)(mX!2?-!z-@8=Bu4(a68d={>8HK&aeuz;}b zyi8Db9(@TpdjNN^4o@BJv?*d89d&fp(N#zHNp4>gcl3x$udB_yV{<#0RL3O;(Yz-i z15J>QBS-{GHY7&5^5uNN8hW0ilQ!RTNaD{B9lwy?(bR+CCYH};MY$?y^Dc0K?jB*6 zTd^L-{&Ws@^c<`Uj!p-0W!$6oHU{ez1>@h3FCk{VmmM|q9-!|9`Ym}ttYOfShb(#6 zS;G}e9NT|CLPK>mi(rCXz%NGy`l)j?@womI+V^5Yb2c|!qs$^{Cd(^ svi7B4K;SuR%=QQ*I`foC7^REfq$yv32dgx7kGM|ubj7etc5V3Rf5V*FGXMYp literal 0 HcmV?d00001 diff --git a/out/production/CYG/fr/gravencyg/utils/LocationUtils.class b/out/production/CYG/fr/gravencyg/utils/LocationUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..c7a80af3e867aa85e37842b557ad53b6efa775bb GIT binary patch literal 3010 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 literal 0 HcmV?d00001 diff --git a/out/production/CYG/plugin.yml b/out/production/CYG/plugin.yml new file mode 100644 index 0000000..16c1c96 --- /dev/null +++ b/out/production/CYG/plugin.yml @@ -0,0 +1,82 @@ +name: CYG +version: 0.0.6 +author: Graven +main: fr.gravencyg.CYG +commands: + plot: + description: Se teleporter vers sa parcelle + aliases: [pt] + locations: + aliases: [loc] + variables: + aliases: [var] + ev: + description: Obtenir un bloc d'evenement + actions: + description: Ouvrir le menu des actions + aliases: [ac] + if: + description: Obtenir un bloc de condition + hub: + description: Se teleporter au Hub + messages: + description: Ouvrir le menu de gestion des messages + aliases: [msg] + play: + description: Jouer au jeu d'un joueur en ligne + aliases: [p] + pa: + description: Plot actions + po: + description: Plot options + pc: + description: Plot code + ptp: + description: Plot tp + rank: + description: rank + permission: rank.change + verifygame: + description: verify + fly: + description: Activer le vol doiseau + friend: + description: Invitez des amis sur votre parcelle + mute: + description: Mute un joueur + unmute: + description: Demute un joueur + kick: + description: Ejecte un joueur du serveur + freeze: + description: Gele un joueur du serveur + uuid: + description: Donne luuid du joueur + leave: + description: Quitter un jeu + barriere: + description: Barriere + we: + description: Mini worldedit pour les joueurs + ping: + description: Ping + head: + description: Donne la tete d'un joueur + gamemode: + description: Changement de gamemode + refreshlevel: + permission: perm.full + forcelevel: + permission: perm.full + premium: + permission: shop.premium + discord: + description: Discord lien + shop: + description: Shop lien + twitter: + description: Twitter lien + hat: + description: Change hat + npc: + description: Gérer les personnages on joueurs diff --git a/src/main/java/fr/gravencyg/CYG.java b/src/main/java/fr/gravencyg/CYG.java new file mode 100644 index 0000000..8e40481 --- /dev/null +++ b/src/main/java/fr/gravencyg/CYG.java @@ -0,0 +1,234 @@ +package fr.gravencyg; + +import fr.gravencyg.actions.ActionRegisters; +import fr.gravencyg.actions.team.Team; +import fr.gravencyg.commands.admin.AdminForceUpdateHoloCommand; +import fr.gravencyg.commands.game.GameLeaveCommand; +import fr.gravencyg.commands.game.GamePlayCommand; +import fr.gravencyg.commands.admin.AdminForceLevelCommand; +import fr.gravencyg.commands.admin.AdminRankCommand; +import fr.gravencyg.commands.admin.AdminRefreshLevelCommand; +import fr.gravencyg.commands.link.LinkDiscordCommand; +import fr.gravencyg.commands.link.LinkShopCommand; +import fr.gravencyg.commands.link.LinkTwitterCommand; +import fr.gravencyg.commands.manage.ManageFriendCommand; +import fr.gravencyg.commands.manage.ManageLocationCommand; +import fr.gravencyg.commands.manage.ManageMessageCommand; +import fr.gravencyg.commands.manage.ManageVariablesCommand; +import fr.gravencyg.commands.mod.*; +import fr.gravencyg.commands.player.*; +import fr.gravencyg.commands.player.PlayerHatCommand; +import fr.gravencyg.commands.shortcut.ShopPremiumCommand; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.items.ArmorManager; +import fr.gravencyg.listeners.BlockListener; +import fr.gravencyg.listeners.ChatListener; +import fr.gravencyg.listeners.PlayerListener; +import fr.gravencyg.listeners.WorldListener; +import fr.gravencyg.manager.*; +import fr.gravencyg.game.CYGameManager; +import fr.gravencyg.menus.core.CustomMenuListener; +import fr.gravencyg.npcs.NPCClickListener; +import fr.gravencyg.npcs.NPCManager; +import fr.gravencyg.menus.CustomMenuManager; +import fr.gravencyg.schedule.CYGExecutionTask; +import fr.gravencyg.schedule.CYGGameCycle; +import fr.gravencyg.scoreboards.ScoreboardManager; +import org.bukkit.Bukkit; +import org.bukkit.Difficulty; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.boss.BossBar; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CYG extends JavaPlugin { + + public Location spawnLocation; + private Map eventBlockCache = new HashMap<>(); + + private List freezeGamePlayers = new ArrayList<>(); + private List freezeModPlayers = new ArrayList<>(); + + private Map targetPlayMenu = new HashMap<>(); + + private List barActions = new ArrayList<>(); + private CustomMenuManager menuManager; + private CYGDataManager dataManager; + private CYGHologramManager hologramManager; + private CYGCompilerManager compilerManager; + private ActionRegisters actionRegisters; + private NPCManager npcManager; + private ScoreboardManager scoreboardManager; + private CYGameManager gameManager; + private CYGWorleditManager worldEditManager; + private CYGPlotManager plotManager; + private ArmorManager armorManager; + + @Override + public void onEnable() { + System.out.println("CYG >> Enabled"); + + World world = Bukkit.getWorld("world"); + world.setDifficulty(Difficulty.PEACEFUL); + + // register locations + spawnLocation = new Location(world, 0, 28.98, 1.572, 90.1f, -0.2f); + + // register managers + + dataManager = new CYGDataManager(this); + menuManager = new CustomMenuManager(this); + hologramManager = new CYGHologramManager(this); + compilerManager = new CYGCompilerManager(this); + armorManager = new ArmorManager(); + actionRegisters = new ActionRegisters(this); + npcManager = new NPCManager(this); + scoreboardManager = new ScoreboardManager(this); + gameManager = new CYGameManager(this); + worldEditManager = new CYGWorleditManager(this); + plotManager = new CYGPlotManager(this); + + // register commands + getCommand("hub").setExecutor(new PlayerHubCommand(this)); + getCommand("plot").setExecutor(new PlayerPlotCommand(this)); + getCommand("locations").setExecutor(new ManageLocationCommand(this)); + getCommand("messages").setExecutor(new ManageMessageCommand(this)); + getCommand("play").setExecutor(new GamePlayCommand(this)); + getCommand("rank").setExecutor(new AdminRankCommand(this)); + getCommand("verifygame").setExecutor(new ModVerifyGameCommand(this)); + getCommand("friend").setExecutor(new ManageFriendCommand(this)); + getCommand("fly").setExecutor(new PlayerFlyCommand(this)); + getCommand("mute").setExecutor(new ModMuteCommand(this)); + getCommand("unmute").setExecutor(new ModUnMuteCommand(this)); + getCommand("kick").setExecutor(new ModKickCommand(this)); + getCommand("freeze").setExecutor(new ModFreezeCommand(this)); + getCommand("uuid").setExecutor(new PlayerUUIDCommand(this)); + getCommand("leave").setExecutor(new GameLeaveCommand(this)); + getCommand("barriere").setExecutor(new PlayerBarrierCommand(this)); + getCommand("we").setExecutor(new PlayerWorldEditCommand(this)); + getCommand("ping").setExecutor(new PlayerPingCommand(this)); + getCommand("head").setExecutor(new PlayerHeadCommand(this)); + getCommand("gamemode").setExecutor(new PlayerGameModeCommand(this)); + getCommand("premium").setExecutor(new ShopPremiumCommand(this)); + getCommand("refreshlevel").setExecutor(new AdminRefreshLevelCommand(this)); + getCommand("forcelevel").setExecutor(new AdminForceLevelCommand(this)); + + getCommand("twitter").setExecutor(new LinkTwitterCommand(this)); + getCommand("discord").setExecutor(new LinkDiscordCommand(this)); + getCommand("shop").setExecutor(new LinkShopCommand(this)); + getCommand("hat").setExecutor(new PlayerHatCommand(this)); + + getCommand("actions").setExecutor(new PlayerActionCommand(this)); + getCommand("ev").setExecutor(new PlayerBlockEventCommand(this)); + getCommand("if").setExecutor(new PlayerBlockConditionCommand(this)); + getCommand("updateholo").setExecutor(new AdminForceUpdateHoloCommand(this)); + + getCommand("options").setExecutor(new ShortcutOptionCommand(this)); + getCommand("gamename").setExecutor(new ShortcutGameNameCommand(this)); + getCommand("setcode").setExecutor(new ShortcutSetCodeCommand(this)); + getCommand("setspawn").setExecutor(new ShortcutSetSpawnCommand(this)); + + // register listeners + getServer().getPluginManager().registerEvents(new WorldListener(this), this); + getServer().getPluginManager().registerEvents(new PlayerListener(this), this); + getServer().getPluginManager().registerEvents(new ChatListener(this), this); + getServer().getPluginManager().registerEvents(new BlockListener(this), this); + getServer().getPluginManager().registerEvents(new NPCClickListener(this), this); + getServer().getPluginManager().registerEvents(new CustomMenuListener(this), this); + + // starting execution task loop + CYGExecutionTask task = new CYGExecutionTask(this); + task.runTaskTimer(this, 2L, 2L); + + // starting game cycle task loop + CYGGameCycle gameCycle = new CYGGameCycle(this); + gameCycle.runTaskTimer(this, 20L, 20L); + + for(Player player : Bukkit.getOnlinePlayers()) + { + if(!player.getWorld().getName().equalsIgnoreCase("world")) { + hologramManager.registerHologram(player.getWorld()); + } + scoreboardManager.load(player); + } + + } + + @Override + public void onDisable() { + hologramManager.removeAllHolograms(); + + for(Map.Entry> game : gameManager.getGames().entrySet()) + { + for(CYGame gam : game.getValue()) + { + gameManager.regenMap(gam); + } + } + + for(BossBar bar : barActions) + { + bar.removeAll(); + } + + for(Player player : Bukkit.getOnlinePlayers()) + { + scoreboardManager.unload(player); + } + + npcManager.killAll(); + System.out.println("CYG >> Disabled"); + } + + public void toggleGameFreeze(Player player) { + if(!freezeGamePlayers.contains(player)) + { + freezeGamePlayers.add(player); + } + else + { + freezeGamePlayers.remove(player); + } + } + + public CustomMenuManager getMenuManager() { return menuManager; } + + public CYGDataManager getDataManager() { return dataManager; } + + public Map getEventBlockCache() { return eventBlockCache; } + + public CYGHologramManager getHologramManager() { return hologramManager; } + + public CYGCompilerManager getCompilerManager() { return compilerManager; } + + public ActionRegisters getActionBlocks() { return actionRegisters; } + + public ArmorManager getArmorManager() { return armorManager; } + + public NPCManager getNpcManager() { return npcManager; } + + public CYGameManager getGameManager() { return gameManager; } + + public ScoreboardManager getScoreboardManager() { return scoreboardManager; } + + public List getFreezeModPlayers() { return freezeModPlayers; } + + public List getFreezeGamePlayers() { return freezeGamePlayers; } + + public CYGWorleditManager getWorldEditManager() {return worldEditManager;} + + public List getBarActions(){ return barActions; } + + public CYGPlotManager getPlotManager(){ return plotManager; } + + public Map getTargetPlayMenu() { + return targetPlayMenu; + } +} diff --git a/src/main/java/fr/gravencyg/actions/Action.java b/src/main/java/fr/gravencyg/actions/Action.java new file mode 100644 index 0000000..1eeb8b5 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/Action.java @@ -0,0 +1,34 @@ +package fr.gravencyg.actions; + +import fr.gravencyg.CYG; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public abstract class Action { + + protected CYG main; + private int slot; + private CLevel minLevel; + + public Action(CYG main, CLevel level) { + this.main = main; + this.slot = 53; + this.minLevel = level; + } + + public CLevel getRequireLevel(){ return minLevel; } + + public abstract String title(); + + public abstract String lore(); + + public abstract void onExecute(Player player, Block block, ActionProcess actionProcess); + + public void setSlot(int slot) { this.slot = slot; } + + public int getSlot(){ return slot; } + + +} diff --git a/src/main/java/fr/gravencyg/actions/ActionRegisters.java b/src/main/java/fr/gravencyg/actions/ActionRegisters.java new file mode 100644 index 0000000..faa0879 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/ActionRegisters.java @@ -0,0 +1,139 @@ +package fr.gravencyg.actions; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.basic.*; +import fr.gravencyg.actions.block.RegenMapAction; +import fr.gravencyg.actions.block.RemoveBlockAction; +import fr.gravencyg.actions.block.SetBlockAction; +import fr.gravencyg.actions.game.EliminateAction; +import fr.gravencyg.actions.game.StopGameAction; +import fr.gravencyg.actions.game.WinnerAction; +import fr.gravencyg.actions.inventory.ChestAction; +import fr.gravencyg.actions.inventory.ClearAction; +import fr.gravencyg.actions.message.BossBarAction; +import fr.gravencyg.actions.message.MessageAction; +import fr.gravencyg.actions.message.ResetBossBarAction; +import fr.gravencyg.actions.message.TitleAction; +import fr.gravencyg.actions.potion.ClearPotionEffectAction; +import fr.gravencyg.actions.potion.PotionEffectAction; +import fr.gravencyg.actions.team.TeamAction; +import fr.gravencyg.actions.toggle.*; +import fr.gravencyg.actions.waitable.WaitAction; +import fr.gravencyg.actions.waitable.WaitAction2; +import fr.gravencyg.actions.waitable.WaitAction3; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CLevel; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.HashMap; +import java.util.Map; + +public class ActionRegisters { + + private CYG main; + + private Map actions = new HashMap<>(); + + public ActionRegisters(CYG main) { + this.main = main; + + // basic + registerAction(1, Material.CHEST, new ChestAction(main)); + registerAction(2, Material.NETHER_QUARTZ_ORE, new ClearAction(main)); + registerAction(3, Material.NOTE_BLOCK, new MusicAction(main)); + registerAction(4, Material.MYCELIUM, new RestorePlayer(main)); + registerAction(5, Material.SPONGE, new RegenMapAction(main)); + registerAction(6, Material.OBSERVER, new ChangeGameModeAction(main)); + registerAction(7, Material.BREWING_STAND, new PotionEffectAction(main)); + registerAction(8, Material.NETHERRACK, new ClearPotionEffectAction(main)); + + registerAction(9, Material.BEACON, new TeleportAction(main)); + registerAction(10, Material.SPAWNER, new MonsterSpawnAction(main)); + registerAction(11, Material.JACK_O_LANTERN, new KillMonsterAction(main)); + registerAction(12, Material.DROPPER, new DropItemAction(main)); + registerAction(13, Material.BLACK_STAINED_GLASS, new SetBlockAction(main)); + registerAction(14, Material.GLASS, new RemoveBlockAction(main)); + + // message + registerAction(18, Material.BOOKSHELF, new MessageAction(main)); + registerAction(19, Material.SEA_LANTERN, new TitleAction(main)); + registerAction(20, Material.SOUL_SAND, new BossBarAction(main)); + registerAction(21, Material.END_STONE_BRICKS, new ResetBossBarAction(main)); + registerAction(15, Material.GLOWSTONE, new ToggleGlowAction(main)); + + // game + // registerAction(36, Material.GOLD_BLOCK, new TeamAction(main)); + registerAction(36, Material.REDSTONE_BLOCK, new EliminateAction(main)); + registerAction(37, Material.DIAMOND_BLOCK, new WinnerAction(main)); + registerAction(38, Material.NETHER_BRICKS, new StopGameAction(main)); + registerAction(39, Material.WHITE_WOOL, new TeamAction(main)); + + // toggle + registerAction(45, Material.SLIME_BLOCK, new ToggleFallDamage(main)); + registerAction(46, Material.IRON_BLOCK, new TogglePvPAction(main)); + registerAction(47, Material.EMERALD_BLOCK, new ToggleBuildAction(main)); + registerAction(48, Material.QUARTZ_BLOCK, new ToggleFlyAction(main)); + registerAction(49, Material.PACKED_ICE, new ToggleFreezeAction(main)); + + // others + registerAction(43, Material.STONE, new PassAction(main)); + registerAction(35, Material.COBWEB, new RandomAction(main)); + registerAction(44, Material.HOPPER, new ConditionAction(main)); + + registerAction(51, Material.LEGACY_WOOD_STEP, new WaitAction(main)); + registerAction(52, Material.LEGACY_STEP, new WaitAction2(main)); + registerAction(53, Material.LEGACY_STONE_SLAB2, new WaitAction3(main)); + + + } + + public void registerAction(int slot, Material material, Action action){ + action.setSlot(slot); + this.actions.put(material, action); + } + + public void execute(ActionProcess actionProcess, Block block){ + if (!actions.containsKey(block.getType())) + { + return; + } + + Storage storage = main.getDataManager().getStorageByUUID(block.getWorld().getName()); + int storageOwnerLevel = storage.getLevel(); + + if(main.getActionBlocks().getActions().containsKey(block.getType())) + { + Action ac = main.getActionBlocks().getActions().get(block.getType()); + int requireLevel = ac.getRequireLevel().getRealLevel(); + if(requireLevel > storageOwnerLevel) + { + actionProcess.getPlayers().get(0).sendMessage("§cLe créateur du jeu doit obtenir le §nNiveau "+requireLevel+"§r§c pour utiliser l'instruction §n" + ac.title().replace("§9","§c§n")); + return; + } + } + + if(block.getType() == Material.IRON_BLOCK || block.getType() == Material.EMERALD_BLOCK ) + { + actions.get(block.getType()).onExecute(actionProcess.getPlayers().get(0), block, actionProcess); + } + else + { + for(Player player : actionProcess.getPlayers()) + { + if(player.getWorld().getName().equalsIgnoreCase(block.getWorld().getName())) { + actions.get(block.getType()).onExecute(player, block, actionProcess); + } + } + } + + + } + + public Map getActions() { + return actions; + } +} diff --git a/src/main/java/fr/gravencyg/actions/basic/ChangeGameModeAction.java b/src/main/java/fr/gravencyg/actions/basic/ChangeGameModeAction.java new file mode 100644 index 0000000..cbf2091 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/ChangeGameModeAction.java @@ -0,0 +1,68 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BrewingStand; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class ChangeGameModeAction extends Action { + + public ChangeGameModeAction(CYG main) { + super(main, CLevel.LEVEL3); + } + + @Override + public String title() { + return ChatColor.BLUE + "ChangeGameMode()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Change le mode de jeu"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + int level = 0; + + for(int i = 0; i < 4; i++) + { + Block top = block.getLocation().clone().add(0, i+1, 0).getBlock(); + if(top.getType() != Material.OBSERVER) break; + level++; + } + + if(level == 0) + { + player.setGameMode(GameMode.SURVIVAL); + player.sendMessage("§rPassage en §asurvie !"); + } + + if(level == 1) + { + player.setGameMode(GameMode.ADVENTURE); + player.sendMessage("§rPassage en §caventure !"); + } + + if(level == 2) + { + player.setGameMode(GameMode.CREATIVE); + player.sendMessage("§rPassage en §9créatif !"); + } + + if(level == 3) + { + player.setGameMode(GameMode.CREATIVE); + player.sendMessage("§rPassage en §7spectateur !"); + } + + } +} diff --git a/src/main/java/fr/gravencyg/actions/basic/ConditionAction.java b/src/main/java/fr/gravencyg/actions/basic/ConditionAction.java new file mode 100644 index 0000000..c16ce7e --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/ConditionAction.java @@ -0,0 +1,67 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.actions.team.Team; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ConditionAction extends Action { + + private Random random = new Random(); + + public ConditionAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "If()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Verifier si quelquechose est vrai"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + Location bottomBlock = block.getLocation().clone().add(0, -1, 0); + Location topBlock = block.getLocation().clone().add(0, 1, 0); + + + if(bottomBlock.getBlock().getType() == null) return; + + /*if(topBlock.getBlock().getType() == Material.WOOL ) + { + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + Team team = Team.getByWoolData(topBlock.getBlock().getData()); + if(team != null && game.getTeams().containsKey(team)) + { + if(!game.getTeams().get(team).contains(player)){ + player.sendMessage("Vous n'êtes pas dans l'equipe " + team.getColor() + team.getName()); + actionProcess.getProcessedBlocks().clear(); + } + } + } + }*/ + + if (bottomBlock.getBlock().getType() != actionProcess.getMaterial() && bottomBlock.getBlock().getType() != Material.GRASS){ + actionProcess.getProcessedBlocks().clear(); + } + + } + + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/DropItemAction.java b/src/main/java/fr/gravencyg/actions/basic/DropItemAction.java new file mode 100644 index 0000000..cd3c9d2 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/DropItemAction.java @@ -0,0 +1,61 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Dropper; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.Random; + +public class DropItemAction extends Action { + + private Random random = new Random(); + + public DropItemAction(CYG main) { + super(main, CLevel.LEVEL8); + } + + @Override + public String title() { + return ChatColor.BLUE + "DropItem()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Jete un item à un endroit specifique"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + Location loc = block.getLocation().clone().add(0, 1, 0); + + if(loc.getBlock().getType() == Material.BEACON){ + + if(plot.getLocationsSet().containsKey(LocationUtils.fromLocToString(loc))) { + + String locName = plot.getLocationsSet().get(LocationUtils.fromLocToString(loc)); + Location spawnPoint = LocationUtils.fromStringToLocComplete(loc.getWorld().getName(), plot.getLocations().get(locName)); + + Dropper dropper = (Dropper) block.getState(); + + for(ItemStack it : dropper.getInventory().getContents()) { + if(it == null) continue; + + spawnPoint.getWorld().dropItem(spawnPoint, it); + } + + } + } + } + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/KillMonsterAction.java b/src/main/java/fr/gravencyg/actions/basic/KillMonsterAction.java new file mode 100644 index 0000000..f4c405c --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/KillMonsterAction.java @@ -0,0 +1,41 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; + +public class KillMonsterAction extends Action { + + public KillMonsterAction(CYG main) { + super(main, CLevel.LEVEL11); + } + + @Override + public String title() { + return ChatColor.BLUE + "KillMonster()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Tuer toutes les entités du monde"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + for(Entity entity : block.getWorld().getEntities()) + { + if(entity.getType() == EntityType.ARMOR_STAND || entity.getType() == EntityType.PLAYER) continue; + entity.remove(); + } + + } + + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/MonsterSpawnAction.java b/src/main/java/fr/gravencyg/actions/basic/MonsterSpawnAction.java new file mode 100644 index 0000000..527bacc --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/MonsterSpawnAction.java @@ -0,0 +1,54 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.CreatureSpawner; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +public class MonsterSpawnAction extends Action { + + public MonsterSpawnAction(CYG main) { + super(main, CLevel.LEVEL11); + } + + @Override + public String title() { + return ChatColor.BLUE + "SpawnMonster()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Faire apparaitre un monstre"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + Location loc = block.getLocation().clone().add(0, 1, 0); + + if(loc.getBlock().getType() == Material.BEACON){ + + if(plot.getLocationsSet().containsKey(LocationUtils.fromLocToString(loc))) { + + String locName = plot.getLocationsSet().get(LocationUtils.fromLocToString(loc)); + Location tpPoint = LocationUtils.fromStringToLocComplete(loc.getWorld().getName(), plot.getLocations().get(locName)); + + CreatureSpawner spawner = (CreatureSpawner) block.getState(); + Entity entity = loc.getWorld().spawnEntity(tpPoint, spawner.getSpawnedType()); + + } + } + + } + + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/MusicAction.java b/src/main/java/fr/gravencyg/actions/basic/MusicAction.java new file mode 100644 index 0000000..2b6da57 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/MusicAction.java @@ -0,0 +1,38 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Instrument; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.block.data.type.NoteBlock; +import org.bukkit.entity.Player; + +public class MusicAction extends Action { + + public MusicAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "PlayNote()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Jouer une note de musique"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + BlockState bs = block.getState(); + if (bs instanceof NoteBlock) { + NoteBlock b = (NoteBlock) bs; + player.playNote(player.getLocation(), b.getInstrument(), b.getNote()); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/basic/PassAction.java b/src/main/java/fr/gravencyg/actions/basic/PassAction.java new file mode 100644 index 0000000..65fce40 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/PassAction.java @@ -0,0 +1,40 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class PassAction extends Action { + + public PassAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "Pass()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Ce code ne fait rien"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess process) {} + + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/RandomAction.java b/src/main/java/fr/gravencyg/actions/basic/RandomAction.java new file mode 100644 index 0000000..fb71548 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/RandomAction.java @@ -0,0 +1,36 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class RandomAction extends Action { + + private Random random = new Random(); + + public RandomAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE + "Random()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Ajouter du hasard à une instruction"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/RestorePlayer.java b/src/main/java/fr/gravencyg/actions/basic/RestorePlayer.java new file mode 100644 index 0000000..49a7c09 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/RestorePlayer.java @@ -0,0 +1,34 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.block.DaylightDetector; +import org.bukkit.entity.Player; + +public class RestorePlayer extends Action { + + public RestorePlayer(CYG main) { + super(main, CLevel.LEVEL12); + } + + @Override + public String title() { + return ChatColor.BLUE + "Restore()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Soigne et remplit la faim"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + player.setHealth(20); + player.setFoodLevel(20); + } + +} diff --git a/src/main/java/fr/gravencyg/actions/basic/TeleportAction.java b/src/main/java/fr/gravencyg/actions/basic/TeleportAction.java new file mode 100644 index 0000000..975c13c --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/basic/TeleportAction.java @@ -0,0 +1,112 @@ +package fr.gravencyg.actions.basic; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Random; + +public class TeleportAction extends Action { + + private Random random = new Random(); + + public TeleportAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE + "Teleport()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Téléporter le joueur à une zone"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess process) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + + if(plot.getLocationsSet().containsKey(LocationUtils.fromLocToString(block.getLocation()))) { + + List locations = new ArrayList<>(); + String locName = plot.getLocationsSet().get(LocationUtils.fromLocToString(block.getLocation())); + locations.add(locName); + + boolean isRandom = false; + + for(int i = 1; i < 100; i++){ + Location blockToTop = block.getLocation().clone().add(0, i, 0); + + if(blockToTop.getBlock().getType() == Material.COBWEB){ + isRandom = true; + break; + } + + if(blockToTop.getBlock().getType() != Material.BEACON) + break; + + locations.add( plot.getLocationsSet().get(LocationUtils.fromLocToString(blockToTop))); + } + + if(isRandom) + { + String randomLocation = locations.get(random.nextInt(locations.size())); + teleport(player, randomLocation, plot); + } + else + { + + if(main.getGameManager().isPlayerInGame(player).size() != 0){ + CYGame game = main.getGameManager().getCurrentGame(player); + int playerIndex = game.getPlayerIndex(player); + + if(locations.size() < playerIndex) { + if(locations.contains(playerIndex)) { + teleport(player, locations.get(playerIndex), plot); + } + } + else + { + teleport(player, locations.get(random.nextInt(locations.size())), plot); + } + + } + + else{ + teleport(player, locations.get(0), plot); + } + } + + } + else + { + player.sendMessage("§eAucun point de téléportation définit !"); + } + + } + + public void teleport(Player player, String locName, Plot plot) { + if (plot.getLocations().containsKey(locName)) { + Location tpPoint = LocationUtils.fromStringToLocComplete(player.getWorld().getName(), plot.getLocations().get(locName)); + player.teleport(tpPoint); + player.sendMessage("§bTéléportation vers " + locName); + } else { + player.sendMessage("§bZone inexisante " + locName); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/block/RegenMapAction.java b/src/main/java/fr/gravencyg/actions/block/RegenMapAction.java new file mode 100644 index 0000000..f4278b8 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/block/RegenMapAction.java @@ -0,0 +1,40 @@ +package fr.gravencyg.actions.block; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class RegenMapAction extends Action { + + public RegenMapAction(CYG main) { + super(main, CLevel.LEVEL5); + } + + @Override + public String title() { + return ChatColor.BLUE + "RegenMap()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Régénerer les blocs de la partie"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + main.getGameManager().regenMap(game); + main.getGameManager().broadcast(game, "§eRégéneration de la carte"); + } + else{ + player.sendMessage("§eRegeneration de la carte !"); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/block/RemoveBlockAction.java b/src/main/java/fr/gravencyg/actions/block/RemoveBlockAction.java new file mode 100644 index 0000000..02fe6a8 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/block/RemoveBlockAction.java @@ -0,0 +1,56 @@ +package fr.gravencyg.actions.block; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Dropper; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.Random; + +public class RemoveBlockAction extends Action { + + private Random random = new Random(); + + public RemoveBlockAction(CYG main) { + super(main, CLevel.LEVEL6); + } + + @Override + public String title() { + return ChatColor.BLUE + "RemoveBlock()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Supprime un bloc"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + if(main.getGameManager().isPlayerInGame(player).size() != 0) { + if(actionProcess.getBlock().getType() != Material.AIR) + { + CYGame game = main.getGameManager().getCurrentGame(player); + game.getBreakBlocks().put(actionProcess.getBlock().getLocation(), new MaterialAndData(actionProcess.getBlock().getType(), actionProcess.getBlock().getData())); + actionProcess.getBlock().setType(Material.AIR); + } + } + else{ + player.sendMessage("§eRemoveBlock(event.getBlock())"); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/block/SetBlockAction.java b/src/main/java/fr/gravencyg/actions/block/SetBlockAction.java new file mode 100644 index 0000000..eba525b --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/block/SetBlockAction.java @@ -0,0 +1,65 @@ +package fr.gravencyg.actions.block; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class SetBlockAction extends Action { + + private Random random = new Random(); + + public SetBlockAction(CYG main) { + super(main, CLevel.LEVEL6); + } + + @Override + public String title() { + return ChatColor.BLUE + "SetBlock()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Place un bloc à un endroit"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + Block top = block.getLocation().clone().add(0, 1, 0).getBlock(); + + if(top.getType() == Material.AIR) return; + + if(main.getGameManager().isPlayerInGame(player).size() != 0) { + if(actionProcess.getBlock().getType() != Material.AIR) + { + CYGame game = main.getGameManager().getCurrentGame(player); + + if(!game.getBreakBlocks().containsKey(actionProcess.getBlock().getLocation())) { + game.getBreakBlocks().put( + actionProcess.getBlock().getLocation(), + new MaterialAndData(actionProcess.getBlock().getType(), actionProcess.getBlock().getData()) + ); + } + + // place new block + actionProcess.getBlock().setType(top.getType()); + // actionProcess.getBlock().setData(top.getData()); + + } + } + else{ + player.sendMessage("§eSetBlock(event.getBlock())"); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/game/EliminateAction.java b/src/main/java/fr/gravencyg/actions/game/EliminateAction.java new file mode 100644 index 0000000..558c32a --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/game/EliminateAction.java @@ -0,0 +1,43 @@ +package fr.gravencyg.actions.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class EliminateAction extends Action { + + private Random random = new Random(); + + public EliminateAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE +"Eliminate()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Elimine le joueur de la partie"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + main.getGameManager().eliminate(player, game); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/game/StopGameAction.java b/src/main/java/fr/gravencyg/actions/game/StopGameAction.java new file mode 100644 index 0000000..731f134 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/game/StopGameAction.java @@ -0,0 +1,43 @@ +package fr.gravencyg.actions.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class StopGameAction extends Action { + + private Random random = new Random(); + + public StopGameAction(CYG main) { + super(main, CLevel.LEVEL5); + } + + @Override + public String title() { + return ChatColor.BLUE +"StopGame()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Arrete le jeu actuel"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + main.getGameManager().stop(game); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/game/WinnerAction.java b/src/main/java/fr/gravencyg/actions/game/WinnerAction.java new file mode 100644 index 0000000..e86d15c --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/game/WinnerAction.java @@ -0,0 +1,46 @@ +package fr.gravencyg.actions.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class WinnerAction extends Action { + + private Random random = new Random(); + + public WinnerAction(CYG main) { + super(main, CLevel.LEVEL5); + } + + @Override + public String title() { + return ChatColor.BLUE +"Win()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Le joueur courant gagne la partie"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + for(Player p : game.getPlayers()) + { + if(p != player) main.getGameManager().eliminate(p, game); + } + } + + } + +} diff --git a/src/main/java/fr/gravencyg/actions/inventory/ChestAction.java b/src/main/java/fr/gravencyg/actions/inventory/ChestAction.java new file mode 100644 index 0000000..6a46230 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/inventory/ChestAction.java @@ -0,0 +1,146 @@ +package fr.gravencyg.actions.inventory; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Chest; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class ChestAction extends Action { + + private Random random = new Random(); + + public ChestAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE +"Stuff()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Offrir du stuff à un joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + Block top = block.getLocation().clone().add(0, 1, 0).getBlock(); + + if(top.getType() == Material.BEACON){ + + for(int i = 1; i < 100; i++){ + Location blockToTop = block.getLocation().clone().add(0, i, 0); + + if(blockToTop.getBlock().getType() != Material.BEACON) break; + + refillChest(player, block, blockToTop.getBlock()); + } + + } + + else{ + giveStuff(player, block); + } + + + } + + public void giveStuff(Player player, Block block){ + + Chest chest = (Chest) block.getState(); + + List items = new ArrayList<>(); + + for (ItemStack it : chest.getInventory().getContents()) + { + if (it == null) continue; + items.add(it); + } + + boolean isRandom = false; + int randomNbItems = 0; + + for(int i = 1; i < 100; i++){ + Location blockToTop = block.getLocation().clone().add(0, i, 0); + + if(blockToTop.getBlock().getType() == Material.AIR) + break; + + isRandom = true; + randomNbItems += 1; + } + + if(isRandom) + { + for(int i = 0; i < randomNbItems; i++) + { + ItemStack randomItem = items.get(random.nextInt(items.size())); + main.getArmorManager().addItem(player, randomItem); + } + } + + else { + for (ItemStack item : items) { + if (item == null) continue; + + main.getArmorManager().addItem(player, item); + } + } + } + + public void refillChest(Player player, Block block, Block tpBlock){ + + Chest chest = (Chest) block.getState(); + Plot plot = main.getDataManager().getStorageByUUID(block.getWorld().getName()).getPlot(player.getWorld().getName()); + + if(plot.getLocationsSet().containsKey(LocationUtils.fromLocToString(tpBlock.getLocation()))) { + + String locName = plot.getLocationsSet().get(LocationUtils.fromLocToString(tpBlock.getLocation())); + + if(plot.getLocations().containsKey(locName)) + { + player.sendMessage("§bRemplissage du coffre " + locName); + + Location location = LocationUtils.fromStringToLoc(block.getWorld().getName(), plot.getLocations().get(locName)); + + if(location.getBlock().getType() == Material.CHEST) + { + Chest chestTT = (Chest) location.getBlock().getState(); + for(ItemStack it : chest.getInventory().getContents()){ + if(it == null) continue; + + chestTT.getInventory().addItem(it); + } + + } + else{ + player.sendMessage("Aucun coffre n'a été trouvé en §9" + LocationUtils.fromLocToString(tpBlock.getLocation())); + } + } + + } + else{ + player.sendMessage("Aucun coffre n'a été trouvé en §9" + LocationUtils.fromLocToString(tpBlock.getLocation())); + } + + } + + + +} diff --git a/src/main/java/fr/gravencyg/actions/inventory/ClearAction.java b/src/main/java/fr/gravencyg/actions/inventory/ClearAction.java new file mode 100644 index 0000000..b9f00c3 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/inventory/ClearAction.java @@ -0,0 +1,32 @@ +package fr.gravencyg.actions.inventory; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class ClearAction extends Action { + + public ClearAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE +"Clear()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Vider l'inventaire du joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + player.getInventory().clear(); + } + +} diff --git a/src/main/java/fr/gravencyg/actions/message/BossBarAction.java b/src/main/java/fr/gravencyg/actions/message/BossBarAction.java new file mode 100644 index 0000000..1142e73 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/message/BossBarAction.java @@ -0,0 +1,55 @@ +package fr.gravencyg.actions.message; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.boss.BarColor; +import org.bukkit.boss.BarStyle; +import org.bukkit.boss.BossBar; +import org.bukkit.entity.Player; + +public class BossBarAction extends Action { + + public BossBarAction(CYG main) { + super(main, CLevel.LEVEL9); + } + + @Override + public String title() { + return ChatColor.BLUE + "SendBossBar()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Envoyer un message en bar de boss "; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + + if(plot.getMessageSet().containsKey(LocationUtils.fromLocToString(block.getLocation()))) { + String messageLocName = plot.getMessageSet().get(LocationUtils.fromLocToString(block.getLocation())); + String message = plot.getMessages().get(messageLocName) + .replace("&", "§"); + + BarColor barColor = BarColor.BLUE; + + Location top = block.getLocation().clone().add(0, 1, 0); + + BossBar bossBar = Bukkit.createBossBar(message, barColor, BarStyle.SOLID); + bossBar.setProgress(1); + + bossBar.addPlayer(player); + main.getBarActions().add(bossBar); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/message/MessageAction.java b/src/main/java/fr/gravencyg/actions/message/MessageAction.java new file mode 100644 index 0000000..96261d6 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/message/MessageAction.java @@ -0,0 +1,42 @@ +package fr.gravencyg.actions.message; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class MessageAction extends Action { + + public MessageAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "SendMessage()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Envoyer un message au joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + + if(plot.getMessageSet().containsKey(LocationUtils.fromLocToString(block.getLocation()))) { + String messageLocName = plot.getMessageSet().get(LocationUtils.fromLocToString(block.getLocation())); + String message = plot.getMessages().get(messageLocName) + .replace("&", "§"); + + player.sendMessage(message); + } + + } +} diff --git a/src/main/java/fr/gravencyg/actions/message/ResetBossBarAction.java b/src/main/java/fr/gravencyg/actions/message/ResetBossBarAction.java new file mode 100644 index 0000000..c5db4d3 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/message/ResetBossBarAction.java @@ -0,0 +1,45 @@ +package fr.gravencyg.actions.message; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.boss.BarColor; +import org.bukkit.boss.BarStyle; +import org.bukkit.boss.BossBar; +import org.bukkit.entity.Player; + +import java.util.Map; + +public class ResetBossBarAction extends Action { + + public ResetBossBarAction(CYG main) { + super(main, CLevel.LEVEL9); + } + + @Override + public String title() { + return ChatColor.BLUE + "ResetBossBar()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Supprime toutes les bars de boss du joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + for(BossBar bossBarEntry : main.getBarActions()) + { + if(bossBarEntry.getPlayers().contains(player)) + { + bossBarEntry.removeAll(); + } + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/message/TitleAction.java b/src/main/java/fr/gravencyg/actions/message/TitleAction.java new file mode 100644 index 0000000..93148b9 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/message/TitleAction.java @@ -0,0 +1,41 @@ +package fr.gravencyg.actions.message; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class TitleAction extends Action { + + public TitleAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "SendTitle()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Envoyer un title au joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + Plot plot = main.getDataManager().getPlotFromWorldLocationOf(player); + + if(plot.getMessageSet().containsKey(LocationUtils.fromLocToString(block.getLocation()))) { + String messageLocName = plot.getMessageSet().get(LocationUtils.fromLocToString(block.getLocation())); + String message = plot.getMessages().get(messageLocName) + .replace("&", "§"); + + player.sendTitle(messageLocName, message); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/potion/ClearPotionEffectAction.java b/src/main/java/fr/gravencyg/actions/potion/ClearPotionEffectAction.java new file mode 100644 index 0000000..33bbc02 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/potion/ClearPotionEffectAction.java @@ -0,0 +1,41 @@ +package fr.gravencyg.actions.potion; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BrewingStand; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionType; + +public class ClearPotionEffectAction extends Action { + + public ClearPotionEffectAction(CYG main) { + super(main, CLevel.LEVEL7); + } + + @Override + public String title() { + return ChatColor.BLUE + "ClearPotionEffects()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Supprimer tout les effets de potions"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + for(PotionEffect potionEffect : player.getActivePotionEffects()) + { + player.removePotionEffect(potionEffect.getType()); + } + player.sendMessage("§9ClearPotionEffects()"); + } +} diff --git a/src/main/java/fr/gravencyg/actions/potion/PotionEffectAction.java b/src/main/java/fr/gravencyg/actions/potion/PotionEffectAction.java new file mode 100644 index 0000000..f865627 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/potion/PotionEffectAction.java @@ -0,0 +1,54 @@ +package fr.gravencyg.actions.potion; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BrewingStand; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.potion.*; + +import java.util.Collection; + +public class PotionEffectAction extends Action { + + public PotionEffectAction(CYG main) { + super(main, CLevel.LEVEL7); + } + + @Override + public String title() { + return ChatColor.BLUE + "SendPotionEffect()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Appliquer un effet de potion"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + BrewingStand stand = (BrewingStand) block.getState(); + for(int i = 0; i < 3; i++) + { + ItemStack it = stand.getInventory().getItem(i); + + if(it == null) continue; + + if(it.getType() != Material.POTION && it.getType() != Material.SPLASH_POTION) continue; + + PotionMeta meta = (PotionMeta) it.getItemMeta(); + PotionType potionData = meta.getBasePotionData().getType(); + + player.addPotionEffect(new PotionEffect(potionData.getEffectType(), 6000, potionData.getMaxLevel())); + + player.sendMessage("§rSendPotionEffect(§e"+ potionData.getEffectType().getName()+" " + potionData.getMaxLevel()+"§r)"); + } + + } +} diff --git a/src/main/java/fr/gravencyg/actions/team/Team.java b/src/main/java/fr/gravencyg/actions/team/Team.java new file mode 100644 index 0000000..c7b12e5 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/team/Team.java @@ -0,0 +1,59 @@ +package fr.gravencyg.actions.team; + +import org.bukkit.ChatColor; + +import java.util.HashMap; +import java.util.Map; + +public enum Team { + + WHITE(0, ChatColor.WHITE, "Blanc"), + ORANGE(1, ChatColor.GOLD, "Orange"), + LIGHT_BLUE(3, ChatColor.BLUE, "Bleu Clair"), + YELLOW(4, ChatColor.YELLOW, "Jaune"), + LIGHT_GREEN(5, ChatColor.GREEN, "Vert"), + PINK(6, ChatColor.getByChar("d"), "Rose"), + DARK_GRAY(7, ChatColor.DARK_GRAY, "Gris foncé"), + LIGHT_GRAY(8, ChatColor.GRAY, "Gris clair"), + CYAN(9, ChatColor.LIGHT_PURPLE, "Cyan"), + DARK_PURPLE(10, ChatColor.DARK_PURPLE, "Violet"), + BLUE(11, ChatColor.BLUE, "Bleu"), + RED(14, ChatColor.RED, "Rouge"), + BLACK(15, ChatColor.BLACK, "Noir"); + + private int data; + private ChatColor color; + private String name; + + static Map teamMap = new HashMap<>(); + + static { + for(Team team: values()) + { + teamMap.put(team.getData(), team); + } + } + + Team(int data, ChatColor color, String name) + { + this.data = data; + this.color = color; + this.name = name; + } + + private Integer getData() { + return data; + } + + public ChatColor getColor() { + return color; + } + + public String getName() { + return name; + } + + public static Team getByWoolData(int data){ + return teamMap.get(data); + } +} diff --git a/src/main/java/fr/gravencyg/actions/team/TeamAction.java b/src/main/java/fr/gravencyg/actions/team/TeamAction.java new file mode 100644 index 0000000..e26b31d --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/team/TeamAction.java @@ -0,0 +1,89 @@ +package fr.gravencyg.actions.team; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class TeamAction extends Action { + + public TeamAction(CYG main) { + super(main, CLevel.LEVEL8); + } + + @Override + public String title() { + return ChatColor.BLUE + "Team()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Créer un système d'equipe sur votre jeu"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + Location topBlock = block.getLocation().clone().add(0, 1, 0); + + /* if (topBlock.getBlock().getType() == Material.WOOL) { + + for (int i = 0; i < 25; i++) { + + Block b = block.getLocation().clone().add(0, i, 0).getBlock(); + + if (b.getType() != Material.WOOL) break; + + byte data = b.getData(); + Team team = Team.getByWoolData(data); + + player.sendMessage("Création de l'equipe " + team.getColor() + team.getName() + " !"); + + if (main.getGameManager().isPlayerInGame(player).size() != 0) { + CYGame game = main.getGameManager().getCurrentGame(player); + main.getGameManager().createTeam(game, team); + } + + } + }*/ + + if (topBlock.getBlock().getType() == Material.BEACON) { + byte data = block.getData(); + Team team = Team.getByWoolData(data); + + if (main.getGameManager().isPlayerInGame(player).size() != 0) { + CYGame game = main.getGameManager().getCurrentGame(player); + + + if(game.getTeamPlayer(player) == team) { + + Plot plot = main.getDataManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + String locPosition = LocationUtils.fromLocToString(topBlock); + String locName = plot.getLocationsSet().get(locPosition); + + if(locName != null && plot.getLocations().containsKey(locName)) { + Location location = LocationUtils.fromStringToLocComplete(player.getWorld().getName(), plot.getLocations().get(locName)); + player.teleport(location); + } + + player.sendMessage("§rTéléportation vers " + team.getColor() + locName); + + } + } + + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/ToggleBuildAction.java b/src/main/java/fr/gravencyg/actions/toggle/ToggleBuildAction.java new file mode 100644 index 0000000..5344e02 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/ToggleBuildAction.java @@ -0,0 +1,50 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class ToggleBuildAction extends Action { + + public ToggleBuildAction(CYG main) { + super(main, CLevel.LEVEL4); + } + + @Override + public String title() { + return ChatColor.BLUE + "ToggleBuild()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Activer / Desactiver la construction"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + game.toggleBuild(); + + if(game.canFight()) { + main.getGameManager().broadcast(game, "Construction Active !"); + } + else + { + main.getGameManager().broadcast(game, "Construction Inactif !"); + } + } + else + { + player.sendMessage("§eConstruction Active !"); + } + } + + +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/ToggleFallDamage.java b/src/main/java/fr/gravencyg/actions/toggle/ToggleFallDamage.java new file mode 100644 index 0000000..27efa90 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/ToggleFallDamage.java @@ -0,0 +1,48 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class ToggleFallDamage extends Action { + + public ToggleFallDamage(CYG main) { + super(main, CLevel.LEVEL3); + } + + @Override + public String title() { + return ChatColor.BLUE + "ToggleFallDamage()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Activer / Desactiver dégats de chute"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + if(main.getGameManager().isPlayerInGame(player).size() != 0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + game.toggleFallDamage(); + + if(game.canFight()) { + main.getGameManager().broadcast(game, "Dégat de chute Active !"); + } + else + { + main.getGameManager().broadcast(game, "Dégat de chute Inactif !"); + } + } + else + { + player.sendMessage("§eDegat de chute Active !"); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/ToggleFlyAction.java b/src/main/java/fr/gravencyg/actions/toggle/ToggleFlyAction.java new file mode 100644 index 0000000..8d28d4d --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/ToggleFlyAction.java @@ -0,0 +1,48 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ToggleFlyAction extends Action { + + private Random random = new Random(); + + public ToggleFlyAction(CYG main) { + super(main, CLevel.LEVEL13); + } + + @Override + public String title() { + return ChatColor.BLUE +"ToggleFly()"; + } + + @Override + public String lore() { + return ChatColor.GRAY +"Activer/Désactiver le vol d'oiseau"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + + player.setAllowFlight(true); + if(!player.isFlying()) + { + player.sendMessage("§bVol d'oiseau Actif !"); + player.setFlying(true); + player.setAllowFlight(true); + } + else{ + player.sendMessage("§bVol d'oiseau Inactif !"); + player.setFlying(false); + player.setAllowFlight(false); + } + } + +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/ToggleFreezeAction.java b/src/main/java/fr/gravencyg/actions/toggle/ToggleFreezeAction.java new file mode 100644 index 0000000..51e1ce7 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/ToggleFreezeAction.java @@ -0,0 +1,35 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class ToggleFreezeAction extends Action { + + public ToggleFreezeAction(CYG main) { + super(main, CLevel.LEVEL3); + } + + @Override + public String title() { + return ChatColor.BLUE + "ToggleFreeze()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Géler/Deleger un joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + player.sendMessage("§bfreeze()"); + + if(main.getGameManager().isPlayerInGame(player).size() != 0) { + main.toggleGameFreeze(player); + } + } +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/ToggleGlowAction.java b/src/main/java/fr/gravencyg/actions/toggle/ToggleGlowAction.java new file mode 100644 index 0000000..7ad68a4 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/ToggleGlowAction.java @@ -0,0 +1,40 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class ToggleGlowAction extends Action { + + public ToggleGlowAction(CYG main) { + super(main, CLevel.LEVEL16); + } + + @Override + public String title() { + return ChatColor.BLUE + "Glow()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Activer/Desactiver l'effet de glow sur un joueur"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + player.sendMessage("§6glow()"); + + if(player.isGlowing()) + { + player.setGlowing(false); + } + else{ + player.setGlowing(true); + } + + } +} diff --git a/src/main/java/fr/gravencyg/actions/toggle/TogglePvPAction.java b/src/main/java/fr/gravencyg/actions/toggle/TogglePvPAction.java new file mode 100644 index 0000000..f20cdc6 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/toggle/TogglePvPAction.java @@ -0,0 +1,50 @@ +package fr.gravencyg.actions.toggle; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CEvent; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +public class TogglePvPAction extends Action { + + public TogglePvPAction(CYG main) { + super(main, CLevel.LEVEL1); + } + + @Override + public String title() { + return ChatColor.BLUE + "TogglePvp()"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Activer / Desactiver les combats"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { + if(main.getGameManager().isPlayerInGame(player).size()!=0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + game.togglePvP(); + + if(game.canFight()) { + main.getGameManager().broadcast(game, "Combat Actif !"); + } + else + { + main.getGameManager().broadcast(game, "Combat Inactif !"); + } + } + else + { + player.sendMessage("§eCombat Actif !"); + } + } + +} diff --git a/src/main/java/fr/gravencyg/actions/waitable/WaitAction.java b/src/main/java/fr/gravencyg/actions/waitable/WaitAction.java new file mode 100644 index 0000000..d4cb479 --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/waitable/WaitAction.java @@ -0,0 +1,35 @@ +package fr.gravencyg.actions.waitable; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class WaitAction extends Action { + + private Random random = new Random(); + + public WaitAction(CYG main) { + super(main, CLevel.LEVEL2); + } + + @Override + public String title() { + return ChatColor.BLUE + "Wait(1)"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Attendre 1 seconde"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { } + + +} diff --git a/src/main/java/fr/gravencyg/actions/waitable/WaitAction2.java b/src/main/java/fr/gravencyg/actions/waitable/WaitAction2.java new file mode 100644 index 0000000..b3e2ccc --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/waitable/WaitAction2.java @@ -0,0 +1,35 @@ +package fr.gravencyg.actions.waitable; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class WaitAction2 extends Action { + + private Random random = new Random(); + + public WaitAction2(CYG main) { + super(main, CLevel.LEVEL4); + } + + @Override + public String title() { + return ChatColor.BLUE + "Wait(10)"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Attendre 10s secondes"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { } + + +} diff --git a/src/main/java/fr/gravencyg/actions/waitable/WaitAction3.java b/src/main/java/fr/gravencyg/actions/waitable/WaitAction3.java new file mode 100644 index 0000000..c75bc9c --- /dev/null +++ b/src/main/java/fr/gravencyg/actions/waitable/WaitAction3.java @@ -0,0 +1,35 @@ +package fr.gravencyg.actions.waitable; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class WaitAction3 extends Action { + + private Random random = new Random(); + + public WaitAction3(CYG main) { + super(main, CLevel.LEVEL4); + } + + @Override + public String title() { + return ChatColor.BLUE + "Wait(60)"; + } + + @Override + public String lore() { + return ChatColor.GRAY + "Attendre 60s secondes"; + } + + @Override + public void onExecute(Player player, Block block, ActionProcess actionProcess) { } + + +} diff --git a/src/main/java/fr/gravencyg/commands/TCommand.java b/src/main/java/fr/gravencyg/commands/TCommand.java new file mode 100644 index 0000000..adf330c --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/TCommand.java @@ -0,0 +1,105 @@ +package fr.gravencyg.commands; + +import fr.gravencyg.CYG; +import fr.gravencyg.game.CYGameManager; +import fr.gravencyg.manager.CYGDataManager; +import fr.gravencyg.manager.CYGWorleditManager; +import fr.gravencyg.menus.CustomMenuManager; +import fr.gravencyg.model.Plot; +import fr.gravencyg.scoreboards.ScoreboardManager; +import fr.gravencyg.utils.CLevel; +import org.bukkit.Location; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + + public abstract class TCommand implements CommandExecutor { + + protected CYG main; + private boolean allowedInGame; + private boolean plotOnly; + private boolean modOnly; + private boolean allowedInHub; + private CLevel minLevelRequire; + + public TCommand(CYG main, CLevel minLevelRequire, boolean modOnly, boolean allowedInGame, boolean plotOnly, boolean allowedInHub) { + super(); + this.main = main; + this.plotOnly = plotOnly; + this.allowedInGame = allowedInGame; + this.modOnly = modOnly; + this.minLevelRequire = minLevelRequire; + this.allowedInHub = allowedInHub; + } + + public TCommand(CYG main, boolean modOnly, boolean allowedInGame, boolean plotOnly, boolean allowedInHub) { + this(main, CLevel.LEVEL1, modOnly, allowedInGame, plotOnly, allowedInHub); + } + + @Override + public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) { + Player player = (Player) commandSender; + + if(player.getWorld().getName().equalsIgnoreCase("world") && !allowedInHub) + { + player.sendMessage("§cImpossible au /hub"); + return true; + } + + if(main.getDataManager().getLevel(player.getName()) < minLevelRequire.getRealLevel()) + { + player.sendMessage("§7[§eGravenMC§7]§r §cVous devez être au minimum §nNiveau "+ minLevelRequire.getRealLevel()+"§r§c pour utiliser cette commande"); + player.sendMessage("§7[§eGravenMC§7]§r Il vous manque donc " + (minLevelRequire.getTrophy() - main.getDataManager().getTrophys(player.getName())) +" trophés"); + + return true; + } + + if(!player.getWorld().getName().contains(player.getUniqueId().toString()) && plotOnly) + { + player.sendMessage("§7[§eGravenMC§7]§r §cCommande à faire sur votre parcelle uniquement"); + return true; + } + + if (this.main.getDataManager().getRank(player).isNotMod() && modOnly && !player.isOp()) { + player.sendMessage("§7[§eGravenMC§7]§r §cUniquement pour le staff"); + return false; + } + + if(main.getGameManager().isPlayerInGame(player).size()!=0 && !allowedInGame) + { + player.sendMessage("§7[§eGravenMC§7]§r §cCommande impossible durant une partie"); + return true; + } + + onExecute(player, args); + + return true; + } + + protected abstract void onExecute(Player player, String[] args); + + protected Location getHubLocation() { return main.spawnLocation; } + + protected ScoreboardManager scoreboardManager(){ return main.getScoreboardManager();} + + protected CYGDataManager dataManager(){ return main.getDataManager();} + + protected CustomMenuManager menuManager(){return main.getMenuManager();} + + protected CYGWorleditManager worldEditManager(){return main.getWorldEditManager();} + + protected CYGameManager gameManager(){ + return main.getGameManager(); + } + + protected Plot getPlot(Player player){ return getPlot(player.getName()); } + + protected Plot getPlot(String name) { return null; } + + protected String getPlotUUID(String name){ return dataManager().getStorages().get(name).getUUID(); } + + protected boolean hasPlot(String pseudo) { return dataManager().getStorages().containsKey(pseudo); } + + +} diff --git a/src/main/java/fr/gravencyg/commands/admin/AdminForceLevelCommand.java b/src/main/java/fr/gravencyg/commands/admin/AdminForceLevelCommand.java new file mode 100644 index 0000000..b777b2d --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/admin/AdminForceLevelCommand.java @@ -0,0 +1,39 @@ +package fr.gravencyg.commands.admin; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.entity.Player; + +public class AdminForceLevelCommand extends TCommand { + + public AdminForceLevelCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.isOp()) + { + player.sendMessage("§CImpossible"); + return; + } + + if (args.length == 0) + { + player.sendMessage("§7/§eforcelevel §7[§rpseudo§7] [lvl]"); + return; + } + + String pseudo = args[0]; + String newLevel = args[1]; + + main.getDataManager().setLevel(pseudo, newLevel); + main.getDataManager().refreshLevel(pseudo); + player.sendMessage("Le joueur §e"+pseudo+"§r est désormais niveau §e" + newLevel); + main.getScoreboardManager().updatePlayerLevel(player); + main.getScoreboardManager().updatePlayerTrophy(player); + + + } +} diff --git a/src/main/java/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.java b/src/main/java/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.java new file mode 100644 index 0000000..2e40fc5 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/admin/AdminForceUpdateHoloCommand.java @@ -0,0 +1,30 @@ +package fr.gravencyg.commands.admin; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +public class AdminForceUpdateHoloCommand extends TCommand { + + public AdminForceUpdateHoloCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.isOp()) + { + player.sendMessage("§CImpossible"); + return; + } + + for(Player pl : Bukkit.getOnlinePlayers()) + { + main.getHologramManager().registerHologram(pl.getWorld()); + } + + + } +} diff --git a/src/main/java/fr/gravencyg/commands/admin/AdminRankCommand.java b/src/main/java/fr/gravencyg/commands/admin/AdminRankCommand.java new file mode 100644 index 0000000..a1107a7 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/admin/AdminRankCommand.java @@ -0,0 +1,59 @@ +package fr.gravencyg.commands.admin; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.all.ActionMenu; +import fr.gravencyg.utils.CRank; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class AdminRankCommand extends TCommand { + + public AdminRankCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.isOp()) + { + player.sendMessage("§CImpossible"); + return; + } + + if (args.length < 2) + { + player.sendMessage("§7/§erank §7[§rpseudo§7] [§rjoueur§e,§r premium§e,§r modo§e,§r admin§7]"); + return; + } + + String pseudo = args[0]; + String rank = args[1].toLowerCase(); + String rankS = rank.substring(0, 1).toUpperCase() + rank.substring(1); + + if(dataManager().getStorages().containsKey(pseudo)) + { + dataManager().getStorages().get(pseudo).setRank(rankS); + dataManager().save(pseudo, dataManager().getStorages().get(pseudo).getUUID()); + + if(Bukkit.getPlayer(pseudo) != null) + { + Player target = Bukkit.getPlayer(pseudo); + scoreboardManager().updatePlayerRank(target); + CRank r = dataManager().getRank(target); + target.setPlayerListName("[" + r.getColor() + "" + r.getSigle() + "§r] " + player.getName()); + } + + player.sendMessage("Grade §b" + rankS + "§e donné à "+pseudo+"§r"); + } + else + { + player.sendMessage("Joueur §e"+pseudo+"§r introuvable"); + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/admin/AdminRefreshLevelCommand.java b/src/main/java/fr/gravencyg/commands/admin/AdminRefreshLevelCommand.java new file mode 100644 index 0000000..d978c06 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/admin/AdminRefreshLevelCommand.java @@ -0,0 +1,36 @@ +package fr.gravencyg.commands.admin; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CRank; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +public class AdminRefreshLevelCommand extends TCommand { + + public AdminRefreshLevelCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.isOp()) + { + player.sendMessage("§CImpossible"); + return; + } + + if (args.length == 0) + { + player.sendMessage("§7/§erefreshlevel §7[§rpseudo§7]"); + return; + } + + String pseudo = args[0]; + main.getDataManager().refreshLevel(pseudo); + player.sendMessage("Niveau mis à jour pour le joueur §9" + pseudo); + main.getScoreboardManager().updatePlayerLevel(player); + + } +} diff --git a/src/main/java/fr/gravencyg/commands/game/GameLeaveCommand.java b/src/main/java/fr/gravencyg/commands/game/GameLeaveCommand.java new file mode 100644 index 0000000..27a99a2 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/game/GameLeaveCommand.java @@ -0,0 +1,23 @@ +package fr.gravencyg.commands.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.GameMode; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class GameLeaveCommand extends TCommand { + + public GameLeaveCommand(CYG main) { + super(main, false, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.teleport(getHubLocation()); + player.setGameMode(GameMode.SURVIVAL); + gameManager().quit(player); + } +} diff --git a/src/main/java/fr/gravencyg/commands/game/GamePlayCommand.java b/src/main/java/fr/gravencyg/commands/game/GamePlayCommand.java new file mode 100644 index 0000000..766b7b9 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/game/GamePlayCommand.java @@ -0,0 +1,100 @@ +package fr.gravencyg.commands.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.plot.PlayPlayerMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CLevel; +import org.bukkit.*; +import org.bukkit.entity.Player; + +public class GamePlayCommand extends TCommand { + + public GamePlayCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) + { + player.sendMessage("Utilise §e/§rplay §7[§epseudo§7] pour jouer à un jeu"); + return; + } + + if(args.length == 1) + { + String targetName = args[0]; + + if(!dataManager().getStorages().containsKey(targetName)) + { + player.sendMessage("Aucun jeu n'existe pour le créateur §e" + targetName); + return; + } + + if(main.getTargetPlayMenu().containsKey(player)) + { + main.getTargetPlayMenu().remove(player); + } + main.getTargetPlayMenu().put(player, targetName); + main.getMenuManager().open(player, PlayPlayerMenu.class); + + + } + + if(args.length == 2) + { + int slot = 0; + String sl = args[1]; + + String target = args[0]; + + if(!dataManager().getStorages().containsKey(target)) + { + player.sendMessage("Aucun jeu n'existe pour le créateur §e" + target); + return; + } + + if(sl != null) + { + slot = Integer.parseInt(sl); + } + + Storage storage = main.getDataManager().getStorages().get(target); + Plot targetPlot = storage.getPlots().get(slot); + + if(main.getGameManager().isPlayerInGame(player).size() != 0) { + main.getGameManager().quit(player); + } + + if(targetPlot.getConfig().isWhitelist() && !targetPlot.getFriends().contains(player.getName()) && !player.getName().equalsIgnoreCase(storage.getDisplayName())) + { + player.sendMessage("Le jeu est actuellement en §cWhitelist"); + return; + } + + if(!main.getGameManager().hasPendingGame(target, slot)) + { + main.getGameManager().create(target, slot); + player.sendMessage("§7>>§r Création d'une partie pour le jeu de §e"+ target); + } + + player.sendMessage("§7>>§r Vous avez rejoint \""+targetPlot.getName()+"\" par§e "+ target); + + WorldCreator worldCreator = new WorldCreator(storage.getUUID()+"#" + slot); + worldCreator.type(WorldType.FLAT); + + World playerWorld = Bukkit.createWorld(worldCreator); + + // wait 3 seconds before teleport the player + int finalSlot = slot; + Bukkit.getScheduler().runTaskLater(main, () -> { + main.getGameManager().join(player, target, finalSlot); + }, 50); + + + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/link/LinkDiscordCommand.java b/src/main/java/fr/gravencyg/commands/link/LinkDiscordCommand.java new file mode 100644 index 0000000..7059c53 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/link/LinkDiscordCommand.java @@ -0,0 +1,19 @@ +package fr.gravencyg.commands.link; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class LinkDiscordCommand extends TCommand { + + public LinkDiscordCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.sendMessage("§bhttps://discord.gg/gravenmc"); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/link/LinkShopCommand.java b/src/main/java/fr/gravencyg/commands/link/LinkShopCommand.java new file mode 100644 index 0000000..5800d34 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/link/LinkShopCommand.java @@ -0,0 +1,19 @@ +package fr.gravencyg.commands.link; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class LinkShopCommand extends TCommand { + + public LinkShopCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.sendMessage("§bhttps://shop.gravenmc.fr"); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/link/LinkTwitterCommand.java b/src/main/java/fr/gravencyg/commands/link/LinkTwitterCommand.java new file mode 100644 index 0000000..fb6b8f4 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/link/LinkTwitterCommand.java @@ -0,0 +1,19 @@ +package fr.gravencyg.commands.link; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class LinkTwitterCommand extends TCommand { + + public LinkTwitterCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.sendMessage("§bhttps://twitter.com/gravenmc_cyg"); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/manage/ManageFriendCommand.java b/src/main/java/fr/gravencyg/commands/manage/ManageFriendCommand.java new file mode 100644 index 0000000..144e46b --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/manage/ManageFriendCommand.java @@ -0,0 +1,119 @@ +package fr.gravencyg.commands.manage; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.model.Plot; +import fr.gravencyg.utils.CLevel; +import org.bukkit.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ManageFriendCommand extends TCommand { + + private Random rd = new Random(); + + public ManageFriendCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) { + player.sendMessage("§7/§efriend§r add [surnom]" + ChatColor.GRAY + " Ajouter un ami sur votre parcelle"); + player.sendMessage("§7/§efriend§r remove [surnom] → " + ChatColor.GRAY + " Retirer un ami de votre parcelle"); + player.sendMessage("§7/§efriend§r plot [surnom] → " + ChatColor.GRAY + " Se teleporter sur la parcelle d'un ami"); + player.sendMessage("§7/§efriend§r list → " + ChatColor.GRAY + "Liste les amis sur votre parcelle"); + } + + if(args.length >= 1) { + if (args[0].equalsIgnoreCase("add")) { + + if(args.length == 1) + { + player.sendMessage("§7/§efriend§r add [surnom]" + ChatColor.GRAY + " Ajouter un ami sur votre parcelle"); + return; + } + + String pseudo = args[1]; + + Plot plot = main.getPlotManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + + if(!plot.getFriends().contains(pseudo)) { + player.sendMessage("§rNouvel ami §e" + pseudo + "§r ajouté à votre parcelle !"); + plot.getFriends().add(pseudo); + dataManager().save(player); + } + else + { + player.sendMessage("§r" + pseudo + "§r est déjà dans vos amis !"); + } + + } + + if (args[0].equalsIgnoreCase("plot")) { + String pseudo = args[1]; + + if(args.length < 2){ + player.sendMessage("§7/§efriend§r plot [surnom] → " + ChatColor.GRAY + " Se teleporter sur la parcelle d'un ami"); + return; + } + + if(!hasPlot(pseudo)){ + player.sendMessage("§rLe joueur §9" + pseudo + "§r n'a pas de plot !"); + return; + } + + Plot plot = main.getPlotManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + + WorldCreator worldCreator = new WorldCreator(getPlotUUID(pseudo)); + worldCreator.type(WorldType.FLAT); + worldCreator.generateStructures(false); + + World playerWorld = Bukkit.createWorld(worldCreator); + + if(plot.getFriends().contains(player.getName())) { + player.sendMessage("§rTéléportation vers la parcelle de §b" + pseudo + "§r !"); + player.teleport(new Location(playerWorld, 0, 10, 0)); + } + else + { + player.sendMessage("§rVous n'êtes pas ami avec §c" + pseudo); + } + } + + if (args[0].equalsIgnoreCase("remove")) { + String pseudo = args[1]; + + Plot plot = getPlot(player); + + if(plot.getFriends().contains(pseudo)) { + player.sendMessage("§r" + pseudo + "§c a été retiré de votre parcelle !"); + plot.getFriends().remove(pseudo); + dataManager().save(player); + } + else + { + player.sendMessage("§r" + pseudo + "§c n'est pas dans vos amis !"); + } + } + + if(args[0].equalsIgnoreCase("list")) + { + player.sendMessage("§eListe de vos amis§r pour ce Plot: "); + Plot plot = main.getPlotManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + + for(String string : plot.getFriends()) + { + player.sendMessage("§e-§r " + string); + } + } + + } + } + +} diff --git a/src/main/java/fr/gravencyg/commands/manage/ManageLocationCommand.java b/src/main/java/fr/gravencyg/commands/manage/ManageLocationCommand.java new file mode 100644 index 0000000..68dd4da --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/manage/ManageLocationCommand.java @@ -0,0 +1,67 @@ +package fr.gravencyg.commands.manage; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.locations.LocationMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ManageLocationCommand extends TCommand { + + public ManageLocationCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) { + player.sendMessage("§7/§elocations§r add [surnom] → " + ChatColor.GRAY + "Ajouter une nouvelle zone"); + player.sendMessage("§7/§elocations§r remove [surnom] → " + ChatColor.GRAY + "Retirer une zone"); + player.sendMessage("§7/§elocations§r removeall → " + ChatColor.GRAY + "Retirer toutes les zones"); + player.sendMessage("§7/§elocations§r menu → " + ChatColor.GRAY + "Ouvrir le menu des zones"); + } + + if(args.length >= 1) { + if(args[0].equalsIgnoreCase("add")) + { + Random rd = new Random(); + String locationName = "zone-" + rd.nextInt(9999); + + if(args.length == 2) + { + locationName = args[1]; + } + dataManager().addLocation(player, locationName, player.getLocation()); + } + if(args[0].equalsIgnoreCase("remove")) + { + if(args.length == 1) + { + player.sendMessage("/locations remove [nom]"); + return; + } + + String locationName = args[1]; + dataManager().removeLocation(player, locationName); + } + + if(args[0].equalsIgnoreCase("removeall")) + { + dataManager().removeAllLocations(player); + } + + if(args[0].equalsIgnoreCase("menu")) + { + menuManager().open(player, LocationMenu.class); + } + } + } + +} diff --git a/src/main/java/fr/gravencyg/commands/manage/ManageMessageCommand.java b/src/main/java/fr/gravencyg/commands/manage/ManageMessageCommand.java new file mode 100644 index 0000000..16e051a --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/manage/ManageMessageCommand.java @@ -0,0 +1,73 @@ +package fr.gravencyg.commands.manage; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.messages.MessageMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ManageMessageCommand extends TCommand { + + private Random rd = new Random(); + + public ManageMessageCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) { + player.sendMessage("§7/§emessages§r add [surnom] [votre_message] → " + ChatColor.GRAY + "Ajouter un nouveau message"); + player.sendMessage("§7/§emessages§r remove [surnom] → " + ChatColor.GRAY + "Retirer un message"); + player.sendMessage("§7/§emessages§r removeall → " + ChatColor.GRAY + "Retirer tout les messages"); + player.sendMessage("§7/§emessages§r menu → " + ChatColor.GRAY + "Ouvrir le menu des messages"); + } + + if(args.length >= 1) { + if (args[0].equalsIgnoreCase("add")) { + StringBuilder msgContent = new StringBuilder(); + + if(args.length < 3) + { + player.sendMessage("§7/§emessages§r add [surnom] [votre_message] → " + ChatColor.GRAY + "Ajouter un nouveau message"); + return; + } + + String msgName = args[1]; + + for(String arg : args){ + if(arg.equals(args[0]) || arg.equals(args[1])) continue; + msgContent.append(arg).append(" "); + } + + dataManager().addMessage(player, msgName, msgContent.toString()); + } + if (args[0].equalsIgnoreCase("remove")) { + if (args.length == 1) { + player.sendMessage("/messages remove [nom]"); + return; + } + + String messageName = args[1]; + dataManager().removeMessage(player, messageName); + } + + if (args[0].equalsIgnoreCase("removeall")) { + dataManager().removeAllMessages(player); + } + + if (args[0].equalsIgnoreCase("menu")) { + menuManager().open(player, MessageMenu.class); + } + + } + } + +} diff --git a/src/main/java/fr/gravencyg/commands/manage/ManageNPCCommand.java b/src/main/java/fr/gravencyg/commands/manage/ManageNPCCommand.java new file mode 100644 index 0000000..7161caa --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/manage/ManageNPCCommand.java @@ -0,0 +1,30 @@ +package fr.gravencyg.commands.manage; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.locations.LocationMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ManageNPCCommand extends TCommand { + + public ManageNPCCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) { + player.sendMessage("§7/§enpc§r add [surnom] [pseudo du joueur mc] → " + ChatColor.GRAY + " Créer un NPC avec comme pseudo le nom et comme tête celle du pseudo"); + } + + if(args.length >= 1) { + + } + } + +} diff --git a/src/main/java/fr/gravencyg/commands/manage/ManageVariablesCommand.java b/src/main/java/fr/gravencyg/commands/manage/ManageVariablesCommand.java new file mode 100644 index 0000000..d79e190 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/manage/ManageVariablesCommand.java @@ -0,0 +1,72 @@ +package fr.gravencyg.commands.manage; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.messages.MessageMenu; +import fr.gravencyg.menus.variables.VariableMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import java.util.Random; + +public class ManageVariablesCommand extends TCommand { + + private Random rd = new Random(); + + public ManageVariablesCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) { + player.sendMessage("§7/§evariables§r add [nom] [type] [contenu de la variable] → " + ChatColor.GRAY + "Ajouter une nouvelle variable"); + player.sendMessage("§7/§evariables§r menu → " + ChatColor.GRAY + "Ouvrir le menu des variables"); + } + + if(args.length >= 1) { + if (args[0].equalsIgnoreCase("add")) { + + if(args.length < 4) + { + player.sendMessage("§7/§evariables§r add [nom] [type] [contenu de la variable] → " + ChatColor.GRAY + "Ajouter une nouvelle variable"); + return; + } + + StringBuilder varContent = new StringBuilder(); + String varName = args[1]; + String type = args[2]; + + if(!type.equalsIgnoreCase("int") && !type.equalsIgnoreCase("string") && !type.equalsIgnoreCase("double")) + { + player.sendMessage("Types de variables autorisés : "); + player.sendMessage("§bint§r pour les nombres"); + player.sendMessage("§bstring§r pour les textes"); + player.sendMessage("§bdouble§r pour les nombres à virgule"); + return; + } + + for(String arg : args){ + if(arg.equals(args[0]) || arg.equals(args[1]) || arg.equals(args[2])) continue; + varContent.append(arg).append(" "); + } + + } + if (args[0].equalsIgnoreCase("remove")) { + + } + + if (args[0].equalsIgnoreCase("removeall")) { + + } + + if (args[0].equalsIgnoreCase("menu")) { + menuManager().open(player, VariableMenu.class); + } + + } + } + +} diff --git a/src/main/java/fr/gravencyg/commands/mod/ModFreezeCommand.java b/src/main/java/fr/gravencyg/commands/mod/ModFreezeCommand.java new file mode 100644 index 0000000..e517f2d --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/mod/ModFreezeCommand.java @@ -0,0 +1,46 @@ +package fr.gravencyg.commands.mod; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ModFreezeCommand extends TCommand { + + private CYG main; + + public ModFreezeCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + if(args.length == 0) + { + player.sendMessage("Utilise §e/§rfreeze §7[§epseudo§7]"); + return; + } + + String targetName = args[0]; + + if(Bukkit.getPlayer(targetName) != null) + { + + Player target = Bukkit.getPlayer(targetName); + + if(!main.getFreezeModPlayers().contains(target)) + { + player.sendMessage("§b" + targetName + "§r a été gelé"); + main.getFreezeModPlayers().add(target); + } + else + { + player.sendMessage("§b" + targetName + "§r a été dégelé"); + main.getFreezeModPlayers().remove(target); + } + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/mod/ModKickCommand.java b/src/main/java/fr/gravencyg/commands/mod/ModKickCommand.java new file mode 100644 index 0000000..4ba0e30 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/mod/ModKickCommand.java @@ -0,0 +1,43 @@ +package fr.gravencyg.commands.mod; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ModKickCommand extends TCommand { + + public ModKickCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + if(args.length < 2) + { + player.sendMessage("Utilise §e/§rkick §7[§epseudo§7] §7[§eRaison§7]§7"); + return; + } + String targetName = args[0]; + + if(Bukkit.getPlayer(targetName) != null) + { + Player target = Bukkit.getPlayer(targetName); + StringBuilder reason = new StringBuilder(); + + for(String arg : args){ + if(!args[0].equalsIgnoreCase(arg)) + { + reason.append(arg + " "); + } + } + + player.sendMessage(targetName + " a été éjécté pour la raison §c>>§r " + reason.toString()); + target.kickPlayer("§r[§cKick par "+player.getName()+"§r] \n\n§pPour la raison: §c\n"+reason.toString()); + + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/mod/ModMuteCommand.java b/src/main/java/fr/gravencyg/commands/mod/ModMuteCommand.java new file mode 100644 index 0000000..10b29cc --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/mod/ModMuteCommand.java @@ -0,0 +1,41 @@ +package fr.gravencyg.commands.mod; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.WorldCreator; +import org.bukkit.WorldType; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ModMuteCommand extends TCommand { + + public ModMuteCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) + { + player.sendMessage("Utilise §e/§rmute §7[§epseudo§7] [nombreSecondes]"); + return; + } + + String targetName = args[0]; + String duration = "100000"; + + if(args.length == 2) { + duration = args[1]; + } + + if(Integer.valueOf(duration) != null) + { + player.sendMessage(targetName + " a été mute pendant " + duration + "§bs"); + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/mod/ModUnMuteCommand.java b/src/main/java/fr/gravencyg/commands/mod/ModUnMuteCommand.java new file mode 100644 index 0000000..b0eab43 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/mod/ModUnMuteCommand.java @@ -0,0 +1,27 @@ +package fr.gravencyg.commands.mod; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ModUnMuteCommand extends TCommand { + + public ModUnMuteCommand(CYG main) { + super(main, true, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + if(args.length == 0) + { + player.sendMessage("Utilise §e/§runmute §7[§epseudo§7"); + return; + } + + String targetName = args[0]; + player.sendMessage("§rLe joueur §b"+targetName + "§r a été unmute !"); + } +} diff --git a/src/main/java/fr/gravencyg/commands/mod/ModVerifyGameCommand.java b/src/main/java/fr/gravencyg/commands/mod/ModVerifyGameCommand.java new file mode 100644 index 0000000..97b5b79 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/mod/ModVerifyGameCommand.java @@ -0,0 +1,68 @@ +package fr.gravencyg.commands.mod; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.model.Storage; +import fr.gravencyg.model.VerifyGameConfig; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ModVerifyGameCommand extends TCommand { + + public ModVerifyGameCommand(CYG main) { + super(main, true, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if (args.length < 2) + { + player.sendMessage("§7/§everifygame §7[§rpseudo§7] [§r§9DIAMOND_SWORD§7]§r §7[§rNUMERO_CASE§7]"); + player.sendMessage("§7/§everifygame §7[§rpseudo§7] cancel"); + return; + } + + String pseudo = args[0]; + + if(args[1].equalsIgnoreCase("cancel")) + { + + // unverify player + Storage targetStorage = dataManager().getStorages().get(pseudo); + + player.sendMessage("§aLe jeu "+targetStorage.getPlot(player.getWorld().getName()).getName()+"§r est désormais §CREFUSE"); + + targetStorage.getPlot(player.getWorld().getName()).getVerifyConfig().setVerify(false); + dataManager().save(pseudo, targetStorage.getUUID()); + // TODO gameManager().getVerifyGames().remove(pseudo); + } + else + { + // verify player + String material = args[1]; + String numberSlot = args[2]; + + Storage targetStorage = dataManager().getStorages().get(pseudo); + + player.sendMessage("§aLe jeu "+targetStorage.getPlot(player.getWorld().getName()).getName()+"§r est désormais §aVALIDE"); + + VerifyGameConfig verifyGameConfig = targetStorage.getPlot(player.getWorld().getName()).getVerifyConfig(); + verifyGameConfig.setVerify(true); + verifyGameConfig.setIcon(material); + verifyGameConfig.setSlot(Integer.valueOf(numberSlot)); + + if(!gameManager().getVerifyGames().containsKey(pseudo)) + { + gameManager().createStorageFullData(targetStorage); + } + + dataManager().save(pseudo, targetStorage.getUUID()); + } + + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerActionCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerActionCommand.java new file mode 100644 index 0000000..6f7c29c --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerActionCommand.java @@ -0,0 +1,23 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.all.ActionMenu; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.CRank; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerActionCommand extends TCommand { + + public PlayerActionCommand(CYG main) { + super(main, CLevel.LEVEL1,false, true, false, false); + } + + public void onExecute(Player player, String[] args) { + + main.getMenuManager().open(player, ActionMenu.class); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerBarrierCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerBarrierCommand.java new file mode 100644 index 0000000..1ff4adc --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerBarrierCommand.java @@ -0,0 +1,24 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerBarrierCommand extends TCommand { + + public PlayerBarrierCommand(CYG main) { + super(main, CLevel.LEVEL3, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + player.sendMessage("§9+1§l barriere"); + player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 2, 4); + player.getInventory().addItem(new ItemStack(Material.BARRIER)); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerBlockConditionCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerBlockConditionCommand.java new file mode 100644 index 0000000..cb5866f --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerBlockConditionCommand.java @@ -0,0 +1,26 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerBlockConditionCommand extends TCommand { + + public PlayerBlockConditionCommand(CYG main) { + super(main, CLevel.LEVEL1,false, false, false, false); + } + + public void onExecute(Player player, String[] args) { + ItemStack eventBlock = new ItemBuilder(Material.HOPPER).setName(ChatColor.BLUE+"If()") + .addLoreLine("§7Verifier si quelquechose est vrai").toItemStack(); + player.getInventory().addItem(eventBlock); + player.playSound(player.getLocation(), Sound.BLOCK_ANVIL_USE, 8, 3); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerBlockEventCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerBlockEventCommand.java new file mode 100644 index 0000000..769b4b4 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerBlockEventCommand.java @@ -0,0 +1,26 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerBlockEventCommand extends TCommand { + + public PlayerBlockEventCommand(CYG main) { + super(main, CLevel.LEVEL1,false, false, false, false); + } + + public void onExecute(Player player, String[] args) { + ItemStack eventBlock = new ItemBuilder(Material.LAPIS_BLOCK).setName(ChatColor.BLUE+"onEvent()") + .addLoreLine("§7Declenche un évenement durant le jeu").toItemStack(); + player.getInventory().addItem(eventBlock); + player.playSound(player.getLocation(), Sound.BLOCK_ANVIL_USE, 8, 3); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerFlyCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerFlyCommand.java new file mode 100644 index 0000000..b5d30ed --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerFlyCommand.java @@ -0,0 +1,38 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CRank; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class PlayerFlyCommand extends TCommand { + + public PlayerFlyCommand(CYG main) { + super(main, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(main.getDataManager().getRank(player) != CRank.PREMIUM && main.getDataManager().getRank(player).isNotMod()) + { + player.sendMessage("§fUniquement pour les §ePremiums§r et le §9Staff"); + + return; + } + + if(!player.isFlying()) { + player.sendMessage("§bVol d'oiseau §b>>§r Actif"); + player.setAllowFlight(true); + player.setFlying(true); + } + else{ + player.sendMessage("§9Vol d'oiseau §b>>§r Inactif"); + player.setAllowFlight(false); + player.setFlying(false); + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerGameModeCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerGameModeCommand.java new file mode 100644 index 0000000..f4387a6 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerGameModeCommand.java @@ -0,0 +1,39 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.all.GameModeMenu; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerGameModeCommand extends TCommand { + + public PlayerGameModeCommand(CYG main) { + super(main, false, false, false, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.isOp() && player.getWorld().getName().equalsIgnoreCase("world")) + { + player.sendMessage("§cImpossible de /gamemode au hub !"); + return; + } + + if((!getPlot(player.getName()).getFriends().contains(player.getName())) + && !player.getWorld().getName().contains(player.getUniqueId().toString())) + { + player.sendMessage("§cIl est interdit de §l/gamemode§r§c dans un plot inconnu"); + return ; + } + + menuManager().open(player, GameModeMenu.class); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerHatCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerHatCommand.java new file mode 100644 index 0000000..b0a7370 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerHatCommand.java @@ -0,0 +1,35 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.CRank; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class PlayerHatCommand extends TCommand { + + public PlayerHatCommand(CYG main) { + super(main, CLevel.LEVEL1,false, true, false, true); + } + + public void onExecute(Player player, String[] args) { + + if(main.getDataManager().getRank(player) != CRank.PREMIUM && main.getDataManager().getRank(player).isNotMod()) + { + player.sendMessage("§fUniquement pour les §ePremiums§r et le §9Staff"); + return; + } + + ItemStack inHand = player.getInventory().getItemInMainHand(); + + if(inHand.getType() != Material.AIR) + { + player.sendMessage("§eNous avons remplacé votre tête par §6"+inHand.getType().name()+"§e !"); + player.getInventory().setHelmet(inHand); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerHeadCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerHeadCommand.java new file mode 100644 index 0000000..48757f1 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerHeadCommand.java @@ -0,0 +1,47 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; + +import java.util.ArrayList; + +public class PlayerHeadCommand extends TCommand { + + public PlayerHeadCommand(CYG main) { + super(main, CLevel.LEVEL6, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + String target = player.getName(); + + if(args.length == 1) + { + target = args[0]; + } + + player.getInventory().addItem(getHead(target)); + player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 8, 3); + } + + public static ItemStack getHead(String name) { + ItemStack item = new ItemStack(Material.PLAYER_HEAD, 1, (short) 3); + SkullMeta skull = (SkullMeta) item.getItemMeta(); + skull.setDisplayName(name); + ArrayList lore = new ArrayList<>(); + lore.add("§eCustom head"); + skull.setLore(lore); + skull.setOwner(name); + item.setItemMeta(skull); + return item; + } + +} + diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerHubCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerHubCommand.java new file mode 100644 index 0000000..ad70664 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerHubCommand.java @@ -0,0 +1,26 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class PlayerHubCommand extends TCommand { + + public PlayerHubCommand(CYG main) { + super(main, CLevel.LEVEL1, false, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.teleport(getHubLocation()); + player.setGameMode(GameMode.SURVIVAL); + + gameManager().quit(player); + player.sendTitle("§eGravenMC", "§6Code tes propres mini-jeux"); + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerPingCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerPingCommand.java new file mode 100644 index 0000000..934f713 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerPingCommand.java @@ -0,0 +1,21 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import net.minecraft.server.v1_16_R1.EntityPlayer; +import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; + +public class PlayerPingCommand extends TCommand { + + public PlayerPingCommand(CYG main) { + super(main, CLevel.LEVEL1,false, true, false, true); + } + + public void onExecute(Player player, String[] args) { + EntityPlayer nmsPlayer = ((CraftPlayer) player).getHandle(); + player.sendMessage("§9" + nmsPlayer.ping +"§r ms"); + } + +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerPlotCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerPlotCommand.java new file mode 100644 index 0000000..10d7ca0 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerPlotCommand.java @@ -0,0 +1,25 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.plot.PlotManageMenu; +import fr.gravencyg.menus.plot.PlotMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class PlayerPlotCommand extends TCommand { + + public PlayerPlotCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + + if (player.getWorld().getName().contains(player.getUniqueId().toString())) { + main.getMenuManager().open(player, PlotManageMenu.class); + } else { + main.getMenuManager().open(player, PlotMenu.class); + } + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerUUIDCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerUUIDCommand.java new file mode 100644 index 0000000..cfc5858 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerUUIDCommand.java @@ -0,0 +1,21 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class PlayerUUIDCommand extends TCommand { + + public PlayerUUIDCommand(CYG main) { + super(main, CLevel.LEVEL1, false, true, false, true); + } + + @Override + public void onExecute(Player player, String[] args) { + player.sendMessage("§eVotre UUID §l>>§r " + player.getUniqueId().toString()); + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/PlayerWorldEditCommand.java b/src/main/java/fr/gravencyg/commands/player/PlayerWorldEditCommand.java new file mode 100644 index 0000000..b7f3101 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/PlayerWorldEditCommand.java @@ -0,0 +1,63 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.utils.CLevel; +import org.bukkit.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class PlayerWorldEditCommand extends TCommand { + + public PlayerWorldEditCommand(CYG main) { + super(main, CLevel.LEVEL15,false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) + { + player.sendMessage("§7/§ewe§r give" + ChatColor.GRAY + " Accès à l'outil du mini worldedit"); + player.sendMessage("§7/§ewe§r set [type] [data]" + ChatColor.GRAY + " Remplacer la selection par un bloc"); + player.sendMessage("§7/§ewe§r undo" + ChatColor.GRAY + " Revenir en arrière"); + player.sendMessage("§7/§ewe§r unset" + ChatColor.GRAY + " Supprimer la selection"); + return; + } + + if(args[0].equalsIgnoreCase("give")) + { + worldEditManager().give(player); + } + + if(args[0].equalsIgnoreCase("set")) + { + + if(args.length == 1) + { + player.sendMessage("§7/§ewe§r set [type] [id]" + ChatColor.GRAY + " Remplacer la selection par un bloc"); + return; + } + + int id = 0; + + if(args.length == 3) id = Integer.parseInt(args[2]); + + worldEditManager().set(player, args[1].toLowerCase(), id); + + } + + if(args[0].equalsIgnoreCase("undo")) + { + worldEditManager().undo(player); + } + + if(args[0].equalsIgnoreCase("unset")) + { + worldEditManager().unset(player); + } + + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/ShortcutGameNameCommand.java b/src/main/java/fr/gravencyg/commands/player/ShortcutGameNameCommand.java new file mode 100644 index 0000000..18b0b89 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/ShortcutGameNameCommand.java @@ -0,0 +1,37 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +public class ShortcutGameNameCommand extends TCommand { + + public ShortcutGameNameCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(args.length == 0) + { + player.sendMessage("§7/§egamename§e [nom]" + ChatColor.GRAY + " Definit le nom du jeu"); + return; + } + + StringBuilder gameName = new StringBuilder(); + + for(String arg : args) + { + gameName.append(arg); + gameName.append(" "); + } + + dataManager().setGameName(player, gameName.toString()); + + player.sendMessage("§rLe nom du jeu est désormais §7[§e"+gameName.toString()+"§7]"); + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/ShortcutOptionCommand.java b/src/main/java/fr/gravencyg/commands/player/ShortcutOptionCommand.java new file mode 100644 index 0000000..7704d31 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/ShortcutOptionCommand.java @@ -0,0 +1,31 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class ShortcutOptionCommand extends TCommand { + + public ShortcutOptionCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + if(!player.getWorld().getName().contains(player.getUniqueId().toString())) + { + player.sendMessage("§cCommande à faire sur votre parcelle uniquement"); + return; + } + + if(gameManager().isPlayerInGame(player).size() != 0) + { + player.sendMessage("§cCommande impossible durant une partie"); + return; + } + + main.getMenuManager().open(player, OptionMenu.class); + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/ShortcutSetCodeCommand.java b/src/main/java/fr/gravencyg/commands/player/ShortcutSetCodeCommand.java new file mode 100644 index 0000000..ac785b3 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/ShortcutSetCodeCommand.java @@ -0,0 +1,32 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class ShortcutSetCodeCommand extends TCommand { + + public ShortcutSetCodeCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + if(!player.getWorld().getName().contains(player.getUniqueId().toString())) + { + player.sendMessage("§cCommande à faire sur votre parcelle uniquement"); + return; + } + + if(gameManager().isPlayerInGame(player).size() != 0) + { + player.sendMessage("§cCommande impossible durant une partie"); + return; + } + + dataManager().setCode(player); + player.sendMessage("Nouveau spawn placé pour le code !"); + } +} diff --git a/src/main/java/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.java b/src/main/java/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.java new file mode 100644 index 0000000..7516ac8 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/player/ShortcutSetSpawnCommand.java @@ -0,0 +1,34 @@ +package fr.gravencyg.commands.player; + +import fr.gravencyg.CYG; +import fr.gravencyg.commands.TCommand; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.utils.CLevel; +import org.bukkit.entity.Player; + +public class ShortcutSetSpawnCommand extends TCommand { + + public ShortcutSetSpawnCommand(CYG main) { + super(main, CLevel.LEVEL1, false, false, true, false); + } + + @Override + public void onExecute(Player player, String[] args) { + + if(!player.getWorld().getName().contains(player.getUniqueId().toString())) + { + player.sendMessage("§cCommande à faire sur votre parcelle uniquement"); + return; + } + + if(gameManager().isPlayerInGame(player).size() != 0) + { + player.sendMessage("§cCommande impossible durant une partie"); + return; + } + + dataManager().setSpawn(player); + player.sendMessage("Nouveau spawn placé pour le /plot !"); + + } +} diff --git a/src/main/java/fr/gravencyg/commands/shortcut/ShopPremiumCommand.java b/src/main/java/fr/gravencyg/commands/shortcut/ShopPremiumCommand.java new file mode 100644 index 0000000..f9a5fe7 --- /dev/null +++ b/src/main/java/fr/gravencyg/commands/shortcut/ShopPremiumCommand.java @@ -0,0 +1,93 @@ +package fr.gravencyg.commands.shortcut; + +import fr.gravencyg.CYG; +import fr.gravencyg.manager.CYGDataManager; +import fr.gravencyg.menus.all.ActionMenu; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.CRank; +import org.bukkit.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ShopPremiumCommand implements CommandExecutor { + + private CYG main; + + public ShopPremiumCommand(CYG main) { + this.main = main; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String s, String[] args) { + + if(!sender.isOp()) + { + return false; + } + + if(args.length < 2) + { + sender.sendMessage("/premium add [pseudo]"); + return false; + } + + String targetName = args[1]; + + // usage -> /premium add player + // usage -> /premium remove player + if(args[0].equalsIgnoreCase("add")) + { + + if(main.getDataManager().getStorages().containsKey(targetName)) + { + Bukkit.getServer().broadcastMessage("§7§e[Boutique]§7 "+targetName+" viens d'acheter le grade §ePremium !"); + CYGDataManager dataManager = main.getDataManager(); + + if (dataManager.getLevel(targetName) < 15) { + dataManager.setLevel(targetName, "15"); + } + + dataManager.getStorages().get(targetName).setRank("premium"); + dataManager.save(targetName, dataManager.getStorages().get(targetName).getUUID()); + + if(Bukkit.getPlayer(targetName) != null) + { + Player target = Bukkit.getPlayer(targetName); + main.getScoreboardManager().updatePlayerRank(target); + CRank r = dataManager.getRank(target); + target.setPlayerListName("[" + r.getColor() + "" + r.getSigle() + "§r] " + target.getName()); + } + + } + else{ + sender.sendMessage("Ce joueur n'a jamais rejoins le serveur"); + } + } + + if(args[0].equalsIgnoreCase("remove")) + { + if(main.getDataManager().getStorages().containsKey(targetName)) + { + CYGDataManager dataManager = main.getDataManager(); + + dataManager.getStorages().get(targetName).setRank("joueur"); + dataManager.save(targetName, dataManager.getStorages().get(targetName).getUUID()); + + if(Bukkit.getPlayer(targetName) != null) + { + Player target = Bukkit.getPlayer(targetName); + main.getScoreboardManager().updatePlayerRank(target); + CRank r = dataManager.getRank(target); + target.setPlayerListName("[" + r.getColor() + "" + r.getSigle() + "§r] " + target.getName()); + } + + } + } + + return false; + } +} diff --git a/src/main/java/fr/gravencyg/game/CYGame.java b/src/main/java/fr/gravencyg/game/CYGame.java new file mode 100644 index 0000000..eb489a5 --- /dev/null +++ b/src/main/java/fr/gravencyg/game/CYGame.java @@ -0,0 +1,206 @@ +package fr.gravencyg.game; + +import fr.gravencyg.actions.team.Team; +import fr.gravencyg.model.CYGameMode; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CEvent; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CYGame { + + private Storage storage; + private GameConfig config; + private Map> teams; + private List players; + private int countdown; + private CYGameMode gameMode; + + private boolean canFallDamage; + private boolean canBuild; + private boolean canFight; + + private Map breakBlocks; + private List placedBlocks; + private Map lifes; + + private int minPlayers; + private CYGameState state; + private int lifesPerPlayer; + private int maxPlayers; + private String ownerUUID; + private int gameId; + + public CYGame(Storage storage, int gameId) { + this.storage = storage; + this.config = storage.getPlots().get(gameId).getConfig(); + this.ownerUUID = storage.getUUID(); + this.gameId = gameId; + this.setup(); + } + + public void setup() { + this.players = new ArrayList<>(); + this.teams = new HashMap<>(); + this.countdown = config.getAutoStartTime(); + this.minPlayers = config.getAutoStartPlayer(); + this.maxPlayers = config.getMaxPlayers(); + this.lifes = new HashMap<>(); + this.state = CYGameState.WAITING; + this.gameMode = CYGameMode.DEATH_MATCH; + this.lifesPerPlayer = config.getLifes(); + this.canBuild = false; + this.canFight = false; + + this.clearRegenSave(); + } + + public void createTeam(Team team) { + teams.put(team, new ArrayList<>()); + } + + public void clearRegenSave() { + this.breakBlocks = new HashMap<>(); + this.placedBlocks = new ArrayList<>(); + } + + public void addPlayer(Player player) { + this.players.add(player); + this.lifes.put(player, lifesPerPlayer); + } + + public void removeLife(Player player){ + if(lifes.containsKey(player)) + { + int currentLife = lifes.get(player); + lifes.put(player, currentLife - 1); + } + } + + public boolean canRespawn(Player player){ + if(lifes.containsKey(player)) + { + return lifes.get(player) >= 1; + } + + return false; + } + + public boolean sameTeam(Player player1, Player player2) + { + if(getTeamPlayer(player1).equals(getTeamPlayer(player2))) + { + return true; + } + return false; + } + + public void eliminatePlayer(Player player) { + this.players.remove(player); + this.lifes.remove(player); + + if(hasTeamSystem()) + { + Team t = getTeamPlayer(player); + getTeams().get(t).remove(player); // remove player from team + } + + } + + public boolean hasTeamSystem(){ + return getTeams().size() >= 2; + } + + public Team getTeamPlayer(Player player) + { + Team tm = Team.BLUE; + + for(Map.Entry> t : getTeams().entrySet()) + { + if(t.getValue().contains(player)) + { + tm = t.getKey(); + break; + } + } + + return tm; + } + + public void setCountdown(int i) { this.countdown = i;} + + public void setState(CYGameState state) { this.state = state; } + + public void togglePvP() { this.canFight = !canFight; } + + public void toggleBuild() { this.canBuild = !canBuild; } + + public void toggleFallDamage() { this.canFallDamage = !canFallDamage; } + + public void decrementCountdown(){ this.countdown -= 1; } + + public Storage getStorage() { return storage; } + + public List getPlayers() { return players; } + + public String getName() { return config.getGameName(); } + + public Map getBreakBlocks(){ return breakBlocks; } + + public List getPlacedBlocks(){ return placedBlocks; } + + public boolean canBuild() { return canBuild; } + + public boolean canFight() { return canFight; } + + public boolean hasStarted() { return state == CYGameState.PLAYING; } + + public int getAutoStartMin() { return config.getAutoStartPlayer(); } + + public boolean isState(CYGameState state) { return this.state == state; } + + public boolean isMode(CYGameMode mode) { return this.gameMode == mode; } + + public boolean isTeamExist(Team team){ return teams.containsKey(team); } + + public CYGameState getState() { return state; } + + public int getCountdown() { return countdown; } + + public boolean canDamageFall() { return canFallDamage; } + + public int getMaxPlayers() { return maxPlayers; } + + public int getPlayerIndex(Player player) { + int i = 0; + for(Player pl : players) + { + if(pl.equals(player)) return i; + i++; + } + return 0; + } + + + public Map> getTeams() { return teams; } + + public int getLife(Player player) { + return lifes.get(player); + } + + public String getUUID() { + return ownerUUID; + } + + public int getGameId() { + return gameId; + } +} diff --git a/src/main/java/fr/gravencyg/game/CYGameManager.java b/src/main/java/fr/gravencyg/game/CYGameManager.java new file mode 100644 index 0000000..bea0ede --- /dev/null +++ b/src/main/java/fr/gravencyg/game/CYGameManager.java @@ -0,0 +1,365 @@ +package fr.gravencyg.game; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.team.Team; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.model.VerifyGameConfig; +import fr.gravencyg.utils.CEvent; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.boss.BossBar; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CYGameManager { + + private CYG main; + + private Map> games = new HashMap<>(); + private Map verifyGames = new HashMap<>(); + private List onLoopEnable = new ArrayList<>(); + + public CYGameManager(CYG main) + { + + this.main = main; + + for(Map.Entry st : main.getDataManager().getStorages().entrySet()) + { + createStorageFullData(st.getValue()); + } + + } + + public void createStorageFullData(Storage st) { + for(Plot plot : st.getPlots()) { + if (plot != null) { + VerifyGameConfig verifyGameConfig = plot.getVerifyConfig(); + if (verifyGameConfig.isVerify()) + this.verifyGames.put(verifyGameConfig.getSlot(), st); + } + } + } + + public void create(String ownerName, int gameID){ + Storage storage = main.getDataManager().getStorages().get(ownerName); + + CYGame game = new CYGame(storage, gameID); + + if(!games.containsKey(ownerName)) + { + games.put(ownerName, new ArrayList<>()); + } + + List g = games.get(ownerName); + g.add(game); + games.put(ownerName, g); + } + + public void createTeam(CYGame game, Team team) { + game.createTeam(team); + } + + public void join(Player player, String targetName, int gameId) { + CYGame game = games.get(targetName).get(gameId); + + if(game == null) { + player.sendMessage("§cErreur sur le jeu, merci de contacter un modérateur"); + return; + } + + Plot targetPlot = main.getDataManager().getStorages().get(targetName).getPlots().get(gameId); + + if(!targetPlot.getEvents().containsKey("onJoin")){ + player.sendMessage("§cJeu invalide ! §lle créateur a oublié le onJoin()"); + + return; + } + + if(game.getPlayers().contains(player)) + { + player.sendMessage("§cTu es déjà dans le jeu !"); + return; + } + + if(game.getPlayers().size() == game.getMaxPlayers()){ + player.sendMessage("§cLe jeu est full !"); + return; + } + + player.teleport(targetPlot.getSpawn(game.getStorage().getUUID()+"#" + gameId)); + player.setLevel(0); + player.setHealth(20); + player.getEnderChest().clear(); + player.setFoodLevel(20); + player.getInventory().clear(); + player.setFlying(false); + player.setAllowFlight(false); + + if(game.isState(CYGameState.WAITING) || game.isState(CYGameState.STARTING)) { + game.addPlayer(player); + player.setGameMode(GameMode.SURVIVAL); + + main.getScoreboardManager().unload(player); + main.getScoreboardManager().loadGame(player, game); + + broadcast(game, player.getName() + " a rejoint le jeu !"); + main.getScoreboardManager().updateInGameTotalPlayers(game); + + runEvent(CEvent.JOIN, game, player); + } + + if(game.isState(CYGameState.PLAYING) || game.isState(CYGameState.FINISH)) + { + player.setGameMode(GameMode.SPECTATOR); + } + } + + public void death(Player player){ + CYGame game = main.getGameManager().getCurrentGame(player); + + game.removeLife(player); + player.sendMessage(game.getLife(player) + " vie(s) restante !"); + + if(!game.canRespawn(player)) + { + eliminate(player, game); + } + else{ + player.setHealth(20); + player.setFoodLevel(20); + + for(PotionEffect potionEffect : player.getActivePotionEffects()) + { + player.removePotionEffect(potionEffect.getType()); + } + } + } + + public void quit(Player player) { + + player.teleport(main.spawnLocation); + player.getInventory().clear(); + + + for(BossBar bossBarEntry : main.getBarActions()) + { + if(bossBarEntry.getPlayers().contains(player)) + { + bossBarEntry.removeAll(); + } + } + + for(Map.Entry> g : games.entrySet()) + { + for(CYGame gm : g.getValue()) { + if (gm.getPlayers().contains(player)) { + gm.eliminatePlayer(player); + + for (BossBar bossBarEntry : main.getBarActions()) { + if (bossBarEntry.getPlayers().contains(player)) { + bossBarEntry.removeAll(); + } + } + + main.getScoreboardManager().unload(player); + main.getScoreboardManager().load(player); + + player.getInventory().clear(); + player.setHealth(20); + player.setFoodLevel(20); + player.setFireTicks(0); + + player.setGameMode(GameMode.SURVIVAL); + + for (PotionEffect potionEffect : player.getActivePotionEffects()) { + player.removePotionEffect(potionEffect.getType()); + } + + broadcast(gm, player.getName() + " a quitter le jeu !"); + main.getScoreboardManager().updateInGameTotalPlayers(gm); + } + + } + } + } + + public void eliminate(Player player, CYGame game) { + + if (game.getPlayers().contains(player)) + { + game.eliminatePlayer(player); + main.getScoreboardManager().unload(player); + main.getScoreboardManager().load(player); + + player.getInventory().clear(); + player.setGameMode(GameMode.SURVIVAL); + + for(PotionEffect potionEffect : player.getActivePotionEffects()) + { + player.removePotionEffect(potionEffect.getType()); + } + + if(main.getFreezeGamePlayers().contains(player)){ + main.getFreezeGamePlayers().remove(player); + } + + broadcast(game, player.getName() + " est éliminé du jeu !"); + + + main.getDataManager().addTrophy(player, 3); + player.sendMessage("§r+ §e3§r Trophés de participation !"); + player.teleport(main.spawnLocation); + + main.getScoreboardManager().updateInGameTotalPlayers(game); + + if(game.getPlayers().size() == 1 || game.getPlayers().size() == 0) + { + game.setState(CYGameState.FINISH); + main.getGameManager().stop(game); + } + } + } + + public void broadcast(CYGame game, String message) { + for(Player player : game.getPlayers()) + { + player.sendMessage("§7[§e"+game.getName()+"§7]§r " + message); + } + } + + public void playLoop() { + for(Map.Entry> g : main.getGameManager().getGames().entrySet()) + { + for(CYGame game : g.getValue()) + { + if(!onLoopEnable.contains(game.getStorage()) && game.isState(CYGameState.PLAYING)) { + if(game.getPlayers().size() == 0) continue; + runEvent(CEvent.LOOP, game, game.getPlayers().get(0)); + onLoopEnable.add(game.getStorage()); + } + } + } + } + + public void regenMap(CYGame game) { + for(Block placed : game.getPlacedBlocks()) + { + placed.setType(Material.AIR); + } + + for(Map.Entry breaked : game.getBreakBlocks().entrySet()) + { + breaked.getKey().getBlock().setType(breaked.getValue().getMaterial()); + //breaked.getKey().getBlock().setData(breaked.getValue().getData()); + + } + + game.clearRegenSave(); + } + + public void runEvent(CEvent event, CYGame game, Player player, Block block, Material material) { + String ownerPlotUUId = game.getStorage().getUUID(); + + if(game.getStorage().getPlot(player.getWorld().getName()).hasEvent(event.getEventName())) { + main.getCompilerManager().runEvent(player, ownerPlotUUId + "#" + game.getGameId(), event.getEventName(), false, event.isAffectingAllPlayers(), block, material); + } + } + + public void runEvent(CEvent event, Storage storage, Player player) { + String ownerPlotUUId = storage.getUUID(); + + if(storage.getPlot(player.getWorld().getName()).hasEvent(event.getEventName())) { + main.getCompilerManager().runEvent(player, ownerPlotUUId, event.getEventName(), false, event.isAffectingAllPlayers(), null, Material.LAPIS_BLOCK); + } + } + + public void runEvent(CEvent event, CYGame game, Player player) { + runEvent(event, game, player, null, Material.LAPIS_BLOCK); + } + + public void runBlockEvent(CEvent event, CYGame game, Player player, Block block) { + runEvent(event, game, player, block, block.getType()); + } + + public boolean hasPendingGame(String ownerName, int gameId) { + return games.containsKey(ownerName); + } + + public void stop(CYGame game) { + String key = ""; + + for(Player player : game.getPlayers()) + { + eliminate(player, game); + } + + regenMap(game); + + game.setup(); + + for(Map.Entry> game1 : games.entrySet()) + { + for(CYGame c : game1.getValue()) + { + if(c.equals(game)) + { + key = game1.getKey(); + } + } + } + + games.remove(key); + + } + public List isPlayerInGame(Player player) { + + List gs = new ArrayList<>(); + + for(Map.Entry> d : games.entrySet()) { + for (CYGame game : d.getValue()) { + if (game.getPlayers().contains(player)) { + gs.add(game); + } + } + } + + return gs; + } + + public CYGame getCurrentGame(Player player) { + for(Map.Entry> d : games.entrySet()) + { + for(CYGame g : d.getValue()) + { + if(g.getPlayers().contains(player)) + { + return g; + } + } + } + + return null; + } + + public Map getVerifyGames(){ return verifyGames; } + + public Map> getGames() { return games;} + + + public void removeLoopStorage(Storage storage) { + if (onLoopEnable.contains(storage)) { + onLoopEnable.remove(storage); + } + } +} diff --git a/src/main/java/fr/gravencyg/game/CYGameState.java b/src/main/java/fr/gravencyg/game/CYGameState.java new file mode 100644 index 0000000..7f7ee1f --- /dev/null +++ b/src/main/java/fr/gravencyg/game/CYGameState.java @@ -0,0 +1,21 @@ +package fr.gravencyg.game; + +public enum CYGameState { + + WAITING("En attente"), + STARTING("Démarrage"), + PLAYING("En Partie"), + FINISH("Fin"); + + private String name; + + CYGameState(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } +} diff --git a/src/main/java/fr/gravencyg/items/Armor.java b/src/main/java/fr/gravencyg/items/Armor.java new file mode 100644 index 0000000..efa5f5f --- /dev/null +++ b/src/main/java/fr/gravencyg/items/Armor.java @@ -0,0 +1,7 @@ +package fr.gravencyg.items; + +public enum Armor { + + HELMET, CHESTPLATE, LEGGINGS, BOOTS; + +} diff --git a/src/main/java/fr/gravencyg/items/ArmorManager.java b/src/main/java/fr/gravencyg/items/ArmorManager.java new file mode 100644 index 0000000..551293c --- /dev/null +++ b/src/main/java/fr/gravencyg/items/ArmorManager.java @@ -0,0 +1,66 @@ +package fr.gravencyg.items; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class ArmorManager { + + private Map armors = new HashMap<>(); + + public ArmorManager() { + + armors.put(Material.LEATHER_HELMET, Armor.HELMET); + armors.put(Material.CHAINMAIL_HELMET, Armor.HELMET); + armors.put(Material.IRON_HELMET, Armor.HELMET); + armors.put(Material.GOLDEN_HELMET, Armor.HELMET); + armors.put(Material.DIAMOND_HELMET, Armor.HELMET); + armors.put(Material.SKELETON_SKULL, Armor.HELMET); + + armors.put(Material.LEATHER_CHESTPLATE, Armor.CHESTPLATE); + armors.put(Material.CHAINMAIL_CHESTPLATE, Armor.CHESTPLATE); + armors.put(Material.IRON_CHESTPLATE, Armor.CHESTPLATE); + armors.put(Material.GOLDEN_CHESTPLATE, Armor.CHESTPLATE); + armors.put(Material.DIAMOND_CHESTPLATE, Armor.CHESTPLATE); + + armors.put(Material.LEATHER_LEGGINGS, Armor.LEGGINGS); + armors.put(Material.CHAINMAIL_LEGGINGS, Armor.LEGGINGS); + armors.put(Material.IRON_LEGGINGS, Armor.LEGGINGS); + armors.put(Material.GOLDEN_LEGGINGS, Armor.LEGGINGS); + armors.put(Material.DIAMOND_LEGGINGS, Armor.LEGGINGS); + + armors.put(Material.LEATHER_BOOTS, Armor.BOOTS); + armors.put(Material.CHAINMAIL_BOOTS, Armor.BOOTS); + armors.put(Material.IRON_BOOTS, Armor.BOOTS); + armors.put(Material.GOLDEN_BOOTS, Armor.BOOTS); + armors.put(Material.DIAMOND_BOOTS, Armor.BOOTS); + + } + + public void addItem(Player player, ItemStack item){ + + Material mat = item.getType(); + + if(armors.containsKey(mat)) + { + + switch(armors.get(mat)) + { + case HELMET: player.getInventory().setHelmet(item); break; + case CHESTPLATE: player.getInventory().setChestplate(item); break; + case LEGGINGS: player.getInventory().setLeggings(item); break; + case BOOTS: player.getInventory().setBoots(item); break; + default: break; + } + + return; + } + + player.getInventory().addItem(item); + + } + +} \ No newline at end of file diff --git a/src/main/java/fr/gravencyg/items/ItemBuilder.java b/src/main/java/fr/gravencyg/items/ItemBuilder.java new file mode 100644 index 0000000..d31f82a --- /dev/null +++ b/src/main/java/fr/gravencyg/items/ItemBuilder.java @@ -0,0 +1,225 @@ +package fr.gravencyg.items; + +import org.bukkit.DyeColor; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.LeatherArmorMeta; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import org.bukkit.Color; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; + +/** + * Easily create itemstacks, without messing your hands. + * Note that if you do use this in one of your projects, leave this notice. + * Please do credit me if you do use this in one of your projects. + * @author NonameSL + */ +public class ItemBuilder { + private ItemStack is; + /** + * Create a new ItemBuilder from scratch. + * @param m The material to create the ItemBuilder with. + */ + public ItemBuilder(Material m){ + this(m, 1); + } + /** + * Create a new ItemBuilder over an existing itemstack. + * @param is The itemstack to create the ItemBuilder over. + */ + public ItemBuilder(ItemStack is){ + this.is=is; + } + /** + * Create a new ItemBuilder from scratch. + * @param m The material of the item. + * @param amount The amount of the item. + */ + public ItemBuilder(Material m, int amount){ + is= new ItemStack(m, amount); + } + /** + * Create a new ItemBuilder from scratch. + * @param m The material of the item. + * @param amount The amount of the item. + * @param durability The durability of the item. + */ + public ItemBuilder(Material m, int amount, byte durability){ + is = new ItemStack(m, amount, durability); + } + /** + * Clone the ItemBuilder into a new one. + * @return The cloned instance. + */ + public ItemBuilder clone(){ + return new ItemBuilder(is); + } + /** + * Change the durability of the item. + * @param dur The durability to set it to. + */ + public ItemBuilder setDurability(short dur){ + is.setDurability(dur); + return this; + } + /** + * Set the displayname of the item. + * @param name The name to change it to. + */ + public ItemBuilder setName(String name){ + ItemMeta im = is.getItemMeta(); + im.setDisplayName(name); + is.setItemMeta(im); + return this; + } + /** + * Add an unsafe enchantment. + * @param ench The enchantment to add. + * @param level The level to put the enchant on. + */ + public ItemBuilder addUnsafeEnchantment(Enchantment ench, int level){ + is.addUnsafeEnchantment(ench, level); + return this; + } + /** + * Remove a certain enchant from the item. + * @param ench The enchantment to remove + */ + public ItemBuilder removeEnchantment(Enchantment ench){ + is.removeEnchantment(ench); + return this; + } + /** + * Set the skull owner for the item. Works on skulls only. + * @param owner The name of the skull's owner. + */ + public ItemBuilder setSkullOwner(String owner){ + try{ + SkullMeta im = (SkullMeta)is.getItemMeta(); + im.setOwner(owner); + is.setItemMeta(im); + }catch(ClassCastException expected){} + return this; + } + /** + * Add an enchant to the item. + * @param ench The enchant to add + * @param level The level + */ + public ItemBuilder addEnchant(Enchantment ench, int level){ + ItemMeta im = is.getItemMeta(); + im.addEnchant(ench, level, true); + is.setItemMeta(im); + return this; + } + /** + * Add multiple enchants at once. + * @param enchantments The enchants to add. + */ + public ItemBuilder addEnchantments(Map enchantments){ + is.addEnchantments(enchantments); + return this; + } + /** + * Sets infinity durability on the item by setting the durability to Short.MAX_VALUE. + */ + public ItemBuilder setInfinityDurability(){ + is.setDurability(Short.MAX_VALUE); + return this; + } + /** + * Re-sets the lore. + * @param lore The lore to set it to. + */ + public ItemBuilder setLore(String... lore){ + ItemMeta im = is.getItemMeta(); + im.setLore(Arrays.asList(lore)); + is.setItemMeta(im); + return this; + } + /** + * Re-sets the lore. + * @param lore The lore to set it to. + */ + public ItemBuilder setLore(List lore) { + ItemMeta im = is.getItemMeta(); + im.setLore(lore); + is.setItemMeta(im); + return this; + } + + public ItemBuilder removeLoreLine(String line){ + ItemMeta im = is.getItemMeta(); + List lore = new ArrayList<>(im.getLore()); + if(!lore.contains(line))return this; + lore.remove(line); + im.setLore(lore); + is.setItemMeta(im); + return this; + } + /** + * Remove a lore line. + * @param index The index of the lore line to remove. + */ + public ItemBuilder removeLoreLine(int index){ + ItemMeta im = is.getItemMeta(); + List lore = new ArrayList<>(im.getLore()); + if(index<0||index>lore.size())return this; + lore.remove(index); + im.setLore(lore); + is.setItemMeta(im); + return this; + } + /** + * Add a lore line. + * @param line The lore line to add. + */ + public ItemBuilder addLoreLine(String line){ + ItemMeta im = is.getItemMeta(); + List lore = new ArrayList<>(); + if(im.hasLore())lore = new ArrayList<>(im.getLore()); + lore.add(line); + im.setLore(lore); + is.setItemMeta(im); + return this; + } + /** + * Add a lore line. + * @param line The lore line to add. + * @param pos The index of where to put it. + */ + public ItemBuilder addLoreLine(String line, int pos){ + ItemMeta im = is.getItemMeta(); + List lore = new ArrayList<>(im.getLore()); + lore.set(pos, line); + im.setLore(lore); + is.setItemMeta(im); + return this; + } + /** + * Sets the armor color of a leather armor piece. Works only on leather armor pieces. + * @param color The color to set it to. + */ + public ItemBuilder setLeatherArmorColor(Color color){ + try{ + LeatherArmorMeta im = (LeatherArmorMeta)is.getItemMeta(); + im.setColor(color); + is.setItemMeta(im); + }catch(ClassCastException expected){} + return this; + } + /** + * Retrieves the itemstack from the ItemBuilder. + * @return The itemstack created/modified by the ItemBuilder instance. + */ + public ItemStack toItemStack(){ + return is; + } +} diff --git a/src/main/java/fr/gravencyg/listeners/BlockListener.java b/src/main/java/fr/gravencyg/listeners/BlockListener.java new file mode 100644 index 0000000..ef99269 --- /dev/null +++ b/src/main/java/fr/gravencyg/listeners/BlockListener.java @@ -0,0 +1,270 @@ +package fr.gravencyg.listeners; + +import fr.gravencyg.CYG; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.manager.CYGHologramManager; +import fr.gravencyg.menus.all.*; +import fr.gravencyg.menus.locations.LocationSelectMenu; +import fr.gravencyg.menus.messages.MessageSelectMenu; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CEvent; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.block.Chest; +import org.bukkit.block.Dropper; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.*; +import org.bukkit.event.player.PlayerInteractEvent; + +public class BlockListener implements Listener { + + private CYG main; + + public BlockListener(CYG main) { + this.main = main; + } + + @EventHandler + public void onPlace(BlockPlaceEvent event) { + + Player player = event.getPlayer(); + Block block = event.getBlock(); + + // DISABLE PLACING BLOCK IN THE HUB + if(block.getWorld().getName().equalsIgnoreCase("world") && !player.getName().equalsIgnoreCase("GravenYT") && !player.getName().equalsIgnoreCase("FragZzH")) + { + event.setCancelled(true); + } + + Plot plot = main.getDataManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + + if(plot != null ) { + if (main.getGameManager().isPlayerInGame(player).size() != 0) { + CYGame game = main.getGameManager().getCurrentGame(player); + if (!game.canBuild()) { + event.setCancelled(true); + } else { + game.getPlacedBlocks().add(block); + main.getGameManager().runBlockEvent(CEvent.PLACE, game, player, block); + } + } else if (main.getGameManager().isPlayerInGame(player).size()==0 && !block.getWorld().getName().contains(player.getUniqueId().toString()) + && !plot.getFriends().contains(player.getName())) { + event.setCancelled(true); + } + } + } + + @EventHandler + public void onBreak(BlockBreakEvent event) { + + Player player = event.getPlayer(); + Block block = event.getBlock(); + + if (block.getWorld().getName().equalsIgnoreCase("world") && !player.getName().equalsIgnoreCase("GravenYT") && !player.getName().equalsIgnoreCase("FragZzH")) { + event.setCancelled(true); + return; + } + + + Plot plot = main.getDataManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + + if(plot != null) { + + if (main.getGameManager().isPlayerInGame(player).size()!=0) { + CYGame game = main.getGameManager().getCurrentGame(player); + if (!game.canBuild()) { + event.setCancelled(true); + } else { + game.getBreakBlocks().put(block.getLocation(), new MaterialAndData(block.getType(), block.getData())); + main.getGameManager().runBlockEvent(CEvent.BREAK, game, player, block); + } + + } else if (main.getGameManager().isPlayerInGame(player).size()==0 && !block.getWorld().getName().contains(player.getUniqueId().toString()) + && !plot.getFriends().contains(player.getName())) { + event.setCancelled(true); + } + + if (block.getType() == Material.LAPIS_BLOCK) { + World world = block.getWorld(); + + // the block breaker is the owner of the plot + if (world.getName().contains(player.getUniqueId().toString())) { + + main.getDataManager().removeEvent(player, block); + main.getDataManager().save(player); + + CYGHologramManager hologramManager = main.getHologramManager(); + hologramManager.removeHologram(block); + } + } + } + + } + + @EventHandler + public void onSign(BlockPistonExtendEvent event){ + event.setCancelled(true); + } + + @EventHandler + public void onSign(SignChangeEvent event){ + for(int i = 0; i < event.getLines().length; i++) { + event.setLine(i, event.getLine(i).replace("&", "§")); + } + } + + @EventHandler + public void onDispense(BlockDispenseEvent event){ + event.setCancelled(true); + } + + @EventHandler + public void onDispense(BlockSpreadEvent event){ + if(event.getBlock().getType() == Material.MYCELIUM) { + event.setCancelled(true); + } + } + + @EventHandler + public void onClickBlock(PlayerInteractEvent event) { + + Player player = event.getPlayer(); + + if(player.getWorld().getName().equalsIgnoreCase("world")) return; + + + Storage storage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + Plot plot = storage.getPlot(player.getWorld().getName()); + + if(plot != null) { + + boolean isNotFriendOrOwner = !plot.getFriends().contains(player.getName()) && !storage.getDisplayName().equalsIgnoreCase(player.getName()); + + if(!isNotFriendOrOwner && player.getInventory().getItemInMainHand().getType() == Material.GOLDEN_HOE && event.getClickedBlock().getType() != Material.AIR) + { + + Block block = event.getClickedBlock(); + main.getWorldEditManager().setPoint(player, block.getLocation()); + event.setCancelled(true); + return; + } + + + if(event.getAction() == Action.LEFT_CLICK_AIR && player.getInventory().getItemInMainHand().getType() != Material.AIR) { + main.getGameManager().runEvent(CEvent.LEFT_CLICK, storage, player); + } + + if(event.getAction() == Action.RIGHT_CLICK_AIR) { + main.getGameManager().runEvent(CEvent.RIGHT_CLICK, storage, player); + } + + if(event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() != Material.AIR) { + + Block block = event.getClickedBlock(); + if (block.getType() == Material.LAPIS_BLOCK) { + + if (isNotFriendOrOwner) { + player.sendMessage("§cVous devez faire partit des développeurs de ce jeu"); + event.setCancelled(true); + return; + } + + main.getMenuManager().open(player, EventMenu.class); + main.getEventBlockCache().put(player, block); + + } + + if (block.getType() == Material.BEACON) { + + event.setCancelled(true); + + if (isNotFriendOrOwner) { + player.sendMessage("§cVous devez faire partit des développeurs de ce jeu"); + event.setCancelled(true); + return; + } + + if (!player.isSneaking()) { + main.getMenuManager().open(player, LocationSelectMenu.class); + + main.getEventBlockCache().put(player, block); + } + + } + + if (block.getType() == Material.CHEST) { + Chest chest = (Chest) event.getClickedBlock().getState(); + + if (chest.getCustomName().equalsIgnoreCase(ChatColor.BLUE + "Stuff()")) { + if (isNotFriendOrOwner) { + player.sendMessage("§cVous devez faire partit des développeurs de ce jeu"); + event.setCancelled(true); + } + } + + } + + if (block.getType() == Material.DROPPER) { + Dropper dropper = (Dropper) event.getClickedBlock().getState(); + + if (dropper.getCustomName().equalsIgnoreCase(ChatColor.BLUE + "DropItem()")) { + if (isNotFriendOrOwner) { + player.sendMessage("§cVous devez faire partit des développeurs de ce jeu"); + event.setCancelled(true); + } + } + + } + + if (block.getType() == Material.BOOKSHELF || block.getType() == Material.SEA_LANTERN || block.getType() == Material.SOUL_SAND) { + + event.setCancelled(true); + + if (isNotFriendOrOwner) { + player.sendMessage("§cVous devez faire partit des développeurs de ce jeu"); + event.setCancelled(true); + return; + } + + if (!player.isSneaking()) { + main.getMenuManager().open(player, MessageSelectMenu.class); + main.getEventBlockCache().put(player, block); + } + + } + } + + + } + + // DISABLE BLOCKS + if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) { + if (player.getInventory().getItemInMainHand().getType() == Material.OAK_BOAT || + player.getInventory().getItemInMainHand().getType() == Material.ACACIA_BOAT || + player.getInventory().getItemInMainHand().getType() == Material.BIRCH_BOAT || + player.getInventory().getItemInMainHand().getType() == Material.JUNGLE_BOAT || + player.getInventory().getItemInMainHand().getType() == Material.DARK_OAK_BOAT || + player.getInventory().getItemInMainHand().getType() == Material.SPRUCE_BOAT) { + event.setCancelled(true); + } + } + + // HUB DISABLE ITEMS + if(player.getWorld().getName().equalsIgnoreCase("world")) + { + if(player.getInventory().getItemInMainHand().getType() == Material.SPLASH_POTION || + player.getInventory().getItemInMainHand().getType() == Material.LAVA_BUCKET || + player.getInventory().getItemInMainHand().getType() == Material.WATER_BUCKET) { + event.setCancelled(true); + } + } + + } + +} \ No newline at end of file diff --git a/src/main/java/fr/gravencyg/listeners/ChatListener.java b/src/main/java/fr/gravencyg/listeners/ChatListener.java new file mode 100644 index 0000000..3a06c7a --- /dev/null +++ b/src/main/java/fr/gravencyg/listeners/ChatListener.java @@ -0,0 +1,55 @@ +package fr.gravencyg.listeners; + +import fr.gravencyg.CYG; +import fr.gravencyg.utils.CRank; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +public class ChatListener implements Listener { + + private CYG main; + + public ChatListener(CYG main) { + this.main = main; + } + + @EventHandler + public void onChat(AsyncPlayerChatEvent event) { + + Player player = event.getPlayer(); + + String message = event.getMessage().replace("%",""); + + // Set join message + CRank rank = CRank.JOUEUR; + boolean verifyGame = false; + int level = 0; + int trophys = 0; + + rank = main.getDataManager().getRank(player); + level = main.getDataManager().getLevel(player.getName()); + trophys = main.getDataManager().getTrophys(player.getName()); + + String msg = rank.getColor() + "" + + rank.getName() + " §r| Lvl " + + rank.getColor() + + level + + " §r- §r §e" + + trophys + + " T §r|§r " + + player.getName(); + + msg += " §7>> " + rank.getColor() + "" + message; + + event.setFormat(msg); + + } + + +} diff --git a/src/main/java/fr/gravencyg/listeners/PlayerListener.java b/src/main/java/fr/gravencyg/listeners/PlayerListener.java new file mode 100644 index 0000000..7498662 --- /dev/null +++ b/src/main/java/fr/gravencyg/listeners/PlayerListener.java @@ -0,0 +1,315 @@ +package fr.gravencyg.listeners; + +import fr.gravencyg.CYG; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.game.CYGameState; +import fr.gravencyg.utils.CEvent; +import fr.gravencyg.utils.CRank; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.*; +import org.bukkit.event.server.ServerListPingEvent; + +public class PlayerListener implements Listener { + + private CYG main; + + public PlayerListener(CYG main) { + this.main = main; + } + + @EventHandler + public void onPing(ServerListPingEvent e){ + e.setMaxPlayers(Bukkit.getOnlinePlayers().size() + 1); + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) { + + Player player = event.getPlayer(); + + // Set player to CREATIVE mode + player.setGameMode(GameMode.SURVIVAL); + + // Teleport to hub + player.teleport(main.spawnLocation); + + if(!player.isOp()) { + player.setAllowFlight(false); + player.setFlying(false); + } + + // Set Hub time to 0 + player.getWorld().setTime(0); + player.getInventory().clear(); + + // Create player file + main.getDataManager().createProfileIfNotExist(player); + + main.getDataManager().refreshLevel(player.getName()); + + // Display NPCs + main.getNpcManager().display(player); + + // Set Level + player.setLevel(main.getDataManager().getLevel(player.getName())); + + // Join title + player.sendTitle("§eGravenMC", "§6Code tes propres mini-jeux"); + + // Set join message + CRank rank = main.getDataManager().getRank(player); + + if(rank == CRank.PREMIUM || rank.isMod()) { + event.setJoinMessage(rank.getColor() + "" + rank.getName() + ChatColor.RESET + " - " + player.getName() + ChatColor.RESET + " se connecte !"); + } + else{ + event.setJoinMessage(null); + } + + player.setPlayerListName(ChatColor.YELLOW + "§r[§r" + rank.getColor() + "" + rank.getSigle() + "§r] " + player.getName()); + + // Scoreboard + main.getScoreboardManager().load(player); + } + + @EventHandler + public void onQuit(PlayerQuitEvent event) { + + Player player = event.getPlayer(); + + CRank rank = main.getDataManager().getRank(player); + + if(rank == CRank.PREMIUM || rank.isMod()) { + event.setQuitMessage(rank.getColor() + "" + rank.getName() + ChatColor.RESET + " - " + player.getName() + ChatColor.RESET + " se deconnecte !"); + } + else{ + event.setQuitMessage(null); + } + + // Scoreboard + main.getScoreboardManager().unload(player); + main.getScoreboardManager().updateTotalPlayers(); + main.getGameManager().quit(player); + + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + + if(main.getFreezeModPlayers().contains(player) || main.getFreezeGamePlayers().contains(player)) { + event.setTo(event.getFrom()); + } + + if(main.getGameManager().isPlayerInGame(player).size()!=0) + { + CYGame game = main.getGameManager().getCurrentGame(player); + if(game.isState(CYGameState.PLAYING)) + { + if(player.getLocation().getY() <= 0) { + player.teleport(new Location(player.getWorld(), 0, 20, 0)); + player.setFallDistance(20); + main.getGameManager().runEvent(CEvent.VOID, game, player); + main.getGameManager().death(player); + } + else{ + + Block bottom = player.getLocation().clone().add(0, -1, 0).getBlock(); + + if(bottom.getType() != Material.AIR) { + main.getGameManager().runBlockEvent(CEvent.WALK, game, player, bottom); + } + + } + } + + } + } + + @EventHandler + public void onDeath(PlayerDeathEvent event) + { + event.setDeathMessage(null); + + Bukkit.getScheduler().scheduleSyncDelayedTask(main, () -> { + event.getEntity().spigot().respawn(); + }, 1L); + + } + + @EventHandler + public void onItemDrop(PlayerDropItemEvent event) + { + if(event.getPlayer().getWorld().getName().equalsIgnoreCase("world")) + { + event.setCancelled(true); + } + } + + @EventHandler + public void onDamage(EntityDamageEvent event) { + Entity victim = event.getEntity(); + if(victim.getType() == EntityType.PLAYER) + { + Player victimP = (Player) victim; + if(main.getGameManager().isPlayerInGame(victimP).size()!=0) + { + + CYGame game = main.getGameManager().getCurrentGame(victimP); + + if(!game.hasStarted()) + { + event.setCancelled(true); + return; + } + + if(event.getCause() == EntityDamageEvent.DamageCause.FALL || event.getCause() == EntityDamageEvent.DamageCause.FALLING_BLOCK + && game.canDamageFall()) + { + event.setCancelled(true); + return; + } + + if(victimP.getHealth() - event.getDamage() <= 0) + { + event.setCancelled(true); + victimP.setGameMode(GameMode.SPECTATOR); + main.getGameManager().death(victimP.getPlayer()); + main.getGameManager().runEvent(CEvent.DEATH, game, victimP); + + return; + } + + + }else { + + + if (event.getCause() == EntityDamageEvent.DamageCause.VOID) { + event.setCancelled(true); + victimP.teleport(new Location(victimP.getWorld(), 0, 20, 0)); + + } + } + + if (victimP.getHealth() - event.getDamage() <= 0) { + event.setCancelled(true); + } + + } + + } + + @EventHandler + public void onCommand(PlayerCommandPreprocessEvent event) { + Player player = event.getPlayer(); + String[] args = event.getMessage().split(" "); + + if((args[0].contains("worldedit") || args[0].contains("//") ) && player.isOp()) + { + event.setCancelled(true); + } + + if(args[0].equalsIgnoreCase("/ver")) + { + event.setCancelled(true); + } + + if(args[0].equalsIgnoreCase("/tell")) + { + event.setCancelled(true); + } + + if(args[0].equalsIgnoreCase("/w")) + { + event.setCancelled(true); + } + + if(args[0].equalsIgnoreCase("?")) + { + event.setCancelled(true); + } + + if(args[0].equalsIgnoreCase("/me")) + { + event.setCancelled(true); + } + } + + @EventHandler + public void onPvP(EntityDamageByEntityEvent event) { + Entity damager = event.getDamager(); + Entity victim = event.getEntity(); + + if(damager.getType() == EntityType.ARROW) { + Player victimP = (Player) victim; + Player shooter = (Player) ((Projectile)event.getDamager()).getShooter(); + + if(main.getGameManager().isPlayerInGame(victimP).size()!=0) + { + CYGame game = main.getGameManager().getCurrentGame(victimP); + if(!game.canFight()) + { + event.setCancelled(true); + } + + if(game.sameTeam(victimP.getPlayer(), shooter) && game.hasTeamSystem()) + { + damager.sendMessage("§cVous êtes dans la même équipe !"); + event.setCancelled(true); + } + + if(victimP.getHealth() - event.getDamage() <= 0) + { + main.getGameManager().runEvent(CEvent.KILL, game, shooter); + } + } + } + + if(damager.getType() == EntityType.PLAYER && victim.getType() == EntityType.PLAYER) + { + Player victimP = (Player) victim; + if(main.getGameManager().isPlayerInGame(victimP).size()!=0) + { + CYGame game = main.getGameManager().getCurrentGame(victimP); + if(!game.canFight()) + { + event.setCancelled(true); + } + + if(game.sameTeam(victimP.getPlayer(), (Player) damager) && game.hasTeamSystem()) + { + damager.sendMessage("§cVous êtes dans la même équipe !"); + event.setCancelled(true); + } + + if(victimP.getHealth() - event.getDamage() <= 0) + { + main.getGameManager().runEvent(CEvent.KILL, game, ((Player) damager).getPlayer()); + } + } + } + + + } + + @EventHandler + public void onTeleport(PlayerTeleportEvent event){ + if (event.getCause() == PlayerTeleportEvent.TeleportCause.ENDER_PEARL && event.getPlayer().getWorld().getName().equalsIgnoreCase("world")){ + event.setCancelled(true); + } + + if (event.getPlayer().getGameMode() == GameMode.SPECTATOR && event.getCause().equals(PlayerTeleportEvent.TeleportCause.SPECTATE)) + event.setCancelled(true); + } + +} diff --git a/src/main/java/fr/gravencyg/listeners/WorldListener.java b/src/main/java/fr/gravencyg/listeners/WorldListener.java new file mode 100644 index 0000000..fcf260e --- /dev/null +++ b/src/main/java/fr/gravencyg/listeners/WorldListener.java @@ -0,0 +1,125 @@ +package fr.gravencyg.listeners; + +import fr.gravencyg.CYG; +import fr.gravencyg.menus.all.EventMenu; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.CreatureSpawner; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.*; +import org.bukkit.event.entity.*; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.weather.WeatherChangeEvent; +import org.bukkit.event.world.PortalCreateEvent; +import org.bukkit.potion.PotionEffect; + +public class WorldListener implements Listener { + + private CYG main; + + public WorldListener(CYG main) { + this.main = main; + } + + @EventHandler + public void onWeather(WeatherChangeEvent event) { + event.setCancelled(true); + } + + @EventHandler + public void onFire(BlockBurnEvent event){ + event.setCancelled(true); + } + + @EventHandler + public void onFeed(FoodLevelChangeEvent event){ + if(event.getEntity().getWorld().getName().equalsIgnoreCase("world")) { + event.setFoodLevel(20); + } + } + + @EventHandler + public void onWorldChange(PlayerChangedWorldEvent event) { + Player player = event.getPlayer(); + + if(player.getWorld().getName().equalsIgnoreCase("world")) { + main.getNpcManager().display(player); + player.setLevel(main.getDataManager().getLevel(player.getName())); + player.setHealth(20); + player.setGameMode(GameMode.SURVIVAL); + + if(main.getFreezeGamePlayers().contains(player)){ + main.getFreezeGamePlayers().remove(player); + } + + for(PotionEffect potionEffect : player.getActivePotionEffects()) + { + player.removePotionEffect(potionEffect.getType()); + } + + if(player.getName().equalsIgnoreCase("GravenYT")) { + player.setGameMode(GameMode.CREATIVE); + } + + if(!player.isOp()) { + player.setAllowFlight(false); + player.setFlying(false); + } + + } + else{ + + main.getHologramManager().registerHologram(player.getWorld()); + } + + player.getWorld().setGameRuleValue("announceAdvancements", "false"); + player.getInventory().clear(); + player.getWorld().setTime(0); + } + + @EventHandler + public void onDamage(EntityDamageEvent event) { + if(event.getEntity().getWorld().getName().equalsIgnoreCase("world")) { + event.setCancelled(true); + } + } + + @EventHandler + public void onLeafDecay(LeavesDecayEvent event){ + event.setCancelled(true); + } + + @EventHandler + public void onExplode(EntityExplodeEvent event) { + event.setCancelled(true); + } + + @EventHandler + public void onBlockDisable(BlockRedstoneEvent e) { + e.getBlock().setType(Material.AIR); + } + + @EventHandler + public void onPortal(PortalCreateEvent event) { + event.setCancelled(true); + } + + @EventHandler + public void onMonsterSpawn(CreatureSpawnEvent event) { + if(event.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM && + (event.getEntity().getType() != EntityType.PLAYER && event.getEntity().getType() != EntityType.ARMOR_STAND) + && (event.getEntity().getType() != EntityType.BOAT && event.getEntity().getType() != EntityType.WITHER) + && (event.getEntity().getType() != EntityType.ENDER_DRAGON)) + { + event.setCancelled(true); + } + } + +} \ No newline at end of file diff --git a/src/main/java/fr/gravencyg/manager/CYGCompilerManager.java b/src/main/java/fr/gravencyg/manager/CYGCompilerManager.java new file mode 100644 index 0000000..98d57c2 --- /dev/null +++ b/src/main/java/fr/gravencyg/manager/CYGCompilerManager.java @@ -0,0 +1,116 @@ +package fr.gravencyg.manager; + +import fr.gravencyg.CYG; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.utils.CEvent; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Player; + +import java.util.*; + +public class CYGCompilerManager { + + private CYG main; + public CYGCompilerManager(CYG main) { this.main = main; } + + private List processedBlocks = new ArrayList<>(); + + public void runEventByBlock(Player player, String uuid, Block block) { + // for each event of the current uuid map + for(Map.Entry e : main.getDataManager().getStorageByUUID(uuid).getPlot(player.getWorld().getName()).getEvents().entrySet()){ + // found an event + if (e.getValue().equalsIgnoreCase(LocationUtils.fromLocToString(block.getLocation()))) + { + runEvent(player, uuid, e.getKey(), true, false, player.getLocation().clone().add(0, -1, 0).getBlock(), Material.LAPIS_BLOCK); + } + } + } + + public void runEvent(Player executor, String ownerPlotUUID, String eventName, boolean unitTestMode, boolean isAffectingAllPlayers, Block blk, Material material) { + + Block startingBlock = LocationUtils.fromStringToLoc(ownerPlotUUID, main.getDataManager() + .getStorageByUUID(ownerPlotUUID) + .getPlot(executor.getWorld().getName()) + .getEvents().get(eventName)) + .getBlock(); + + if (unitTestMode) { + broadcastEvent(ownerPlotUUID, ChatColor.GRAY + "Execution de l'evenement " + ChatColor.BLUE + eventName + "()"); + } + + List players = new ArrayList<>(); + + if (isAffectingAllPlayers) { + Bukkit.getOnlinePlayers().stream().filter(p -> p.getWorld().getName().contains(ownerPlotUUID)).forEach(players::add); + } else { + players.add(executor); + } + + List processusDirection = new ArrayList<>(); + + for (BlockFace bf : BlockFace.values()) { + if (bf.equals(BlockFace.EAST) || bf.equals(BlockFace.NORTH) || bf.equals(BlockFace.WEST) || bf.equals(BlockFace.SOUTH)) { + Block b = startingBlock.getRelative(bf.getOppositeFace()); + if(b.getType() != Material.AIR) processusDirection.add(bf); + } + } + + for(BlockFace uniqueBf : processusDirection) + { + List blocks = new ArrayList<>(); + blocks.add(startingBlock); + + for(int i = 0; i < 100; i++) + { + + Block lastBlock = blocks.get(blocks.size()-1); + Block b = lastBlock.getRelative(uniqueBf.getOppositeFace()); + + if(b.getType() != Material.AIR && b.getType() != Material.LAPIS_BLOCK && !blocks.contains(b)) + { + int iterations = 1; + + if(b.getType() == Material.LEGACY_WOOD_STEP) + iterations = 10; // 1 S + + if(b.getType() == Material.LEGACY_STEP) + iterations = 100; // 10 S + + if(b.getType() == Material.LEGACY_STONE) + iterations = 600; // 10 S + + for(int f = 0; f < iterations; f++) { + blocks.add(b); + } + + } + + } + + processedBlocks.add(new ActionProcess(players, blocks, blk, material)); + + } + + } + + + + public void broadcastEvent(String ownerPlotUUID, String message) { + for(Player player : Bukkit.getOnlinePlayers()) + { + if(player.getWorld().getName().equalsIgnoreCase(ownerPlotUUID)) + { + player.getWorld().playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 9, 9); + player.sendMessage(ChatColor.RESET + "\n\n>>> " + message + ChatColor.RESET + " <<<\n\n"); + } + } + } + + public List getProcessedBlocks() { + return processedBlocks; + } + +} diff --git a/src/main/java/fr/gravencyg/manager/CYGDataManager.java b/src/main/java/fr/gravencyg/manager/CYGDataManager.java new file mode 100644 index 0000000..bd54235 --- /dev/null +++ b/src/main/java/fr/gravencyg/manager/CYGDataManager.java @@ -0,0 +1,435 @@ +package fr.gravencyg.manager; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import fr.gravencyg.CYG; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.CRank; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.io.*; +import java.lang.reflect.Type; +import java.util.*; + +public class CYGDataManager { + + private CYG main; + + private Map storages; + + public CYGDataManager(CYG main) { + this.main = main; + this.storages = new HashMap<>(); + + loadStorage(); + } + + public void loadStorage() { + File folder = new File("plugins/CYG/storage/"); + File [] files = folder.listFiles(); + for (int i = 0; i < files.length; i++){ + if (files[i].isFile()){ //this line weeds out other directories/folders + Storage storageData = (Storage) loadJson(Storage.class, files[i]); + storages.put(storageData.getDisplayName(), storageData); + } + } + + System.out.println(storages.size() + " profiles chargés"); + } + + public Storage getStorageByUUID(String name) { + String fullName = name.split("#")[0]; + for(Map.Entry storage : storages.entrySet()) + { + if (storage.getValue().getUUID().equalsIgnoreCase(fullName)) + { + return storage.getValue(); + } + } + return new Storage(); + } + + public void createProfileIfNotExist(Player player) { + + System.out.println("Create new profile for " + player.getName() + " uuid: " + player.getUniqueId().toString()); + + // create folder if not exist + File folder = new File("plugins/CYG/storage/"); + if (!folder.exists()) folder.mkdir(); + + // check if file already exist + File file = new File("plugins/CYG/storage/" + player.getUniqueId().toString() + ".json"); + + if (!file.exists()){ + Storage storage = new Storage(player); + this.storages.put(player.getName(), storage); + this.save(player); + } + + Storage storage = getStorageByUUID(player.getUniqueId().toString()); + storage.setPseudo(player); + this.save(player); + + } + + private void saveJson(Object object, Type type, File out) { + + OutputStream outputStream = null; + Gson gson = new GsonBuilder().enableComplexMapKeySerialization().setPrettyPrinting() + .create(); + try { + outputStream = new FileOutputStream(out); + BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); + + gson.toJson(object, type, bufferedWriter); + bufferedWriter.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (outputStream != null) { + try { + outputStream.flush(); + outputStream.close(); + } catch (IOException e) { + } + } + } + + } + + + private Object loadJson(Type type, File file) { + Object jsonData = null; + + InputStream inputStream = null; + Gson gson = new GsonBuilder().enableComplexMapKeySerialization().setPrettyPrinting() + .create(); + try { + inputStream = new FileInputStream(file); + InputStreamReader streamReader; + streamReader = new InputStreamReader(inputStream, "UTF-8"); + + jsonData = gson.fromJson(streamReader, type); + streamReader.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + } + } + } + return jsonData; + } + + public CRank getRank(Player player) { + CRank rank = CRank.JOUEUR; + + for(CRank r : CRank.values()) + { + if(r.name().toLowerCase().equalsIgnoreCase(storages.get(player.getName()).getRank())) + { + rank = r; + } + } + + return rank; + } + + public void addLocation(Player player, String name, Location location) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + if(playerStorage.getPlot(player.getWorld().getName()).checkLocationExist(name)) { + player.sendMessage("\n\nZone §e"+name+"§r éxistante ! Tape /locations remove §e"+name+"§e\n\n"); + return; + } + + playerStorage.getPlot(player.getWorld().getName()).addLocation( + name, + LocationUtils.fromLocToStringComplete(location) + ); + } + save(player); + player.sendMessage("\n\nNouvelle zone §e[§r"+name+"§e] §aajoutée§r en " + LocationUtils.fromLocToString2(location)); + + } + + public void addMessage(Player player, String name, String messageContent) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + if(playerStorage.getPlot(player.getWorld().getName()).checkMessages(name)) { + player.sendMessage("\n\nMessage §e"+name+"§r éxistant ! Tape /messages remove §e"+name+"§e\n\n"); + return; + } + + playerStorage.getPlot(player.getWorld().getName()).addMessage( + name, + messageContent + ); + } + save(player); + player.sendMessage("\n\nNouveau message §e[§r"+name+"§e] §aajoutée§r ! \n§r" + messageContent.replace("&","§")); + + } + + + public void addLocationSet(Player player, Location location, String locName) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + playerStorage.getPlot(player.getWorld().getName()).addLocationSet(LocationUtils.fromLocToString(location), locName); + } + save(player); + } + + public void addLocationSet(String ownerUUID, Location location, String locName) { + Storage playerStorage = getStorageByUUID(ownerUUID); + if(playerStorage.getPlot(location.getWorld().getName()) != null) { + playerStorage.getPlot(location.getWorld().getName()).addLocationSet(LocationUtils.fromLocToString(location), locName); + } + save(playerStorage.getDisplayName(), ownerUUID); + + } + + public void addMessageSet(Player player, Location location, String message) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + playerStorage.getPlot(player.getWorld().getName()).addMessageSet(LocationUtils.fromLocToString(location), message); + } + save(player); + + } + + public void addMessageSet(String string, Location location, String message) { + Storage playerStorage = getStorageByUUID(string); + if(playerStorage.getPlot(location.getWorld().getName()) != null) { + playerStorage.getPlot(location.getWorld().getName()).addMessageSet(LocationUtils.fromLocToString(location), message); + } + save(playerStorage.getDisplayName(), string); + + } + + public void removeLocation(Player player, String locationName) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + if(!playerStorage.getPlot(player.getWorld().getName()).checkLocationExist(locationName)) { + player.sendMessage("\n\nZone §e"+locationName+"§r inéxistante"); + return; + } + + playerStorage.getPlot(player.getWorld().getName()).removeLocation(locationName); + } + save(player); + player.sendMessage("\n\nSuppression de la zone §c[§r"+locationName+"§c] !"); + + } + + public void removeMessage(Player player, String messageName) { + Storage playerStorage = storages.get(player.getName()); + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + if(!playerStorage.getPlot(player.getWorld().getName()).checkMessages(messageName)) { + player.sendMessage("\n\nMessage §e"+messageName+"§r inéxistant"); + return; + } + + playerStorage.getPlot(player.getWorld().getName()).removeMessage(messageName); + } + save(player); + player.sendMessage("\n\nSuppression du message §c[§r"+messageName+"§c] !"); + + } + + public void removeAllLocations(Player player) { + Storage playerStorage = storages.get(player.getName()); + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + playerStorage.getPlot(player.getWorld().getName()).getLocationsSet().clear(); + playerStorage.getPlot(player.getWorld().getName()).getLocations().clear(); + } + save(player); + player.sendMessage("\n\n§9Toutes les locations ont été supprimées !"); + + } + + public void removeAllMessages(Player player) { + Storage playerStorage = storages.get(player.getName()); + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + playerStorage.getPlot(player.getWorld().getName()).getMessageSet().clear(); + playerStorage.getPlot(player.getWorld().getName()).getMessages().clear(); + } + save(player); + player.sendMessage("\n\n§9Tout les messages ont été supprimés !"); + + } + + public void updateEvent(Player player, String key, String value) { + getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()).updateEvent(key, value); + save(player); + } + + public void removeEvent(Player player, Block block) { + List eventToRemove = new ArrayList<>(); + + for (Map.Entry event : storages.get(player.getName()).getPlot(player.getWorld().getName()).getEvents().entrySet()) { + if (event.getValue().equalsIgnoreCase(LocationUtils.fromLocToString(block.getLocation()))) + { + player.sendMessage(ChatColor.GRAY+"Evenement " + ChatColor.BLUE+ event.getKey() + "()" + ChatColor.BLUE +" supprimé§r du bloc en " +LocationUtils.fromLocToString(block.getLocation())); + eventToRemove.add(event.getKey()); + + main.getHologramManager().removeHologram(block); + storages.get(player.getName()).getPlot(player.getWorld().getName()).removeEvent(event.getKey()); + } + } + + eventToRemove.forEach(storages.get(player.getName()).getPlot(player.getWorld().getName()).getEvents()::remove); + } + + public void removeEvent(Player player, String uuid, Block block) { + List eventToRemove = new ArrayList<>(); + + for (Map.Entry event : getStorageByUUID(uuid).getPlot(player.getWorld().getName()).getEvents().entrySet()) { + if (event.getValue().equalsIgnoreCase(LocationUtils.fromLocToString(block.getLocation()))) + { + player.sendMessage(ChatColor.GRAY+"Evenement " + ChatColor.BLUE+ event.getKey() + "()" + ChatColor.BLUE +" supprimé§r du bloc en " +LocationUtils.fromLocToString(block.getLocation())); + eventToRemove.add(event.getKey()); + + main.getHologramManager().removeHologram(block); + getStorageByUUID(uuid).getPlot(player.getWorld().getName()).removeEvent(event.getKey()); + } + } + + eventToRemove.forEach(storages.get(player.getName()).getPlot(player.getWorld().getName()).getEvents()::remove); + } + + public void save(Player player) { + File file = new File("plugins/CYG/storage/" + player.getUniqueId().toString() + ".json"); + saveJson(storages.get(player.getName()), Storage.class, file); + } + + + public void save(String name, String uuid) { + File file = new File("plugins/CYG/storage/" + uuid + ".json"); + saveJson(storages.get(name), Storage.class, file); + } + + + public Map getStorages() { + return storages; + } + + public Plot getPlotFromWorldLocationOf(Player player) { + Plot plot = new Plot(player); + + for (Map.Entry storage : storages.entrySet()) { + if(player.getWorld().getName().contains(storage.getValue().getUUID())) + { + return storage.getValue().getPlot(player.getWorld().getName()); + } + } + + return plot; + } + + public int getLevel(String name) { + return getStorages().get(name).getLevel(); + } + + public int getTrophys(String name) { + return getStorages().get(name).getTrophys(); + } + + public GameConfig getConfig(String name) { return getStorages().get(name).getConfig(name); } + + + public void setSpawn(Player player) { + storages.get(player.getName()).getPlot(player.getWorld().getName()).setSpawn(LocationUtils.fromLocToStringComplete(player.getLocation())); + save(player); + } + + public void setGameName(Player player, String gameName) { + storages.get(player.getName()).getPlot(player.getWorld().getName()).getConfig().setName(gameName); + save(player); + } + + public void setCode(Player player) { + storages.get(player.getName()).getPlot(player.getWorld().getName()).setCode(LocationUtils.fromLocToStringComplete(player.getLocation())); + save(player); + } + + public void addTrophy(Player player, int amount) { + Storage storage = storages.get(player.getName()); + storage.addTrophy(amount); + save(player); + refreshLevel(player.getName()); + } + + public void setLevel(String pseudo, String newLevel) { + int newLevelI = Integer.parseInt(newLevel); + int trophys = CLevel.values()[newLevelI-1].getTrophy(); + + Storage storage = storages.get(pseudo); + storage.setTrophy(trophys); + + refreshLevel(pseudo); + } + + public int getBorderSize(Player player) { + return CLevel.findLevelByTrophy(getTrophys(player.getName())).getPlotSize().getBorderSize(); + } + + public int getMaxPlotPerPlayer(Player player) { + CRank rank = getRank(player); + int level = getLevel(player.getName()); + int maxPlots = 1; + + System.out.println(level); + if(level >= 10) maxPlots = 2; + if(rank == CRank.PREMIUM || rank.isMod()) maxPlots = 3; + + return maxPlots; + } + + public void refreshLevel(String pseudo) { + Storage storage = storages.get(pseudo); + int trophys = storage.getTrophys(); + CLevel lvl = CLevel.findLevelByTrophy(trophys); + + storage.setLevel(lvl.getRealLevel()); + save(pseudo, main.getDataManager().getStorages().get(pseudo).getUUID()); + + if(Bukkit.getPlayer(pseudo) != null) { + Player player = Bukkit.getPlayer(pseudo); + main.getScoreboardManager().updatePlayerLevel(player); + main.getScoreboardManager().updatePlayerTrophy(player); + } + } + + public Location getSpawn(Player player) { return storages.get(player.getName()).getPlot(player.getWorld().getName()).getSpawn(player.getUniqueId().toString()); } + + public Location getSpawn(String name, String uuid) { return storages.get(name).getPlot(uuid).getSpawn(uuid); } + + public Location getCode(Player player) { return storages.get(player.getName()).getPlot(player.getWorld().getName()).getCode(player.getUniqueId().toString()); } + + + +} diff --git a/src/main/java/fr/gravencyg/manager/CYGHologramManager.java b/src/main/java/fr/gravencyg/manager/CYGHologramManager.java new file mode 100644 index 0000000..e0f3dc0 --- /dev/null +++ b/src/main/java/fr/gravencyg/manager/CYGHologramManager.java @@ -0,0 +1,101 @@ +package fr.gravencyg.manager; + +import fr.gravencyg.CYG; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.EntityType; + +import java.util.HashMap; +import java.util.Map; + +public class CYGHologramManager { + + private CYG main; + + public CYGHologramManager(CYG main) { this.main = main; } + + private Map holograms = new HashMap<>(); + + public void registerHologram(World world) { + + Storage targetStorage = main.getDataManager().getStorageByUUID(world.getName()); + + if(targetStorage != null && targetStorage.getPlot(world.getName()) != null) + { + for (Map.Entry e: targetStorage.getPlot(world.getName()).getEvents().entrySet()) { + Location loc = LocationUtils.fromStringToLoc(world.getName(), e.getValue()); + if(!holograms.containsKey(loc)) { + loc.getBlock().setType(Material.LAPIS_BLOCK); + registerEventHologram(loc, e.getKey()); + } + + } + } + } + + public ArmorStand registerHologram(Location loc, String text) { + + Location location = new Location(loc.getWorld(), loc.getX(), loc.getY() + 0.3, loc.getZ(), loc.getYaw(), loc.getPitch()); + ArmorStand stand = (ArmorStand) loc.getWorld().spawnEntity(location, EntityType.ARMOR_STAND); + + stand.setCustomName(text); + stand.setCustomNameVisible(true); + stand.setSmall(false); + stand.setGravity(false); + stand.setVisible(false); + + // register hologram + holograms.put(loc, stand); + return stand; + } + + public ArmorStand registerBoxCollider(Location loc, String text) { + + Location location = new Location(loc.getWorld(), loc.getX(), loc.getY() + 0.1, loc.getZ(), loc.getYaw(), loc.getPitch()); + ArmorStand stand = (ArmorStand) loc.getWorld().spawnEntity(location, EntityType.ARMOR_STAND); + + stand.setCustomName(text); + stand.setCustomNameVisible(false); + stand.setSmall(false); + stand.setGravity(false); + stand.setVisible(false); + + // register hologram + holograms.put(loc, stand); + return stand; + } + + public ArmorStand registerEventHologram(Location loc, String eventName) { + + Location location = new Location(loc.getWorld(), loc.getX() + 0.5, loc.getY() + 1, loc.getZ() + 0.5, loc.getYaw(), loc.getPitch()); + ArmorStand stand = (ArmorStand) loc.getWorld().spawnEntity(location, EntityType.ARMOR_STAND); + + stand.setCustomName(ChatColor.BLUE + eventName + "()"); + stand.setCustomNameVisible(true); + stand.setSmall(true); + stand.setGravity(false); + stand.setVisible(false); + + // register hologram + holograms.put(loc, stand); + return stand; + } + + public void removeHologram(Block block) { + if (holograms.containsKey(block.getLocation())) { + ArmorStand stand = holograms.get(block.getLocation()); + stand.remove(); + } + } + + public void removeAllHolograms() { + for(Map.Entry stands : holograms.entrySet()) { + removeHologram(stands.getKey().getBlock()); + } + } + + +} diff --git a/src/main/java/fr/gravencyg/manager/CYGPlotManager.java b/src/main/java/fr/gravencyg/manager/CYGPlotManager.java new file mode 100644 index 0000000..c4b5c02 --- /dev/null +++ b/src/main/java/fr/gravencyg/manager/CYGPlotManager.java @@ -0,0 +1,113 @@ +package fr.gravencyg.manager; + +import fr.gravencyg.CYG; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.CRank; +import org.bukkit.*; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Map; + +public class CYGPlotManager { + + private CYG main; + private CYGDataManager dataManager; + + public CYGPlotManager(CYG main){ + this.main = main; + this.dataManager = main.getDataManager(); + } + + public void createPlot(Player player, int index) { + List playerPlot = getPlotsByPlayer(player); + int maxPlotPerPlayer = 3; + + if(playerPlot.size() < maxPlotPerPlayer) { + getStorageByPlayer(player).createPlot(player); + + player.sendMessage(ChatColor.GOLD + "Création d'une parcelle..."); + createWorld(player, index); + + dataManager.save(player); + } + else{ + player.sendMessage(ChatColor.GOLD + "Vous ne pouvez pas créer plus de §e" + maxPlotPerPlayer + "§r parcelles.."); + + } + } + + public void createWorld(Player player, int index){ + WorldCreator worldCreator = new WorldCreator(player.getUniqueId().toString() + "_" + index); + worldCreator.type(WorldType.FLAT); + worldCreator.generateStructures(false); + + World playerWorld = Bukkit.createWorld(worldCreator); + WorldBorder worldBorder = playerWorld.getWorldBorder(); + int borderSize = main.getDataManager().getBorderSize(player); + + if (borderSize != worldBorder.getSize() && !player.isOp()) { + worldBorder.setCenter(new Location(playerWorld, 0, 0, 0)); + worldBorder.setSize(borderSize); + } + + teleportPlayer(player, player.getUniqueId().toString(), index); + } + + public boolean isPlotExist(String ownerUUID, int index){ + return getStorageByUUID(ownerUUID).getPlots().size() != index; + } + + public void teleportPlayer(Player player, String ownerPlotUUId, int index) { + player.sendMessage("§eTéléportation vers le plot n°" + (index+1)); + + WorldCreator worldCreator = new WorldCreator(player.getUniqueId().toString() + "_" + index); + World playerWorld = Bukkit.createWorld(worldCreator); + worldCreator.type(WorldType.FLAT); + worldCreator.generateStructures(false); + + Bukkit.getScheduler().runTaskLater(main, () -> { + player.teleport(new Location(playerWorld, 0, 20, 0)); + player.setGameMode(GameMode.CREATIVE); + + // apply worldborder + WorldBorder worldBorder = player.getWorld().getWorldBorder(); + int borderSize = main.getDataManager().getBorderSize(player); + + if (borderSize != worldBorder.getSize()) { + worldBorder.setCenter(new Location(player.getWorld(), 0, 0, 0)); + worldBorder.setSize(borderSize); + } + + }, 100); + } + + public Storage getStorageByUUID(String name) { + for(Map.Entry storage : dataManager.getStorages().entrySet()) + { + if (name.contains(storage.getValue().getUUID())) + { + return storage.getValue(); + } + } + return new Storage(); + } + + public Storage getStorageByPlayer(Player player){ + return dataManager.getStorages().get(player.getName()); + } + + public List getPlotsByPlayer(Player player){ + return getStorageByPlayer(player).getPlots(); + } + + public String getGameNameFromPlot(Player player, int i) { + if(getStorageByUUID(player.getUniqueId().toString()).getPlots().size() -1 >= i) + { + return getStorageByUUID(player.getUniqueId().toString()).getPlots().get(i).getName(); + } + return "§7Aucun jeu pour le moment"; + } +} diff --git a/src/main/java/fr/gravencyg/manager/CYGWorleditManager.java b/src/main/java/fr/gravencyg/manager/CYGWorleditManager.java new file mode 100644 index 0000000..c8610c2 --- /dev/null +++ b/src/main/java/fr/gravencyg/manager/CYGWorleditManager.java @@ -0,0 +1,164 @@ +package fr.gravencyg.manager; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.model.MaterialAndData; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.*; +import org.bukkit.entity.Player; + +import java.util.*; + +public class CYGWorleditManager { + + private CYG main; + + private Map points = new HashMap<>(); + private Map> lastAction = new HashMap<>(); + + private HashMap materials = new HashMap<>(); + + public CYGWorleditManager(CYG main) + { + this.main = main; + + for(Material material : Material.values()) + { + materials.put(material.name().toLowerCase(), material); + } + } + + public void give(Player player) + { + player.playSound(player.getLocation(), Sound.BLOCK_ANVIL_USE, 3, 3); + player.getInventory().addItem(new ItemBuilder(Material.GOLDEN_HOE, 1) + .setName("§eMini Worledit") + .addLoreLine("§7Clic droit/Clic Gauche") + .addLoreLine("-> ").toItemStack()); + } + + public void setPoint(Player player, Location point) + { + if(!points.containsKey(player)) + { + points.put(player, new Location[]{ point, point}); + point.getBlock().setType(Material.GLASS); + player.sendMessage("§7[§eMiniWE§7]§r " + LocationUtils.fromLocToString2(point) + " est le 1er point !"); + return; + } + + Location[] locations = points.get(player); + locations[1] = point; + point.getBlock().setType(Material.GLASS); + + player.sendMessage("§7[§eMiniWE§7]§r " + LocationUtils.fromLocToString2(point) + " est le 2eme point !"); + + } + public void set(Player player, String name) { + set(player, name, 0); + } + + public void set(Player player, String name, int id) { + + if(!points.containsKey(player)) + { + player.sendMessage("§7[§eMiniWE§7]§r Aucun point n'a été placé ! "); + return; + } + + if(!materials.containsKey(name)) + { + player.sendMessage("§7[§eMiniWE§7]§r Le materiel "+name.toUpperCase()+" n'existe pas ! "); + return; + } + + Location[] locs = points.get(player); + Location corner1 = locs[0]; + Location corner2 = locs[1]; + Map blocks = getBlocks(corner1, corner2); + + if(blocks.size() > 15000) + { + player.sendMessage("§7[§eMiniWE§7]§r Attention la limite est de 15000 blocs ! (§c15000<"+blocks.size()+"§r)"); + return; + } + + for(Map.Entry b : blocks.entrySet()) { + b.getKey().getBlock().setType(materials.get(name.toLowerCase())); + //b.getKey().getBlock().setData((byte) id); + } + + player.playSound(player.getLocation(), Sound.BLOCK_ANVIL_USE, 2, 8); + player.sendMessage("§7[§eMiniWE§7]§r Et voila ! Pas content ? /we undo "); + + + points.remove(player); + + lastAction.put(player, blocks); + + } + + public void undo(Player player) { + + if(!lastAction.containsKey(player)) + { + player.sendMessage("§7[§eMiniWE§7]§r Il n'y aucune dernière action ! "); + return; + } + + for(Map.Entry b: lastAction.get(player).entrySet()) + { + b.getKey().getBlock().setType(b.getValue().getMaterial()); + //b.getKey().getBlock().setData(b.getValue().getData()); + } + + player.sendMessage("§7[§eMiniWE§7]§r On reviens au départ "); + player.playSound(player.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 2, 8); + + lastAction.remove(player); + + } + + public void unset(Player player) { + + if(!points.containsKey(player)) + { + player.sendMessage("§7[§eMiniWE§7]§r Il n'y aucune selection ! "); + return; + } + + player.sendMessage("§7[§eMiniWE§7]§r Suppression de la selection "); + player.playSound(player.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 2, 8); + + Location[] loc = points.get(player); + loc[0].getBlock().breakNaturally(); + loc[1].getBlock().breakNaturally(); + + points.clear(); + } + + public Map getBlocks(Location corner1, Location corner2){ + Map yourBlocks = new HashMap<>(); + + int topBlockX = Math.max(corner1.getBlockX(), corner2.getBlockX()); + int topBlockY = Math.max(corner1.getBlockY(), corner2.getBlockY()); + int topBlockZ = Math.max(corner1.getBlockZ(), corner2.getBlockZ()); + int bottomBlockX = Math.min(corner1.getBlockX(), corner2.getBlockX()); + int bottomBlockY = Math.min(corner1.getBlockY(), corner2.getBlockY()); + int bottomBlockZ = Math.min(corner1.getBlockZ(), corner2.getBlockZ()); + for (int x = bottomBlockX; x <= topBlockX; x++) { + for (int y = bottomBlockY; y <= topBlockY; y++) { + for (int z = bottomBlockZ; z <= topBlockZ; z++) { + Location loc = new Location(corner1.getWorld(), x, y, z); + yourBlocks.put(loc, new MaterialAndData(loc.getBlock().getType(), loc.getBlock().getData())); + } + } + } + + return yourBlocks; + } + + + + +} diff --git a/src/main/java/fr/gravencyg/menus/CustomMenuManager.java b/src/main/java/fr/gravencyg/menus/CustomMenuManager.java new file mode 100644 index 0000000..1d4760b --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/CustomMenuManager.java @@ -0,0 +1,101 @@ +package fr.gravencyg.menus; + +import fr.gravencyg.CYG; +import fr.gravencyg.menus.all.*; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.menus.locations.LocationMenu; +import fr.gravencyg.menus.locations.LocationSelectMenu; +import fr.gravencyg.menus.messages.MessageMenu; +import fr.gravencyg.menus.messages.MessageSelectMenu; +import fr.gravencyg.menus.options.*; +import fr.gravencyg.menus.plot.PlayPlayerMenu; +import fr.gravencyg.menus.plot.PlotManageMenu; +import fr.gravencyg.menus.plot.PlotMenu; +import fr.gravencyg.menus.variables.VariableMenu; +import fr.gravencyg.menus.variables.VariableSelectMenu; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; + +import java.util.HashMap; +import java.util.Map; + +public class CustomMenuManager { + + public Map, CustomMenu> registeredMenus = new HashMap<>(); + + private Map inventoryPageSystem = new HashMap<>(); + + public CustomMenuManager(CYG main) { + // registerer Inventories + addMenu(new ActionMenu(main)); + addMenu(new EventMenu(main)); + addMenu(new LocationSelectMenu(main)); + addMenu(new LocationMenu(main)); + addMenu(new MessageMenu(main)); + addMenu(new PlayMenu(main)); + addMenu(new MessageSelectMenu(main)); + addMenu(new UpgradeMenu(main)); + + addMenu(new OptionMenu(main)); + addMenu(new OptionAutostartMenu(main)); + addMenu(new OptionStartingTimeMenu(main)); + addMenu(new OptionWhitelistMenu(main)); + addMenu(new OptionMaxPlayersMenu(main)); + addMenu(new OptionLifeMenu(main)); + + addMenu(new GameModeMenu(main)); + addMenu(new VariableMenu(main)); + addMenu(new VariableSelectMenu(main)); + addMenu(new PlotMenu(main)); + addMenu(new PlotManageMenu(main)); + addMenu(new PlotMenu(main)); + addMenu(new PlayPlayerMenu(main)); + + } + + public void addMenu(CustomMenu m){ + this.registeredMenus.put(m.getClass(), m); + } + + public void open(Player player, Class gClass){ + + if(!this.registeredMenus.containsKey(gClass)) return; + + if(!inventoryPageSystem.containsKey(player)) { + inventoryPageSystem.put(player, 0); + } + + CustomMenu menu = this.registeredMenus.get(gClass); + Inventory inv = Bukkit.createInventory(null, menu.getSize(), menu.name()); + menu.contents(player, inv); + player.openInventory(inv); + + } + + public void nextPage(Player player){ + if(inventoryPageSystem.containsKey(player)) { + inventoryPageSystem.put(player, inventoryPageSystem.get(player) + 1); + } + } + + public void previousPage(Player player){ + if(inventoryPageSystem.containsKey(player)) { + inventoryPageSystem.put(player, inventoryPageSystem.get(player) - 1); + } + } + + public int getCurrentPage(Player player){ + if(inventoryPageSystem.containsKey(player)) { + return inventoryPageSystem.get(player); + } + return 0; + } + + public void backToStart(Player player) { + if(inventoryPageSystem.containsKey(player)) { + inventoryPageSystem.remove(player); + } + } + +} diff --git a/src/main/java/fr/gravencyg/menus/all/ActionMenu.java b/src/main/java/fr/gravencyg/menus/all/ActionMenu.java new file mode 100644 index 0000000..6623a1e --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/all/ActionMenu.java @@ -0,0 +1,92 @@ +package fr.gravencyg.menus.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Map; + +public class ActionMenu implements CustomMenu { + + private CYG main; + + public ActionMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Actions Menu"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.setItem(0, new ItemBuilder(Material.LAPIS_BLOCK).setName(ChatColor.BLUE+"onEvent()") + .addLoreLine("§7Declenche un évenement durant le jeu").toItemStack()); + + int count = 1; + + for(Map.Entry action : main.getActionBlocks().getActions().entrySet()) { + + Material material = action.getKey(); + + if(material == Material.BREWING_STAND) material = Material.BREWING_STAND; + + if(action.getValue().getRequireLevel().getRealLevel() > main.getDataManager().getLevel(player.getName())) + { + inv.setItem(action.getValue().getSlot(), new ItemBuilder(Material.COAL_BLOCK) + .setName("§c" + action.getValue().title()) + .addLoreLine(action.getValue().lore()) + .addLoreLine("§cVous devez être §nniveau "+action.getValue().getRequireLevel().getRealLevel()+"§r§c !") + .toItemStack()); + } + else { + + inv.setItem(action.getValue().getSlot(), new ItemBuilder(material) + .setName(action.getValue().title()) + .addLoreLine(action.getValue().lore()) + .toItemStack()); + } + + count += 1; + } + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if (current != null && current.getType() != Material.AIR) + { + + if(current.getType() == Material.COAL_BLOCK) + { + player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 3, 8); + return; + } + + if(current.getType() == Material.WHITE_WOOL) + { + player.getInventory().addItem(new ItemBuilder(Material.BLUE_WOOL, 1, (byte)11).setName("§9Equipe Bleu").toItemStack()); + player.getInventory().addItem(new ItemBuilder(Material.RED_WOOL, 1, (byte)14).setName("§cEquipe Rouge").toItemStack()); + return; + } + + if(current.hasItemMeta() && current.getItemMeta().hasLore()) { + + player.getInventory().addItem(new ItemBuilder(current.getType(), 1) + .setName(current.getItemMeta().getDisplayName()).toItemStack()); + } + } + } + + @Override + public int getSize() { return 54; } +} diff --git a/src/main/java/fr/gravencyg/menus/all/EventMenu.java b/src/main/java/fr/gravencyg/menus/all/EventMenu.java new file mode 100644 index 0000000..2edcfc2 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/all/EventMenu.java @@ -0,0 +1,155 @@ +package fr.gravencyg.menus.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.manager.CYGHologramManager; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.CEvent; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Map; + +public class EventMenu implements CustomMenu { + + private CYG main; + + public EventMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Choisir un évenement"; + } + + @Override + public void contents(Player player, Inventory inv) { + + int i = 0; + + for(CEvent event : CEvent.values()) { + + boolean applyMetaSkull = false; + boolean applyEnchant = false; + + // get selected event name to apply enchantment + if(main.getEventBlockCache().containsKey(player)) { + Plot plot = main.getDataManager().getStorageByUUID(player.getWorld().getName()).getPlot(player.getWorld().getName()); + if(plot.getEvents().containsKey(event.getEventName())) + { + Block selectedBlockInCache = main.getEventBlockCache().get(player); + + if(plot.getEvents().get(event.getEventName()).equals(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))){ + applyEnchant = true; + } + } + + } + + if(i == 0) applyMetaSkull = true; + + inv.setItem(i, getEventBlock(event.getMaterial(), event.getEventName(), event.getDescription(), applyEnchant, applyMetaSkull)); + + i += 1; + } + + inv.setItem(26, new ItemBuilder(Material.COMPASS) + .setName(ChatColor.BLUE + "Démarrer le code") + .addLoreLine(ChatColor.GRAY + "Cliquez ici pour tester votre code").toItemStack()); + + + } + + public ItemStack getEventBlock(Material material, String eventName, String description, boolean applyEnchant, boolean applyMetaSkull) { + + byte data = 0; + + if(applyMetaSkull) data = 3; + + ItemBuilder itemBuilder = new ItemBuilder(material, 1, data) + .setName(ChatColor.BLUE + eventName + "()") + .addLoreLine(ChatColor.GRAY + description); + + if(applyEnchant) + itemBuilder.addEnchant(Enchantment.DURABILITY, 10); + + return itemBuilder.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if (current != null && main.getEventBlockCache().containsKey(player)) + { + Block selectedBlockInCache = main.getEventBlockCache().get(player); + + if(current.getType() == null) return; + + if(slot < CEvent.values().length) { + + player.closeInventory(); + + CEvent event = CEvent.values()[slot]; + Storage storage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + Plot plot = storage.getPlot(player.getWorld().getName()); + + // event already exist + if(plot.getEvents().containsValue(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))); + { + for(Map.Entry e: plot.getEvents().entrySet()) + { + if(e.getValue().equals(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))) + { + main.getDataManager().removeEvent(player, player.getWorld().getName(), selectedBlockInCache); + } + } + } + + // event already exist + if(plot.getEvents().containsKey(event.getEventName())) + { + String eve = plot.getEvents().get(event.getEventName()); + Block block = LocationUtils.fromStringToLoc(storage.getUUID(), eve).getBlock(); + main.getDataManager().removeEvent(player, block); + main.getDataManager().save(player); + + CYGHologramManager hologramManager = main.getHologramManager(); + hologramManager.removeHologram(block); + } + + player.sendMessage(ChatColor.GRAY + "Evenement " + ChatColor.BLUE + event.getEventName() + ChatColor.GRAY + " placé !"); + updateEvent(player, event.getEventName(), selectedBlockInCache.getLocation()); + + } + + if(current.getType() == Material.COMPASS) + { + player.closeInventory(); + + main.getCompilerManager().runEventByBlock(player, player.getWorld().getName(), selectedBlockInCache); + } + + } + } + + private void updateEvent(Player player, String event, Location blockLocation) { + main.getDataManager().updateEvent(player, event, LocationUtils.fromLocToString(blockLocation)); + + CYGHologramManager hologramManager = main.getHologramManager(); + hologramManager.removeHologram(blockLocation.getBlock()); + hologramManager.registerEventHologram(blockLocation, event); + } + + @Override + public int getSize() { return 27; } +} diff --git a/src/main/java/fr/gravencyg/menus/all/GameModeMenu.java b/src/main/java/fr/gravencyg/menus/all/GameModeMenu.java new file mode 100644 index 0000000..1d0b19b --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/all/GameModeMenu.java @@ -0,0 +1,58 @@ +package fr.gravencyg.menus.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Map; + +public class GameModeMenu implements CustomMenu { + + private CYG main; + + public GameModeMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "GameMode Menu"; + } + + @Override + public void contents(Player player, Inventory inv) { + inv.setItem(1, new ItemBuilder(Material.GRASS, 1).setName("§aSurvie").toItemStack()); + inv.setItem(3, new ItemBuilder(Material.DIRT, 1).setName("§aAventure").toItemStack()); + inv.setItem(5, new ItemBuilder(Material.GOLD_BLOCK, 1).setName("§aCréatif").toItemStack()); + inv.setItem(7, new ItemBuilder(Material.DIAMOND_BLOCK, 1).setName("§aSpectateur").toItemStack()); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if (current != null && current.getType() != Material.AIR) + { + player.closeInventory(); + player.playSound(player.getLocation(), Sound.AMBIENT_CAVE, 7, 6); + switch (current.getType()) + { + case GRASS: player.setGameMode(GameMode.SURVIVAL); break; + case DIRT: player.setGameMode(GameMode.ADVENTURE); break; + case GOLD_BLOCK: player.setGameMode(GameMode.CREATIVE); break; + case DIAMOND_BLOCK: player.setGameMode(GameMode.SPECTATOR); break; + + default: break; + } + } + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/all/PlayMenu.java b/src/main/java/fr/gravencyg/menus/all/PlayMenu.java new file mode 100644 index 0000000..24a6cf6 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/all/PlayMenu.java @@ -0,0 +1,69 @@ +package fr.gravencyg.menus.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.model.VerifyGameConfig; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Map; + +public class PlayMenu implements CustomMenu { + + private CYG main; + + public PlayMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Jouer"; + } + + @Override + public void contents(Player player, Inventory inv) { + for(Map.Entry st: main.getGameManager().getVerifyGames().entrySet()) + { + Storage storage = st.getValue(); + int id = 0; + for(Plot plot : storage.getPlots()) + { + VerifyGameConfig verifyGameConfig = plot.getVerifyConfig(); + String state = "En Attente"; + + if(verifyGameConfig.isVerify()) { + + inv.setItem(verifyGameConfig.getSlot(), + new ItemBuilder(verifyGameConfig.getMaterial(), 1) + .setName("§e" + plot.getName() + "§7 by " + storage.getDisplayName()) + .addLoreLine("§eStatus : " + state) + .addLoreLine("/play " + storage.getDisplayName() + " " + id) + .toItemStack() + ); + } + id ++; + } + } + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(main.getGameManager().getVerifyGames().containsKey(slot)) + { + player.closeInventory(); + player.chat(current.getItemMeta().getLore().get(1)); + } + } + + @Override + public int getSize() { return 54; } +} diff --git a/src/main/java/fr/gravencyg/menus/all/UpgradeMenu.java b/src/main/java/fr/gravencyg/menus/all/UpgradeMenu.java new file mode 100644 index 0000000..300523c --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/all/UpgradeMenu.java @@ -0,0 +1,111 @@ +package fr.gravencyg.menus.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.utils.CLevel; +import fr.gravencyg.utils.PlotSize; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class UpgradeMenu implements CustomMenu { + + private CYG main; + + public UpgradeMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Améliorer"; + } + + @Override + public void contents(Player player, Inventory inv) { + + int[] graySlot = {9, 10, 11, 12, 13, 14, 15, 16, 28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 50, 51, 52}; + int[] level = {0, 1, 2, 3, 4, 5, 6, 7, 8, 17, 26, 25, 24, 23, 22, 21, 20, 19, 18, 27, 36, 37, 38, 39, 40, 41, 42, 43, 44, 53}; + + for(int gray : graySlot) + { + inv.setItem(gray, new ItemBuilder(Material.BLACK_STAINED_GLASS, 1, (byte)7).setName(" ").toItemStack()); + } + + int count = 1; + + int playerLevel = main.getDataManager().getLevel(player.getName()); + + for(int lvl : level) + { + Material material; + String name = ""; + byte data = 0; + + if(count <= playerLevel) + { + material = Material.GREEN_STAINED_GLASS; + name = "Niveau §9" + count + " §7[§eUNLOCKED§7]"; + data = 13; + } + else + { + name = "Niveau §9" + count + " §7[§cLOCKED§7]"; + material = Material.COAL_BLOCK; + } + + ItemBuilder item = new ItemBuilder(material, count, data).setName(name); + CLevel completeLevel = CLevel.values()[count-1]; + PlotSize plotSize = completeLevel.getPlotSize(); + + item.addLoreLine(""); + + if(plotSize != PlotSize.NONE) { + item.addLoreLine("§eParcelle " + plotSize.getName() + " : " + plotSize.getBorderSize() + " x " + plotSize.getBorderSize()); + item.addLoreLine(""); + } + + if(completeLevel.getCommands().size() != 0) { + item.addLoreLine("§fLes Commandes:"); + item.addLoreLine(""); + for (String lore : completeLevel.getCommands()) { + item.addLoreLine("§f" + lore); + } + } + + if(completeLevel.getLoreActions().size() != 0) { + item.addLoreLine(""); + item.addLoreLine("§fLes Blocs:"); + item.addLoreLine(""); + + for (String action : completeLevel.getLoreActions()) { + item.addLoreLine("§f" + action); + } + } + + item.addLoreLine(""); + item.addLoreLine("§f>> "+ completeLevel.getTrophy() +" §etrophés requis §f<<"); + + inv.setItem(lvl, item.toItemStack()); + count += 1; + } + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(current.getType() == Material.COAL_BLOCK) + { + player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 2, 7); + } + if(current.getType() == Material.BLACK_STAINED_GLASS) + { + player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_YES, 2, 7); + } + } + + @Override + public int getSize() { return 54; } +} diff --git a/src/main/java/fr/gravencyg/menus/core/CustomMenu.java b/src/main/java/fr/gravencyg/menus/core/CustomMenu.java new file mode 100644 index 0000000..8f56194 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/core/CustomMenu.java @@ -0,0 +1,17 @@ +package fr.gravencyg.menus.core; + +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public interface CustomMenu { + + String name(); + + void contents(Player player, Inventory inv); + + void onClick(Player player, Inventory inv, ItemStack current, int slot); + + int getSize(); + +} diff --git a/src/main/java/fr/gravencyg/menus/core/CustomMenuListener.java b/src/main/java/fr/gravencyg/menus/core/CustomMenuListener.java new file mode 100644 index 0000000..9f729fe --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/core/CustomMenuListener.java @@ -0,0 +1,54 @@ +package fr.gravencyg.menus.core; + +import fr.gravencyg.CYG; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class CustomMenuListener implements Listener { + + private CYG main; + + public CustomMenuListener(CYG main) { + this.main = main; + } + + @EventHandler + public void onClick(InventoryClickEvent event){ + + Player player = (Player) event.getWhoClicked(); + Inventory inv = event.getInventory(); + ItemStack current = event.getCurrentItem(); + + if(event.getCurrentItem() == null) return; + + this.main.getMenuManager().registeredMenus.values().stream() + .filter(menu -> event.getView().getTitle().equalsIgnoreCase(menu.name())) + .forEach(menu -> { + menu.onClick(player, inv, current, event.getSlot()); + event.setCancelled(true); + }); + + } + + @EventHandler + public void onClose(InventoryCloseEvent event) + { + Player player = (Player) event.getPlayer(); + if(main.getEventBlockCache().containsValue(player)); + { + main.getEventBlockCache().remove((Player) event.getPlayer()); + main.getMenuManager().backToStart(player); + } + + if(main.getTargetPlayMenu().containsKey(player)); + { + main.getTargetPlayMenu().remove(player); + } + } + +} diff --git a/src/main/java/fr/gravencyg/menus/locations/LocationMenu.java b/src/main/java/fr/gravencyg/menus/locations/LocationMenu.java new file mode 100644 index 0000000..f1479d7 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/locations/LocationMenu.java @@ -0,0 +1,122 @@ +package fr.gravencyg.menus.locations; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class LocationMenu implements CustomMenu { + + private CYG main; + + public LocationMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Les Zones"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map locations = playerStorage.getPlot(player.getWorld().getName()).getLocations(); + int numberOfLocations = locations.size(); + + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(locations.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = locations.get(k); + + // place beacon item + ItemStack locationItem = new ItemBuilder(Material.BEACON, 1) + .setName(ChatColor.BLUE+ k) + .addLoreLine(ChatColor.GRAY + LocationUtils.fromStringToSimpleString(player.getUniqueId().toString(), v)) + .toItemStack(); + + inv.setItem(count, locationItem); + count++; + } + + // multi page required + if(numberOfLocations > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + + if (current != null && current.getType() == Material.BEACON && current.hasItemMeta() && current.getItemMeta().hasLore()) + { + player.closeInventory(); + + ItemMeta iM = current.getItemMeta(); + String lore = iM.getLore().get(0).split("§7")[1]; + Location location = LocationUtils.fromString2toLoc(player.getWorld().getName(), lore); + + player.teleport(location); + + } + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/menus/locations/LocationSelectMenu.java b/src/main/java/fr/gravencyg/menus/locations/LocationSelectMenu.java new file mode 100644 index 0000000..ebf94c4 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/locations/LocationSelectMenu.java @@ -0,0 +1,149 @@ +package fr.gravencyg.menus.locations; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class LocationSelectMenu implements CustomMenu { + + private CYG main; + + public LocationSelectMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Choisir une zone"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map locations = playerStorage.getPlot(player.getWorld().getName()).getLocations(); + int numberOfLocations = locations.size(); + + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(locations.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = locations.get(k); + boolean applyEnchant = false; + + // get selected event name to apply enchantment + if(main.getEventBlockCache().containsKey(player)) { + + Block selectedBlockInCache = main.getEventBlockCache().get(player); + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + + if(plot.getLocationsSet().containsKey(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))) + { + if(plot.getLocationsSet().get(LocationUtils.fromLocToString(selectedBlockInCache.getLocation())).equals(v)){ + applyEnchant = true; + } + } + + } + + // place beacon item + + inv.setItem(count, getLocationBlock(ChatColor.BLUE+ k, ChatColor.GRAY + LocationUtils.fromStringToSimpleString(player.getUniqueId().toString(), v), applyEnchant)); + + count++; + } + + // multi page required + if(numberOfLocations > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + public ItemStack getLocationBlock(String name, String lore, boolean applyEnchant) { + ItemBuilder itemBuilder = new ItemBuilder(Material.BEACON, 1) + .setName(name) + .addLoreLine(lore); + + if(applyEnchant) + itemBuilder.addEnchant(Enchantment.DURABILITY, 10); + + return itemBuilder.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + + if (current != null && current.getType() == Material.BEACON && current.hasItemMeta() && current.getItemMeta().hasLore() + && main.getEventBlockCache().containsKey(player)) + { + Block selectedBlockInCache = main.getEventBlockCache().get(player); + + String name = current.getItemMeta().getDisplayName().replace("§9",""); + + main.getDataManager().addLocationSet(player.getWorld().getName(), selectedBlockInCache.getLocation(), name); + + player.sendMessage("§e"+name + "§r définit !"); + + player.closeInventory(); + } + + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/menus/messages/MessageMenu.java b/src/main/java/fr/gravencyg/menus/messages/MessageMenu.java new file mode 100644 index 0000000..9eecd64 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/messages/MessageMenu.java @@ -0,0 +1,103 @@ +package fr.gravencyg.menus.messages; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Storage; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class MessageMenu implements CustomMenu { + + private CYG main; + + public MessageMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Les Messages"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map messages = playerStorage.getPlot(player.getWorld().getName()).getMessages(); + int numberOfMessages = messages.size(); + + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(messages.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = messages.get(k).replace("&"," §"); + + // place beacon item + ItemStack locationItem = new ItemBuilder(Material.PAPER, 1) + .setName(ChatColor.BLUE+ k) + .addLoreLine(ChatColor.GRAY + v) + .toItemStack(); + + inv.setItem(count, locationItem); + count++; + } + + // multi page required + if(numberOfMessages > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/menus/messages/MessageSelectMenu.java b/src/main/java/fr/gravencyg/menus/messages/MessageSelectMenu.java new file mode 100644 index 0000000..160a9d1 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/messages/MessageSelectMenu.java @@ -0,0 +1,145 @@ +package fr.gravencyg.menus.messages; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class MessageSelectMenu implements CustomMenu { + + private CYG main; + + public MessageSelectMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Choisir un message"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorageByUUID(player.getWorld().getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map messages = playerStorage.getPlot(player.getWorld().getName()).getMessages(); + int numberOfMessages = messages.size(); + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(messages.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = messages.get(k).replace("&"," §"); + boolean applyEnchant = false; + + // get selected event name to apply enchantment + if(main.getEventBlockCache().containsKey(player)) { + + Block selectedBlockInCache = main.getEventBlockCache().get(player); + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + + if(plot.getMessageSet().containsKey(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))) + { + if(plot.getMessageSet().get(LocationUtils.fromLocToString(selectedBlockInCache.getLocation())).equals(v)){ + applyEnchant = true; + } + } + + } + + // place beacon item + inv.setItem(count, getMessagesBlock(ChatColor.BLUE+ k, ChatColor.GRAY+ v, applyEnchant)); + + count++; + } + + // multi page required + if(numberOfMessages > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + public ItemStack getMessagesBlock(String name, String lore, boolean applyEnchant) { + ItemBuilder itemBuilder = new ItemBuilder(Material.PAPER, 1) + .setName(name) + .addLoreLine(lore); + + if(applyEnchant) + itemBuilder.addEnchant(Enchantment.DURABILITY, 10); + + return itemBuilder.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + + if (current != null && current.getType() == Material.PAPER && current.hasItemMeta() && current.getItemMeta().hasLore() + && main.getEventBlockCache().containsKey(player)) + { + + Block selectedBlockInCache = main.getEventBlockCache().get(player); + + String name = current.getItemMeta().getDisplayName().replace("§9",""); + + main.getDataManager().addMessageSet(player.getWorld().getName(), selectedBlockInCache.getLocation(), name); + + player.sendMessage("§e"+name + "§r définit !"); + + player.closeInventory(); + } + + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionAutostartMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionAutostartMenu.java new file mode 100644 index 0000000..2e7f144 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionAutostartMenu.java @@ -0,0 +1,83 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionAutostartMenu implements CustomMenu { + + private CYG main; + + public OptionAutostartMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Minimum de joueurs"; + } + + @Override + public void contents(Player player, Inventory inv) { + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + + for(int i : new int[]{ 1, 2, 4, 8, 12, 16, 20 }) + { + inv.addItem(getItem(i, config)); + } + + inv.setItem(8, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir en arrière").toItemStack()); + + } + + private ItemStack getItem(int i, GameConfig config) { + ItemBuilder it = new ItemBuilder(Material.REDSTONE, i, (byte)3) + .setName("§e" + i + " §fjoueurs pour commencer"); + + if(config.getAutoStartPlayer() == i) + { + it.addLoreLine("§a[SELECTED]"); + it.addEnchant(Enchantment.DURABILITY, 1); + } + + return it.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 8) + { + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + } + else + { + if(current.getType() == Material.REDSTONE) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setAutoStartPlayer(current.getAmount()); + main.getDataManager().save(player); + + player.sendMessage("§fLe jeu commenceras désormais à §e" + current.getAmount()+"§r joueurs" ); + + inv.clear(); + + contents(player, inv); + } + } + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionLifeMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionLifeMenu.java new file mode 100644 index 0000000..75e4e69 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionLifeMenu.java @@ -0,0 +1,83 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionLifeMenu implements CustomMenu { + + private CYG main; + + public OptionLifeMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Nombre de vies"; + } + + @Override + public void contents(Player player, Inventory inv) { + + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + + for(int i : new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 24}) + { + inv.addItem(getItem(i, config)); + } + + inv.setItem(26, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir en arrière").toItemStack()); + + } + + private ItemStack getItem(int i, GameConfig config) { + ItemBuilder it = new ItemBuilder(Material.POTION, i) + .setName("§e" + i + " §fvie(s) avant elimination"); + + if(config.getLifes() == i) + { + it.addLoreLine("§a[SELECTED]"); + it.addEnchant(Enchantment.DURABILITY, 1); + } + + return it.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(slot == 26) + { + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + } + else + { + if(current.getType() == Material.POTION) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setLifes(current.getAmount()); + main.getDataManager().save(player); + + player.sendMessage("§fChaque joueur aura §c" + current.getAmount()+"§r vies sur le jeu avant d'etre éliminé !" ); + + inv.clear(); + + contents(player, inv); + } + } + } + + @Override + public int getSize() { return 27; } +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionMaxPlayersMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionMaxPlayersMenu.java new file mode 100644 index 0000000..243eeb6 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionMaxPlayersMenu.java @@ -0,0 +1,82 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionMaxPlayersMenu implements CustomMenu { + + private CYG main; + + public OptionMaxPlayersMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Nombre de joueurs max"; + } + + @Override + public void contents(Player player, Inventory inv) { + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + + for(int i : new int[]{ 2, 4, 6, 8, 10, 12, 16, 20 }) + { + inv.addItem(getItem(i, config)); + } + + inv.setItem(26, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir en arrière").toItemStack()); + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(slot == 26) + { + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + } + else + { + if(current.getType() == Material.PLAYER_HEAD) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setMaxPlayers(current.getAmount()); + main.getDataManager().save(player); + + player.sendMessage("§fLe nombre maximum de joueurs est désormais de §e" + current.getAmount()+"§r" ); + + inv.clear(); + contents(player, inv); + } + } + } + + private ItemStack getItem(int i, GameConfig config) { + ItemBuilder it = new ItemBuilder(Material.PLAYER_HEAD, i, (byte)3) + .setName("§e" + i + " §fjoueurs au maximum"); + + if(config.getMaxPlayers() == i) + { + it.addLoreLine("§a[SELECTED]"); + it.addEnchant(Enchantment.DURABILITY, 1); + } + + return it.toItemStack(); + } + + + @Override + public int getSize() { return 27; } +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionMenu.java new file mode 100644 index 0000000..b6ffbac --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionMenu.java @@ -0,0 +1,104 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionMenu implements CustomMenu { + + private CYG main; + + public OptionMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Configurer son jeu"; + } + + @Override + public void contents(Player player, Inventory inv) { + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + + inv.setItem(10, new ItemBuilder(Material.PAPER, 1) + .setName("Nom Du Jeu§7") + .addLoreLine("§e"+config.getGameName()) + .toItemStack()); + + inv.setItem(11, new ItemBuilder(Material.REDSTONE, config.getAutoStartPlayer()) + .setName("§fDémarrage automatique§7") + .addLoreLine("§e"+config.getAutoStartPlayer() + "§f Joueur(s)") + .toItemStack()); + + inv.setItem(12, new ItemBuilder(Material.PLAYER_HEAD, config.getMaxPlayers(), (byte)3) + .setName("§fMaximum de joueurs") + .addLoreLine("§e" + config.getMaxPlayers() + "§f Joueurs") + .toItemStack()); + + inv.setItem(13, new ItemBuilder(Material.LEGACY_WATCH, config.getAutoStartTime()) + .setName("§fDurée de demarrage§7") + .addLoreLine("§e"+config.getAutoStartTime() + "§f secondes") + .toItemStack()); + + inv.setItem(14, new ItemBuilder(Material.REDSTONE_BLOCK, 1) + .setName("§fWhitelist§7") + .addLoreLine("§e" + config.isWhitelist()) + .toItemStack()); + + inv.setItem(15, new ItemBuilder(Material.POTION, config.getLifes()) + .setName("§fNombre de vies§7") + .addLoreLine("§e" + config.getLifes()+"§e vies par joueur") + .toItemStack()); + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + switch (current.getType()) + { + case PAPER: + player.closeInventory(); + player.chat("/plot gamename"); + break; + case REDSTONE: + player.closeInventory(); + main.getMenuManager().open(player, OptionAutostartMenu.class); + break; + + case PLAYER_HEAD: + player.closeInventory(); + main.getMenuManager().open(player, OptionMaxPlayersMenu.class); + break; + + case LEGACY_WATCH: + player.closeInventory(); + main.getMenuManager().open(player, OptionStartingTimeMenu.class); + break; + + case REDSTONE_BLOCK: + player.closeInventory(); + main.getMenuManager().open(player, OptionWhitelistMenu.class); + break; + + case POTION: + player.closeInventory(); + main.getMenuManager().open(player, OptionLifeMenu.class); + break; + + default: + break; + } + } + + @Override + public int getSize() { return 27; } +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionStartingTimeMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionStartingTimeMenu.java new file mode 100644 index 0000000..12015fb --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionStartingTimeMenu.java @@ -0,0 +1,82 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionStartingTimeMenu implements CustomMenu { + + private CYG main; + + public OptionStartingTimeMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Temps de lancement"; + } + + @Override + public void contents(Player player, Inventory inv) { + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + + for(int i : new int[]{ 5, 10, 15, 30, 60 }) + { + inv.addItem(getItem(i, config)); + } + + inv.setItem(8, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir en arrière").toItemStack()); + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(slot == 8) + { + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + } + else + { + if(current.getType() == Material.LEGACY_WATCH) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setAutoStartTime(current.getAmount()); + main.getDataManager().save(player); + + player.sendMessage("§fLe jeu commenceras désormais en §e" + current.getAmount()+"§r secondes" ); + + inv.clear(); + + contents(player, inv); + } + } + } + + private ItemStack getItem(int i, GameConfig config) { + ItemBuilder it = new ItemBuilder(Material.LEGACY_WATCH, i, (byte)3) + .setName("§e" + i + " §fsecondes avant de lancer"); + + if(config.getAutoStartTime() == i) + { + it.addLoreLine("§a[SELECTED]"); + it.addEnchant(Enchantment.DURABILITY, 1); + } + + return it.toItemStack(); + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/options/OptionWhitelistMenu.java b/src/main/java/fr/gravencyg/menus/options/OptionWhitelistMenu.java new file mode 100644 index 0000000..5789b39 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/options/OptionWhitelistMenu.java @@ -0,0 +1,73 @@ +package fr.gravencyg.menus.options; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class OptionWhitelistMenu implements CustomMenu { + + private CYG main; + + public OptionWhitelistMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Whitelist"; + } + + @Override + public void contents(Player player, Inventory inv) { + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + GameConfig config = playerStorage.getConfig(player.getWorld().getName()); + inv.setItem(3, new ItemBuilder(Material.REDSTONE_BLOCK, 1).setName("§aActiver la Whitelist").addLoreLine("§7Seulement les amis peuvent rejoindre").toItemStack()); + inv.setItem(5, new ItemBuilder(Material.COAL_BLOCK, 1).setName("§cDésactiver la Whitelist").addLoreLine("§7Tout le monde peut rejoindre").toItemStack()); + + inv.setItem(8, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir en arrière").toItemStack()); + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(slot == 8) + { + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + } + else + { + if(current.getType() == Material.REDSTONE_BLOCK) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setWhitelist(true); + main.getDataManager().save(player); + + player.sendMessage("§fWhitelist §aActivé"); + } + + if(current.getType() == Material.COAL_BLOCK) + { + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + plot.getConfig().setWhitelist(false); + main.getDataManager().save(player); + + player.sendMessage("§fWhitelist §cDésactivé"); + + contents(player, inv); + } + } + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/plot/PlayPlayerMenu.java b/src/main/java/fr/gravencyg/menus/plot/PlayPlayerMenu.java new file mode 100644 index 0000000..a3bdca8 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/plot/PlayPlayerMenu.java @@ -0,0 +1,89 @@ +package fr.gravencyg.menus.plot; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import org.bukkit.*; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.List; + +public class PlayPlayerMenu implements CustomMenu { + + private CYG main; + + public PlayPlayerMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Jouer à un jeu"; + } + + @Override + public void contents(Player player, Inventory inv) { + String target = main.getTargetPlayMenu().get(player); + Storage storage = main.getDataManager().getStorages().get(target); + List plots = storage.getPlots(); + int i = 0; + + for(Plot plot : plots) + { + inv.setItem(i, new ItemBuilder(plot.getVerifyConfig().getMaterial()) + .setName(main.getPlotManager().getGameNameFromPlot(player, i)) + .addLoreLine("§e>> Clique pour rejoindre <<").toItemStack()); + i++; + } + + player.sendMessage("Ouverture du menu de jeu de §e" + target); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(current.getType() != Material.AIR && current.hasItemMeta()) + { + String target = main.getTargetPlayMenu().get(player); + Storage storage = main.getDataManager().getStorages().get(target); + Plot targetPlot = storage.getPlots().get(slot); + + if(main.getGameManager().isPlayerInGame(player).size() != 0) { + main.getGameManager().quit(player); + } + + if(targetPlot.getConfig().isWhitelist() && !targetPlot.getFriends().contains(player.getName()) && !player.getName().equalsIgnoreCase(storage.getDisplayName())) + { + player.sendMessage("Le jeu est actuellement en §cWhitelist"); + return; + } + + if(!main.getGameManager().hasPendingGame(target, slot)) + { + main.getGameManager().create(target, slot); + player.sendMessage("§7>>§r Création d'une partie pour le jeu de §e"+ target); + } + + player.sendMessage("§7>>§r Vous avez rejoint \""+targetPlot.getName()+"\" par§e "+ target); + + WorldCreator worldCreator = new WorldCreator(storage.getUUID()+"#" + slot); + worldCreator.type(WorldType.FLAT); + + World playerWorld = Bukkit.createWorld(worldCreator); + + // wait 3 seconds before teleport the player + Bukkit.getScheduler().runTaskLater(main, () -> { + main.getGameManager().join(player, target, slot); + }, 50); + + + player.closeInventory(); + } + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/plot/PlotManageMenu.java b/src/main/java/fr/gravencyg/menus/plot/PlotManageMenu.java new file mode 100644 index 0000000..70fe88a --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/plot/PlotManageMenu.java @@ -0,0 +1,90 @@ +package fr.gravencyg.menus.plot; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.Action; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.all.ActionMenu; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.menus.options.OptionMenu; +import fr.gravencyg.model.GameConfig; +import fr.gravencyg.model.Storage; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +public class PlotManageMenu implements CustomMenu { + + private CYG main; + + public PlotManageMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Gestion du Plot"; + } + + @Override + public void contents(Player player, Inventory inv) { + + + inv.setItem(11, new ItemBuilder(Material.NAME_TAG, 1) + .setName("§eRéglages§7") + .addLoreLine("§eConfigurer son jeu") + .addLoreLine("§fRaccourci §9/options") + .toItemStack()); + + inv.setItem(12, new ItemBuilder(Material.CHEST, 1) + .setName("§eActions§7") + .addLoreLine("§eObtenir des blocs de code") + .addLoreLine("§fRaccourci §9/actions ou /ac") + .toItemStack()); + + inv.setItem(13, new ItemBuilder(Material.BEACON, 1) + .setName("§eZone de Spawn§7") + .addLoreLine("§eTéléportation") + .toItemStack()); + + inv.setItem(14, new ItemBuilder(Material.HOPPER, 1) + .setName("§eZone du code§7") + .addLoreLine("§eTéléportation") + .toItemStack()); + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + Storage storage = main.getPlotManager().getStorageByUUID(player.getWorld().getName()); + String uuid = player.getWorld().getName(); + + switch (current.getType()) + { + case NAME_TAG: + player.closeInventory(); + main.getMenuManager().open(player, OptionMenu.class); + break; + + case CHEST: + player.closeInventory(); + main.getMenuManager().open(player, ActionMenu.class); + break; + + case BEACON: + player.teleport(storage.getPlot(uuid).getSpawn(uuid)); + player.sendMessage("§eTéléportation vers le spawn..."); + break; + + case HOPPER: + player.teleport(storage.getPlot(uuid).getCode(uuid)); + player.sendMessage("§9Téléportation vers le code..."); + break; + } + + } + + @Override + public int getSize() { return 45; } +} diff --git a/src/main/java/fr/gravencyg/menus/plot/PlotMenu.java b/src/main/java/fr/gravencyg/menus/plot/PlotMenu.java new file mode 100644 index 0000000..403454a --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/plot/PlotMenu.java @@ -0,0 +1,69 @@ +package fr.gravencyg.menus.plot; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Storage; +import fr.gravencyg.model.VerifyGameConfig; +import fr.gravencyg.utils.CRank; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Map; + +public class PlotMenu implements CustomMenu { + + private CYG main; + + public PlotMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Plot"; + } + + @Override + public void contents(Player player, Inventory inv) { + int maxPlotPerPlayer = main.getDataManager().getMaxPlotPerPlayer(player); + + for(int i = 0; i < 3; i++) + { + if(maxPlotPerPlayer > i) + inv.setItem(i, new ItemBuilder(Material.GRASS_BLOCK).setName("§eParcelle "+(i+1)+" §r(§aDisponible§r)") + .addLoreLine("§fNom du jeu") + .addLoreLine("§e" + main.getPlotManager().getGameNameFromPlot(player, i)) + .addLoreLine("§d") + .addLoreLine("§e>> Clique pour rejoindre <<").toItemStack()); + else if(i == 1 ) { + inv.setItem(i, new ItemBuilder(Material.COAL_BLOCK).setName("§eParcelle " + (i + 1) + " §r(§cIndisponible§r)") + .addLoreLine("§c>> Débloqué avec le niveau 10 <<").toItemStack()); + } + else{ + inv.setItem(i, new ItemBuilder(Material.COAL_BLOCK).setName("§eParcelle " + (i + 1) + " §r(§cIndisponible§r)").addLoreLine("§c>> Débloqué avec le grade Premium <<").toItemStack()); + } + } + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + if(current.getType() == Material.GRASS_BLOCK && current.hasItemMeta()) + { + player.closeInventory(); + + if(main.getPlotManager().isPlotExist(player.getUniqueId().toString(), slot)) + { + main.getPlotManager().teleportPlayer(player, player.getUniqueId().toString(), slot); + } + else{ + main.getPlotManager().createPlot(player, slot); + } + } + } + + @Override + public int getSize() { return 9; } +} diff --git a/src/main/java/fr/gravencyg/menus/variables/VariableMenu.java b/src/main/java/fr/gravencyg/menus/variables/VariableMenu.java new file mode 100644 index 0000000..33cdc1c --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/variables/VariableMenu.java @@ -0,0 +1,103 @@ +package fr.gravencyg.menus.variables; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Storage; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class VariableMenu implements CustomMenu { + + private CYG main; + + public VariableMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Les Variables"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map variables = playerStorage.getPlot(player.getWorld().getName()).getVariables(); + int numberOfMessages = variables.size(); + + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(variables.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = variables.get(k); + + // place beacon item + ItemStack locationItem = new ItemBuilder(Material.PAPER, 1) + .setName(ChatColor.BLUE+ k) + .addLoreLine(ChatColor.GRAY + v) + .toItemStack(); + + inv.setItem(count, locationItem); + count++; + } + + // multi page required + if(numberOfMessages > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/menus/variables/VariableSelectMenu.java b/src/main/java/fr/gravencyg/menus/variables/VariableSelectMenu.java new file mode 100644 index 0000000..e2af7c9 --- /dev/null +++ b/src/main/java/fr/gravencyg/menus/variables/VariableSelectMenu.java @@ -0,0 +1,145 @@ +package fr.gravencyg.menus.variables; + +import fr.gravencyg.CYG; +import fr.gravencyg.items.ItemBuilder; +import fr.gravencyg.menus.core.CustomMenu; +import fr.gravencyg.model.Plot; +import fr.gravencyg.model.Storage; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class VariableSelectMenu implements CustomMenu { + + private CYG main; + + public VariableSelectMenu(CYG main) { + this.main = main; + } + + @Override + public String name() { + return "Choisir une variable"; + } + + @Override + public void contents(Player player, Inventory inv) { + + inv.clear(); + + Storage playerStorage = main.getDataManager().getStorages().get(player.getName()); + int currentPage = main.getMenuManager().getCurrentPage(player); + int maxItemPerPage = 45; + + if(playerStorage.getPlot(player.getWorld().getName()) != null) { + + Map messages = playerStorage.getPlot(player.getWorld().getName()).getMessages(); + int numberOfMessages = messages.size(); + + // place locations + int start = currentPage * maxItemPerPage; + int stop = (currentPage * maxItemPerPage) + maxItemPerPage; + + List key = Arrays.asList(messages.keySet().toArray(new String[0])); + + int count = 0; + + for(int i = start; i < stop; i++){ + + if(key.size() <= i) break; + + String k = key.get(i); + String v = messages.get(k).replace("&"," §"); + boolean applyEnchant = false; + + // get selected event name to apply enchantment + if(main.getEventBlockCache().containsKey(player)) { + + Block selectedBlockInCache = main.getEventBlockCache().get(player); + Plot plot = main.getDataManager().getStorages().get(player.getName()).getPlot(player.getWorld().getName()); + + if(plot.getMessageSet().containsKey(LocationUtils.fromLocToString(selectedBlockInCache.getLocation()))) + { + if(plot.getMessageSet().get(LocationUtils.fromLocToString(selectedBlockInCache.getLocation())).equals(v)){ + applyEnchant = true; + } + } + + } + + // place beacon item + inv.setItem(count, getMessagesBlock(ChatColor.BLUE+ k, ChatColor.GRAY+ v, applyEnchant)); + + count++; + } + + // multi page required + if(numberOfMessages > maxItemPerPage) + { + if(currentPage != 0) inv.setItem(45, new ItemBuilder(Material.ARROW, 1).setName("§9Revenir à la page " + (currentPage - 1)).toItemStack()); // previous button + if(key.size() > maxItemPerPage * (currentPage + 1)) inv.setItem(53, new ItemBuilder(Material.ARROW, 1).setName("§9Aller à la page " + (currentPage + 1)).toItemStack()); // next button + } + + } + + + } + + public ItemStack getMessagesBlock(String name, String lore, boolean applyEnchant) { + ItemBuilder itemBuilder = new ItemBuilder(Material.PAPER, 1) + .setName(name) + .addLoreLine(lore); + + if(applyEnchant) + itemBuilder.addEnchant(Enchantment.DURABILITY, 10); + + return itemBuilder.toItemStack(); + } + + @Override + public void onClick(Player player, Inventory inv, ItemStack current, int slot) { + + if(slot == 45 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().previousPage(player); + contents(player, inv); + } + + if(slot == 53 && current.getType() == Material.ARROW) + { + inv.clear(); + main.getMenuManager().nextPage(player); + contents(player, inv); + } + + if (current != null && current.getType() == Material.PAPER && current.hasItemMeta() && current.getItemMeta().hasLore() + && main.getEventBlockCache().containsKey(player)) + { + + Block selectedBlockInCache = main.getEventBlockCache().get(player); + + String name = current.getItemMeta().getDisplayName().replace("§9",""); + + main.getDataManager().addMessageSet(player, selectedBlockInCache.getLocation(), name); + + player.sendMessage("§e"+name + "§r définit !"); + + player.closeInventory(); + } + + } + + @Override + public int getSize() { return 54; } + +} diff --git a/src/main/java/fr/gravencyg/model/ActionProcess.java b/src/main/java/fr/gravencyg/model/ActionProcess.java new file mode 100644 index 0000000..ccdf6b0 --- /dev/null +++ b/src/main/java/fr/gravencyg/model/ActionProcess.java @@ -0,0 +1,39 @@ +package fr.gravencyg.model; + +import fr.gravencyg.utils.CEvent; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.List; + +public class ActionProcess { + + private List players; + private List processedBlocks; + private Block block; + private Material material; + + public ActionProcess(List players, List processedBlocks, Block block, Material material) + { + this.players = players; + this.processedBlocks = processedBlocks; + this.block = block; + this.material = material; + } + + public Material getMaterial() { return material; } + + public List getPlayers() { + return players; + } + + public List getProcessedBlocks() { + return processedBlocks; + } + + public Block getBlock() { + return block; + } + +} diff --git a/src/main/java/fr/gravencyg/model/CYGameMode.java b/src/main/java/fr/gravencyg/model/CYGameMode.java new file mode 100644 index 0000000..a4bf5ac --- /dev/null +++ b/src/main/java/fr/gravencyg/model/CYGameMode.java @@ -0,0 +1,7 @@ +package fr.gravencyg.model; + +public enum CYGameMode { + + DEATH_MATCH, POINTS; + +} diff --git a/src/main/java/fr/gravencyg/model/GameConfig.java b/src/main/java/fr/gravencyg/model/GameConfig.java new file mode 100644 index 0000000..1468926 --- /dev/null +++ b/src/main/java/fr/gravencyg/model/GameConfig.java @@ -0,0 +1,63 @@ +package fr.gravencyg.model; + +import org.bukkit.entity.Player; + +public class GameConfig { + + private String gameName; + + private int autoStartPlayer; + + private int autoStartTime; + + private int maxPlayers; + + private boolean whitelist; + + private int lifes; + + public GameConfig(Player player) { + this.gameName = "Jeu de " + player.getName(); + this.autoStartPlayer = 2; + this.maxPlayers = 10; + this.autoStartTime = 10; + this.whitelist = true; + this.lifes = 1; + } + + public String getGameName() { + return gameName; + } + + public int getAutoStartPlayer() { + return autoStartPlayer; + } + + public int getAutoStartTime() { return autoStartTime; } + + public boolean isWhitelist() { + return whitelist; + } + + public void setAutoStartTime(int autoStartTime) { this.autoStartTime = autoStartTime;} + + public void setLifes(int lifes) { this.lifes = lifes;} + + public void setMaxPlayers(int maxPlayers) { this.maxPlayers = maxPlayers;} + + public void setAutoStartPlayer(int autoStartPlayer) { this.autoStartPlayer = autoStartPlayer;} + + public void setWhitelist(boolean whitelist) { this.whitelist = whitelist;} + + public int getMaxPlayers() { + if(maxPlayers == 0) return 10; + return maxPlayers; + } + + public int getLifes() { + if(lifes == 0) return 1; + return lifes; + } + + public void setName(String name) { this.gameName = name; } +} diff --git a/src/main/java/fr/gravencyg/model/MaterialAndData.java b/src/main/java/fr/gravencyg/model/MaterialAndData.java new file mode 100644 index 0000000..f6d504b --- /dev/null +++ b/src/main/java/fr/gravencyg/model/MaterialAndData.java @@ -0,0 +1,27 @@ +package fr.gravencyg.model; + +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; + +import java.util.List; + +public class MaterialAndData { + + private Material material; + private byte data; + + public MaterialAndData(Material material, byte data) + { + this.material = material; + this.data = data; + } + + public byte getData() { + return data; + } + + public Material getMaterial(){ + return material; + } +} diff --git a/src/main/java/fr/gravencyg/model/Plot.java b/src/main/java/fr/gravencyg/model/Plot.java new file mode 100644 index 0000000..a1a2b50 --- /dev/null +++ b/src/main/java/fr/gravencyg/model/Plot.java @@ -0,0 +1,139 @@ +package fr.gravencyg.model; + +import fr.gravencyg.utils.CEvent; +import fr.gravencyg.utils.LocationUtils; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static fr.gravencyg.utils.LocationUtils.defaultSpawn; + +public class Plot { + + private String name; + + private Map events = new HashMap<>(); + + private Map locations = new HashMap<>(); + + private Map locationsSet = new HashMap<>(); + + private Map messages = new HashMap<>(); + + private Map messagesSet = new HashMap<>(); + + private Map variables = new HashMap<>(); + + private List friends = new ArrayList<>(); + + private List blacklisted = new ArrayList<>(); + + private String spawn = defaultSpawn(); + private String code = defaultSpawn(); + + private GameConfig gameConfig; + + private VerifyGameConfig verifyGameConfig; + + public Plot(Player player) { + this.gameConfig = new GameConfig(player); + this.verifyGameConfig = new VerifyGameConfig(); + + for(CEvent event : CEvent.values()) { + this.events.put(event.getEventName(), null); + } + } + + public void updateEvent(String key, String value) { + if(this.events.containsKey(key)) + { + this.events.remove(key); + } + + this.events.put(key, value); + } + + public void addLocationSet(String key, String value) { locationsSet.put(key, value); } + + public void addMessageSet(String key, String value) { messagesSet.put(key, value); } + + public void addLocation(String key, String value) { locations.put(key, value); } + + public void addVariable(String key, String value) { variables.put(key, value); } + + public void addMessage(String key, String value) { messages.put(key, value); } + + public void removeLocation(String key) { locations.remove(key); } + + public void removeMessage(String key) { messages.remove(key); } + + public boolean checkLocationExist(String key) { return locations.containsKey(key); } + + public boolean checkMessages(String key) { return messages.containsKey(key); } + + public boolean checkVariables(String key) { + if(variables == null) variables = new HashMap<>(); + return variables.containsKey(key); } + + public void removeEvent(String key) { + this.events.remove(key); + } + + public void removeVariable(String key) { + this.variables.remove(key); + } + + public Map getEvents() { + return events; + } + + public Map getLocations() { return locations; } + + public Map getLocationsSet() { return locationsSet; } + + public Map getMessageSet() { return messagesSet; } + + public String getName() { return gameConfig.getGameName(); } + + public GameConfig getConfig() { return gameConfig; } + + public VerifyGameConfig getVerifyConfig() { return verifyGameConfig; } + + public boolean hasEvent(String key) { return events.containsKey(key); } + + public List getFriends() { return friends; } + + public void setSpawn(String spawn) { this.spawn = spawn; } + + public void setCode(String code) { this.code = code; } + + public Location getSpawn(String uuid) { + if(spawn == null) + { + return LocationUtils.fromStringToLoc(uuid, LocationUtils.defaultSpawn()); + } + + return LocationUtils.fromStringToLocComplete(uuid, spawn); + + } + + public Location getCode(String uuid) { + if(code == null) + { + return LocationUtils.fromStringToLoc(uuid, LocationUtils.defaultSpawn()); + } + + return LocationUtils.fromStringToLocComplete(uuid, code); + + } + + public Map getMessages() { return messages; } + + public Map getVariables() { return variables; } + + +} diff --git a/src/main/java/fr/gravencyg/model/Storage.java b/src/main/java/fr/gravencyg/model/Storage.java new file mode 100644 index 0000000..0e18351 --- /dev/null +++ b/src/main/java/fr/gravencyg/model/Storage.java @@ -0,0 +1,79 @@ +package fr.gravencyg.model; + +import fr.gravencyg.utils.CLevel; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class Storage { + + private String displayName; + private String uuid; + private String rank; + private int level; + private int trophys; + private List plots; + + public Storage() { + this.displayName = "Undefined"; + this.uuid = "X9X9"; + this.rank = "Joueur"; + this.plots = new ArrayList<>(); + this.level = 1; + this.trophys = 0; + } + + public Storage(Player player) { + this.displayName = player.getDisplayName(); + this.uuid = player.getUniqueId().toString(); + this.rank = "Joueur"; + this.plots = new ArrayList<>(); + this.level = 1; + this.trophys = 0; + } + + public void createPlot(Player player) { + this.plots.add(new Plot(player)); + } + + public void setPseudo(Player player) { + this.displayName = player.getDisplayName(); + } + + public void addTrophy(int amount) { this.trophys += amount; } + + public void setLevel(int newLevel) { this.level = newLevel; } + + public String getDisplayName() { + return displayName; + } + + public void setRank(String rankS) { + this.rank = rankS; + } + + public void setTrophy(int trophys) { this.trophys = trophys;} + + public String getRank() { + return rank; + } + + public int getLevel() { return level; } + + public String getUUID() { return uuid; } + + public int getTrophys() { return trophys; } + + public GameConfig getConfig(String worldName) { return getPlot(worldName).getConfig(); } + + public List getPlots(){ + return plots; + } + + public Plot getPlot(String worldName) { + Bukkit.getServer().broadcastMessage(getPlots().size()+"sss"); + return getPlots().get(Integer.parseInt(worldName.split("_")[1])); + } +} diff --git a/src/main/java/fr/gravencyg/model/VerifyGameConfig.java b/src/main/java/fr/gravencyg/model/VerifyGameConfig.java new file mode 100644 index 0000000..b600efc --- /dev/null +++ b/src/main/java/fr/gravencyg/model/VerifyGameConfig.java @@ -0,0 +1,40 @@ +package fr.gravencyg.model; + +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import java.util.Arrays; + +public class VerifyGameConfig { + + private boolean isVerify = false; + private String icon = "DIAMOND_SWORD"; + + private int slot = 0; + + public VerifyGameConfig() { + this.icon = icon; + } + + public int getSlot(){ return slot; } + + public Material getMaterial(){ + for(Material mat : Material.values()) + { + if(mat.name().equalsIgnoreCase(icon.toUpperCase())) + { + return mat; + } + } + + return Material.STONE; + } + + public boolean isVerify() { return this.isVerify; } + + public void setVerify(boolean verify) { this.isVerify = verify;} + + public void setIcon(String material) { this.icon = material; } + + public void setSlot(int numberSlot) { this.slot = numberSlot; } +} diff --git a/src/main/java/fr/gravencyg/npcs/NPC.java b/src/main/java/fr/gravencyg/npcs/NPC.java new file mode 100644 index 0000000..1f29752 --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/NPC.java @@ -0,0 +1,58 @@ +package fr.gravencyg.npcs; + +import com.mojang.authlib.GameProfile; +import fr.gravencyg.CYG; +import net.minecraft.server.v1_16_R1.EntityPlayer; +import net.minecraft.server.v1_16_R1.MinecraftServer; +import net.minecraft.server.v1_16_R1.PlayerInteractManager; +import net.minecraft.server.v1_16_R1.WorldServer; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.craftbukkit.v1_16_R1.CraftServer; +import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Player; + +import java.util.UUID; + +public abstract class NPC { + + private String displayName; + + private ArmorStand stand; + + protected CYG main; + + private Location location; + + public NPC(CYG main, String displayName, double x, double y, double z, float yaw, float pitch) { + this.main = main; + this.displayName = displayName; + this.location = new Location(Bukkit.getWorld("world"), x, y, z, yaw, pitch); + } + + public abstract String skinUUID(); + + public abstract String hologramMessage(); + + public abstract double[] colliderOffset(); + + public abstract void onClick(Player player); + + public Location getLocation() { return location; } + + public EntityPlayer create() { + MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer(); + WorldServer nmsWorld = ((CraftWorld) Bukkit.getWorld("world")).getHandle(); // Change "world" to the world the NPC should be spawned in. + GameProfile gameProfile = new GameProfile(UUID.fromString(skinUUID()), "[NPC] "+displayName); // Change "playername" to the name the NPC should have, max 16 characters. + EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, gameProfile, new PlayerInteractManager(nmsWorld)); // This will be the EntityPlayer (NPC) we send with the sendNPCPacket method. + npc.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + return npc; + } + + public void setTopArmorstand(ArmorStand stand) { + this.stand = stand; + } + + public ArmorStand getStand() { return stand; } +} diff --git a/src/main/java/fr/gravencyg/npcs/NPCClickListener.java b/src/main/java/fr/gravencyg/npcs/NPCClickListener.java new file mode 100644 index 0000000..b5673bb --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/NPCClickListener.java @@ -0,0 +1,42 @@ +package fr.gravencyg.npcs; + +import fr.gravencyg.CYG; +import org.bukkit.Location; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; + +public class NPCClickListener implements Listener { + + private CYG main; + + public NPCClickListener(CYG main) { this.main = main;} + + @EventHandler(priority= EventPriority.HIGH) + public void onPlayerClick(PlayerInteractAtEntityEvent event) { + Player player = event.getPlayer(); + Location loc = player.getLocation(); + Entity entity = event.getRightClicked(); + + if(entity.getType() == EntityType.ARMOR_STAND && loc.getWorld().getName().equalsIgnoreCase("world")) + { + for(int i = 0; i < main.getNpcManager().getNPCSObj().size(); i++) + { + NPC npcObj = main.getNpcManager().getNPCSObj().get(i); + ArmorStand stand = npcObj.getStand(); + + if(stand.getCustomName().equalsIgnoreCase(entity.getCustomName())) + { + npcObj.onClick(player); + } + } + } + } + +} diff --git a/src/main/java/fr/gravencyg/npcs/NPCManager.java b/src/main/java/fr/gravencyg/npcs/NPCManager.java new file mode 100644 index 0000000..4f82108 --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/NPCManager.java @@ -0,0 +1,73 @@ +package fr.gravencyg.npcs; + +import fr.gravencyg.CYG; +import fr.gravencyg.npcs.all.DevNPC; +import fr.gravencyg.npcs.all.PlayNPC; +import fr.gravencyg.npcs.all.UpgradeNPC; +import net.minecraft.server.v1_16_R1.*; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.List; + +public class NPCManager { + + private List npcs = new ArrayList<>(); + private List npcsObj = new ArrayList<>(); + private CYG main; + + public NPCManager(CYG main) { + this.main = main; + + registerNPC(new DevNPC(main)); + registerNPC(new PlayNPC(main)); + registerNPC(new UpgradeNPC(main)); + + for(int i = 0; i < npcs.size(); i++) { + EntityPlayer npc = npcs.get(i); + NPC npcObj = npcsObj.get(i); + Location location = npc.getBukkitEntity().getLocation(); + + ArmorStand top = main.getHologramManager().registerHologram(location, "§e>> "+ npcObj.hologramMessage() +" <<"); + + Location adjust = new Location(location.getWorld(), location.getX() + npcObj.colliderOffset()[0], location.getY(), location.getZ() + npcObj.colliderOffset()[1]); + ArmorStand stand = main.getHologramManager().registerBoxCollider(adjust, "§e>> "+ npcObj.hologramMessage() +" <<"); + npcObj.setTopArmorstand(stand); + + } + } + + public void registerNPC(NPC npc) { + npcs.add(npc.create()); + npcsObj.add(npc); + } + + public void display(Player player) { + for (EntityPlayer npc : npcs) { + PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection; + connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc)); // "Adds the player data for the client to use when spawning a player" - https://wiki.vg/Protocol#Spawn_Player + connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc)); // Spawns the NPC for the player client. + connection.sendPacket(new PacketPlayOutEntityHeadRotation(npc, (byte) (npc.yaw * 256 / 360))); // Correct head rotation when spawned in player look direction. + } + } + + public List getNPCSObj() { return npcsObj; } + + public void killAll() { + for(World world : Bukkit.getWorlds()) { + for (Entity entity : world.getEntities()) { + if (entity.getType() == EntityType.ARMOR_STAND) { + entity.remove(); + } + } + } + } +} diff --git a/src/main/java/fr/gravencyg/npcs/all/DevNPC.java b/src/main/java/fr/gravencyg/npcs/all/DevNPC.java new file mode 100644 index 0000000..f600edf --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/all/DevNPC.java @@ -0,0 +1,28 @@ +package fr.gravencyg.npcs.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.menus.plot.PlotMenu; +import fr.gravencyg.npcs.NPC; +import org.bukkit.entity.Player; + +public class DevNPC extends NPC { + + public DevNPC(CYG main) { + super(main, "Développer", -21.530, 22, 9.495, -113.7f, 3.7f); + } + + public String skinUUID() { + return "a3208407-feaf-470b-ba15-0b7e67cb0ac9"; + } + + public String hologramMessage() { return "Rejoindre ta parcelle"; } + + @Override + public double[] colliderOffset() { return new double[]{0.3, -0.2}; } + + @Override + public void onClick(Player player) { + main.getMenuManager().open(player, PlotMenu.class); + } + +} diff --git a/src/main/java/fr/gravencyg/npcs/all/PlayNPC.java b/src/main/java/fr/gravencyg/npcs/all/PlayNPC.java new file mode 100644 index 0000000..8b5cf2a --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/all/PlayNPC.java @@ -0,0 +1,29 @@ +package fr.gravencyg.npcs.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.menus.all.PlayMenu; +import fr.gravencyg.npcs.NPC; +import org.bukkit.entity.Player; + +public class PlayNPC extends NPC { + + public PlayNPC(CYG main) { + super(main, "Jouer", -29.47, 22, 1.4, -90f, 0f); + } + + public String skinUUID() { + return "4ddcd747-679e-4fc1-93fd-04904e0a0260"; + } + + @Override + public String hologramMessage() { return "Jouer à un Jeu"; } + + @Override + public double[] colliderOffset() { return new double[]{0.5, 0}; } + + @Override + public void onClick(Player player) { + main.getMenuManager().open(player, PlayMenu.class); + } + +} diff --git a/src/main/java/fr/gravencyg/npcs/all/UpgradeNPC.java b/src/main/java/fr/gravencyg/npcs/all/UpgradeNPC.java new file mode 100644 index 0000000..b235669 --- /dev/null +++ b/src/main/java/fr/gravencyg/npcs/all/UpgradeNPC.java @@ -0,0 +1,29 @@ +package fr.gravencyg.npcs.all; + +import fr.gravencyg.CYG; +import fr.gravencyg.menus.all.UpgradeMenu; +import fr.gravencyg.npcs.NPC; +import org.bukkit.entity.Player; + +public class UpgradeNPC extends NPC { + + public UpgradeNPC(CYG main) { + super(main, "Améliorer", -21.570, 22, -6.535f, -63.2f, 1f); + } + + public String skinUUID() { + return "e9c3d931-16ac-4683-aaf4-35707bac4948"; + } + + @Override + public String hologramMessage() { return "Débloquer des niveaux"; } + + @Override + public double[] colliderOffset() { return new double[]{0.3, 0.3}; } + + @Override + public void onClick(Player player) { + main.getMenuManager().open(player, UpgradeMenu.class); + } + +} \ No newline at end of file diff --git a/src/main/java/fr/gravencyg/schedule/CYGExecutionTask.java b/src/main/java/fr/gravencyg/schedule/CYGExecutionTask.java new file mode 100644 index 0000000..727d1c9 --- /dev/null +++ b/src/main/java/fr/gravencyg/schedule/CYGExecutionTask.java @@ -0,0 +1,103 @@ +package fr.gravencyg.schedule; + +import fr.gravencyg.CYG; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.model.ActionProcess; +import fr.gravencyg.model.Storage; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class CYGExecutionTask extends BukkitRunnable { + + private CYG main; + private List lapisPreview = new ArrayList<>(); + + public CYGExecutionTask(CYG main){ + this.main = main; + } + + @Override + public void run() { + + + for(Block lapis : lapisPreview) + { + lapis.setType(Material.AIR); + } + + lapisPreview.clear(); + + main.getGameManager().playLoop(); + + for(World world : Bukkit.getWorlds()) + { + for(Entity entity : world.getEntities()) + { + if(entity.getType() == EntityType.ENDER_DRAGON) { + entity.remove(); + } + if(entity.getType() == EntityType.BOAT) { + entity.remove(); + } + + } + } + + if( main.getCompilerManager().getProcessedBlocks().size() != 0) { + + List actionProcessesToRemove = new ArrayList<>(); + + + for (ActionProcess actionProcess : main.getCompilerManager().getProcessedBlocks()) { + + if (actionProcess.getProcessedBlocks().size() >= 1) { + + + + Block currentBlock = actionProcess.getProcessedBlocks().get(0); + + if (currentBlock.getType() != Material.LAPIS_BLOCK) { + main.getActionBlocks().execute(actionProcess, currentBlock); + + Block top = currentBlock.getLocation().add(0, 1, 0).getBlock(); + + if (top.getType() == Material.AIR) { + top.setType(actionProcess.getMaterial()); + lapisPreview.add(top); + } + + // remove first action from list + actionProcess.getProcessedBlocks().remove(currentBlock); + + // remove action list to processed blocks + if (actionProcess.getProcessedBlocks().size() == 0) { + actionProcessesToRemove.add(actionProcess); + + Storage storage = main.getDataManager().getStorageByUUID(actionProcess.getPlayers().get(0).getWorld().getName()); + main.getGameManager().removeLoopStorage(storage); + } + } + else{ + actionProcess.getProcessedBlocks().remove(currentBlock); + } + + + } + } + + actionProcessesToRemove.forEach(main.getCompilerManager().getProcessedBlocks()::remove); + } + + } + +} diff --git a/src/main/java/fr/gravencyg/schedule/CYGGameCycle.java b/src/main/java/fr/gravencyg/schedule/CYGGameCycle.java new file mode 100644 index 0000000..6a435ce --- /dev/null +++ b/src/main/java/fr/gravencyg/schedule/CYGGameCycle.java @@ -0,0 +1,149 @@ +package fr.gravencyg.schedule; + +import fr.gravencyg.CYG; +import fr.gravencyg.actions.team.Team; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.game.CYGameState; +import fr.gravencyg.model.CYGameMode; +import fr.gravencyg.utils.CEvent; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class CYGGameCycle extends BukkitRunnable { + + private CYG main; + + public CYGGameCycle(CYG main){ + this.main = main; + } + + @Override + public void run() { + + for(Map.Entry> g : main.getGameManager().getGames().entrySet()) + { + for(CYGame game : g.getValue()) { + if (game.getAutoStartMin() == game.getPlayers().size() && game.isState(CYGameState.WAITING)) { + game.setState(CYGameState.STARTING); + main.getScoreboardManager().updateInGameState(game); + main.getGameManager().broadcast(game, "§6Démarrage du jeu dans:"); + } + + if (game.getPlayers().size() < game.getAutoStartMin() && game.isState(CYGameState.STARTING)) { + game.setState(CYGameState.WAITING); + main.getScoreboardManager().updateInGameState(game); + main.getGameManager().broadcast(game, "§cPas assez de joueur... Phase d'attente"); + } + + if (game.isState(CYGameState.STARTING)) { + + if (game.getCountdown() == 0) { + + // assign player to team + List teams = new ArrayList<>(game.getTeams().keySet()); + if (teams.size() >= 2) { + + int teamId = 0; + for (Player player : game.getPlayers()) { + Team selected = teams.get(teamId); + game.getTeams().get(selected).add(player); + + // dispatch team + if (teamId == game.getTeams().size()) { + teamId = 0; + } else { + teamId++; + } + + player.sendMessage("Vous faites partie de l'équipe " + selected.getColor() + selected.getName()); + } + + } + + game.setState(CYGameState.PLAYING); + main.getScoreboardManager().updateInGameState(game); + main.getGameManager().runEvent(CEvent.START, game, game.getPlayers().get(0)); + main.getGameManager().broadcast(game, "§cGO !"); + + } else { + main.getGameManager().broadcast(game, "§c" + game.getCountdown() + "§es"); + game.decrementCountdown(); + } + + } + + if (game.isState(CYGameState.PLAYING)) { + + if (game.hasTeamSystem()) { + if ((game.getPlayers().size() == game.getTeams().get(game.getTeamPlayer(game.getPlayers().get(0))).size()) && game.getAutoStartMin() != 1) { + Team team = game.getTeamPlayer(game.getPlayers().get(0)); + main.getGameManager().broadcast(game, "Victoire de l'equipe " + team.getColor() + team.getName()); + main.getGameManager().runEvent(CEvent.FINISH, game, game.getPlayers().get(0)); + + for (Player winner : game.getPlayers()) { + if (game.getAutoStartMin() != 1) { + winner.sendMessage("§r+ §e7§r Trophés de victoire !"); + main.getDataManager().addTrophy(winner, 7); + } + winner.teleport(main.spawnLocation); + } + + game.setState(CYGameState.FINISH); + main.getScoreboardManager().updateInGameState(game); + game.setCountdown(5); + } + } + } + + if (game.isState(CYGameState.PLAYING) && game.isMode(CYGameMode.DEATH_MATCH) && game.getPlayers().size() <= 1 && game.getAutoStartMin() != 1) { + game.setState(CYGameState.FINISH); + main.getScoreboardManager().updateInGameState(game); + game.setCountdown(5); + + if (!game.hasTeamSystem()) { + Player winner = game.getPlayers().get(0); + + if (game.getAutoStartMin() != 1) { + winner.sendMessage("§r+ §e7§r Trophées de victoire !"); + + main.getDataManager().addTrophy(winner, 7); + + } + winner.teleport(main.spawnLocation); + } + + if (game.getPlayers().size() == 1 && game.getAutoStartMin() != 1) { + main.getGameManager().runEvent(CEvent.FINISH, game, game.getPlayers().get(0)); + } + + } + + if (!game.isState(CYGameState.WAITING) && !game.isState(CYGameState.STARTING) && game.getPlayers().size() == 0) { + main.getGameManager().stop(game); + main.getGameManager().runEvent(CEvent.FINISH, game, null); + + } + + if (game.isState(CYGameState.FINISH)) { + game.decrementCountdown(); + if (game.getPlayers().size() != 0) { + main.getGameManager().quit(game.getPlayers().get(0)); + } + main.getGameManager().stop(game); + + } + } + + } + + } + +} diff --git a/src/main/java/fr/gravencyg/scoreboards/ScoreboardManager.java b/src/main/java/fr/gravencyg/scoreboards/ScoreboardManager.java new file mode 100644 index 0000000..aed19b1 --- /dev/null +++ b/src/main/java/fr/gravencyg/scoreboards/ScoreboardManager.java @@ -0,0 +1,137 @@ +package fr.gravencyg.scoreboards; + +import fr.gravencyg.CYG; +import fr.gravencyg.game.CYGame; +import fr.gravencyg.utils.CRank; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Team; + +import java.util.HashMap; +import java.util.Map; + +public class ScoreboardManager { + + private CYG main; + private Map scoreboards = new HashMap<>(); + private Map scoreboardsGame = new HashMap<>(); + private Map teamMap = new HashMap<>(); + + public ScoreboardManager(CYG main) { + this.main = main; + + for(CRank rank: CRank.values()) + { + teamMap.put(rank, Bukkit.getScoreboardManager().getNewScoreboard().registerNewTeam("0000"+rank.getName())); + } + } + + + public void load(Player player) { + ScoreboardSign board = new ScoreboardSign(player, "§eGravenMC v§c" + main.getDescription().getVersion()); + board.create(); + + board.setLine(0, "§e"); + board.setLine(1, "En ligne§r: §71"); + board.setLine(2, "§5"); + board.setLine(3, "§fGrade§f:§r ?"); + board.setLine(4, "§fNiveau§f: §e?§7/§e30"); + board.setLine(5, "§fTrophés§f: §e?"); + board.setLine(6, "§d"); + board.setLine(7, "§eplay.gravenmc.fr"); + + scoreboards.put(player, board); + + updateTotalPlayers(); + updatePlayerRank(player); + updatePlayerLevel(player); + updatePlayerTrophy(player); + + } + + + public void loadGame(Player player, CYGame game) { + + unload(player); + + ScoreboardSign board = new ScoreboardSign(player, "§e" + game.getName()); + board.create(); + + board.setLine(0, "§e"); + board.setLine(1, "§rJoueurs§r: §7" + "?§r/§7?"); + board.setLine(2, "§fStatut§f:§r En attente"); + board.setLine(3, "§d"); + board.setLine(4, "§eplay.gravenmc.fr"); + + scoreboardsGame.put(player, board); + } + + public void updateTotalPlayers() { + for(Map.Entry board : scoreboards.entrySet()) { + board.getValue().setLine(1, "En ligne§r: §7" + Bukkit.getOnlinePlayers().size()); + } + } + + public void updateInGameTotalPlayers(CYGame game) { + for(Player player : game.getPlayers()) { + ScoreboardSign board = scoreboardsGame.get(player); + board.removeLine(1); + board.setLine(1, "§rJoueurs§r: §7" + game.getPlayers().size() + "§r/§7" + game.getMaxPlayers()); + } + } + + public void updateInGameState(CYGame game) { + for(Player player : game.getPlayers()) { + ScoreboardSign board = scoreboardsGame.get(player); + board.removeLine(2); + board.setLine(2, "§fStatut§f:§r " + game.getState().getName()); + } + } + + public void updatePlayerRank(Player player) { + if(scoreboards.containsKey(player)){ + ScoreboardSign board = scoreboards.get(player); + CRank rank = main.getDataManager().getRank(player); + board.setLine(3, "§fGrade§f:§r " + rank.getColor() + rank.getName()); + } + } + + public void updatePlayerLevel(Player player) { + if(scoreboards.containsKey(player)){ + ScoreboardSign board = scoreboards.get(player); + board.setLine(4, "§fNiveau§f: §e"+ main.getDataManager().getLevel(player.getName())+"/§e30"); + } + } + + public void updatePlayerTrophy(Player player) { + if(scoreboards.containsKey(player)){ + ScoreboardSign board = scoreboards.get(player); + board.setLine(5, "§fTrophés§f: §e" +main.getDataManager().getTrophys(player.getName())+""); + } + } + + public void unload(Player player) { + if(scoreboards.containsKey(player)) { + ScoreboardSign board = scoreboards.get(player); + board.destroy(); + + teamMap.get(main.getDataManager().getRank(player)).removeEntry(player.getName()); + + scoreboards.remove(player); + + for(Map.Entry b : scoreboards.entrySet()) { + b.getValue().setLine(1, "Joueurs§r: §7" + (Bukkit.getOnlinePlayers().size()-1)); + } + + } + + if(scoreboardsGame.containsKey(player)) { + ScoreboardSign board = scoreboardsGame.get(player); + board.destroy(); + + scoreboardsGame.remove(player); + + } + } + +} diff --git a/src/main/java/fr/gravencyg/scoreboards/ScoreboardSign.java b/src/main/java/fr/gravencyg/scoreboards/ScoreboardSign.java new file mode 100644 index 0000000..153237c --- /dev/null +++ b/src/main/java/fr/gravencyg/scoreboards/ScoreboardSign.java @@ -0,0 +1,368 @@ +package fr.gravencyg.scoreboards; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.server.v1_16_R1.*; +import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +/** + * @author zyuiop + */ + +public class ScoreboardSign { + + private boolean created = false; + private final VirtualTeam[] lines = new VirtualTeam[15]; + private final Player player; + private String objectiveName; + + /** + * Create a scoreboard sign for a given player and using a specifig objective name + * @param player the player viewing the scoreboard sign + * @param objectiveName the name of the scoreboard sign (displayed at the top of the scoreboard) + */ + public ScoreboardSign(Player player, String objectiveName) { + this.player = player; + this.objectiveName = objectiveName; + } + + /** + * Send the initial creation packets for this scoreboard sign. Must be called at least once. + */ + public void create() { + if (created) + return; + + PlayerConnection player = getPlayer(); + player.sendPacket(createObjectivePacket(0, objectiveName)); + player.sendPacket(setObjectiveSlot()); + int i = 0; + while (i < lines.length) + sendLine(i++); + + created = true; + } + + /** + * Send the packets to remove this scoreboard sign. A destroyed scoreboard sign must be recreated using {@link ScoreboardSign#create()} in order + * to be used again + */ + public void destroy() { + if (!created) + return; + + getPlayer().sendPacket(createObjectivePacket(1, null)); + for (VirtualTeam team : lines) + if (team != null) + getPlayer().sendPacket(team.removeTeam()); + + created = false; + } + + /** + * Change the name of the objective. The name is displayed at the top of the scoreboard. + * @param name the name of the objective, max 32 char + */ + public void setObjectiveName(String name) { + this.objectiveName = name; + if (created) + getPlayer().sendPacket(createObjectivePacket(2, name)); + } + + /** + * Change a scoreboard line and send the packets to the player. Can be called async. + * @param line the number of the line (0 <= line < 15) + * @param value the new value for the scoreboard line + */ + public void setLine(int line, String value) { + VirtualTeam team = getOrCreateTeam(line); + String old = team.getCurrentPlayer(); + + if (old != null && created) + getPlayer().sendPacket(removeLine(old)); + + team.setValue(value); + sendLine(line); + } + + /** + * Remove a given scoreboard line + * @param line the line to remove + */ + public void removeLine(int line) { + VirtualTeam team = getOrCreateTeam(line); + String old = team.getCurrentPlayer(); + + if (old != null && created) { + getPlayer().sendPacket(removeLine(old)); + getPlayer().sendPacket(team.removeTeam()); + } + + lines[line] = null; + } + + /** + * Get the current value for a line + * @param line the line + * @return the content of the line + */ + public String getLine(int line) { + if (line > 14) + return null; + if (line < 0) + return null; + return getOrCreateTeam(line).getValue(); + } + + /** + * Get the team assigned to a line + * @return the {@link VirtualTeam} used to display this line + */ + public VirtualTeam getTeam(int line) { + if (line > 14) + return null; + if (line < 0) + return null; + return getOrCreateTeam(line); + } + + private PlayerConnection getPlayer() { + return ((CraftPlayer) player).getHandle().playerConnection; + } + + @SuppressWarnings("rawtypes") + private void sendLine(int line) { + if (line > 14) + return; + if (line < 0) + return; + if (!created) + return; + + int score = (15 - line); + VirtualTeam val = getOrCreateTeam(line); + for (Packet packet : val.sendLine()) + getPlayer().sendPacket(packet); + getPlayer().sendPacket(sendScore(val.getCurrentPlayer(), score)); + val.reset(); + } + + private VirtualTeam getOrCreateTeam(int line) { + if (lines[line] == null) + lines[line] = new VirtualTeam("__fakeScore" + line); + + return lines[line]; + } + + /* + Factories + */ + private PacketPlayOutScoreboardObjective createObjectivePacket(int mode, String displayName) { + PacketPlayOutScoreboardObjective packet = new PacketPlayOutScoreboardObjective(); + // Nom de l'objectif + setField(packet, "a", player.getName()); + + // Mode + // 0 : créer + // 1 : Supprimer + // 2 : Mettre à jour + setField(packet, "d", mode); + + if (mode == 0 || mode == 2) { + setField(packet, "b", IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + displayName + "\"}")); + setField(packet, "c", IScoreboardCriteria.EnumScoreboardHealthDisplay.INTEGER); + } + + return packet; + } + + private PacketPlayOutScoreboardDisplayObjective setObjectiveSlot() { + PacketPlayOutScoreboardDisplayObjective packet = new PacketPlayOutScoreboardDisplayObjective(); + // Slot + setField(packet, "a", 1); + setField(packet, "b", player.getName()); + + return packet; + } + + private PacketPlayOutScoreboardScore sendScore(String line, int score) { + PacketPlayOutScoreboardScore packet = new PacketPlayOutScoreboardScore(ScoreboardServer.Action.CHANGE, player.getName(), line, score); + + return packet; + } + + private PacketPlayOutScoreboardScore removeLine(String line) { + return new PacketPlayOutScoreboardScore(ScoreboardServer.Action.REMOVE, player.getName(), line, 0); + } + + /** + * This class is used to manage the content of a line. Advanced users can use it as they want, but they are encouraged to read and understand the + * code before doing so. Use these methods at your own risk. + */ + public class VirtualTeam { + private final String name; + private String prefix; + private String suffix; + private String currentPlayer; + private String oldPlayer; + + private boolean prefixChanged, suffixChanged, playerChanged = false; + private boolean first = true; + + private VirtualTeam(String name, String prefix, String suffix) { + this.name = name; + this.prefix = prefix; + this.suffix = suffix; + } + + private VirtualTeam(String name) { + this(name, "", ""); + } + + public String getName() { + return name; + } + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + if (this.prefix == null || !this.prefix.equals(prefix)) + this.prefixChanged = true; + this.prefix = prefix; + } + + public String getSuffix() { + return suffix; + } + + public void setSuffix(String suffix) { + if (this.suffix == null || !this.suffix.equals(prefix)) + this.suffixChanged = true; + this.suffix = suffix; + } + + private PacketPlayOutScoreboardTeam createPacket(int mode) { + PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam(); + setField(packet, "a", name); + setField(packet, "c", new ChatComponentText(prefix)); + setField(packet, "d", new ChatComponentText(suffix)); + setField(packet, "i", 0); + setField(packet, "e", "always"); + setField(packet, "i", mode); + + return packet; + } + + public PacketPlayOutScoreboardTeam createTeam() { + return createPacket(0); + } + + public PacketPlayOutScoreboardTeam updateTeam() { + return createPacket(2); + } + + public PacketPlayOutScoreboardTeam removeTeam() { + PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam(); + setField(packet, "a", name); + setField(packet, "i", 1); + first = true; + return packet; + } + + public void setPlayer(String name) { + if (this.currentPlayer == null || !this.currentPlayer.equals(name)) + this.playerChanged = true; + this.oldPlayer = this.currentPlayer; + this.currentPlayer = name; + } + + public Iterable sendLine() { + List packets = new ArrayList<>(); + + if (first) { + packets.add(createTeam()); + } else if (prefixChanged || suffixChanged) { + packets.add(updateTeam()); + } + + if (first || playerChanged) { + if (oldPlayer != null) // remove these two lines ? + packets.add(addOrRemovePlayer(4, oldPlayer)); // + packets.add(changePlayer()); + } + + if (first) + first = false; + + return packets; + } + + public void reset() { + prefixChanged = false; + suffixChanged = false; + playerChanged = false; + oldPlayer = null; + } + + public PacketPlayOutScoreboardTeam changePlayer() { + return addOrRemovePlayer(3, currentPlayer); + } + + @SuppressWarnings("unchecked") + public PacketPlayOutScoreboardTeam addOrRemovePlayer(int mode, String playerName) { + PacketPlayOutScoreboardTeam packet = new PacketPlayOutScoreboardTeam(); + setField(packet, "a", name); + setField(packet, "i", mode); + + try { + Field f = packet.getClass().getDeclaredField("h"); + f.setAccessible(true); + ((List) f.get(packet)).add(playerName); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + + return packet; + } + + public String getCurrentPlayer() { + return currentPlayer; + } + + public String getValue() { + return getPrefix() + getCurrentPlayer() + getSuffix(); + } + + public void setValue(String value) { + if (value.length() <= 16) { + setPrefix(""); + setSuffix(""); + setPlayer(value); + } else if (value.length() <= 32) { + setPrefix(value.substring(0, 16)); + setPlayer(value.substring(16)); + setSuffix(""); + } else if (value.length() <= 48) { + setPrefix(value.substring(0, 16)); + setPlayer(value.substring(16, 32)); + setSuffix(value.substring(32)); + } else { + throw new IllegalArgumentException("Too long value ! Max 48 characters, value was " + value.length() + " !"); + } + } + } + + private static void setField(Object edit, String fieldName, Object value) { + try { + Field field = edit.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(edit, value); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/gravencyg/utils/CEvent.java b/src/main/java/fr/gravencyg/utils/CEvent.java new file mode 100644 index 0000000..a5d2948 --- /dev/null +++ b/src/main/java/fr/gravencyg/utils/CEvent.java @@ -0,0 +1,54 @@ +package fr.gravencyg.utils; + +import org.bukkit.Material; + +public enum CEvent { + + JOIN("onJoin", Material.PLAYER_HEAD, "Lorsqu'un joueur rejoint votre jeu", false, false), + START("onStart", Material.SPECTRAL_ARROW, "Lorsque le jeu demarre", false, true), + FINISH("onFinish", Material.DRAGON_EGG, "Lorsque le jeu s'arrete", false, true), + QUIT("onQuit", Material.RED_BED, "Lorsqu'un joueur quitte le jeu", false, false), + VOID("onFallVoid", Material.END_PORTAL_FRAME, "Lorsqu'un joueur tombe dans le vide", false, false), + + PLACE("onPlace", Material.STONE, "Lorsqu'un joueur place un bloc", true, false), + BREAK("onBreak", Material.GOLDEN_PICKAXE, "Lorsqu'un joueur casse un bloc", true, false), + WALK("onWalk", Material.IRON_BOOTS, "Lorsqu'un joueur marche sur un bloc", true, false), + + DEATH("onPlayerDeath", Material.SKELETON_SKULL, "Lorsqu'un joueur meurt", false, false), + KILL("onPlayerKill", Material.DIAMOND_SWORD, "Lorsqu'un joueur tue un autre joueur", false, false), + + RIGHT_CLICK("onRightClick", Material.TORCH, "Lorsqu'un joueur fais un clic droit", false, false), + LEFT_CLICK("onLeftClick", Material.LEVER, "Lorsqu'un joueur fais un clic gauche", false, false), + + LOOP("onLoop", Material.LEGACY_LEASH, "Repeter des évenements chaque seconde", false, true),; + + private String eventName; + + private String description; + + private boolean requireBlock; + + private boolean affectAllPlayers; + + private Material material; + + CEvent(String eventName, Material material, String description, boolean requireBlock, boolean affectAllPlayers){ + this.eventName = eventName; + this.description = description; + this.requireBlock = requireBlock; + this.material = material; + this.affectAllPlayers = affectAllPlayers; + } + + public String getDescription() { + return description; + } + + public boolean isAffectingAllPlayers() { return affectAllPlayers; } + + public String getEventName() { + return eventName; + } + + public Material getMaterial() { return material; } +} diff --git a/src/main/java/fr/gravencyg/utils/CLevel.java b/src/main/java/fr/gravencyg/utils/CLevel.java new file mode 100644 index 0000000..bd2f383 --- /dev/null +++ b/src/main/java/fr/gravencyg/utils/CLevel.java @@ -0,0 +1,165 @@ +package fr.gravencyg.utils; + +import java.util.*; + +public enum CLevel { + + LEVEL1(1, 0, PlotSize.NORMAL, Arrays.asList( + "§e/play§f pour jouer à un jeu", + "§e/plot§f pour obtenir une parcelle", + "§e/locations§f pour gérer les zones du jeu", + "§e/friend§f pour gerer vos co-constructeurs" + ), Arrays.asList( + "§6Bloc onEvent()§f pour gérer les évenements", + "§6Bloc Random()§f pour ajouter du hasard", + "§6Bloc TogglePvP()§f pour on/off le pvp", + "§6Bloc Eliminate()§f pour eliminer un joueur", + "§6Bloc Stuff()§f pour give des items", + "§6Bloc Clear()§f pour enlever les items", + "§6Bloc Teleport()§f pour tp un joueur" + )), + + LEVEL2(2, 15, PlotSize.NORMAL, Arrays.asList( + "§e/messages§f pour gérer les messages du jeu" + ), Arrays.asList( + "§6Bloc SendMessage()§f pour un message", + "§6Bloc SendTitle()§f pour fait un /tellraw", + "§6Bloc Wait()§f pour attendre 1 seconde" + )), + + LEVEL3(3, 50, PlotSize.NORMAL, Arrays.asList( + "§e/barriere§f pour obtenir bloc incassable", + "§e/gamemode§f pour changer de mode" + ), Arrays.asList( + "§6Bloc ChangeGameMode()§f pour /gm un joueur", + "§6Bloc ToggleFreeze()§f pour geler/degeler un joueur", + "§6Bloc ToggleFallDamage()§f pour on/off la chute" + )), + + LEVEL4(4, 75, PlotSize.NORMAL, Arrays.asList(), Arrays.asList( + "§6Bloc Wait()§f pour attendre 10s", + "§6Bloc ToggleBuild()§f pour on/off le build" + )), + + LEVEL5(5, 100, PlotSize.MEDIUM, Collections.emptyList(), Arrays.asList( + "§6Bloc RegenMap()§f pour regen la map", + "§6Bloc StopGame()§f pour stop le jeu", + "§6Bloc Win()§f pour forcer un gagnant" + )), + + LEVEL6(6, 150, PlotSize.MEDIUM, Collections.singletonList( + "§e/head§f pour obtenir une tête du joueur" + ), Arrays.asList( + "§6Bloc SetBlock()§f pour placer un bloc", + "§6Bloc RemoveBlock()§f pour retirer un bloc" + )), + + LEVEL7(7, 250, PlotSize.MEDIUM, Collections.emptyList(), Arrays.asList( + "§6Bloc SendPotionEffect()§f pour un effet de potion", + "§6Bloc ClearPotionEffects()§f pour retirer les effets" + )), + + LEVEL8(8, 500, PlotSize.MEDIUM, Collections.emptyList(), Arrays.asList( + "§f§lBloc Team()§f pour gérer les équipes", + "§6Bloc DropItem()§f pour loop un item" + )), + + LEVEL9(9, 750, PlotSize.MEDIUM, Collections.emptyList(), Arrays.asList( + "§6Bloc SendBossBar()§f pour message en bar de boss", + "§6Bloc ResetBossBar()§f pour supprimer les bars" + )), + + LEVEL10(10, 1200, PlotSize.BIG, Arrays.asList(), Collections.emptyList()), + + LEVEL11(11, 1500, PlotSize.BIG, Collections.emptyList(), Arrays.asList( + "§6Bloc SpawnMonster()§f pour spawn un monstre", + "§6Bloc KillMonster()§f pour tuer tout les monstres" + )), + + LEVEL12(12, 2000, PlotSize.BIG, Collections.emptyList(), Collections.singletonList( + "§6Bloc Restore()§f pour se heal() et feed()" + )), + + LEVEL13(13, 2500, PlotSize.BIG, Collections.emptyList(), Collections.singletonList( + "§6Bloc ToggleFly()§f pour on/off le fly du joueur" + )), + + LEVEL14(14, 3200, PlotSize.BIG, Collections.emptyList(), Collections.emptyList()), + LEVEL15(15, 5000, PlotSize.LARGE, Arrays.asList( + "§f§n/we§f pour l'accès au Mini Worldedit" + ), Collections.emptyList()), + + LEVEL16(16, 7000, PlotSize.LARGE, Collections.emptyList(), Arrays.asList( + "§6Bloc Glow()§f pour on/off l'effet glow" + )), + + LEVEL17(17, 8000, PlotSize.LARGE, Arrays.asList(), Arrays.asList()), + LEVEL18(18, 9000, PlotSize.LARGE, Arrays.asList(), Arrays.asList()), + LEVEL19(19, 10000, PlotSize.LARGE, Arrays.asList(), Arrays.asList()), + LEVEL20(20, 12000, PlotSize.MEGA, Arrays.asList(), Arrays.asList()), + + LEVEL21(21, 15000, PlotSize.MEGA, Arrays.asList(), Arrays.asList()), + LEVEL22(22, 17000, PlotSize.MEGA, Arrays.asList(), Arrays.asList()), + LEVEL23(23, 19000, PlotSize.MEGA, Arrays.asList(), Arrays.asList()), + LEVEL24(24, 21000, PlotSize.MEGA, Arrays.asList(), Arrays.asList()), + LEVEL25(25, 22000, PlotSize.EXTREME, Arrays.asList(), Arrays.asList()), + LEVEL26(26, 25000, PlotSize.EXTREME, Arrays.asList(), Arrays.asList()), + LEVEL27(27, 30000, PlotSize.EXTREME, Arrays.asList(), Arrays.asList()), + LEVEL28(28, 32000, PlotSize.EXTREME, Arrays.asList(), Arrays.asList()), + LEVEL29(29, 35000, PlotSize.EXTREME, Arrays.asList(), Arrays.asList()), + LEVEL30(30, 50000, PlotSize.GOD, Arrays.asList(), Arrays.asList()); + + static Map levels = new HashMap<>(); + + static { + int count = 0; + for(CLevel level : CLevel.values()) + { + levels.put(count, level); + count++; + } + } + + private List loreCommands; + private List loreActions; + + private int realLevel; + private int trophyMin; + private PlotSize plotSize; + + CLevel(int realLevel, int trophyMin, PlotSize plotSize, List loreCommands, List loreActions){ + this.realLevel = realLevel; + this.trophyMin = trophyMin; + this.loreCommands = loreCommands; + this.loreActions = loreActions; + this.plotSize = plotSize; + } + + public static CLevel findLevelByTrophy(int trophy){ + for(Map.Entry lvl : levels.entrySet()){ + if(trophy > lvl.getValue().getTrophy()) continue; + return lvl.getValue(); + } + return CLevel.LEVEL1; + } + + public int getRealLevel(){ + return realLevel; + } + + public int getTrophy(){ + return trophyMin; + } + + public List getCommands(){ + return loreCommands; + } + + public List getLoreActions(){ + return loreActions; + } + + public PlotSize getPlotSize() { + return plotSize; + } +} diff --git a/src/main/java/fr/gravencyg/utils/CRank.java b/src/main/java/fr/gravencyg/utils/CRank.java new file mode 100644 index 0000000..24578bf --- /dev/null +++ b/src/main/java/fr/gravencyg/utils/CRank.java @@ -0,0 +1,34 @@ +package fr.gravencyg.utils; + +import org.bukkit.ChatColor; + +public enum CRank { + JOUEUR(ChatColor.GRAY), + PREMIUM(ChatColor.GOLD), + YOUTUBEUR(ChatColor.RED), + BUILDER(ChatColor.BLUE), + MODÉRATION(ChatColor.BLUE), + ADMIN(ChatColor.RED); + + private ChatColor color; + + CRank(ChatColor color){ + this.color = color; + } + + public ChatColor getColor() { + return color; + } + + public Object getName() { return getSigle() + name().substring(1).toLowerCase(); } + + public Object getSigle() { return name().toUpperCase().substring(0, 1); } + + public boolean isNotMod() { + return this != CRank.MODÉRATION && this != CRank.ADMIN; + } + + public boolean isMod() { + return this == CRank.MODÉRATION || this == CRank.ADMIN; + } +} diff --git a/src/main/java/fr/gravencyg/utils/LocationUtils.java b/src/main/java/fr/gravencyg/utils/LocationUtils.java new file mode 100644 index 0000000..0246f15 --- /dev/null +++ b/src/main/java/fr/gravencyg/utils/LocationUtils.java @@ -0,0 +1,56 @@ +package fr.gravencyg.utils; + +import org.bukkit.Bukkit; +import org.bukkit.Location; + +public class LocationUtils { + + public static String fromLocToString(Location location) { + return location.getX() + "/" + location.getY() + "/" + location.getZ(); + } + + public static String fromLocToString2(Location location) { + return "x:" + (int)location.getX() + " y:" + (int)location.getY() + " z:" + (int)location.getZ() + " yaw:" + (int)location.getYaw() + " pitch:" + (int)location.getPitch(); + } + + public static Location fromString2toLoc(String ownerUUID, String string) { + String[] sloc = string.split(" "); + double x = Double.valueOf(sloc[0].replace("x:","")); + double y = Double.valueOf(sloc[1].replace("y:","")); + double z = Double.valueOf(sloc[2].replace("z:","")); + float yaw = Float.valueOf(sloc[3].replace("yaw:","")); + float pitch = Float.valueOf(sloc[4].replace("pitch:","")); + return new Location(Bukkit.getWorld(ownerUUID), x, y, z, yaw, pitch); + } + + public static Location fromStringToLoc(String uuid, String string) { + String[] sloc = string.split("/"); + double x = Double.valueOf(sloc[0]); + double y = Double.valueOf(sloc[1]); + double z = Double.valueOf(sloc[2]); + return new Location(Bukkit.getWorld(uuid), x, y, z); + } + + public static Location fromStringToLocComplete(String uuid, String string) { + String[] sloc = string.split("/"); + double x = Double.valueOf(sloc[0]); + double y = Double.valueOf(sloc[1]); + double z = Double.valueOf(sloc[2]); + float yaw = Float.valueOf(sloc[3]); + float pitch = Float.valueOf(sloc[4]); + return new Location(Bukkit.getWorld(uuid), x, y, z, yaw, pitch); + } + + public static String fromLocToStringComplete(Location location) { + return location.getX() + "/" + location.getY() + "/" + location.getZ() + + "/" + location.getYaw() + "/" + location.getPitch(); + } + + public static String fromStringToSimpleString(String uuid, String string) { + return fromLocToString2(fromStringToLocComplete(uuid, string)); + } + + public static String defaultSpawn() { + return "0/50/0/0/0"; + } +} diff --git a/src/main/java/fr/gravencyg/utils/PlotSize.java b/src/main/java/fr/gravencyg/utils/PlotSize.java new file mode 100644 index 0000000..c860ed2 --- /dev/null +++ b/src/main/java/fr/gravencyg/utils/PlotSize.java @@ -0,0 +1,28 @@ +package fr.gravencyg.utils; + +public enum PlotSize { + + NONE(0), + NORMAL(75), + MEDIUM(100), + BIG(150), + LARGE(200), + MEGA(250), + EXTREME(500), + GOD(1000); + + private int borderSize; + + PlotSize(int borderSize) + { + this.borderSize = borderSize; + } + + public int getBorderSize() { + return borderSize; + } + + public String getName(){ + return name().toUpperCase().charAt(0) + name().toLowerCase().substring(1); + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..6788414 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,88 @@ +name: CYG +version: 0.0.7 +api-version: 1.13 +author: Graven +main: fr.gravencyg.CYG +commands: + plot: + description: Se teleporter vers sa parcelle + aliases: [pt] + locations: + aliases: [loc] + ev: + description: Obtenir un bloc d'evenement + actions: + description: Ouvrir le menu des actions + aliases: [ac, pa] + options: + aliases: [po] + setspawn: + setcode: + if: + description: Obtenir un bloc de condition + hub: + description: Se teleporter au Hub + messages: + description: Ouvrir le menu de gestion des messages + aliases: [msg] + play: + description: Jouer au jeu d'un joueur en ligne + aliases: [p] + pa: + description: Plot actions + po: + description: Plot options + pc: + description: Plot code + ptp: + description: Plot tp + rank: + description: rank + permission: rank.change + verifygame: + description: verify + fly: + description: Activer le vol doiseau + friend: + description: Invitez des amis sur votre parcelle + mute: + description: Mute un joueur + unmute: + description: Demute un joueur + kick: + description: Ejecte un joueur du serveur + freeze: + description: Gele un joueur du serveur + uuid: + description: Donne luuid du joueur + leave: + description: Quitter un jeu + barriere: + description: Barriere + we: + description: Mini worldedit pour les joueurs + ping: + description: Ping + head: + description: Donne la tete d'un joueur + gamemode: + description: Changement de gamemode + gamename: + refreshlevel: + permission: perm.full + forcelevel: + permission: perm.full + premium: + permission: shop.premium + discord: + description: Discord lien + shop: + description: Shop lien + twitter: + description: Twitter lien + hat: + description: Change hat + npc: + description: Gérer les personnages on joueurs + updateholo: + permission: update.holo \ No newline at end of file