From 7f5efd6427366839aadb80c2b7aad446a6a1b77a Mon Sep 17 00:00:00 2001 From: Matheus Date: Fri, 14 Jun 2024 13:34:49 -0400 Subject: [PATCH] upload --- .github/workflows/maven.yml | 24 + .gitignore | 53 ++ API/pom.xml | 24 + .../java/com/solexgames/api/CoreAccess.java | 91 ++ .../solexgames/api/example/ExampleAccess.java | 32 + API/target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 2 + .../compile/default-compile/inputFiles.lst | 2 + Bukkit/.gitignore | 112 +++ Bukkit/docs/documentation.txt | 86 ++ Bukkit/pom.xml | 138 +++ .../java/com/solexgames/core/CorePlugin.java | 397 ++++++++ .../core/adapter/DateTypeAdapter.java | 36 + .../core/adapter/LocationTypeAdapter.java | 72 ++ .../core/adapter/PotionEffectTypeAdapter.java | 53 ++ .../com/solexgames/core/board/ScoreBoard.java | 155 ++++ .../core/board/impl/ModModeBoard.java | 64 ++ .../com/solexgames/core/chat/IChatCheck.java | 15 + .../com/solexgames/core/chat/IChatFormat.java | 9 + .../core/chat/impl/DefaultChatFormat.java | 30 + .../core/chat/impl/PAPIChatFormat.java | 15 + .../solexgames/core/command/BaseCommand.java | 187 ++++ .../solexgames/core/command/EBaseCommand.java | 83 ++ .../core/command/annotation/Command.java | 21 + .../core/command/impl/CoreCommand.java | 70 ++ .../command/impl/auth/AuthBypassCommand.java | 57 ++ .../core/command/impl/auth/AuthCommand.java | 70 ++ .../command/impl/auth/AuthSetupCommand.java | 46 + .../command/impl/auth/ResetAuthCommand.java | 53 ++ .../impl/disguise/CheckDisguiseCommand.java | 52 ++ .../impl/disguise/DisguiseAdminCommand.java | 184 ++++ .../impl/disguise/DisguiseCommand.java | 47 + .../impl/disguise/DisguiseListCommand.java | 47 + .../impl/disguise/DisguiseManualCommand.java | 81 ++ .../impl/disguise/UnDisguiseCommand.java | 37 + .../impl/essential/BroadcastCommand.java | 44 + .../command/impl/essential/ClearCommand.java | 48 + .../command/impl/essential/ColorCommand.java | 28 + .../impl/essential/CraftingCommand.java | 27 + .../impl/essential/DiscordCommand.java | 21 + .../impl/essential/EnchantCommand.java | 32 + .../impl/essential/EnderChestCommand.java | 47 + .../command/impl/essential/FeedCommand.java | 47 + .../command/impl/essential/FindCommand.java | 57 ++ .../command/impl/essential/FlyCommand.java | 76 ++ .../command/impl/essential/GiveCommand.java | 74 ++ .../command/impl/essential/GmcCommand.java | 49 + .../command/impl/essential/GmsCommand.java | 45 + .../command/impl/essential/GmspCommand.java | 53 ++ .../command/impl/essential/HealCommand.java | 44 + .../command/impl/essential/HelpOpCommand.java | 62 ++ .../command/impl/essential/IgnoreCommand.java | 93 ++ .../command/impl/essential/JoinCommand.java | 50 + .../command/impl/essential/JumpCommand.java | 51 ++ .../command/impl/essential/KillCommand.java | 56 ++ .../command/impl/essential/ListCommand.java | 87 ++ .../impl/essential/MaxItemCommand.java | 43 + .../command/impl/essential/MediaCommand.java | 43 + .../impl/essential/MessageCommand.java | 94 ++ .../impl/essential/OptionsCommand.java | 27 + .../impl/essential/PermissionsCommand.java | 42 + .../command/impl/essential/PingCommand.java | 43 + .../impl/essential/ProfileCommand.java | 45 + .../command/impl/essential/ReplyCommand.java | 100 ++ .../command/impl/essential/ReportCommand.java | 50 + .../command/impl/essential/StoreCommand.java | 21 + .../impl/essential/SudoAllCommand.java | 41 + .../command/impl/essential/SudoCommand.java | 54 ++ .../command/impl/essential/TpAllCommand.java | 46 + .../command/impl/essential/TpCommand.java | 46 + .../command/impl/essential/TpHereCommand.java | 53 ++ .../command/impl/essential/TpPosCommand.java | 51 ++ .../impl/essential/TwitterCommand.java | 22 + .../command/impl/essential/UserCommand.java | 194 ++++ .../impl/essential/WebsiteCommand.java | 21 + .../essential/WhatServerAmIOnCommand.java | 40 + .../impl/experience/ExperienceCommand.java | 141 +++ .../core/command/impl/grant/GrantCommand.java | 51 ++ .../impl/grant/GrantManualCommand.java | 75 ++ .../command/impl/grant/GrantsCommand.java | 54 ++ .../impl/moderation/AdminChatCommand.java | 48 + .../command/impl/moderation/AltsCommand.java | 110 +++ .../impl/moderation/ClearAltsCommand.java | 60 ++ .../impl/moderation/ClearChatCommand.java | 52 ++ .../impl/moderation/DevChatCommand.java | 48 + .../impl/moderation/FreezeCommand.java | 67 ++ .../impl/moderation/HistoryCommand.java | 39 + .../impl/moderation/HostChatCommand.java | 48 + .../impl/moderation/ManagerChatCommand.java | 49 + .../impl/moderation/ModModeCommand.java | 37 + .../impl/moderation/MuteChatCommand.java | 34 + .../command/impl/moderation/NoteCommand.java | 9 + .../impl/moderation/OwnerChatCommand.java | 48 + .../impl/moderation/RemoveProfileCommand.java | 43 + .../impl/moderation/ReportsCommand.java | 28 + .../impl/moderation/SlowChatCommand.java | 42 + .../impl/moderation/SocialSpyCommand.java | 39 + .../impl/moderation/StaffAnnounceCommand.java | 36 + .../impl/moderation/StaffChatCommand.java | 51 ++ .../impl/moderation/StaffListCommand.java | 64 ++ .../impl/moderation/VanishCommand.java | 100 ++ .../impl/moderation/ViewInvCommand.java | 47 + .../command/impl/network/NetworkCommand.java | 93 ++ .../core/command/impl/other/DemoCommand.java | 49 + .../command/impl/other/NametagCommand.java | 41 + .../core/command/impl/other/TurnCommand.java | 49 + .../command/impl/other/WebPostCommand.java | 56 ++ .../command/impl/prefix/PrefixCommand.java | 231 +++++ .../core/command/impl/punish/BanCommand.java | 117 +++ .../command/impl/punish/BlacklistCommand.java | 108 +++ .../command/impl/punish/KickAllCommand.java | 43 + .../core/command/impl/punish/KickCommand.java | 97 ++ .../core/command/impl/punish/MuteCommand.java | 116 +++ .../command/impl/punish/UnBanCommand.java | 39 + .../impl/punish/UnBlacklistCommand.java | 39 + .../command/impl/punish/UnMuteCommand.java | 39 + .../core/command/impl/punish/WarnCommand.java | 125 +++ .../core/command/impl/rank/ImportCommand.java | 79 ++ .../core/command/impl/rank/RankCommand.java | 480 ++++++++++ .../command/impl/server/SetSlotsCommand.java | 86 ++ .../impl/shutdown/ShutdownCommand.java | 60 ++ .../command/impl/syncing/SyncCommand.java | 39 + .../command/impl/syncing/UnSyncCommand.java | 37 + .../impl/toggle/ToggleAutoModModeCommand.java | 38 + .../impl/toggle/ToggleAutoVanishCommand.java | 38 + .../toggle/ToggleFilteredMessagesCommand.java | 38 + .../toggle/TogglePrivateMessagesCommand.java | 38 + .../toggle/ToggleStaffMessagesCommand.java | 38 + .../impl/toggle/ToggleTipsCommand.java | 38 + .../solexgames/core/database/Database.java | 38 + .../core/disguise/DisguiseCache.java | 40 + .../core/disguise/DisguiseData.java | 43 + .../core/enums/ChatChannelType.java | 20 + .../solexgames/core/enums/LanguageType.java | 30 + .../core/enums/NetworkServerStatusType.java | 18 + .../core/enums/NetworkServerType.java | 29 + .../com/solexgames/core/enums/ReportType.java | 34 + .../com/solexgames/core/enums/ServerType.java | 45 + .../core/enums/StaffUpdateType.java | 19 + .../solexgames/core/hooks/client/IClient.java | 14 + .../hooks/client/impl/LunarClientImpl.java | 32 + .../com/solexgames/core/hooks/nms/INMS.java | 42 + .../core/hooks/nms/impl/NMSAccess_v1_12.java | 114 +++ .../core/hooks/nms/impl/NMSAccess_v1_16.java | 229 +++++ .../core/hooks/nms/impl/NMSAccess_v1_7.java | 94 ++ .../core/hooks/nms/impl/NMSAccess_v1_8.java | 139 +++ .../core/hooks/nms/impl/NMSAccess_v1_9.java | 114 +++ .../hooks/protocol/AbstractPacketHandler.java | 31 + .../protocol/impl/ProtocolPacketHandler.java | 133 +++ .../core/listener/ModSuiteListener.java | 161 ++++ .../core/listener/PaginationListener.java | 133 +++ .../core/listener/PlayerListener.java | 489 ++++++++++ .../listener/custom/PlayerFreezeEvent.java | 30 + .../listener/custom/PreDisguiseEvent.java | 43 + .../listener/custom/ServerDeleteEvent.java | 25 + .../listener/custom/ServerRetrieveEvent.java | 25 + .../core/listener/custom/UnDisguiseEvent.java | 30 + .../core/manager/CryptoManager.java | 75 ++ .../solexgames/core/manager/DataManager.java | 28 + .../core/manager/DiscordManager.java | 104 +++ .../core/manager/DisguiseManager.java | 221 +++++ .../core/manager/FilterManager.java | 109 +++ .../core/manager/NameTagManager.java | 134 +++ .../core/manager/PlayerManager.java | 352 +++++++ .../core/manager/PrefixManager.java | 47 + .../core/manager/PunishmentManager.java | 288 ++++++ .../solexgames/core/manager/RankManager.java | 88 ++ .../core/manager/ReportManager.java | 16 + .../core/manager/ServerManager.java | 117 +++ .../core/manager/ShutdownManager.java | 36 + .../core/menu/AbstractInventoryMenu.java | 41 + .../solexgames/core/menu/impl/ReportMenu.java | 102 +++ .../core/menu/impl/ScandiumMenu.java | 100 ++ .../core/menu/impl/SettingsMenu.java | 130 +++ .../impl/experience/ExperienceMainMenu.java | 65 ++ .../experience/ExperienceShopMainMenu.java | 55 ++ .../experience/buy/PrefixPurchaseMenu.java | 138 +++ .../impl/experience/buy/RankPurchaseMenu.java | 113 +++ .../impl/grant/GrantRemoveConfirmMenu.java | 137 +++ .../impl/grant/GrantSelectConfirmMenu.java | 105 +++ .../core/menu/impl/lang/LanguageMenu.java | 110 +++ .../menu/impl/media/MediaManagerMenu.java | 92 ++ .../core/menu/impl/media/MediaSetMenu.java | 132 +++ .../core/menu/impl/media/MediaViewMenu.java | 73 ++ .../core/menu/impl/player/PlayerInfoMenu.java | 140 +++ .../core/menu/impl/player/ViewPlayerMenu.java | 185 ++++ .../history/PunishHistoryViewMainMenu.java | 118 +++ .../remove/PunishRemoveConfirmMenu.java | 103 +++ .../com/solexgames/core/player/PotPlayer.java | 855 ++++++++++++++++++ .../core/player/global/NetworkPlayer.java | 31 + .../solexgames/core/player/grant/Grant.java | 86 ++ .../solexgames/core/player/media/Media.java | 15 + .../core/player/media/MediaConstants.java | 12 + .../core/player/meta/MetaDataEntry.java | 15 + .../core/player/meta/MetaDataValue.java | 30 + .../solexgames/core/player/notes/Note.java | 22 + .../core/player/prefixes/Prefix.java | 81 ++ .../core/player/punishment/Punishment.java | 142 +++ .../player/punishment/PunishmentStrings.java | 69 ++ .../player/punishment/PunishmentType.java | 22 + .../solexgames/core/player/ranks/Rank.java | 142 +++ .../solexgames/core/player/report/Report.java | 44 + .../solexgames/core/redis/JedisAction.java | 53 ++ .../solexgames/core/redis/JedisAdapter.java | 509 +++++++++++ .../core/serializer/DataLibrary.java | 35 + .../core/serializer/DataSerializer.java | 40 + .../serializer/impl/ItemStackSerializer.java | 17 + .../serializer/impl/LocationSerializer.java | 17 + .../solexgames/core/server/NetworkServer.java | 87 ++ .../core/settings/ServerSettings.java | 24 + .../core/settings/player/ISettings.java | 20 + .../solexgames/core/task/AutoMessageTask.java | 67 ++ .../solexgames/core/task/BoardUpdateTask.java | 31 + .../core/task/FrozenMessageTask.java | 24 + .../solexgames/core/task/GrantExpireTask.java | 36 + .../core/task/MenuAutoUpdateThread.java | 30 + .../core/task/PlayerDataUpdateTask.java | 23 + .../core/task/PunishExpireTask.java | 57 ++ .../solexgames/core/task/PunishSaveTask.java | 24 + .../core/task/ServerLoadingTask.java | 42 + .../core/task/ServerShutdownTask.java | 51 ++ .../core/task/ServerTimeoutTask.java | 41 + .../core/task/ServerUpdateTask.java | 22 + .../solexgames/core/task/TPSUpdateTask.java | 32 + .../com/solexgames/core/util/BukkitUtil.java | 118 +++ .../com/solexgames/core/util/BungeeUtil.java | 38 + .../java/com/solexgames/core/util/Color.java | 37 + .../com/solexgames/core/util/Constants.java | 14 + .../com/solexgames/core/util/DateUtil.java | 105 +++ .../solexgames/core/util/ExperienceUtil.java | 113 +++ .../com/solexgames/core/util/GrantUtil.java | 28 + .../solexgames/core/util/InventoryUtil.java | 46 + .../solexgames/core/util/LocationUtil.java | 46 + .../com/solexgames/core/util/LockedState.java | 28 + .../com/solexgames/core/util/PlayerUtil.java | 104 +++ .../com/solexgames/core/util/RedisUtil.java | 298 ++++++ .../com/solexgames/core/util/SaltUtil.java | 48 + .../com/solexgames/core/util/StringUtil.java | 271 ++++++ .../com/solexgames/core/util/TotpUtil.java | 380 ++++++++ .../com/solexgames/core/util/UUIDUtil.java | 94 ++ .../com/solexgames/core/util/VotingUtil.java | 36 + .../com/solexgames/core/util/WoolUtil.java | 42 + .../core/util/atomic/AtomicDocument.java | 13 + .../core/util/atomic/AtomicUUID.java | 14 + .../core/util/builder/ItemBuilder.java | 186 ++++ .../core/util/builder/PageListBuilder.java | 46 + .../core/util/builder/PostBuilder.java | 54 ++ .../core/util/clickable/Clickable.java | 52 ++ .../core/util/command/BukkitCommandMap.java | 87 ++ .../core/util/command/CommandHelpBuilder.java | 46 + .../core/util/command/CustomHelpTopic.java | 57 ++ .../core/util/config/FileConfig.java | 92 ++ .../solexgames/core/util/external/Button.java | 24 + .../solexgames/core/util/external/Menu.java | 156 ++++ .../external/button/JumpToPageButton.java | 45 + .../external/button/ViewAllPagesMenu.java | 38 + .../external/impl/NameColorSelectMenu.java | 106 +++ .../impl/PrefixViewPaginatedMenu.java | 126 +++ .../impl/PunishViewPaginatedMenu.java | 120 +++ .../impl/ReportViewPaginatedMenu.java | 117 +++ .../external/impl/StaffViewPaginatedMenu.java | 88 ++ .../impl/editor/RankEditorEditMenu.java | 197 ++++ .../impl/editor/RankEditorMainMenu.java | 103 +++ .../grant/GrantDurationPaginatedMenu.java | 155 ++++ .../impl/grant/GrantMainPaginatedMenu.java | 120 +++ .../impl/grant/GrantReasonPaginatedMenu.java | 156 ++++ .../impl/grant/GrantScopePaginatedMenu.java | 136 +++ .../impl/grant/GrantViewPaginatedMenu.java | 145 +++ .../impl/network/NetworkServerInfoMenu.java | 104 +++ .../impl/network/NetworkServerMainMenu.java | 60 ++ .../external/pagination/PaginatedMenu.java | 175 ++++ .../core/util/font/DefaultFontInfo.java | 129 +++ .../solexgames/core/util/map/QrCodeMap.java | 24 + .../core/util/prompt/DisclaimerPrompt.java | 37 + .../core/util/prompt/GrantDurationPrompt.java | 54 ++ .../core/util/prompt/GrantReasonPrompt.java | 43 + .../core/util/prompt/GrantRemovalPrompt.java | 40 + .../core/util/prompt/MapScannerPrompt.java | 156 ++++ .../core/util/prompt/SocialMediaPrompt.java | 91 ++ .../util/prompt/editor/RankColorPrompt.java | 54 ++ .../util/prompt/editor/RankPrefixPrompt.java | 47 + .../util/prompt/editor/RankSuffixPrompt.java | 47 + .../core/util/rainbow/RainbowNametag.java | 76 ++ .../com/solexgames/core/uuid/UUIDCache.java | 56 ++ Bukkit/src/main/resources/config.yml | 109 +++ Bukkit/src/main/resources/database.yml | 10 + Bukkit/src/main/resources/filtered.yml | 7 + Bukkit/src/main/resources/plugin.yml | 12 + Bukkit/src/main/resources/ranks.yml | 28 + Bungee/.gitignore | 113 +++ Bungee/pom.xml | 80 ++ .../java/com/solexgames/xenon/CorePlugin.java | 256 ++++++ .../xenon/command/HardMaintenanceCommand.java | 45 + .../solexgames/xenon/command/HubCommand.java | 32 + .../solexgames/xenon/command/ListCommand.java | 18 + .../xenon/command/MaintenanceCommand.java | 105 +++ .../xenon/command/ProxyStatusCommand.java | 49 + .../xenon/command/TimerCommand.java | 69 ++ .../solexgames/xenon/command/VpnCommand.java | 82 ++ .../xenon/command/XenonCommand.java | 24 + .../xenon/listener/PlayerListener.java | 209 +++++ .../xenon/manager/NetworkPlayer.java | 37 + .../xenon/manager/NetworkPlayerManager.java | 24 + .../solexgames/xenon/manager/VpnManager.java | 28 + .../xenon/model/VpnRequestData.java | 27 + .../solexgames/xenon/redis/JedisBuilder.java | 47 + .../solexgames/xenon/redis/JedisManager.java | 136 +++ .../solexgames/xenon/redis/JedisSettings.java | 22 + .../xenon/redis/JedisSubscription.java | 45 + .../xenon/redis/annotation/Subscription.java | 21 + .../InvalidSubscriptionException.java | 8 + .../xenon/redis/handler/JedisHandler.java | 13 + .../handler/impl/BungeeJedisListener.java | 45 + .../redis/handler/impl/JedisListener.java | 105 +++ .../xenon/redis/json/JsonAppender.java | 82 ++ .../xenon/redis/packet/JedisAction.java | 25 + .../task/ActiveTimerFooterUpdateTask.java | 21 + .../xenon/timer/XenonTopicTimer.java | 33 + .../java/com/solexgames/xenon/util/Color.java | 15 + .../xenon/util/FontInformation.java | 130 +++ .../com/solexgames/xenon/util/MOTDUtil.java | 50 + .../src/main/resources/acf-core_en.properties | 47 + Bungee/src/main/resources/config.yml | 38 + Bungee/src/main/resources/data.yml | 6 + Bungee/src/main/resources/plugin.yml | 4 + Placeholder/pom.xml | 96 ++ .../solexgames/papi/PlaceholderPlugin.java | 31 + .../papi/extension/CoreExtension.java | 89 ++ .../papi/extension/ServerExtension.java | 48 + .../papi/listener/ServerListener.java | 33 + .../papi/manager/ExtensionManager.java | 78 ++ Placeholder/src/main/resources/plugin.yml | 4 + Placeholder/target/classes/plugin.yml | 4 + .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 6 + .../compile/default-compile/inputFiles.lst | 5 + README.md | 3 + REST/.gitignore | 33 + REST/.mvn/wrapper/MavenWrapperDownloader.java | 117 +++ REST/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes REST/.mvn/wrapper/maven-wrapper.properties | 2 + REST/mvnw | 310 +++++++ REST/mvnw.cmd | 182 ++++ REST/pom.xml | 66 ++ .../solexgames/rest/RestApiApplication.java | 16 + .../rest/controller/PunishmentController.java | 62 ++ .../com/solexgames/rest/model/Player.java | 9 + .../com/solexgames/rest/model/Punishment.java | 43 + .../rest/repository/PlayerRepository.java | 9 + .../rest/repository/PunishmentRepository.java | 18 + .../src/main/resources/application.properties | 9 + .../rest/RestApiApplicationTests.java | 13 + pom.xml | 76 ++ target/Scandium-1.0-SNAPSHOT-shaded.pom | Bin 0 -> 22 bytes 354 files changed, 26022 insertions(+) create mode 100644 .github/workflows/maven.yml create mode 100644 .gitignore create mode 100644 API/pom.xml create mode 100644 API/src/main/java/com/solexgames/api/CoreAccess.java create mode 100644 API/src/main/java/com/solexgames/api/example/ExampleAccess.java create mode 100644 API/target/maven-archiver/pom.properties create mode 100644 API/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 API/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 Bukkit/.gitignore create mode 100644 Bukkit/docs/documentation.txt create mode 100644 Bukkit/pom.xml create mode 100644 Bukkit/src/main/java/com/solexgames/core/CorePlugin.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/adapter/DateTypeAdapter.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/adapter/LocationTypeAdapter.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/adapter/PotionEffectTypeAdapter.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/board/ScoreBoard.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/board/impl/ModModeBoard.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/chat/IChatCheck.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/chat/IChatFormat.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/chat/impl/DefaultChatFormat.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/chat/impl/PAPIChatFormat.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/BaseCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/EBaseCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/annotation/Command.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/CoreCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/auth/AuthBypassCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/auth/AuthCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/auth/AuthSetupCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/auth/ResetAuthCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/CheckDisguiseCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/DisguiseAdminCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/DisguiseCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/DisguiseListCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/DisguiseManualCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/disguise/UnDisguiseCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/BroadcastCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ClearCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ColorCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/CraftingCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/DiscordCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/EnchantCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/EnderChestCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/FeedCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/FindCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/FlyCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/GiveCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/GmcCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/GmsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/GmspCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/HealCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/HelpOpCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/IgnoreCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/JoinCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/JumpCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/KillCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ListCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/MaxItemCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/MediaCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/MessageCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/OptionsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/PermissionsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/PingCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ProfileCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ReplyCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/ReportCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/StoreCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/SudoAllCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/SudoCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/TpAllCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/TpCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/TpHereCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/TpPosCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/TwitterCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/UserCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/WebsiteCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/essential/WhatServerAmIOnCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/experience/ExperienceCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/grant/GrantCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/grant/GrantManualCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/grant/GrantsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/AdminChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/AltsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ClearAltsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ClearChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/DevChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/FreezeCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/HistoryCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/HostChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ManagerChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ModModeCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/MuteChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/NoteCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/OwnerChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/RemoveProfileCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ReportsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/SlowChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/SocialSpyCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/StaffAnnounceCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/StaffChatCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/StaffListCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/VanishCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/moderation/ViewInvCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/network/NetworkCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/other/DemoCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/other/NametagCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/other/TurnCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/other/WebPostCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/prefix/PrefixCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/BanCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/BlacklistCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/KickAllCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/KickCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/MuteCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/UnBanCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/UnBlacklistCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/UnMuteCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/punish/WarnCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/rank/ImportCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/rank/RankCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/server/SetSlotsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/shutdown/ShutdownCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/syncing/SyncCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/syncing/UnSyncCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/ToggleAutoModModeCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/ToggleAutoVanishCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/ToggleFilteredMessagesCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/TogglePrivateMessagesCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/ToggleStaffMessagesCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/command/impl/toggle/ToggleTipsCommand.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/database/Database.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/disguise/DisguiseCache.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/disguise/DisguiseData.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/ChatChannelType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/LanguageType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/NetworkServerStatusType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/NetworkServerType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/ReportType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/ServerType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/enums/StaffUpdateType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/client/IClient.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/client/impl/LunarClientImpl.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/INMS.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/impl/NMSAccess_v1_12.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/impl/NMSAccess_v1_16.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/impl/NMSAccess_v1_7.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/impl/NMSAccess_v1_8.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/nms/impl/NMSAccess_v1_9.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/protocol/AbstractPacketHandler.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/hooks/protocol/impl/ProtocolPacketHandler.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/ModSuiteListener.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/PaginationListener.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/PlayerListener.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/custom/PlayerFreezeEvent.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/custom/PreDisguiseEvent.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/custom/ServerDeleteEvent.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/custom/ServerRetrieveEvent.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/listener/custom/UnDisguiseEvent.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/CryptoManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/DataManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/DiscordManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/DisguiseManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/FilterManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/NameTagManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/PlayerManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/PrefixManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/PunishmentManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/RankManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/ReportManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/ServerManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/manager/ShutdownManager.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/AbstractInventoryMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/ReportMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/ScandiumMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/SettingsMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/experience/ExperienceMainMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/experience/ExperienceShopMainMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/experience/buy/PrefixPurchaseMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/experience/buy/RankPurchaseMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/grant/GrantRemoveConfirmMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/grant/GrantSelectConfirmMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/lang/LanguageMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/media/MediaManagerMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/media/MediaSetMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/media/MediaViewMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/player/PlayerInfoMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/player/ViewPlayerMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/punish/history/PunishHistoryViewMainMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/menu/impl/punish/remove/PunishRemoveConfirmMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/PotPlayer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/global/NetworkPlayer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/grant/Grant.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/media/Media.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/media/MediaConstants.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/meta/MetaDataEntry.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/meta/MetaDataValue.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/notes/Note.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/prefixes/Prefix.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/punishment/Punishment.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/punishment/PunishmentStrings.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/punishment/PunishmentType.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/ranks/Rank.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/player/report/Report.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/redis/JedisAction.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/redis/JedisAdapter.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/serializer/DataLibrary.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/serializer/DataSerializer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/serializer/impl/ItemStackSerializer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/serializer/impl/LocationSerializer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/server/NetworkServer.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/settings/ServerSettings.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/settings/player/ISettings.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/AutoMessageTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/BoardUpdateTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/FrozenMessageTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/GrantExpireTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/MenuAutoUpdateThread.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/PlayerDataUpdateTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/PunishExpireTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/PunishSaveTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/ServerLoadingTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/ServerShutdownTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/ServerTimeoutTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/ServerUpdateTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/task/TPSUpdateTask.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/BukkitUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/BungeeUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/Color.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/Constants.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/DateUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/ExperienceUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/GrantUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/InventoryUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/LocationUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/LockedState.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/PlayerUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/RedisUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/SaltUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/StringUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/TotpUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/UUIDUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/VotingUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/WoolUtil.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/atomic/AtomicDocument.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/atomic/AtomicUUID.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/builder/ItemBuilder.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/builder/PageListBuilder.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/builder/PostBuilder.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/clickable/Clickable.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/command/BukkitCommandMap.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/command/CommandHelpBuilder.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/command/CustomHelpTopic.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/config/FileConfig.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/Button.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/Menu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/button/JumpToPageButton.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/button/ViewAllPagesMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/NameColorSelectMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/PrefixViewPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/PunishViewPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/ReportViewPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/StaffViewPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/editor/RankEditorEditMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/editor/RankEditorMainMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/grant/GrantDurationPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/grant/GrantMainPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/grant/GrantReasonPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/grant/GrantScopePaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/grant/GrantViewPaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/network/NetworkServerInfoMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/impl/network/NetworkServerMainMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/external/pagination/PaginatedMenu.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/font/DefaultFontInfo.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/map/QrCodeMap.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/DisclaimerPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/GrantDurationPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/GrantReasonPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/GrantRemovalPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/MapScannerPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/SocialMediaPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/editor/RankColorPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/editor/RankPrefixPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/prompt/editor/RankSuffixPrompt.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/util/rainbow/RainbowNametag.java create mode 100644 Bukkit/src/main/java/com/solexgames/core/uuid/UUIDCache.java create mode 100644 Bukkit/src/main/resources/config.yml create mode 100644 Bukkit/src/main/resources/database.yml create mode 100644 Bukkit/src/main/resources/filtered.yml create mode 100644 Bukkit/src/main/resources/plugin.yml create mode 100644 Bukkit/src/main/resources/ranks.yml create mode 100644 Bungee/.gitignore create mode 100644 Bungee/pom.xml create mode 100644 Bungee/src/main/java/com/solexgames/xenon/CorePlugin.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/HardMaintenanceCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/HubCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/ListCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/MaintenanceCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/ProxyStatusCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/TimerCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/VpnCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/command/XenonCommand.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/listener/PlayerListener.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/manager/NetworkPlayer.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/manager/NetworkPlayerManager.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/manager/VpnManager.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/model/VpnRequestData.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/JedisBuilder.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/JedisManager.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/JedisSettings.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/JedisSubscription.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/annotation/Subscription.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/exception/InvalidSubscriptionException.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/handler/JedisHandler.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/handler/impl/BungeeJedisListener.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/handler/impl/JedisListener.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/json/JsonAppender.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/redis/packet/JedisAction.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/task/ActiveTimerFooterUpdateTask.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/timer/XenonTopicTimer.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/util/Color.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/util/FontInformation.java create mode 100644 Bungee/src/main/java/com/solexgames/xenon/util/MOTDUtil.java create mode 100644 Bungee/src/main/resources/acf-core_en.properties create mode 100644 Bungee/src/main/resources/config.yml create mode 100644 Bungee/src/main/resources/data.yml create mode 100644 Bungee/src/main/resources/plugin.yml create mode 100644 Placeholder/pom.xml create mode 100644 Placeholder/src/main/java/com/solexgames/papi/PlaceholderPlugin.java create mode 100644 Placeholder/src/main/java/com/solexgames/papi/extension/CoreExtension.java create mode 100644 Placeholder/src/main/java/com/solexgames/papi/extension/ServerExtension.java create mode 100644 Placeholder/src/main/java/com/solexgames/papi/listener/ServerListener.java create mode 100644 Placeholder/src/main/java/com/solexgames/papi/manager/ExtensionManager.java create mode 100644 Placeholder/src/main/resources/plugin.yml create mode 100644 Placeholder/target/classes/plugin.yml create mode 100644 Placeholder/target/maven-archiver/pom.properties create mode 100644 Placeholder/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 Placeholder/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 README.md create mode 100644 REST/.gitignore create mode 100644 REST/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 REST/.mvn/wrapper/maven-wrapper.jar create mode 100644 REST/.mvn/wrapper/maven-wrapper.properties create mode 100644 REST/mvnw create mode 100644 REST/mvnw.cmd create mode 100644 REST/pom.xml create mode 100644 REST/src/main/java/com/solexgames/rest/RestApiApplication.java create mode 100644 REST/src/main/java/com/solexgames/rest/controller/PunishmentController.java create mode 100644 REST/src/main/java/com/solexgames/rest/model/Player.java create mode 100644 REST/src/main/java/com/solexgames/rest/model/Punishment.java create mode 100644 REST/src/main/java/com/solexgames/rest/repository/PlayerRepository.java create mode 100644 REST/src/main/java/com/solexgames/rest/repository/PunishmentRepository.java create mode 100644 REST/src/main/resources/application.properties create mode 100644 REST/src/test/java/com/solexgames/rest/RestApiApplicationTests.java create mode 100644 pom.xml create mode 100644 target/Scandium-1.0-SNAPSHOT-shaded.pom diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..51b6c03 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,24 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 8 + uses: actions/setup-java@v2 + with: + java-version: '8' + distribution: 'adopt' + + - name: Build with Maven + run: mvn -B package --file pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a523339 --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# Created by .ignore support plugin (hsz.mobi) +### Java template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +.idea +*.iml + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Kotlin template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* diff --git a/API/pom.xml b/API/pom.xml new file mode 100644 index 0000000..24dbf6c --- /dev/null +++ b/API/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + + com.solexgames + Scandium + 1.0-SNAPSHOT + + API + + API + + + + com.solexgames + Bukkit + 1.0-SNAPSHOT + provided + + + diff --git a/API/src/main/java/com/solexgames/api/CoreAccess.java b/API/src/main/java/com/solexgames/api/CoreAccess.java new file mode 100644 index 0000000..413bf5e --- /dev/null +++ b/API/src/main/java/com/solexgames/api/CoreAccess.java @@ -0,0 +1,91 @@ +package com.solexgames.api; + +import com.solexgames.core.CorePlugin; +import com.solexgames.core.chat.IChatFormat; +import com.solexgames.core.manager.PlayerManager; +import com.solexgames.core.manager.ServerManager; +import com.solexgames.core.player.PotPlayer; +import com.solexgames.core.player.global.NetworkPlayer; +import com.solexgames.core.player.grant.Grant; +import com.solexgames.core.player.prefixes.Prefix; +import com.solexgames.core.player.punishment.Punishment; +import com.solexgames.core.util.Color; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author GrowlyX + * @since 4/2/2021 + */ + +public class CoreAccess { + + private final CorePlugin plugin; + + public CoreAccess() { + this.plugin = CorePlugin.getInstance(); + } + + public ServerManager getServerManager() { + return this.plugin.getServerManager(); + } + + public PlayerManager getPlayerManager() { + return this.plugin.getPlayerManager(); + } + + public PotPlayer fetchProfile(Player player) { + return this.plugin.getPlayerManager().getPlayer(player); + } + + public int getExperience(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).getExperience(); + } + + public List getPunishments(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).getPunishments(); + } + + public List getPrefixes(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).getAllPrefixes().stream().map(Prefix::getByName).filter(Objects::nonNull).collect(Collectors.toList()); + } + + public List getGrants(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).getAllGrants(); + } + + public Prefix getPrefix(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).getAppliedPrefix(); + } + + public String getRankPrefix(Player player) { + return Color.translate(this.plugin.getPlayerManager().getPlayer(player).getActiveGrant().getRank().getPrefix()); + } + + public String getRankSuffix(Player player) { + return Color.translate(this.plugin.getPlayerManager().getPlayer(player).getActiveGrant().getRank().getSuffix()); + } + + public boolean isRestricted(Player player) { + return this.plugin.getPlayerManager().getPlayer(player).isCurrentlyRestricted(); + } + + public NetworkPlayer fetchGlobalProfile(Player player) { + return this.plugin.getPlayerManager().getNetworkPlayer(player); + } + + public PotPlayer fetchProfile(String player) { + return this.plugin.getPlayerManager().getPlayer(player); + } + + public NetworkPlayer fetchGlobalProfile(String player) { + return this.plugin.getPlayerManager().getNetworkPlayer(player); + } + + public void registerNewChatFormat(IChatFormat chatFormat) { + this.getServerManager().setChatFormat(chatFormat); + } +} diff --git a/API/src/main/java/com/solexgames/api/example/ExampleAccess.java b/API/src/main/java/com/solexgames/api/example/ExampleAccess.java new file mode 100644 index 0000000..5f0a57e --- /dev/null +++ b/API/src/main/java/com/solexgames/api/example/ExampleAccess.java @@ -0,0 +1,32 @@ +package com.solexgames.api.example; + +import com.solexgames.api.CoreAccess; +import com.solexgames.core.player.global.NetworkPlayer; + +/** + * @author GrowlyX + * @since 4/2/2021 + *

+ * Example of how the {@link CoreAccess} is used. + */ + +public class ExampleAccess { + + /** + * Starts the ExampleAccess class. + * + * @param args Startup Arguments + */ + public static void main(String[] args) { + // Make sure to make a public variable for this to prevent memory leaks. + final CoreAccess coreAccess = new CoreAccess(); + final NetworkPlayer networkPlayer = coreAccess.fetchGlobalProfile("GrowlyX"); + + // Do whatever with the methods available in the CoreAccess Class. + if (networkPlayer != null) { + System.out.println(networkPlayer.getServerName()); + } else { + System.out.println("Growly's not online!"); + } + } +} diff --git a/API/target/maven-archiver/pom.properties b/API/target/maven-archiver/pom.properties new file mode 100644 index 0000000..ccf5efb --- /dev/null +++ b/API/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=API +groupId=com.solexgames +version=1.0-SNAPSHOT diff --git a/API/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/API/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..0d98557 --- /dev/null +++ b/API/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,2 @@ +com\solexgames\api\CoreAccess.class +com\solexgames\api\example\ExampleAccess.class diff --git a/API/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/API/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..b420915 --- /dev/null +++ b/API/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,2 @@ +C:\Users\lu\Downloads\scandium-core-plugin-master\scandium-core-plugin-master\API\src\main\java\com\solexgames\api\example\ExampleAccess.java +C:\Users\lu\Downloads\scandium-core-plugin-master\scandium-core-plugin-master\API\src\main\java\com\solexgames\api\CoreAccess.java diff --git a/Bukkit/.gitignore b/Bukkit/.gitignore new file mode 100644 index 0000000..27d5dde --- /dev/null +++ b/Bukkit/.gitignore @@ -0,0 +1,112 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +target/ + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next + +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.flattened-pom.xml + +# Common working directory +run/ diff --git a/Bukkit/docs/documentation.txt b/Bukkit/docs/documentation.txt new file mode 100644 index 0000000..1bb46cc --- /dev/null +++ b/Bukkit/docs/documentation.txt @@ -0,0 +1,86 @@ +Auth - scandium.2fa +AuthSetup - scandium.2fa +Force authentication for player - scandium.2fa.forced +StaffChat - scandium.channels.staff +AdminChat - scandium.channels.admin +DevChat - scandium.channels.dev +ManagerChat - scandium.channels.manager +HostChat - scandium.channels.host +HelpOP +Broadcast - scandium.command.broadcast +Kill - scandium.command.kill +Feed - scandium.command.feed +Heal - scandium.command.heal +TPPos - scandium.command.tppos +SocialSpy - scandium.command.socialspy +Sudo - scandium.command.sudo +SudoAll - scandium.command.sudoall +TPHere - scandium.command.tphere +GMC - scandium.command.gmc +GMS - scandium.command.gms +GMSP - scandium.command.gmsp +StaffAnnounce - scandium.command.staffannounce +TP - scandium.command.tp +Report +ShutDown - scandium.command.shutdown +Freeze - scandium.command.freeze +Ignore +CheckDisguise - scandium.command.checkdisguise +Rank [And Other Rank Commands such as rank create] - scandium.command.rank +Media +Discord +Import +Experience - scandium.experience.management +Alts - scandium.command.alts +Options - +History - scandium.command.history +Twitter +Website +Permissions - scandium.command.permissions +Find - scandium.command.find +ForceUpdate - scandium.command.forceupdate +Network - scandium.command.network +Store +Sync +Unsync +Reply +Grant - scandium.command.grant +cGrant +Prefix - scandium.command.prefix +Grants - scandium.command.grants +SetSlots - scandium.command.setslots +Clear - scandium.command.clear +Vanish - scandium.command.vanish +ModMode - scandium.command.modmode +ClearChat - scandium.command.clearchat +TPAll - scandium.command.tpall +Color - scandium.chat.colors +OwnerChat - scandium.channels.owner +MuteChat - scandium.command.mutechat +Fly - scandium.command.fly +User - scandium.command.user +Language +Give - scandium.command.give +Craft - scandium.command.crafting +Enchant - scandium.command.enchant +EnderChest - scandium.command.enchant.other [To view other peoples thing its scandium.command.crafting.other] +MaxItem - scandium.command.maxitem +SetSpawn - scandium.command.setspawn +Spawn - scandium.command.spawn +ToggleTips +ToggleStaffMessages - scandium.staff +ToggleAutoModMode - scandium.staff +ToggleAutoVanish - scandium.staff +ToggleFilteredMessages - scandium.staff +SlowChat - scandium.command.slowchat +Message +List - To show up as staff like in vanish or staff mode or something they need this node scandium.staff +Ping +Ban - scandium.command.ban +Blacklist - scandium.command.blacklist +Kick - scandium.command.kick +Mute - scandium.command.mute +Warn - scandium.command.warn +Unban - scandium.command.unban +Unblacklist - scandium.command.unblacklist +Unmute - scandium.command.unmute diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml new file mode 100644 index 0000000..7382df0 --- /dev/null +++ b/Bukkit/pom.xml @@ -0,0 +1,138 @@ + + + 4.0.0 + + + com.solexgames + Scandium + 1.0-SNAPSHOT + + Bukkit + + + 1.8 + UTF-8 + + + + + Scandium + + + + + jitpack.io + https://jitpack.io + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + bintray-jcenter + https://jcenter.bintray.com + + + placeholderapi + https://repo.extendedclip.com/content/repositories/placeholderapi/ + + + papermc + https://papermc.io/repo/repository/maven-public/ + + + + + + + com.comphenix.protocol + ProtocolLib + 4.6.0 + system + ${basedir}/lib/ProtocolLib.jar + + + com.solexgames.lib + commons-bukkit + devbuild + system + ${basedir}/lib/commonslibs-bukkit.jar + + + + + org.projectlombok + lombok + LATEST + provided + + + org.apache.commons + commons-lang3 + 3.12.0 + + + io.papermc + paperlib + 1.0.6 + compile + + + + + + me.clip + placeholderapi + 2.10.9 + provided + + + + + com.lunarclient + bukkitapi + 1.0-SNAPSHOT + system + ${basedir}/lib/LunarClientAPI.jar + + + + + org.spigotmc + spigot-1_8-api + 1.8.8-R0.1-SNAPSHOT + system + ${basedir}/lib/Spigot_1_8.jar + + + org.spigotmc + spigot-19-api + 1.9-R0.1-SNAPSHOT + system + ${basedir}/lib/Spigot_1_9.jar + + + org.spigotmc + spigot-1_7-api + 1.7.10-R0.1-SNAPSHOT + system + ${basedir}/lib/Spigot_1_7.jar + + + org.spigotmc + spigot-1_12-api + 1.12.1-R0.1-SNAPSHOT + system + ${basedir}/lib/Spigot_1_12.jar + + + org.spigotmc + spigot-1_16-api + 1.16.5-R0.1-SNAPSHOT + system + ${basedir}/lib/Spigot_1_16.jar + + + diff --git a/Bukkit/src/main/java/com/solexgames/core/CorePlugin.java b/Bukkit/src/main/java/com/solexgames/core/CorePlugin.java new file mode 100644 index 0000000..b609e98 --- /dev/null +++ b/Bukkit/src/main/java/com/solexgames/core/CorePlugin.java @@ -0,0 +1,397 @@ +package com.solexgames.core; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.solexgames.core.adapter.DateTypeAdapter; +import com.solexgames.core.adapter.LocationTypeAdapter; +import com.solexgames.core.chat.IChatCheck; +import com.solexgames.core.command.impl.CoreCommand; +import com.solexgames.core.command.impl.other.WebPostCommand; +import com.solexgames.core.database.Database; +import com.solexgames.core.disguise.DisguiseCache; +import com.solexgames.core.enums.NetworkServerType; +import com.solexgames.core.enums.ServerType; +import com.solexgames.core.hooks.client.IClient; +import com.solexgames.core.hooks.client.impl.LunarClientImpl; +import com.solexgames.core.hooks.nms.INMS; +import com.solexgames.core.hooks.nms.impl.*; +import com.solexgames.core.hooks.protocol.AbstractPacketHandler; +import com.solexgames.core.hooks.protocol.impl.ProtocolPacketHandler; +import com.solexgames.core.manager.*; +import com.solexgames.core.menu.impl.SettingsMenu; +import com.solexgames.core.player.punishment.PunishmentStrings; +import com.solexgames.core.server.NetworkServer; +import com.solexgames.core.util.BungeeUtil; +import com.solexgames.core.util.builder.ItemBuilder; +import com.solexgames.core.util.external.Button; +import com.solexgames.lib.commons.redis.JedisBuilder; +import com.solexgames.lib.commons.redis.JedisManager; +import com.solexgames.lib.commons.redis.JedisSettings; +import com.solexgames.core.redis.JedisAdapter; +import com.solexgames.core.serializer.DataLibrary; +import com.solexgames.core.serializer.impl.ItemStackSerializer; +import com.solexgames.core.serializer.impl.LocationSerializer; +import com.solexgames.core.settings.ServerSettings; +import com.solexgames.core.settings.player.ISettings; +import com.solexgames.core.task.*; +import com.solexgames.core.util.BukkitUtil; +import com.solexgames.core.util.Color; +import com.solexgames.core.util.RedisUtil; +import com.solexgames.core.util.config.FileConfig; +import com.solexgames.core.uuid.UUIDCache; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang.time.DurationFormatUtils; +import org.apache.http.client.HttpClient; +import org.apache.http.impl.client.DefaultHttpClient; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandMap; +import org.bukkit.conversations.ConversationFactory; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.SimplePluginManager; +import org.bukkit.plugin.java.JavaPlugin; + +import java.lang.reflect.Field; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * @author GrowlyX + * @since 3/1/2021 + */ + +@Getter +@Setter +public final class CorePlugin extends JavaPlugin { + + public static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM/dd/yyyy HH:mma"); + public static final Random RANDOM = new Random(); + public static final Gson GSON = new GsonBuilder() + .registerTypeAdapter(Location.class, new LocationTypeAdapter()) + .registerTypeAdapter(Date.class, new DateTypeAdapter()) + .setPrettyPrinting() + .disableHtmlEscaping() + .create(); + + @Getter + private static CorePlugin instance; + + private ServerManager serverManager; + private ReportManager reportManager; + private PlayerManager playerManager; + private RankManager rankManager; + private ShutdownManager shutdownManager; + private DiscordManager discordManager; + private CryptoManager cryptoManager; + private FilterManager filterManager; + private PrefixManager prefixManager; + private PunishmentManager punishmentManager; + private NameTagManager nameTagManager; + private DisguiseManager disguiseManager; + + private JedisManager jedisManager; + private JedisSettings defaultJedisSettings; + + private UUIDCache uuidCache; + private DisguiseCache disguiseCache; + private ServerSettings serverSettings; + + private String serverName; + private HttpClient httpClient; + private Database coreDatabase; + private String pluginName; + + private FileConfig ranksConfig; + private FileConfig databaseConfig; + private FileConfig filterConfig; + + private DataLibrary library; + + private AbstractPacketHandler packetHandler; + private IClient clientHook; + private INMS NMS; + + private boolean debugging; + private boolean disallow; + + private final ConversationFactory conversationFactory = new ConversationFactory(this); + private final TPSUpdateTask tpsRunnable = new TPSUpdateTask(); + + private final List settingsList = new ArrayList<>(); + private final List chatCheckList = new ArrayList<>(); + + @Override + public void onEnable() { + instance = this; + + final long milli = System.currentTimeMillis(); + + this.httpClient = new DefaultHttpClient(); + + this.saveDefaultConfig(); + this.getConfig().options().copyDefaults(); + + this.pluginName = this.getConfig().getString("theming.command-prefix"); + + CorePlugin.FORMAT.setTimeZone(TimeZone.getTimeZone(this.getConfig().getString("settings.time-zone"))); + + this.ranksConfig = new FileConfig("ranks"); + this.databaseConfig = new FileConfig("database"); + this.filterConfig = new FileConfig("filtered"); + + this.serverSettings = new ServerSettings(); + + this.library = new DataLibrary(); + this.library.getDataManager().registerSerializer(new LocationSerializer()); + this.library.getDataManager().registerSerializer(new ItemStackSerializer()); + + this.serverName = this.getConfig().getString("server.id"); + + this.setupSettings(); + this.setupHooks(); + + this.debugging = false; + this.disallow = false; + + this.disableLoggers(); + + this.coreDatabase = new Database(); + + this.uuidCache = new UUIDCache(); + this.disguiseCache = new DisguiseCache(); + + this.punishmentManager = new PunishmentManager(); + this.cryptoManager = new CryptoManager(); + this.reportManager = new ReportManager(); + this.serverManager = new ServerManager(); + this.rankManager = new RankManager(); + this.prefixManager = new PrefixManager(); + this.playerManager = new PlayerManager(); + this.discordManager = new DiscordManager(); + this.filterManager = new FilterManager(); + this.shutdownManager = new ShutdownManager(); + this.nameTagManager = new NameTagManager(); + this.disguiseManager = new DisguiseManager(); + + this.defaultJedisSettings = new JedisSettings( + this.databaseConfig.getString("redis.host"), + this.databaseConfig.getInt("redis.port"), + this.databaseConfig.getBoolean("redis.authentication.enabled"), + this.databaseConfig.getString("redis.authentication.password") + ); + + this.jedisManager = new JedisBuilder() + .withChannel("scandium:bukkit") + .withSettings(this.defaultJedisSettings) + .withHandler(new JedisAdapter()) + .build(); + + this.setupExtra(); + this.logInformation(milli); + + new ServerLoadingTask(); + + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "core:permissions"); + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + + new MenuAutoUpdateThread().start(); + ISettings is = new ISettings() { + @Override + public List