├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle.kts ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libs ├── BuycraftX.jar ├── GlowAPI.jar └── nuvotifier-universal-2.3.4.jar ├── settings.gradle.kts └── src └── main ├── java └── gg │ └── projecteden │ └── nexus │ ├── API.java │ ├── Nexus.java │ ├── features │ ├── NexusCommand.java │ ├── achievements │ │ ├── Achievements.java │ │ ├── AchievementsCommand.java │ │ ├── events │ │ │ ├── AchievementCompletedEvent.java │ │ │ ├── social │ │ │ │ ├── DiscordLinkEvent.java │ │ │ │ └── poof │ │ │ │ │ ├── PoofEvent.java │ │ │ │ │ ├── PoofHereEvent.java │ │ │ │ │ └── PoofToEvent.java │ │ │ └── travel │ │ │ │ └── WarpEvent.java │ │ ├── listeners │ │ │ ├── AchievementListener.java │ │ │ ├── BiomeListener.java │ │ │ ├── CombatListener.java │ │ │ ├── EconomyListener.java │ │ │ ├── MiscListener.java │ │ │ ├── SocialListener.java │ │ │ └── TravelListener.java │ │ └── menu │ │ │ ├── AchievementGroupProvider.java │ │ │ └── AchievementProvider.java │ ├── afk │ │ ├── AFK.java │ │ ├── AFKCommand.java │ │ └── AFKTimeCommand.java │ ├── ambience │ │ ├── Ambience.java │ │ ├── AmbienceCommand.java │ │ ├── Listeners.java │ │ ├── Wind.java │ │ ├── effects │ │ │ ├── birds │ │ │ │ ├── BirdSound.java │ │ │ │ └── common │ │ │ │ │ ├── BirdEffectConfig.java │ │ │ │ │ ├── BirdEffectType.java │ │ │ │ │ └── annotations │ │ │ │ │ ├── Biomes.java │ │ │ │ │ └── Birdhouse.java │ │ │ ├── common │ │ │ │ ├── AmbientEffectConfig.java │ │ │ │ └── ConditionalEffect.java │ │ │ ├── particles │ │ │ │ ├── DustWind.java │ │ │ │ ├── FallingLeaves.java │ │ │ │ ├── Fireflies.java │ │ │ │ └── common │ │ │ │ │ ├── ConditionalParticleEffect.java │ │ │ │ │ ├── ParticleEffect.java │ │ │ │ │ ├── ParticleEffectConfig.java │ │ │ │ │ └── ParticleEffectType.java │ │ │ └── sounds │ │ │ │ └── common │ │ │ │ ├── ScheduledSound.java │ │ │ │ ├── Sound.java │ │ │ │ ├── SoundEffectConfig.java │ │ │ │ ├── SoundEffectType.java │ │ │ │ └── SoundPlayer.java │ │ ├── managers │ │ │ ├── BirdEffectManager.java │ │ │ ├── ParticleEffectManager.java │ │ │ ├── SoundEffectManager.java │ │ │ └── common │ │ │ │ ├── AmbienceManager.java │ │ │ │ └── AmbienceManagers.java │ │ └── old │ │ │ ├── AmbienceOld.java │ │ │ ├── AmbienceUserOld.java │ │ │ ├── BlockScanner.java │ │ │ ├── VariablesOld.java │ │ │ └── sound │ │ │ ├── ScheduledSound.java │ │ │ ├── Sound.java │ │ │ └── SoundPlayer.java │ ├── api │ │ ├── BlockPartyWebSocketServer.java │ │ ├── Controller.java │ │ ├── SimpleHttpServer.java │ │ └── annotations │ │ │ ├── Get.java │ │ │ └── Post.java │ ├── bigdoors │ │ ├── BigDoorManager.java │ │ ├── BigDoorManagerCommand.java │ │ └── Listeners.java │ ├── blockmechanics │ │ ├── BlockMechanicUtils.java │ │ ├── BlockMechanics.java │ │ └── mechanics │ │ │ ├── BlockFireToggle.java │ │ │ ├── FurnaceExperience.java │ │ │ └── JackOLanternToggle.java │ ├── chat │ │ ├── Censor.java │ │ ├── Chat.java │ │ ├── ChatListener.java │ │ ├── ChatManager.java │ │ ├── CommandHighlighter.java │ │ ├── Emotes.java │ │ ├── Koda.java │ │ ├── alerts │ │ │ ├── AlertCommand.java │ │ │ ├── AlertsCommand.java │ │ │ └── AlertsListener.java │ │ ├── bridge │ │ │ ├── BridgeCommand.java │ │ │ ├── DiscordBridgeListener.java │ │ │ ├── IngameBridgeListener.java │ │ │ └── RoleManager.java │ │ ├── commands │ │ │ ├── BroadcastCommand.java │ │ │ ├── CensorCommand.java │ │ │ ├── ChatCommand.java │ │ │ ├── CopyrightCommand.java │ │ │ ├── EmojisCommand.java │ │ │ ├── EmotesCommand.java │ │ │ ├── FacepalmCommand.java │ │ │ ├── KodaCommand.java │ │ │ ├── MessageCommand.java │ │ │ ├── ReplyCommand.java │ │ │ ├── ShoutCommand.java │ │ │ ├── ShrugCommand.java │ │ │ └── TrademarkCommand.java │ │ ├── events │ │ │ ├── ChannelChangeEvent.java │ │ │ ├── ChatEvent.java │ │ │ ├── DiscordChatEvent.java │ │ │ ├── MinecraftChatEvent.java │ │ │ ├── PrivateChatEvent.java │ │ │ └── PublicChatEvent.java │ │ ├── games │ │ │ ├── ChatGameType.java │ │ │ └── ChatGamesCommand.java │ │ └── translator │ │ │ ├── Language.java │ │ │ ├── Translator.java │ │ │ ├── TranslatorCommand.java │ │ │ └── TranslatorHandler.java │ ├── clientside │ │ ├── ClientSideCommand.java │ │ ├── ClientSideEntitiesManager.java │ │ ├── ClientSideFeature.java │ │ └── models │ │ │ ├── ClientSideArmorStand.java │ │ │ ├── ClientSideItemFrame.java │ │ │ ├── ClientSidePainting.java │ │ │ └── IClientSideEntity.java │ ├── commands │ │ ├── AgeCommand.java │ │ ├── ArmorStandEditorCommand.java │ │ ├── AssetCompetitionCommand.java │ │ ├── AxolotlBucketCommand.java │ │ ├── BackCommand.java │ │ ├── BadgeCommand.java │ │ ├── BankCommand.java │ │ ├── BirthdaysCommand.java │ │ ├── BlockMarkersCommand.java │ │ ├── BookCommand.java │ │ ├── BoopCommand.java │ │ ├── BuildContestCommand.java │ │ ├── CalcSpeedCommand.java │ │ ├── ClaimHeadCommand.java │ │ ├── ClearInventoryCommand.java │ │ ├── ClearScreenCommand.java │ │ ├── ColorUtilsCommand.java │ │ ├── CompactCommand.java │ │ ├── CompassCommand.java │ │ ├── ConvertCoordinatesCommand.java │ │ ├── CountdownCommand.java │ │ ├── CurrentTimeCommand.java │ │ ├── DNDCommand.java │ │ ├── DeathMessagesCommand.java │ │ ├── DistanceCommand.java │ │ ├── DoNothingCommand.java │ │ ├── DoubleJumpCommand.java │ │ ├── DumpsterDivingCommand.java │ │ ├── DurabilityWarningCommand.java │ │ ├── EchoCommand.java │ │ ├── EmptyBucketCommand.java │ │ ├── EnchantCommand.java │ │ ├── EndermanFarmCommand.java │ │ ├── EntityCannonCommand.java │ │ ├── ExperienceCommand.java │ │ ├── FetchCommand.java │ │ ├── FirstLoginCommand.java │ │ ├── FixGhostBlocksCommand.java │ │ ├── FlyCommand.java │ │ ├── GamemodeCommand.java │ │ ├── HallOfHistoryCommand.java │ │ ├── HealthCommand.java │ │ ├── HiKodaCommand.java │ │ ├── HoursCommand.java │ │ ├── HungerCommand.java │ │ ├── InviteRewardsCommand.java │ │ ├── ItemCommand.java │ │ ├── ItemInfoCommand.java │ │ ├── JukeboxCommand.java │ │ ├── JumpCommand.java │ │ ├── LastDeathCommand.java │ │ ├── LastLoginCommand.java │ │ ├── LastLogoutCommand.java │ │ ├── MailCommand.java │ │ ├── MapCommand.java │ │ ├── MeasureCommand.java │ │ ├── ModReviewCommand.java │ │ ├── MuteMenuCommand.java │ │ ├── NameCommand.java │ │ ├── NearCommand.java │ │ ├── NerdCommand.java │ │ ├── OnlineCommand.java │ │ ├── OnlineStaffCommand.java │ │ ├── PVPCommand.java │ │ ├── PastNamesCommand.java │ │ ├── PingCommand.java │ │ ├── PlayerSearchCommand.java │ │ ├── PlayerWeatherCommand.java │ │ ├── PreferredNamesCommand.java │ │ ├── PronounsCommand.java │ │ ├── PushCommand.java │ │ ├── QuickActionCommand.java │ │ ├── ReferralCommand.java │ │ ├── SeenCommand.java │ │ ├── ShowItemCommand.java │ │ ├── SidewaysLogsCommand.java │ │ ├── SidewaysStairsCommand.java │ │ ├── SkinifyCommand.java │ │ ├── SneakCommand.java │ │ ├── SnowEffectCommand.java │ │ ├── SpeedCommand.java │ │ ├── StaffHallCommand.java │ │ ├── StatusBarCommand.java │ │ ├── StripLogsCommand.java │ │ ├── TameablesCommand.java │ │ ├── TopCommand.java │ │ ├── TrashCommand.java │ │ ├── TreeCommand.java │ │ ├── UUIDCommand.java │ │ ├── VillagersCommand.java │ │ ├── WardCharmCommand.java │ │ ├── aliases │ │ │ ├── CRepeatCommand.java │ │ │ ├── EnderChestCommand.java │ │ │ ├── HopperCommand.java │ │ │ ├── InvseeCommand.java │ │ │ ├── IveBeenGriefedCommand.java │ │ │ ├── LWCCOCommand.java │ │ │ ├── RegionRenameCommand.java │ │ │ ├── SitCommand.java │ │ │ ├── UnvanishCommand.java │ │ │ └── WhosShitIsThisCommand.java │ │ ├── creative │ │ │ ├── DownloadPlotCommand.java │ │ │ ├── EntityCapCommand.java │ │ │ ├── MobCapCommand.java │ │ │ ├── PlotRedstoneCommand.java │ │ │ ├── PlotsLimitCommand.java │ │ │ └── SpawnEggCommand.java │ │ ├── info │ │ │ ├── ApplyCommand.java │ │ │ ├── ColorsCommand.java │ │ │ ├── CuriosityCommand.java │ │ │ ├── FAQCommand.java │ │ │ ├── FilidWelcCommand.java │ │ │ ├── GriffinWelcCommand.java │ │ │ ├── HelpCommand.java │ │ │ ├── IPCommand.java │ │ │ ├── LWCInfoCommand.java │ │ │ ├── ProtectionCommand.java │ │ │ ├── RulesCommand.java │ │ │ ├── StaffHelpCommand.java │ │ │ ├── SuggestionCommand.java │ │ │ ├── UniqueCommand.java │ │ │ └── WorldCommand.java │ │ ├── ranks │ │ │ ├── AdminCommand.java │ │ │ ├── ArchitectCommand.java │ │ │ ├── BuilderCommand.java │ │ │ ├── EliteCommand.java │ │ │ ├── GuestCommand.java │ │ │ ├── MemberCommand.java │ │ │ ├── ModeratorCommand.java │ │ │ ├── NobleCommand.java │ │ │ ├── OperatorCommand.java │ │ │ ├── OwnerCommand.java │ │ │ ├── RanksCommand.java │ │ │ ├── StaffCommand.java │ │ │ ├── TrustedCommand.java │ │ │ └── VeteranCommand.java │ │ ├── staff │ │ │ ├── BinaryCommand.java │ │ │ ├── BlockCenterCommand.java │ │ │ ├── BlockNBTCommand.java │ │ │ ├── BreakCommand.java │ │ │ ├── CheatsCommand.java │ │ │ ├── EntitiesCommand.java │ │ │ ├── EntityNBTCommand.java │ │ │ ├── ExtinguishCommand.java │ │ │ ├── FeedCommand.java │ │ │ ├── ForwardCommand.java │ │ │ ├── GiveCommand.java │ │ │ ├── GriefProtectionInfoCommand.java │ │ │ ├── HealCommand.java │ │ │ ├── IGoSleepCommand.java │ │ │ ├── KillCommand.java │ │ │ ├── LeashCommand.java │ │ │ ├── LetMeEditCommand.java │ │ │ ├── LocationsCommand.java │ │ │ ├── MultiCommandCommand.java │ │ │ ├── NearestBlockCommand.java │ │ │ ├── NewPlayersCommand.java │ │ │ ├── NewRankColorsCommand.java │ │ │ ├── NightVisionCommand.java │ │ │ ├── PlayerAliasesCommand.java │ │ │ ├── PowertoolCommand.java │ │ │ ├── ProtectionUtilsCommand.java │ │ │ ├── RemindersCommand.java │ │ │ ├── SignLinesCommand.java │ │ │ ├── SlapCommand.java │ │ │ ├── SnowLayersCommand.java │ │ │ ├── SoundMenuCommand.java │ │ │ ├── StaffRulesCommand.java │ │ │ ├── ToggleEntityNoiseCommand.java │ │ │ ├── WeeeCommand.java │ │ │ ├── WelcomeCommand.java │ │ │ ├── WhereIsCommand.java │ │ │ ├── WhoIsCommand.java │ │ │ ├── WorldEditUtilsCommand.java │ │ │ ├── WorldGuardEditCommand.java │ │ │ ├── YeetCommand.java │ │ │ ├── admin │ │ │ │ ├── AccountTransferCommand.java │ │ │ │ ├── AttributeCommand.java │ │ │ │ ├── BashCommand.java │ │ │ │ ├── ChangelogCommand.java │ │ │ │ ├── ChunksCommand.java │ │ │ │ ├── ConsoleCommand.java │ │ │ │ ├── CouponCommand.java │ │ │ │ ├── CreativeFlagsCommand.java │ │ │ │ ├── DataFixerUpperCommand.java │ │ │ │ ├── DatabaseCommand.java │ │ │ │ ├── DebugCommand.java │ │ │ │ ├── DeopCommand.java │ │ │ │ ├── DeployCommand.java │ │ │ │ ├── DisplayEntityCommand.java │ │ │ │ ├── DropAllCommand.java │ │ │ │ ├── ErrorCommand.java │ │ │ │ ├── Firework127Command.java │ │ │ │ ├── ItemBuilderCommand.java │ │ │ │ ├── KillEntityCommand.java │ │ │ │ ├── LocationCodeCommand.java │ │ │ │ ├── MaintenanceCommand.java │ │ │ │ ├── MaterialTagCommand.java │ │ │ │ ├── MotdCommand.java │ │ │ │ ├── MyRankCommand.java │ │ │ │ ├── NPCUtilsCommand.java │ │ │ │ ├── OpCommand.java │ │ │ │ ├── ParseCommandBlockSoundsCommand.java │ │ │ │ ├── PermCheckCommand.java │ │ │ │ ├── PermHelperCommand.java │ │ │ │ ├── RebootCommand.java │ │ │ │ ├── ScheduledJobsCommand.java │ │ │ │ ├── ScoreboardTeamUtilsCommand.java │ │ │ │ ├── SerializeCommand.java │ │ │ │ ├── ShulkerSoundCommand.java │ │ │ │ ├── SkinCacheCommand.java │ │ │ │ ├── SpamShitCommand.java │ │ │ │ ├── SpawnEntityCommand.java │ │ │ │ ├── SpawnLimitsCommand.java │ │ │ │ ├── SudoCommand.java │ │ │ │ ├── TasksCommand.java │ │ │ │ ├── TimeCommand.java │ │ │ │ └── UnlimitedElytraCommand.java │ │ │ ├── moderator │ │ │ │ ├── FakeOpCommand.java │ │ │ │ ├── GeoIPCommand.java │ │ │ │ ├── HasReadRulesCommand.java │ │ │ │ └── InteractionCommandsCommand.java │ │ │ └── operator │ │ │ │ ├── BurnCommand.java │ │ │ │ ├── DemoteCommand.java │ │ │ │ ├── FixCommand.java │ │ │ │ ├── InventorySnapshotsCommand.java │ │ │ │ ├── IrlDistanceCommand.java │ │ │ │ ├── IrlNearCommand.java │ │ │ │ ├── LWCCommand.java │ │ │ │ ├── LagCommand.java │ │ │ │ ├── MoreCommand.java │ │ │ │ ├── PodiumsCommand.java │ │ │ │ ├── PromoteCommand.java │ │ │ │ ├── RegionUtilsCommand.java │ │ │ │ ├── RestoreInventoryCommand.java │ │ │ │ ├── SetRankCommand.java │ │ │ │ ├── SmiteCommand.java │ │ │ │ ├── StripMetaCommand.java │ │ │ │ ├── TimelockCommand.java │ │ │ │ ├── WeatherCommand.java │ │ │ │ └── WhoDaresSummonMeCommand.java │ │ ├── teleport │ │ │ ├── RandomTeleportCommand.java │ │ │ ├── TeleportCommand.java │ │ │ ├── TeleportHereCommand.java │ │ │ └── request │ │ │ │ ├── ITeleportRequestCommand.java │ │ │ │ ├── TeleportHereRequestCommand.java │ │ │ │ └── TeleportRequestCommand.java │ │ └── worldedit │ │ │ ├── ContractAllCommand.java │ │ │ ├── ContractHCommand.java │ │ │ ├── ContractVCommand.java │ │ │ ├── CustomForestCommand.java │ │ │ ├── DelVillageCommand.java │ │ │ ├── DistributionFixedCommand.java │ │ │ ├── ExpandAllCommand.java │ │ │ ├── ExpandHCommand.java │ │ │ ├── ExpandVCommand.java │ │ │ ├── FixFlatCommand.java │ │ │ ├── HereCommand.java │ │ │ ├── HereHCommand.java │ │ │ ├── HereVCommand.java │ │ │ ├── ScaleCommand.java │ │ │ ├── SchematicBrushCommand.java │ │ │ ├── SelectionTeleportCommand.java │ │ │ ├── ThereCommand.java │ │ │ ├── ThereHCommand.java │ │ │ ├── ThereVCommand.java │ │ │ ├── UnbindAllBrushesCommand.java │ │ │ └── WandCommand.java │ ├── crates │ │ ├── CrateHandler.java │ │ ├── CratePinatas.java │ │ ├── CrateRecapBook.java │ │ ├── Crates.java │ │ ├── CratesCommand.java │ │ └── menus │ │ │ ├── CrateEditMenu.java │ │ │ ├── CrateGroupsProvider.java │ │ │ └── CratePreviewProvider.java │ ├── customboundingboxes │ │ ├── CustomBoundingBoxCommand.java │ │ ├── CustomBoundingBoxes.java │ │ └── events │ │ │ ├── CustomBoundingBoxEntityEvent.java │ │ │ ├── CustomBoundingBoxEntityInteractEvent.java │ │ │ ├── CustomBoundingBoxEntityTargetEndEvent.java │ │ │ ├── CustomBoundingBoxEntityTargetStartEvent.java │ │ │ └── CustomBoundingBoxEntityTargetTickEvent.java │ ├── customenchants │ │ ├── CustomEnchants.java │ │ ├── CustomEnchantsRegistration.java │ │ ├── EnchantUtils.java │ │ ├── enchants │ │ │ ├── AutoRepairEnchant.java │ │ │ ├── BeheadingEnchant.java │ │ │ ├── BountyEnchant.java │ │ │ ├── ColumnQuakeEnchant.java │ │ │ ├── DemeterEnchant.java │ │ │ ├── DisarmingEnchant.java │ │ │ ├── EnergizingEnchant.java │ │ │ ├── FireworkEnchant.java │ │ │ ├── FrostAspectEnchant.java │ │ │ ├── GearsEnchant.java │ │ │ ├── GlowingEnchant.java │ │ │ ├── GracefulStepEnchant.java │ │ │ ├── MagnetEnchant.java │ │ │ ├── MidasCarrotsEnchant.java │ │ │ ├── OrbseekerEnchant.java │ │ │ ├── PloughEnchant.java │ │ │ ├── SoulboundEnchant.java │ │ │ ├── SpringsEnchant.java │ │ │ ├── ThorEnchant.java │ │ │ ├── TunnelingEnchant.java │ │ │ ├── VampireEnchant.java │ │ │ └── VeinMinerEnchant.java │ │ └── models │ │ │ └── CustomEnchant.java │ ├── dailyrewards │ │ ├── DailyRewardsCommand.java │ │ ├── DailyRewardsFeature.java │ │ └── DailyRewardsMenu.java │ ├── discord │ │ ├── Bot.java │ │ ├── Discord.java │ │ ├── DiscordCaptchaListener.java │ │ ├── DiscordCommand.java │ │ ├── DiscordListener.java │ │ ├── ReactionVoter.java │ │ ├── StaffAlerts.java │ │ └── commands │ │ │ ├── BalanceAppCommand.java │ │ │ ├── BirthdaysAppCommand.java │ │ │ ├── DeathMessagesAppCommand.java │ │ │ ├── DiscordAppCommand.java │ │ │ ├── HoursAppCommand.java │ │ │ ├── NewPlayersAppCommand.java │ │ │ ├── NicknameAppCommand.java │ │ │ ├── PayAppCommand.java │ │ │ ├── PronounsAppCommand.java │ │ │ ├── SubscribeAppCommand.java │ │ │ ├── SuggestAppCommand.java │ │ │ ├── TicketsAppCommand.java │ │ │ ├── TwitterAppCommand.java │ │ │ ├── UnsubscribeAppCommand.java │ │ │ ├── common │ │ │ ├── NexusAppCommand.java │ │ │ └── annotations │ │ │ │ └── Verify.java │ │ │ └── justice │ │ │ ├── AltsAppCommand.java │ │ │ ├── ClearDiscordChatAppCommand.java │ │ │ ├── ClearIngameChatAppCommand.java │ │ │ ├── HistoryAppCommand.java │ │ │ ├── _PunishmentAppCommand.java │ │ │ ├── activate │ │ │ ├── AltBanAppCommand.java │ │ │ ├── BanAppCommand.java │ │ │ ├── FreezeAppCommand.java │ │ │ ├── KickAppCommand.java │ │ │ ├── MuteAppCommand.java │ │ │ ├── WarnAppCommand.java │ │ │ ├── WatchlistAppCommand.java │ │ │ └── _PunishmentActivateAppCommand.java │ │ │ └── deactivate │ │ │ ├── UnAltBanAppCommand.java │ │ │ ├── UnBanAppCommand.java │ │ │ ├── UnFreezeAppCommand.java │ │ │ ├── UnMuteAppCommand.java │ │ │ └── _PunishmentDeactivateAppCommand.java │ ├── documentation │ │ ├── DocumentCommands.java │ │ ├── Documentation.java │ │ └── DocumentationCommand.java │ ├── economy │ │ ├── commands │ │ │ ├── BalanceCommand.java │ │ │ ├── BalanceTopCommand.java │ │ │ ├── EconomyCommand.java │ │ │ ├── JobsCommand.java │ │ │ ├── PayCommand.java │ │ │ └── TransactionsCommand.java │ │ └── events │ │ │ ├── BalanceChangeEvent.java │ │ │ └── NexusEconomyEvent.java │ ├── effects │ │ └── Effects.java │ ├── equipment │ │ └── skins │ │ │ ├── ArmorSkin.java │ │ │ ├── BackpackSkin.java │ │ │ ├── EquipmentSkinType.java │ │ │ └── ToolSkin.java │ ├── events │ │ ├── ArmorStandStalker.java │ │ ├── DebugDotCommand.java │ │ ├── DyeBombCommand.java │ │ ├── EdenEvent.java │ │ ├── EdenEventGameConfig.java │ │ ├── EdenEventSinglePlayerGame.java │ │ ├── EventFishingListener.java │ │ ├── EventSounds.java │ │ ├── Events.java │ │ ├── EventsCommand.java │ │ ├── IEventCommand.java │ │ ├── NullEventEffects.java │ │ ├── PlayerEventFishingBiteEvent.java │ │ ├── README.md │ │ ├── ScavHuntLegacy.java │ │ ├── TrophyCommand.java │ │ ├── advent │ │ │ └── AdventAnimation.java │ │ ├── aeveonproject │ │ │ ├── APUtils.java │ │ │ ├── AeveonProject.java │ │ │ ├── AeveonProjectCommand.java │ │ │ ├── README.md │ │ │ ├── effects │ │ │ │ ├── ClientsideBlocks.java │ │ │ │ ├── DockingPorts.java │ │ │ │ ├── Effects.java │ │ │ │ ├── GravLift.java │ │ │ │ └── PlayerTime.java │ │ │ ├── menus │ │ │ │ └── ShipColorMenu.java │ │ │ └── sets │ │ │ │ ├── APRegions.java │ │ │ │ ├── APSet.java │ │ │ │ ├── APSetToggler.java │ │ │ │ ├── APSetType.java │ │ │ │ ├── lobby │ │ │ │ └── Lobby.java │ │ │ │ ├── sialia │ │ │ │ ├── Particles.java │ │ │ │ ├── Sialia.java │ │ │ │ └── Sounds.java │ │ │ │ ├── sialiaCrashing │ │ │ │ ├── Particles.java │ │ │ │ ├── SialiaCrashing.java │ │ │ │ └── Sounds.java │ │ │ │ ├── sialiaWreckage │ │ │ │ └── SialiaWreckage.java │ │ │ │ └── vespyr │ │ │ │ ├── Particles.java │ │ │ │ ├── Sounds.java │ │ │ │ └── Vespyr.java │ │ ├── annotations │ │ │ └── Region.java │ │ ├── models │ │ │ ├── BearFairIsland.java │ │ │ ├── BearFairTalker.java │ │ │ ├── EventBreakable.java │ │ │ ├── EventErrors.java │ │ │ ├── EventFishingLoot.java │ │ │ ├── EventPlaceable.java │ │ │ ├── Quest.java │ │ │ ├── QuestProgress.java │ │ │ ├── QuestStage.java │ │ │ ├── Script.java │ │ │ ├── SkullHuntEvent.java │ │ │ ├── Talker.java │ │ │ └── Train.java │ │ ├── store │ │ │ ├── EventStoreItem.java │ │ │ ├── EventStoreListener.java │ │ │ ├── models │ │ │ │ └── EventStoreImage.java │ │ │ └── providers │ │ │ │ ├── EventStoreMenu.java │ │ │ │ ├── EventStoreProvider.java │ │ │ │ └── purchasable │ │ │ │ ├── EventStoreEmojiHatProvider.java │ │ │ │ ├── EventStoreParticlesProvider.java │ │ │ │ └── EventStoreWingsProvider.java │ │ ├── y2020 │ │ │ ├── bearfair20 │ │ │ │ ├── BearFair20.java │ │ │ │ ├── Fairgrounds.java │ │ │ │ ├── commands │ │ │ │ │ ├── BFFishingCommand.java │ │ │ │ │ ├── BearFair20Command.java │ │ │ │ │ ├── BuilderBashCommand.java │ │ │ │ │ ├── JigsawJam20Command.java │ │ │ │ │ └── MakeFishCommand.java │ │ │ │ ├── fairgrounds │ │ │ │ │ ├── Archery.java │ │ │ │ │ ├── Basketball.java │ │ │ │ │ ├── Frogger.java │ │ │ │ │ ├── Interactables.java │ │ │ │ │ ├── PugDunk.java │ │ │ │ │ └── Reflection.java │ │ │ │ ├── islands │ │ │ │ │ ├── HalloweenIsland.java │ │ │ │ │ ├── IslandType.java │ │ │ │ │ ├── MainIsland.java │ │ │ │ │ ├── MinigameNightIsland.java │ │ │ │ │ ├── PugmasIsland.java │ │ │ │ │ └── SummerDownUnderIsland.java │ │ │ │ ├── models │ │ │ │ │ ├── Ingredient.java │ │ │ │ │ ├── Laser.java │ │ │ │ │ ├── RecipeObject.java │ │ │ │ │ └── WeightedLoot.java │ │ │ │ └── quests │ │ │ │ │ ├── BFQuests.java │ │ │ │ │ ├── Beehive.java │ │ │ │ │ ├── EasterEggs.java │ │ │ │ │ ├── Quarry.java │ │ │ │ │ ├── Recipes.java │ │ │ │ │ ├── RegenCrops.java │ │ │ │ │ ├── SellCrates.java │ │ │ │ │ ├── arcademachine │ │ │ │ │ ├── ArcadeMachineMenu.java │ │ │ │ │ └── BFArcadeCommand.java │ │ │ │ │ ├── fishing │ │ │ │ │ ├── Fishing.java │ │ │ │ │ └── Loot.java │ │ │ │ │ └── npcs │ │ │ │ │ └── Merchants.java │ │ │ ├── halloween20 │ │ │ │ ├── Halloween20.java │ │ │ │ ├── Halloween20Command.java │ │ │ │ ├── LostPumpkins.java │ │ │ │ ├── ShootingRange.java │ │ │ │ ├── models │ │ │ │ │ ├── ComboLockNumber.java │ │ │ │ │ ├── Pumpkin.java │ │ │ │ │ ├── QuestNPC.java │ │ │ │ │ ├── QuestStage.java │ │ │ │ │ └── SoundButton.java │ │ │ │ └── quest │ │ │ │ │ ├── Gate.java │ │ │ │ │ └── menus │ │ │ │ │ ├── CombinationLockProvider.java │ │ │ │ │ ├── FlashCardPuzzleProvider.java │ │ │ │ │ └── PicturePuzzleProvider.java │ │ │ ├── holi20 │ │ │ │ └── Holi20.java │ │ │ ├── pugmas20 │ │ │ │ ├── AdventChests.java │ │ │ │ ├── Minecarts.java │ │ │ │ ├── Pugmas20.java │ │ │ │ ├── Pugmas20Train.java │ │ │ │ ├── commands │ │ │ │ │ ├── Pugmas20Command.java │ │ │ │ │ └── TestQuestUserCommand.java │ │ │ │ ├── menu │ │ │ │ │ ├── AdventMenu.java │ │ │ │ │ └── providers │ │ │ │ │ │ └── AdventProvider.java │ │ │ │ ├── models │ │ │ │ │ ├── AdventChest.java │ │ │ │ │ ├── Merchants.java │ │ │ │ │ └── QuestNPC.java │ │ │ │ └── quests │ │ │ │ │ ├── GiftGiver.java │ │ │ │ │ ├── LightTheTree.java │ │ │ │ │ ├── OrnamentVendor.java │ │ │ │ │ ├── Quests.java │ │ │ │ │ ├── TheMines.java │ │ │ │ │ └── ToyTesting.java │ │ │ └── statuehunt20 │ │ │ │ └── Statue20Command.java │ │ ├── y2021 │ │ │ ├── bearfair21 │ │ │ │ ├── BearFair21.java │ │ │ │ ├── BearFair21Fairgrounds.java │ │ │ │ ├── BearFair21Quests.java │ │ │ │ ├── BearFair21Restrictions.java │ │ │ │ ├── README.md │ │ │ │ ├── commands │ │ │ │ │ ├── BearFair21Command.java │ │ │ │ │ ├── BearFair21FishingCommand.java │ │ │ │ │ ├── BearFair21JigsawJamCommand.java │ │ │ │ │ ├── BearFair21MapCommand.java │ │ │ │ │ ├── BearFair21MiniGolfCommand.java │ │ │ │ │ ├── BearFair21PathfinderCommand.java │ │ │ │ │ ├── BearFair21StatsCommand.java │ │ │ │ │ └── BearFair21WarpsCommand.java │ │ │ │ ├── fairgrounds │ │ │ │ │ ├── BearFair21Archery.java │ │ │ │ │ ├── BearFair21Frogger.java │ │ │ │ │ ├── BearFair21Interactables.java │ │ │ │ │ ├── BearFair21Rides.java │ │ │ │ │ ├── BearFair21Seeker.java │ │ │ │ │ ├── minigolf │ │ │ │ │ │ ├── BearFair21MiniGolf.java │ │ │ │ │ │ ├── BearFair21MiniGolfUtils.java │ │ │ │ │ │ ├── listeners │ │ │ │ │ │ │ ├── BearFair21ProjectileListener.java │ │ │ │ │ │ │ ├── BearFair21PuttListener.java │ │ │ │ │ │ │ └── BearFair21RegionListener.java │ │ │ │ │ │ ├── menus │ │ │ │ │ │ │ ├── BearFair21MiniGolfColorMenu.java │ │ │ │ │ │ │ └── BearFair21MiniGolfParticleMenu.java │ │ │ │ │ │ └── models │ │ │ │ │ │ │ ├── BearFair21MiniGolfColor.java │ │ │ │ │ │ │ ├── BearFair21MiniGolfHole.java │ │ │ │ │ │ │ └── BearFair21MiniGolfParticle.java │ │ │ │ │ └── reflection │ │ │ │ │ │ ├── BearFair21ReflectionGame.java │ │ │ │ │ │ ├── BearFair21ReflectionGameLamp.java │ │ │ │ │ │ ├── BearFair21ReflectionGameUtils.java │ │ │ │ │ │ └── BearFair21ReflectionListener.java │ │ │ │ ├── islands │ │ │ │ │ ├── BearFair21HalloweenIsland.java │ │ │ │ │ ├── BearFair21Island.java │ │ │ │ │ ├── BearFair21IslandType.java │ │ │ │ │ ├── BearFair21MainIsland.java │ │ │ │ │ ├── BearFair21MinigameNightIsland.java │ │ │ │ │ ├── BearFair21PugmasIsland.java │ │ │ │ │ ├── BearFair21Renderer.java │ │ │ │ │ └── BearFair21SummerDownUnderIsland.java │ │ │ │ └── quests │ │ │ │ │ ├── BearFair21Beehive.java │ │ │ │ │ ├── BearFair21Errors.java │ │ │ │ │ ├── BearFair21PathfinderHelper.java │ │ │ │ │ ├── BearFair21RadioHeads.java │ │ │ │ │ ├── BearFair21Recycler.java │ │ │ │ │ ├── BearFair21SellCrates.java │ │ │ │ │ ├── BearFair21Talker.java │ │ │ │ │ ├── BearFair21TalkingNPC.java │ │ │ │ │ ├── BearFair21TreasureChests.java │ │ │ │ │ ├── clientside │ │ │ │ │ ├── BearFair21ClientsideContentManager.java │ │ │ │ │ └── BearFair21NPCNameTag.java │ │ │ │ │ ├── npcs │ │ │ │ │ ├── BearFair21Collector.java │ │ │ │ │ ├── BearFair21Merchants.java │ │ │ │ │ └── BearFair21NPC.java │ │ │ │ │ └── resources │ │ │ │ │ ├── BearFair21Mining.java │ │ │ │ │ ├── BearFair21WoodCutting.java │ │ │ │ │ ├── farming │ │ │ │ │ ├── BearFair21Farming.java │ │ │ │ │ ├── BearFair21FarmingLoot.java │ │ │ │ │ └── BearFair21RegenCrops.java │ │ │ │ │ └── fishing │ │ │ │ │ ├── BearFair21Fishing.java │ │ │ │ │ ├── BearFair21FishingLoot.java │ │ │ │ │ └── BearFair21TrashLoot.java │ │ │ ├── birthday21 │ │ │ │ └── BirthdayEventCommand.java │ │ │ ├── easter21 │ │ │ │ └── Easter21Command.java │ │ │ ├── halloween21 │ │ │ │ ├── Halloween21.java │ │ │ │ ├── Halloween21Command.java │ │ │ │ └── models │ │ │ │ │ ├── Candy.java │ │ │ │ │ └── PumpkinType.java │ │ │ ├── pride21 │ │ │ │ ├── BuyFlagsMenu.java │ │ │ │ ├── Decorations.java │ │ │ │ ├── ParadeManager.java │ │ │ │ ├── Pride21.java │ │ │ │ ├── Pride21Command.java │ │ │ │ └── Quests.java │ │ │ └── pugmas21 │ │ │ │ ├── Pugmas21.java │ │ │ │ ├── Pugmas21Command.java │ │ │ │ ├── advent │ │ │ │ ├── Pugmas21Advent.java │ │ │ │ ├── Pugmas21AdventAnimation.java │ │ │ │ └── Pugmas21AdventMenu.java │ │ │ │ ├── models │ │ │ │ ├── Pugmas21CandyCaneCannon.java │ │ │ │ ├── Pugmas21District.java │ │ │ │ ├── Pugmas21Intro.java │ │ │ │ ├── Pugmas21MultiModelStructure.java │ │ │ │ ├── Pugmas21Train.java │ │ │ │ ├── Pugmas21TrainBackground.java │ │ │ │ └── Pugmas21TreeType.java │ │ │ │ └── quests │ │ │ │ ├── Pugmas21Entity.java │ │ │ │ ├── Pugmas21NPC.java │ │ │ │ ├── Pugmas21QuestItem.java │ │ │ │ ├── Pugmas21QuestLine.java │ │ │ │ └── Pugmas21QuestTask.java │ │ ├── y2022 │ │ │ ├── bearfair22 │ │ │ │ └── README.md │ │ │ ├── easter22 │ │ │ │ ├── Easter22.java │ │ │ │ ├── Easter22Command.java │ │ │ │ └── quests │ │ │ │ │ ├── Easter22Entity.java │ │ │ │ │ ├── Easter22NPC.java │ │ │ │ │ ├── Easter22Quest.java │ │ │ │ │ ├── Easter22QuestItem.java │ │ │ │ │ ├── Easter22QuestReward.java │ │ │ │ │ └── Easter22QuestTask.java │ │ │ ├── halloween22 │ │ │ │ ├── Halloween22.java │ │ │ │ ├── Halloween22Command.java │ │ │ │ └── quests │ │ │ │ │ ├── Halloween22Entity.java │ │ │ │ │ ├── Halloween22NPC.java │ │ │ │ │ ├── Halloween22Quest.java │ │ │ │ │ ├── Halloween22QuestItem.java │ │ │ │ │ ├── Halloween22QuestReward.java │ │ │ │ │ └── Halloween22QuestTask.java │ │ │ └── pride22 │ │ │ │ ├── Pride22.java │ │ │ │ ├── Pride22Command.java │ │ │ │ └── quests │ │ │ │ ├── Pride22Entity.java │ │ │ │ ├── Pride22NPC.java │ │ │ │ ├── Pride22Quest.java │ │ │ │ ├── Pride22QuestItem.java │ │ │ │ ├── Pride22QuestReward.java │ │ │ │ └── Pride22QuestTask.java │ │ ├── y2024 │ │ │ └── vulan24 │ │ │ │ ├── VuLan24.java │ │ │ │ ├── VuLan24Command.java │ │ │ │ ├── VuLan24Effects.java │ │ │ │ ├── VuLan24Menus.java │ │ │ │ ├── lantern │ │ │ │ └── VuLan24LanternAnimation.java │ │ │ │ ├── models │ │ │ │ └── VuLan24BoatTracker.java │ │ │ │ └── quests │ │ │ │ ├── VuLan24Entity.java │ │ │ │ ├── VuLan24NPC.java │ │ │ │ ├── VuLan24Quest.java │ │ │ │ ├── VuLan24QuestItem.java │ │ │ │ ├── VuLan24QuestReward.java │ │ │ │ ├── VuLan24QuestTask.java │ │ │ │ └── community │ │ │ │ └── VuLan24DailyQuest.java │ │ └── y2025 │ │ │ └── pugmas25 │ │ │ ├── Pugmas25.java │ │ │ ├── Pugmas25Command.java │ │ │ ├── Pugmas25Effects.java │ │ │ ├── advent │ │ │ ├── Pugmas25Advent.java │ │ │ └── Pugmas25AdventMenu.java │ │ │ ├── balloons │ │ │ ├── Pugmas25BalloonEditor.java │ │ │ ├── Pugmas25BalloonEditorMenu.java │ │ │ ├── Pugmas25BalloonEditorUtils.java │ │ │ ├── Pugmas25BalloonManager.java │ │ │ └── Pugmas25BlockReplaceBrushMenu.java │ │ │ ├── fairgrounds │ │ │ ├── Pugmas25Fairgrounds.java │ │ │ ├── Pugmas25Minigolf.java │ │ │ ├── Pugmas25WhacAMole.java │ │ │ ├── frogger │ │ │ │ ├── Pugmas25Frogger.java │ │ │ │ └── Pugmas25FroggerUtils.java │ │ │ ├── reflection │ │ │ │ ├── Pugmas25Reflection.java │ │ │ │ ├── Pugmas25ReflectionLamp.java │ │ │ │ ├── Pugmas25ReflectionListeners.java │ │ │ │ └── Pugmas25ReflectionUtils.java │ │ │ └── slotmachine │ │ │ │ ├── Pugmas25SlotMachine.java │ │ │ │ ├── Pugmas25SlotMachineReward.java │ │ │ │ ├── Pugmas25SlotMachineRewardMenu.java │ │ │ │ └── SlotMachineColumn.java │ │ │ ├── models │ │ │ ├── Cutscene.java │ │ │ ├── CutsceneInstance.java │ │ │ ├── Pugmas25Cabin.java │ │ │ ├── Pugmas25Districts.java │ │ │ ├── Pugmas25Fishing.java │ │ │ ├── Pugmas25Geyser.java │ │ │ ├── Pugmas25Intro.java │ │ │ ├── Pugmas25Train.java │ │ │ ├── Pugmas25TrainBackground.java │ │ │ └── Pugmas25Waystones.java │ │ │ ├── quests │ │ │ ├── Pugmas25Entity.java │ │ │ ├── Pugmas25NPC.java │ │ │ ├── Pugmas25Quest.java │ │ │ ├── Pugmas25QuestItem.java │ │ │ ├── Pugmas25QuestItemsListener.java │ │ │ ├── Pugmas25QuestReward.java │ │ │ ├── Pugmas25QuestTask.java │ │ │ └── Pugmas25ShopMenu.java │ │ │ └── readme.md │ ├── fakenpc │ │ ├── DefaultTrait.java │ │ ├── FakeNPCCommand.java │ │ ├── FakeNPCPacketUtils.java │ │ ├── FakeNPCUtils.java │ │ ├── FakeNPCs.java │ │ └── events │ │ │ ├── FakeNPCClickEvent.java │ │ │ ├── FakeNPCEvent.java │ │ │ ├── FakeNPCLeftClickEvent.java │ │ │ └── FakeNPCRightClickEvent.java │ ├── forcefield │ │ ├── ForceField.java │ │ └── ForceFieldCommand.java │ ├── godmode │ │ ├── GodmodeCommand.java │ │ └── events │ │ │ ├── GodmodeActivatedEvent.java │ │ │ ├── GodmodeDeactivatedEvent.java │ │ │ └── GodmodeEvent.java │ ├── homes │ │ ├── DelHomeCommand.java │ │ ├── HomeCommand.java │ │ ├── HomeListener.java │ │ ├── HomesCommand.java │ │ ├── HomesFeature.java │ │ ├── HomesMenu.java │ │ ├── SetHomeCommand.java │ │ └── providers │ │ │ ├── EditHomeProvider.java │ │ │ ├── EditHomesProvider.java │ │ │ └── SetHomeProvider.java │ ├── hub │ │ ├── Hub.java │ │ ├── HubCommand.java │ │ ├── HubEffects.java │ │ ├── HubTreasureHunt.java │ │ └── README.md │ ├── itemtags │ │ ├── Condition.java │ │ ├── ITag.java │ │ ├── ItemTags.java │ │ ├── ItemTagsCommand.java │ │ ├── ItemTagsListener.java │ │ ├── ItemTagsUtils.java │ │ ├── Rarity.java │ │ └── RarityArgs.java │ ├── justice │ │ ├── Justice.java │ │ ├── activate │ │ │ ├── AltBanCommand.java │ │ │ ├── BanCommand.java │ │ │ ├── FreezeCommand.java │ │ │ ├── KickCommand.java │ │ │ ├── MuteCommand.java │ │ │ ├── RedHandedCommand.java │ │ │ ├── WarnCommand.java │ │ │ ├── WatchlistCommand.java │ │ │ └── WorldBanCommand.java │ │ ├── deactivate │ │ │ ├── UnAltBanCommand.java │ │ │ ├── UnBanCommand.java │ │ │ ├── UnFreezeCommand.java │ │ │ ├── UnMuteCommand.java │ │ │ ├── UnWatchlistCommand.java │ │ │ ├── WorldUnbanCommand.java │ │ │ └── YouMayContinueCommand.java │ │ └── misc │ │ │ ├── AltsCommand.java │ │ │ ├── CalcBanCommand.java │ │ │ ├── ClearChatCommand.java │ │ │ ├── ForceChannelCommand.java │ │ │ ├── HistoryCommand.java │ │ │ ├── LockdownCommand.java │ │ │ ├── NameBanCommand.java │ │ │ ├── PlayerNotesCommand.java │ │ │ ├── PunishmentsCommand.java │ │ │ ├── SkinBanCommand.java │ │ │ ├── _JusticeCommand.java │ │ │ └── _PunishmentCommand.java │ ├── kits │ │ ├── Kit.java │ │ ├── KitCommand.java │ │ ├── KitManager.java │ │ └── KitManagerProvider.java │ ├── leashable │ │ ├── Leashable.java │ │ └── LeashableCommand.java │ ├── legacy │ │ ├── Legacy.java │ │ ├── LegacyCommand.java │ │ ├── listeners │ │ │ ├── LegacyEntities.java │ │ │ ├── LegacyItems.java │ │ │ ├── LegacyMisc.java │ │ │ └── LegacyShulkerBoxes.java │ │ └── menus │ │ │ ├── homes │ │ │ └── LegacyHomesMenu.java │ │ │ └── itemtransfer │ │ │ ├── ItemReceiveMenu.java │ │ │ ├── ItemReviewMenu.java │ │ │ ├── ItemReviewSubMenu.java │ │ │ ├── ItemStatusMenu.java │ │ │ ├── ItemTransferMenu.java │ │ │ └── ReviewableMenu.java │ ├── listeners │ │ ├── Balancing.java │ │ ├── Beehives.java │ │ ├── CommandOverrideListener.java │ │ ├── CommandSigns.java │ │ ├── Composter.java │ │ ├── CreativeFilter.java │ │ ├── CustomEvents.java │ │ ├── DecoratedPot.java │ │ ├── EasterEggs.java │ │ ├── Food.java │ │ ├── ItemConverter.java │ │ ├── ItemSettingsListener.java │ │ ├── KillerMoney.java │ │ ├── LaunchPads.java │ │ ├── Listeners.java │ │ ├── Misc.java │ │ ├── MobSpawningStateListener.java │ │ ├── NerdListener.java │ │ ├── OfflineMessageListener.java │ │ ├── Podiums.java │ │ ├── Proportionator.java │ │ ├── Redstone.java │ │ ├── RegenRegions.java │ │ ├── RenameChests.java │ │ ├── Restrictions.java │ │ ├── SafeTeleport.java │ │ ├── SignWarListener.java │ │ ├── SlabBreak.java │ │ ├── SpamClick.java │ │ ├── Tab.java │ │ ├── Technoblade.java │ │ ├── Tips.java │ │ ├── WorldGuardFlags.java │ │ ├── common │ │ │ └── TemporaryListener.java │ │ └── events │ │ │ ├── FirstSubWorldGroupVisitEvent.java │ │ │ ├── FirstWorldGroupVisitEvent.java │ │ │ ├── FixedCraftItemEvent.java │ │ │ ├── GolemBuildEvent.java │ │ │ ├── LivingEntityDamageByPlayerEvent.java │ │ │ ├── LivingEntityKilledByPlayerEvent.java │ │ │ ├── PlayerBlockDigEvent.java │ │ │ ├── PlayerChangingWorldEvent.java │ │ │ ├── PlayerDamageByPlayerEvent.java │ │ │ ├── PlayerInteractHeadEvent.java │ │ │ ├── SourcedBlockRedstoneEvent.java │ │ │ ├── SubWorldGroupChangedEvent.java │ │ │ ├── WorldGroupChangedEvent.java │ │ │ └── fake │ │ │ ├── FakeBlockBreakEvent.java │ │ │ ├── FakeBlockPlaceEvent.java │ │ │ ├── FakeEvent.java │ │ │ └── FakePlayerInteractEvent.java │ ├── mcmmo │ │ ├── CombineCommand.java │ │ ├── FixPotionLauncherCommand.java │ │ ├── HorsePickerCommand.java │ │ ├── McMMO.java │ │ ├── McMMOCommand.java │ │ ├── McMMOListener.java │ │ └── reset │ │ │ ├── McMMOResetProvider.java │ │ │ ├── McMMOResetShopMenu.java │ │ │ ├── McMMOResetShopRewardsMenu.java │ │ │ ├── ResetReward.java │ │ │ └── annotations │ │ │ ├── Cost.java │ │ │ └── Reward.java │ ├── menus │ │ ├── BookBuilder.java │ │ ├── ColorSelectMenu.java │ │ ├── MenuUtils.java │ │ ├── anvilgui │ │ │ ├── AnvilGUI.java │ │ │ └── NMSHandler.java │ │ └── api │ │ │ ├── ClickableItem.java │ │ │ ├── InventoryListener.java │ │ │ ├── InventoryManager.java │ │ │ ├── ItemClickData.java │ │ │ ├── SignMenuFactory.java │ │ │ ├── SmartInventory.java │ │ │ ├── SmartInvsPlugin.java │ │ │ ├── TemporaryMenuListener.java │ │ │ ├── annotations │ │ │ ├── Rows.java │ │ │ ├── Title.java │ │ │ └── Uncloseable.java │ │ │ ├── content │ │ │ ├── InventoryContents.java │ │ │ ├── InventoryProvider.java │ │ │ ├── Pagination.java │ │ │ ├── ScrollableInventoryProvider.java │ │ │ ├── SlotIterator.java │ │ │ └── SlotPos.java │ │ │ ├── opener │ │ │ ├── ChestInventoryOpener.java │ │ │ ├── InventoryOpener.java │ │ │ └── SpecialInventoryOpener.java │ │ │ └── util │ │ │ └── Pattern.java │ ├── minigames │ │ ├── Minigames.java │ │ ├── commands │ │ │ ├── GamelobbyCommand.java │ │ │ ├── MinigamesCommand.java │ │ │ └── mechanics │ │ │ │ ├── BattleshipCommand.java │ │ │ │ ├── BingoCommand.java │ │ │ │ ├── CheckpointsCommand.java │ │ │ │ ├── Connect4Command.java │ │ │ │ ├── HideAndSeekCommand.java │ │ │ │ ├── InfectionCommand.java │ │ │ │ └── MurderCommand.java │ │ ├── listeners │ │ │ ├── AnnotationListener.java │ │ │ ├── Labyrinth.java │ │ │ ├── MatchDamageListener.java │ │ │ ├── MatchListener.java │ │ │ ├── RavensNestEstate.java │ │ │ └── SignListener.java │ │ ├── lobby │ │ │ ├── ActionBar.java │ │ │ ├── BasketballCommand.java │ │ │ ├── Leaderboards.java │ │ │ ├── MinigameInviter.java │ │ │ ├── Parkour.java │ │ │ ├── TickPerks.java │ │ │ └── exchange │ │ │ │ ├── MGMExchange.java │ │ │ │ └── MGMExchangeMenu.java │ │ ├── managers │ │ │ ├── ArenaManager.java │ │ │ └── MatchManager.java │ │ ├── mechanics │ │ │ ├── Archery.java │ │ │ ├── Battleship.java │ │ │ ├── Bingo.java │ │ │ ├── BlockParty.java │ │ │ ├── CaptureTheFlag.java │ │ │ ├── Checkers.java │ │ │ ├── Chess.java │ │ │ ├── Connect4.java │ │ │ ├── DeathSwap.java │ │ │ ├── Dogfighting.java │ │ │ ├── Domination.java │ │ │ ├── Dropper.java │ │ │ ├── ElytraRacing.java │ │ │ ├── FallingBlocks.java │ │ │ ├── FlagRush.java │ │ │ ├── FourTeamDeathmatch.java │ │ │ ├── FreeForAll.java │ │ │ ├── GoldRush.java │ │ │ ├── GrabAJumbuck.java │ │ │ ├── HideAndSeek.java │ │ │ ├── HoleInTheWall.java │ │ │ ├── HungerGames.java │ │ │ ├── IceRally.java │ │ │ ├── Infection.java │ │ │ ├── Juggernaut.java │ │ │ ├── KangarooJumping.java │ │ │ ├── KingOfTheHill.java │ │ │ ├── Mastermind.java │ │ │ ├── Maze.java │ │ │ ├── Megamind.java │ │ │ ├── MonsterMaze.java │ │ │ ├── Multimind.java │ │ │ ├── Murder.java │ │ │ ├── OneInTheQuiver.java │ │ │ ├── OneVsOne.java │ │ │ ├── Paintball.java │ │ │ ├── Parkour.java │ │ │ ├── PixelDrop.java │ │ │ ├── PixelPainters.java │ │ │ ├── Quake.java │ │ │ ├── Siege.java │ │ │ ├── Spleef.java │ │ │ ├── Splegg.java │ │ │ ├── TNTRun.java │ │ │ ├── TNTTag.java │ │ │ ├── TeamDeathmatch.java │ │ │ ├── Thimble.java │ │ │ ├── TicTacToe.java │ │ │ ├── TurfWars.java │ │ │ ├── UHC.java │ │ │ ├── UncivilEngineers.java │ │ │ ├── XRun.java │ │ │ └── common │ │ │ │ ├── AntiCampingTask.java │ │ │ │ ├── CaptureTheFlagMechanic.java │ │ │ │ ├── CheckpointMechanic.java │ │ │ │ ├── DeathmatchMechanic.java │ │ │ │ └── SpleefMechanic.java │ │ ├── menus │ │ │ ├── ArenaMenu.java │ │ │ ├── LeaderboardMenu.java │ │ │ ├── LobbyMenu.java │ │ │ ├── MechanicsMenu.java │ │ │ ├── PerkMenu.java │ │ │ ├── annotations │ │ │ │ ├── CustomMechanicSettings.java │ │ │ │ └── Scroll.java │ │ │ ├── custom │ │ │ │ ├── BattleshipMenu.java │ │ │ │ ├── CheckpointMenu.java │ │ │ │ ├── Connect4Menu.java │ │ │ │ ├── DeathSwapMenu.java │ │ │ │ ├── DropperMenu.java │ │ │ │ ├── GoldRushMenu.java │ │ │ │ ├── GrabAJumbuckMenu.java │ │ │ │ ├── HoleInTheWallMenu.java │ │ │ │ ├── ICustomMechanicMenu.java │ │ │ │ ├── KangarooJumpingMenu.java │ │ │ │ ├── MurderMenu.java │ │ │ │ ├── ThimbleMenu.java │ │ │ │ ├── TicTacToeMenu.java │ │ │ │ ├── TurfWarsMenu.java │ │ │ │ └── UncivilEngineersMenu.java │ │ │ ├── flags │ │ │ │ ├── BlockListMenu.java │ │ │ │ └── FlagsMenu.java │ │ │ ├── lobby │ │ │ │ ├── ArenasMenu.java │ │ │ │ ├── MechanicSubGroupMenu.java │ │ │ │ └── ScrollableMechanicSubGroupMenu.java │ │ │ ├── perks │ │ │ │ ├── BuyPerksMenu.java │ │ │ │ ├── CategoryMenu.java │ │ │ │ ├── CommonPerksMenu.java │ │ │ │ └── PlayerPerksMenu.java │ │ │ ├── spectate │ │ │ │ ├── SpectateMenu.java │ │ │ │ ├── TeamSpectateMenu.java │ │ │ │ └── TeamlessSpectateMenu.java │ │ │ └── teams │ │ │ │ ├── SpawnpointLocationsMenu.java │ │ │ │ ├── TeamColorMenu.java │ │ │ │ ├── TeamEditorMenu.java │ │ │ │ ├── TeamVisibilityMenu.java │ │ │ │ ├── TeamsMenu.java │ │ │ │ └── loadout │ │ │ │ ├── LoadoutMenu.java │ │ │ │ ├── PotionEffectEditorMenu.java │ │ │ │ └── PotionEffectsMenu.java │ │ ├── models │ │ │ ├── Arena.java │ │ │ ├── IHasSpawnpoints.java │ │ │ ├── Loadout.java │ │ │ ├── Lobby.java │ │ │ ├── Match.java │ │ │ ├── MatchData.java │ │ │ ├── MatchStatistics.java │ │ │ ├── MinigameMessageType.java │ │ │ ├── Minigamer.java │ │ │ ├── RegenType.java │ │ │ ├── Team.java │ │ │ ├── annotations │ │ │ │ ├── AntiCamp.java │ │ │ │ ├── MatchDataFor.java │ │ │ │ ├── MatchStatisticsClass.java │ │ │ │ ├── Railgun.java │ │ │ │ ├── Regenerating.java │ │ │ │ ├── Scoreboard.java │ │ │ │ └── TeamGlowing.java │ │ │ ├── arenas │ │ │ │ ├── ArcheryArena.java │ │ │ │ ├── BattleshipArena.java │ │ │ │ ├── CheckpointArena.java │ │ │ │ ├── Connect4Arena.java │ │ │ │ ├── DeathSwapArena.java │ │ │ │ ├── DropperArena.java │ │ │ │ ├── DropperMap.java │ │ │ │ ├── GoldRushArena.java │ │ │ │ ├── GrabAJumbuckArena.java │ │ │ │ ├── HoleInTheWallArena.java │ │ │ │ ├── KangarooJumpingArena.java │ │ │ │ ├── MurderArena.java │ │ │ │ ├── PixelDropArena.java │ │ │ │ ├── PixelPaintersArena.java │ │ │ │ ├── ThimbleArena.java │ │ │ │ ├── ThimbleMap.java │ │ │ │ ├── TicTacToeArena.java │ │ │ │ ├── TurfWarsArena.java │ │ │ │ └── UncivilEngineersArena.java │ │ │ ├── events │ │ │ │ ├── MinigameEvent.java │ │ │ │ ├── arenas │ │ │ │ │ └── AllArenasLoadedEvent.java │ │ │ │ ├── lobby │ │ │ │ │ ├── MinigamerLobbyEvent.java │ │ │ │ │ └── MinigamerUseGadgetEvent.java │ │ │ │ └── matches │ │ │ │ │ ├── MatchBeginEvent.java │ │ │ │ │ ├── MatchBroadcastEvent.java │ │ │ │ │ ├── MatchEndEvent.java │ │ │ │ │ ├── MatchEvent.java │ │ │ │ │ ├── MatchInitializeEvent.java │ │ │ │ │ ├── MatchJoinEvent.java │ │ │ │ │ ├── MatchQuitEvent.java │ │ │ │ │ ├── MatchRegeneratedEvent.java │ │ │ │ │ ├── MatchStartEvent.java │ │ │ │ │ ├── MatchTimerTickEvent.java │ │ │ │ │ ├── lobbies │ │ │ │ │ ├── LobbyEvent.java │ │ │ │ │ └── LobbyTimerTickEvent.java │ │ │ │ │ ├── minigamers │ │ │ │ │ ├── MinigamerDamageEvent.java │ │ │ │ │ ├── MinigamerDeathEvent.java │ │ │ │ │ ├── MinigamerDisplayTimerEvent.java │ │ │ │ │ ├── MinigamerLoadoutEvent.java │ │ │ │ │ ├── MinigamerMatchEvent.java │ │ │ │ │ ├── MinigamerRespawnEvent.java │ │ │ │ │ ├── MinigamerScoredEvent.java │ │ │ │ │ └── MinigamerStartSpectatingEvent.java │ │ │ │ │ └── teams │ │ │ │ │ ├── TeamEvent.java │ │ │ │ │ └── TeamScoredEvent.java │ │ │ ├── exceptions │ │ │ │ ├── MinigameException.java │ │ │ │ ├── NotYourTurnException.java │ │ │ │ └── YourTurnIsOverException.java │ │ │ ├── matchdata │ │ │ │ ├── ArcheryMatchData.java │ │ │ │ ├── BattleshipMatchData.java │ │ │ │ ├── BingoMatchData.java │ │ │ │ ├── BlockPartyMatchData.java │ │ │ │ ├── CaptureTheFlagMatchData.java │ │ │ │ ├── CheckersMatchData.java │ │ │ │ ├── CheckpointData.java │ │ │ │ ├── CheckpointMatchData.java │ │ │ │ ├── ChessMatchData.java │ │ │ │ ├── Connect4MatchData.java │ │ │ │ ├── DeathSwapMatchData.java │ │ │ │ ├── DominationMatchData.java │ │ │ │ ├── DropperMatchData.java │ │ │ │ ├── FallingBlocksMatchData.java │ │ │ │ ├── Flag.java │ │ │ │ ├── GrabAJumbuckMatchData.java │ │ │ │ ├── HideAndSeekMatchData.java │ │ │ │ ├── HoleInTheWallMatchData.java │ │ │ │ ├── IMastermindMatchData.java │ │ │ │ ├── JuggernautMatchData.java │ │ │ │ ├── KingOfTheHillMatchData.java │ │ │ │ ├── MastermindMatchData.java │ │ │ │ ├── MonsterMazeMatchData.java │ │ │ │ ├── MultimindMatchData.java │ │ │ │ ├── MurderMatchData.java │ │ │ │ ├── OneFlagCaptureTheFlagMatchData.java │ │ │ │ ├── PixelDropMatchData.java │ │ │ │ ├── PixelPaintersMatchData.java │ │ │ │ ├── TNTTagMatchData.java │ │ │ │ ├── ThimbleMatchData.java │ │ │ │ ├── TicTacToeMatchData.java │ │ │ │ ├── TurfWarsMatchData.java │ │ │ │ ├── UHCMatchData.java │ │ │ │ └── UncivilEngineersMatchData.java │ │ │ ├── mechanics │ │ │ │ ├── Mechanic.java │ │ │ │ ├── MechanicGroup.java │ │ │ │ ├── MechanicSubGroup.java │ │ │ │ ├── MechanicType.java │ │ │ │ ├── custom │ │ │ │ │ ├── bingo │ │ │ │ │ │ ├── Challenge.java │ │ │ │ │ │ ├── challenge │ │ │ │ │ │ │ ├── BiomeChallenge.java │ │ │ │ │ │ │ ├── BreakChallenge.java │ │ │ │ │ │ │ ├── BreedChallenge.java │ │ │ │ │ │ │ ├── ConsumeChallenge.java │ │ │ │ │ │ │ ├── CraftChallenge.java │ │ │ │ │ │ │ ├── CustomChallenge.java │ │ │ │ │ │ │ ├── DeathChallenge.java │ │ │ │ │ │ │ ├── DimensionChallenge.java │ │ │ │ │ │ │ ├── KillChallenge.java │ │ │ │ │ │ │ ├── ObtainChallenge.java │ │ │ │ │ │ │ ├── PlaceChallenge.java │ │ │ │ │ │ │ ├── StatisticIncreaseChallenge.java │ │ │ │ │ │ │ ├── StructureChallenge.java │ │ │ │ │ │ │ ├── TameChallenge.java │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ │ ├── IChallenge.java │ │ │ │ │ │ │ │ ├── IEntityChallenge.java │ │ │ │ │ │ │ │ ├── IItemChallenge.java │ │ │ │ │ │ │ │ └── ProgressClass.java │ │ │ │ │ │ └── progress │ │ │ │ │ │ │ ├── BiomeChallengeProgress.java │ │ │ │ │ │ │ ├── BreakChallengeProgress.java │ │ │ │ │ │ │ ├── BreedChallengeProgress.java │ │ │ │ │ │ │ ├── ConsumeChallengeProgress.java │ │ │ │ │ │ │ ├── CraftChallengeProgress.java │ │ │ │ │ │ │ ├── CustomChallengeProgress.java │ │ │ │ │ │ │ ├── DeathChallengeProgress.java │ │ │ │ │ │ │ ├── DimensionChallengeProgress.java │ │ │ │ │ │ │ ├── KillChallengeProgress.java │ │ │ │ │ │ │ ├── ObtainChallengeProgress.java │ │ │ │ │ │ │ ├── PlaceChallengeProgress.java │ │ │ │ │ │ │ ├── StatisticIncreaseChallengeProgress.java │ │ │ │ │ │ │ ├── StructureChallengeProgress.java │ │ │ │ │ │ │ ├── TameChallengeProgress.java │ │ │ │ │ │ │ └── common │ │ │ │ │ │ │ ├── IChallengeProgress.java │ │ │ │ │ │ │ ├── IEntityChallengeProgress.java │ │ │ │ │ │ │ └── IItemChallengeProgress.java │ │ │ │ │ └── monstermaze │ │ │ │ │ │ └── MonsterMazePathfinder.java │ │ │ │ ├── multiplayer │ │ │ │ │ ├── MultiplayerMechanic.java │ │ │ │ │ ├── VanillaMechanic.java │ │ │ │ │ ├── teamless │ │ │ │ │ │ ├── TeamlessMechanic.java │ │ │ │ │ │ └── TeamlessVanillaMechanic.java │ │ │ │ │ └── teams │ │ │ │ │ │ ├── TeamMechanic.java │ │ │ │ │ │ └── TeamVanillaMechanic.java │ │ │ │ └── singleplayer │ │ │ │ │ └── SingleplayerMechanic.java │ │ │ ├── modifiers │ │ │ │ ├── MinigameModifier.java │ │ │ │ └── MinigameModifiers.java │ │ │ ├── perks │ │ │ │ ├── HideParticle.java │ │ │ │ ├── IHasPerkCategory.java │ │ │ │ ├── ParticleProjectile.java │ │ │ │ ├── Perk.java │ │ │ │ ├── PerkCategory.java │ │ │ │ ├── PerkType.java │ │ │ │ └── common │ │ │ │ │ ├── GadgetPerk.java │ │ │ │ │ ├── HatMaterialPerk.java │ │ │ │ │ ├── HatPerk.java │ │ │ │ │ ├── IParticlePerk.java │ │ │ │ │ ├── LoadoutPerk.java │ │ │ │ │ ├── ParticleProjectilePerk.java │ │ │ │ │ ├── PlayerParticlePerk.java │ │ │ │ │ ├── TeamHatMaterialPerk.java │ │ │ │ │ ├── TeamHatPerk.java │ │ │ │ │ ├── TeamLoadoutPerk.java │ │ │ │ │ └── TickablePerk.java │ │ │ ├── scoreboards │ │ │ │ ├── MatchSidebar.java │ │ │ │ ├── MinigameScoreboard.java │ │ │ │ ├── MinigamerSidebar.java │ │ │ │ └── TeamSidebar.java │ │ │ └── statistics │ │ │ │ ├── ArcheryStatistics.java │ │ │ │ ├── BattleshipStatistics.java │ │ │ │ ├── BingoStatistics.java │ │ │ │ ├── BlockPartyStatistics.java │ │ │ │ ├── CaptureTheFlagStatistics.java │ │ │ │ ├── CheckpointStatistics.java │ │ │ │ ├── DropperStatistics.java │ │ │ │ ├── FallingBlocksStatistics.java │ │ │ │ ├── FlagRushStatistics.java │ │ │ │ ├── GoldRushStatistics.java │ │ │ │ ├── HideAndSeekStatistics.java │ │ │ │ ├── HoleInTheWallStatistics.java │ │ │ │ ├── InfectionStatistics.java │ │ │ │ ├── MurderStatistics.java │ │ │ │ ├── OneInTheQuiverStatistics.java │ │ │ │ ├── PaintballStatistics.java │ │ │ │ ├── PixelDropStatistics.java │ │ │ │ ├── PixelPaintersStatistics.java │ │ │ │ ├── QuakeStatistics.java │ │ │ │ ├── SpleefStatistics.java │ │ │ │ ├── SpleggStatistics.java │ │ │ │ ├── TNTRunStatistics.java │ │ │ │ ├── ThimbleStatistics.java │ │ │ │ ├── TurfWarsStatistics.java │ │ │ │ └── models │ │ │ │ ├── FormulaStatistic.java │ │ │ │ ├── MinigameStatistic.java │ │ │ │ └── generics │ │ │ │ ├── DeathsStat.java │ │ │ │ ├── KillsStat.java │ │ │ │ ├── PVPStats.java │ │ │ │ └── RailgunStatistics.java │ │ ├── modifiers │ │ │ ├── Blindness.java │ │ │ ├── BulletArrows.java │ │ │ ├── HalfKnockback.java │ │ │ ├── JumpBoost.java │ │ │ ├── ModernCombat.java │ │ │ ├── MoonGravity.java │ │ │ ├── NoJumping.java │ │ │ ├── NoKnockback.java │ │ │ ├── NoModifier.java │ │ │ ├── SuperSpeed.java │ │ │ └── XRun.java │ │ ├── perks │ │ │ ├── arrowparticles │ │ │ │ ├── BasicTrail.java │ │ │ │ ├── BubbleTrail.java │ │ │ │ ├── FlameTrail.java │ │ │ │ ├── GreenTrail.java │ │ │ │ ├── PETRail.java │ │ │ │ └── RainbowTrail.java │ │ │ ├── gadgets │ │ │ │ ├── DyeBombGadget.java │ │ │ │ ├── SnowballGadget.java │ │ │ │ └── SpringGadget.java │ │ │ ├── loadouts │ │ │ │ ├── CustomModelHat.java │ │ │ │ ├── FlagHat.java │ │ │ │ ├── HatImpl.java │ │ │ │ ├── HatMaterialImpl.java │ │ │ │ ├── LeavesHat.java │ │ │ │ └── teamed │ │ │ │ │ ├── DyeableCustomModelHat.java │ │ │ │ │ ├── DyeableHat.java │ │ │ │ │ └── TeamHatMaterialImpl.java │ │ │ └── particles │ │ │ │ ├── CloudParticle.java │ │ │ │ ├── FlameParticle.java │ │ │ │ ├── HeartParticle.java │ │ │ │ ├── SoulFlameParticle.java │ │ │ │ └── SplashParticle.java │ │ └── utils │ │ │ ├── Gun.java │ │ │ ├── MinigameNight.java │ │ │ └── PowerUpUtils.java │ ├── minigolf │ │ ├── MiniGolf.java │ │ ├── MiniGolfBlockUtils.java │ │ ├── MiniGolfCommand.java │ │ ├── MiniGolfUtils.java │ │ ├── listeners │ │ │ ├── InteractListener.java │ │ │ ├── Listeners.java │ │ │ └── ProjectileListener.java │ │ └── models │ │ │ ├── GolfBall.java │ │ │ ├── GolfBallColor.java │ │ │ ├── MiniGolfUser.java │ │ │ ├── blocks │ │ │ ├── BoostBlock.java │ │ │ ├── BounceBlock.java │ │ │ ├── BounceSkull.java │ │ │ ├── BumperSkull.java │ │ │ ├── CannonBlock.java │ │ │ ├── CatchBlock.java │ │ │ ├── ConveyorBlock.java │ │ │ ├── DeathBlock.java │ │ │ ├── DefaultBlock.java │ │ │ ├── DirectionalBoostBlock.java │ │ │ ├── FrictionBlock.java │ │ │ ├── FrictionlessBlock.java │ │ │ ├── GravityBlock.java │ │ │ ├── HoleBlock.java │ │ │ ├── ModifierBlock.java │ │ │ ├── ModifierBlockType.java │ │ │ ├── ModifierSkull.java │ │ │ ├── TNTBlock.java │ │ │ ├── TNTSkull.java │ │ │ └── TeleportBlock.java │ │ │ └── events │ │ │ ├── MiniGolfBallBounceEvent.java │ │ │ ├── MiniGolfBallDeathEvent.java │ │ │ ├── MiniGolfBallEvent.java │ │ │ ├── MiniGolfBallModifierBlockEvent.java │ │ │ ├── MiniGolfBallMoveEvent.java │ │ │ ├── MiniGolfBallSinkEvent.java │ │ │ ├── MiniGolfBallSpawnEvent.java │ │ │ ├── MiniGolfEvent.java │ │ │ ├── MiniGolfUserEvent.java │ │ │ ├── MiniGolfUserJoinEvent.java │ │ │ ├── MiniGolfUserPlaceBallEvent.java │ │ │ └── MiniGolfUserQuitEvent.java │ ├── mobheads │ │ ├── MobHeadType.java │ │ ├── MobHeadUserMenu.java │ │ ├── MobHeads.java │ │ ├── MobHeadsCommand.java │ │ ├── common │ │ │ ├── HeadConfig.java │ │ │ ├── MobHead.java │ │ │ └── MobHeadVariant.java │ │ └── variants │ │ │ ├── AxolotlVariant.java │ │ │ ├── CatVariant.java │ │ │ ├── CreeperVariant.java │ │ │ ├── FoxVariant.java │ │ │ ├── FrogVariant.java │ │ │ ├── HorseVariant.java │ │ │ ├── LlamaVariant.java │ │ │ ├── MooshroomVariant.java │ │ │ ├── PandaVariant.java │ │ │ ├── ParrotVariant.java │ │ │ ├── RabbitVariant.java │ │ │ ├── SheepVariant.java │ │ │ ├── SnowmanVariant.java │ │ │ ├── TraderLlamaVariant.java │ │ │ ├── TropicalFishVariant.java │ │ │ ├── VillagerVariant.java │ │ │ └── ZombieVillagerVariant.java │ ├── nameplates │ │ ├── NameplateManager.java │ │ ├── Nameplates.java │ │ ├── NameplatesCommand.java │ │ ├── NameplatesListener.java │ │ ├── PushTeamAssigner.java │ │ ├── TeamAssigner.java │ │ └── packets │ │ │ ├── NameplateMetadataPacket.java │ │ │ └── NameplateSpawnPacket.java │ ├── parkour │ │ ├── ParkourCommand.java │ │ └── ParkourListener.java │ ├── particles │ │ ├── ParticleUtils.java │ │ ├── Particles.java │ │ ├── ParticlesCommand.java │ │ ├── VectorUtils.java │ │ ├── effects │ │ │ ├── BandsEffect.java │ │ │ ├── CircleEffect.java │ │ │ ├── DiscoEffect.java │ │ │ ├── DotEffect.java │ │ │ ├── LineEffect.java │ │ │ ├── NyanCatEffect.java │ │ │ ├── PolygonEffect.java │ │ │ ├── SphereEffect.java │ │ │ ├── SpiralEffect.java │ │ │ ├── StarEffect.java │ │ │ ├── StormEffect.java │ │ │ └── WingsEffect.java │ │ └── providers │ │ │ ├── EffectSettingProvider.java │ │ │ ├── ParticleColorMenuProvider.java │ │ │ ├── ParticleMenuProvider.java │ │ │ └── WingsTypeProvider.java │ ├── party │ │ ├── Parties.java │ │ └── PartyCommand.java │ ├── profiles │ │ ├── FriendsCommand.java │ │ ├── ProfileCommand.java │ │ ├── colorcreator │ │ │ └── ColorCreatorProvider.java │ │ └── providers │ │ │ ├── AccessibleHomesProvider.java │ │ │ ├── FriendRequestsProvider.java │ │ │ ├── FriendsProvider.java │ │ │ ├── PartyProvider.java │ │ │ ├── ProfileProvider.java │ │ │ ├── ProfileSettingsProvider.java │ │ │ └── ProfileTextureProvider.java │ ├── quests │ │ ├── CommonQuestItem.java │ │ ├── CommonQuestReward.java │ │ ├── QuestCommand.java │ │ ├── QuestConfig.java │ │ ├── QuestItem.java │ │ ├── QuestReward.java │ │ ├── QuestShopMenu.java │ │ ├── events │ │ │ ├── QuestCompletedEvent.java │ │ │ └── QuestEvent.java │ │ ├── interactable │ │ │ ├── Inanimate.java │ │ │ ├── Interactable.java │ │ │ ├── InteractableEntity.java │ │ │ ├── InteractableNPC.java │ │ │ └── instructions │ │ │ │ ├── Dialog.java │ │ │ │ └── DialogInstance.java │ │ └── tasks │ │ │ ├── GatherQuestTask.java │ │ │ ├── InteractQuestTask.java │ │ │ └── common │ │ │ ├── IQuest.java │ │ │ ├── IQuestTask.java │ │ │ ├── QuestTask.java │ │ │ └── QuestTaskStep.java │ ├── radar │ │ ├── AACNotifyCommand.java │ │ ├── AntiXray.java │ │ ├── CPSWatchCommand.java │ │ ├── CommandWatchCommand.java │ │ ├── HoneyPotCommand.java │ │ ├── HopperLagCommand.java │ │ └── ReachWatchCommand.java │ ├── radio │ │ ├── Listeners.java │ │ ├── README.md │ │ ├── RadioCommand.java │ │ ├── RadioFeature.java │ │ └── RadioUtils.java │ ├── recipes │ │ ├── CustomRecipes.java │ │ ├── CustomRecipesCommand.java │ │ ├── RecipeUtils.java │ │ ├── RecipesCommand.java │ │ ├── functionals │ │ │ ├── DiamondTotemOfUndying.java │ │ │ ├── Glue.java │ │ │ ├── InfiniteWaterBucket.java │ │ │ ├── InvisibleItemFrame.java │ │ │ ├── RepairCostDiminisher.java │ │ │ ├── UncraftingShulkerBox.java │ │ │ ├── WardCharm.java │ │ │ ├── armor │ │ │ │ └── wither │ │ │ │ │ ├── CraftedWitherSkull.java │ │ │ │ │ ├── WitherArmorListener.java │ │ │ │ │ ├── WitherBoots.java │ │ │ │ │ ├── WitherChestplate.java │ │ │ │ │ ├── WitherHelmet.java │ │ │ │ │ └── WitherLeggings.java │ │ │ └── backpacks │ │ │ │ ├── Backpacks.java │ │ │ │ ├── DiamondBackpack.java │ │ │ │ ├── FixBackpackCommand.java │ │ │ │ ├── GoldBackpack.java │ │ │ │ ├── IronBackpack.java │ │ │ │ └── NetheriteBackpack.java │ │ ├── menu │ │ │ ├── CustomCraftingRecipeMenu.java │ │ │ ├── CustomFurnaceRecipeMenu.java │ │ │ ├── CustomRecipeFolderMenu.java │ │ │ └── common │ │ │ │ ├── ICustomRecipeMenu.java │ │ │ │ └── ICustomRecipesMenu.java │ │ └── models │ │ │ ├── FunctionalRecipe.java │ │ │ ├── NexusRecipe.java │ │ │ ├── RecipeGroup.java │ │ │ ├── RecipeType.java │ │ │ └── builders │ │ │ ├── BlastFurnaceBuilder.java │ │ │ ├── FurnaceBuilder.java │ │ │ ├── RecipeBuilder.java │ │ │ ├── ShapedBuilder.java │ │ │ ├── ShapelessBuilder.java │ │ │ ├── StoneCutterBuilder.java │ │ │ └── SurroundBuilder.java │ ├── regionapi │ │ ├── MovementType.java │ │ ├── WorldGuardRegionAPI.java │ │ └── events │ │ │ ├── RegionEventFactory.java │ │ │ ├── common │ │ │ ├── EnteredRegionEvent.java │ │ │ ├── EnteringRegionEvent.java │ │ │ ├── LeavingRegionEvent.java │ │ │ ├── LeftRegionEvent.java │ │ │ └── abstraction │ │ │ │ ├── CancellableRegionEvent.java │ │ │ │ ├── NonCancellableRegionEvent.java │ │ │ │ └── RegionEvent.java │ │ │ ├── entity │ │ │ ├── EntityEnteredRegionEvent.java │ │ │ ├── EntityEnteringRegionEvent.java │ │ │ ├── EntityLeavingRegionEvent.java │ │ │ └── EntityLeftRegionEvent.java │ │ │ ├── npc │ │ │ ├── NPCEnteredRegionEvent.java │ │ │ ├── NPCEnteringRegionEvent.java │ │ │ ├── NPCLeavingRegionEvent.java │ │ │ └── NPCLeftRegionEvent.java │ │ │ └── player │ │ │ ├── PlayerEnteredRegionEvent.java │ │ │ ├── PlayerEnteringRegionEvent.java │ │ │ ├── PlayerLeavingRegionEvent.java │ │ │ └── PlayerLeftRegionEvent.java │ ├── resourcepack │ │ ├── CustomContentUtils.java │ │ ├── ItemModelMenu.java │ │ ├── ResourcePack.java │ │ ├── ResourcePackListener.java │ │ ├── TempCustomBlocks.java │ │ ├── commands │ │ │ ├── CustomBlocksCommand.java │ │ │ ├── CustomModelConverterCommand.java │ │ │ ├── DecorationCommand.java │ │ │ ├── ImageStandCommand.java │ │ │ ├── ObjectivesCommand.java │ │ │ └── ResourcePackCommand.java │ │ ├── customblocks │ │ │ ├── CustomBlockNMSUtils.java │ │ │ ├── CustomBlockUtils.java │ │ │ ├── CustomBlocksFeature.java │ │ │ ├── breaking │ │ │ │ ├── BreakListener.java │ │ │ │ ├── Breaker.java │ │ │ │ └── DamagedBlock.java │ │ │ ├── events │ │ │ │ ├── NoteBlockChangePitchEvent.java │ │ │ │ ├── NoteBlockEvent.java │ │ │ │ └── NoteBlockPlayEvent.java │ │ │ ├── listeners │ │ │ │ ├── BlockBreakingTestListener.java │ │ │ │ ├── ConversionListener.java │ │ │ │ ├── CustomBlockListener.java │ │ │ │ └── CustomBlockSounds.java │ │ │ ├── menus │ │ │ │ ├── CustomBlockCatalogMenu.java │ │ │ │ ├── CustomBlockSearchMenu.java │ │ │ │ └── CustomBlockTagMenu.java │ │ │ ├── models │ │ │ │ ├── CustomBlock.java │ │ │ │ ├── CustomBlockTab.java │ │ │ │ ├── CustomBlockTag.java │ │ │ │ ├── CustomToolBlock.java │ │ │ │ ├── NoteBlockInstrument.java │ │ │ │ ├── common │ │ │ │ │ ├── CustomBlockConfig.java │ │ │ │ │ ├── ICompostable.java │ │ │ │ │ ├── ICraftable.java │ │ │ │ │ ├── ICustomBlock.java │ │ │ │ │ ├── IDirectional.java │ │ │ │ │ ├── IHarvestable.java │ │ │ │ │ ├── IInteractable.java │ │ │ │ │ ├── IPistonActions.java │ │ │ │ │ ├── IReDyeable.java │ │ │ │ │ ├── ISupportPlants.java │ │ │ │ │ └── Unobtainable.java │ │ │ │ ├── noteblocks │ │ │ │ │ ├── common │ │ │ │ │ │ ├── CustomNoteBlockConfig.java │ │ │ │ │ │ ├── DirectionalConfig.java │ │ │ │ │ │ ├── ICraftableNoteBlock.java │ │ │ │ │ │ ├── ICustomNoteBlock.java │ │ │ │ │ │ ├── IDirectionalNoteBlock.java │ │ │ │ │ │ └── ILightableNoteBlock.java │ │ │ │ │ ├── compacted │ │ │ │ │ │ ├── ICompacted.java │ │ │ │ │ │ ├── bundle │ │ │ │ │ │ │ ├── CactusBundle.java │ │ │ │ │ │ │ ├── IBundle.java │ │ │ │ │ │ │ ├── StickBundle.java │ │ │ │ │ │ │ └── SugarCaneBundle.java │ │ │ │ │ │ └── crate │ │ │ │ │ │ │ ├── AppleCrate.java │ │ │ │ │ │ │ ├── BeetrootCrate.java │ │ │ │ │ │ │ ├── CarrotCrate.java │ │ │ │ │ │ │ ├── ICrate.java │ │ │ │ │ │ │ ├── PotatoCrate.java │ │ │ │ │ │ │ └── SweetBerryCrate.java │ │ │ │ │ ├── concretebricks │ │ │ │ │ │ ├── BlackConcreteBricks.java │ │ │ │ │ │ ├── BlueConcreteBricks.java │ │ │ │ │ │ ├── BrownConcreteBricks.java │ │ │ │ │ │ ├── CyanConcreteBricks.java │ │ │ │ │ │ ├── GrayConcreteBricks.java │ │ │ │ │ │ ├── GreenConcreteBricks.java │ │ │ │ │ │ ├── IConcreteBricks.java │ │ │ │ │ │ ├── LightBlueConcreteBricks.java │ │ │ │ │ │ ├── LightGrayConcreteBricks.java │ │ │ │ │ │ ├── LimeConcreteBricks.java │ │ │ │ │ │ ├── MagentaConcreteBricks.java │ │ │ │ │ │ ├── OrangeConcreteBricks.java │ │ │ │ │ │ ├── PinkConcreteBricks.java │ │ │ │ │ │ ├── PurpleConcreteBricks.java │ │ │ │ │ │ ├── RedConcreteBricks.java │ │ │ │ │ │ ├── WhiteConcreteBricks.java │ │ │ │ │ │ └── YellowConcreteBricks.java │ │ │ │ │ ├── genericcrate │ │ │ │ │ │ ├── GenericCrateA.java │ │ │ │ │ │ ├── GenericCrateB.java │ │ │ │ │ │ ├── GenericCrateC.java │ │ │ │ │ │ ├── GenericCrateD.java │ │ │ │ │ │ └── IGenericCrate.java │ │ │ │ │ ├── ice │ │ │ │ │ │ ├── ChiseledPackedIceBricks.java │ │ │ │ │ │ ├── ChiseledPackedSnow.java │ │ │ │ │ │ ├── PackedIceBricks.java │ │ │ │ │ │ ├── PackedSnow.java │ │ │ │ │ │ ├── PackedSnowBricks.java │ │ │ │ │ │ ├── Permafrost.java │ │ │ │ │ │ └── PolishedPackedIce.java │ │ │ │ │ ├── lanterns │ │ │ │ │ │ ├── AcaciaPaperLantern.java │ │ │ │ │ │ ├── BambooPaperLantern.java │ │ │ │ │ │ ├── BirchPaperLantern.java │ │ │ │ │ │ ├── CherryPaperLantern.java │ │ │ │ │ │ ├── CrimsonShroomLantern.java │ │ │ │ │ │ ├── DarkOakPaperLantern.java │ │ │ │ │ │ ├── ILantern.java │ │ │ │ │ │ ├── IPaperLantern.java │ │ │ │ │ │ ├── IShroomLantern.java │ │ │ │ │ │ ├── JunglePaperLantern.java │ │ │ │ │ │ ├── MangrovePaperLantern.java │ │ │ │ │ │ ├── OakPaperLantern.java │ │ │ │ │ │ ├── PaleOakPaperLantern.java │ │ │ │ │ │ ├── SprucePaperLantern.java │ │ │ │ │ │ └── WarpedShroomLantern.java │ │ │ │ │ ├── misc │ │ │ │ │ │ ├── FloweringMossBlock.java │ │ │ │ │ │ ├── HazardBlock.java │ │ │ │ │ │ ├── NoteBlock.java │ │ │ │ │ │ ├── ShojiBlock.java │ │ │ │ │ │ └── Wireframe.java │ │ │ │ │ ├── neon │ │ │ │ │ │ ├── BlackNeonBlock.java │ │ │ │ │ │ ├── BlueNeonBlock.java │ │ │ │ │ │ ├── BrownNeonBlock.java │ │ │ │ │ │ ├── CyanNeonBlock.java │ │ │ │ │ │ ├── GrayNeonBlock.java │ │ │ │ │ │ ├── GreenNeonBlock.java │ │ │ │ │ │ ├── INeonBlock.java │ │ │ │ │ │ ├── LightBlueNeonBlock.java │ │ │ │ │ │ ├── LightGrayNeonBlock.java │ │ │ │ │ │ ├── LimeNeonBlock.java │ │ │ │ │ │ ├── MagentaNeonBlock.java │ │ │ │ │ │ ├── OrangeNeonBlock.java │ │ │ │ │ │ ├── PinkNeonBlock.java │ │ │ │ │ │ ├── PurpleNeonBlock.java │ │ │ │ │ │ ├── RedNeonBlock.java │ │ │ │ │ │ ├── WhiteNeonBlock.java │ │ │ │ │ │ └── YellowNeonBlock.java │ │ │ │ │ ├── planks │ │ │ │ │ │ ├── IPlanks.java │ │ │ │ │ │ ├── carved │ │ │ │ │ │ │ ├── CarvedAcaciaPlanks.java │ │ │ │ │ │ │ ├── CarvedBirchPlanks.java │ │ │ │ │ │ │ ├── CarvedCherryPlanks.java │ │ │ │ │ │ │ ├── CarvedCrimsonPlanks.java │ │ │ │ │ │ │ ├── CarvedDarkOakPlanks.java │ │ │ │ │ │ │ ├── CarvedJunglePlanks.java │ │ │ │ │ │ │ ├── CarvedMangrovePlanks.java │ │ │ │ │ │ │ ├── CarvedOakPlanks.java │ │ │ │ │ │ │ ├── CarvedPaleOakPlanks.java │ │ │ │ │ │ │ ├── CarvedSprucePlanks.java │ │ │ │ │ │ │ ├── CarvedWarpedPlanks.java │ │ │ │ │ │ │ └── ICarvedPlanks.java │ │ │ │ │ │ ├── colored │ │ │ │ │ │ │ ├── BlackPlanks.java │ │ │ │ │ │ │ ├── BluePlanks.java │ │ │ │ │ │ │ ├── BrownPlanks.java │ │ │ │ │ │ │ ├── CyanPlanks.java │ │ │ │ │ │ │ ├── GrayPlanks.java │ │ │ │ │ │ │ ├── GreenPlanks.java │ │ │ │ │ │ │ ├── IColoredPlanks.java │ │ │ │ │ │ │ ├── LightBluePlanks.java │ │ │ │ │ │ │ ├── LightGrayPlanks.java │ │ │ │ │ │ │ ├── LimePlanks.java │ │ │ │ │ │ │ ├── MagentaPlanks.java │ │ │ │ │ │ │ ├── OrangePlanks.java │ │ │ │ │ │ │ ├── PinkPlanks.java │ │ │ │ │ │ │ ├── PurplePlanks.java │ │ │ │ │ │ │ ├── RedPlanks.java │ │ │ │ │ │ │ ├── WhitePlanks.java │ │ │ │ │ │ │ └── YellowPlanks.java │ │ │ │ │ │ └── vertical │ │ │ │ │ │ │ ├── IVerticalPlanks.java │ │ │ │ │ │ │ ├── VerticalAcaciaPlanks.java │ │ │ │ │ │ │ ├── VerticalBambooPlanks.java │ │ │ │ │ │ │ ├── VerticalBirchPlanks.java │ │ │ │ │ │ │ ├── VerticalCherryPlanks.java │ │ │ │ │ │ │ ├── VerticalCrimsonPlanks.java │ │ │ │ │ │ │ ├── VerticalDarkOakPlanks.java │ │ │ │ │ │ │ ├── VerticalJunglePlanks.java │ │ │ │ │ │ │ ├── VerticalMangrovePlanks.java │ │ │ │ │ │ │ ├── VerticalOakPlanks.java │ │ │ │ │ │ │ ├── VerticalPaleOakPlanks.java │ │ │ │ │ │ │ ├── VerticalSprucePlanks.java │ │ │ │ │ │ │ └── VerticalWarpedPlanks.java │ │ │ │ │ ├── quiltedwool │ │ │ │ │ │ ├── BlackQuiltedWool.java │ │ │ │ │ │ ├── BlueQuiltedWool.java │ │ │ │ │ │ ├── BrownQuiltedWool.java │ │ │ │ │ │ ├── CyanQuiltedWool.java │ │ │ │ │ │ ├── GrayQuiltedWool.java │ │ │ │ │ │ ├── GreenQuiltedWool.java │ │ │ │ │ │ ├── IQuiltedWool.java │ │ │ │ │ │ ├── LightBlueQuiltedWool.java │ │ │ │ │ │ ├── LightGrayQuiltedWool.java │ │ │ │ │ │ ├── LimeQuiltedWool.java │ │ │ │ │ │ ├── MagentaQuiltedWool.java │ │ │ │ │ │ ├── OrangeQuiltedWool.java │ │ │ │ │ │ ├── PinkQuiltedWool.java │ │ │ │ │ │ ├── PurpleQuiltedWool.java │ │ │ │ │ │ ├── RedQuiltedWool.java │ │ │ │ │ │ ├── WhiteQuiltedWool.java │ │ │ │ │ │ └── YellowQuiltedWool.java │ │ │ │ │ ├── shulker │ │ │ │ │ │ ├── BlackShulkerBlock.java │ │ │ │ │ │ ├── BlueShulkerBlock.java │ │ │ │ │ │ ├── BrownShulkerBlock.java │ │ │ │ │ │ ├── CyanShulkerBlock.java │ │ │ │ │ │ ├── GrayShulkerBlock.java │ │ │ │ │ │ ├── GreenShulkerBlock.java │ │ │ │ │ │ ├── IShulkerBlock.java │ │ │ │ │ │ ├── LightBlueShulkerBlock.java │ │ │ │ │ │ ├── LightGrayShulkerBlock.java │ │ │ │ │ │ ├── LimeShulkerBlock.java │ │ │ │ │ │ ├── MagentaShulkerBlock.java │ │ │ │ │ │ ├── OrangeShulkerBlock.java │ │ │ │ │ │ ├── PinkShulkerBlock.java │ │ │ │ │ │ ├── PurpleShulkerBlock.java │ │ │ │ │ │ ├── RedShulkerBlock.java │ │ │ │ │ │ ├── WhiteShulkerBlock.java │ │ │ │ │ │ └── YellowShulkerBlock.java │ │ │ │ │ ├── stones │ │ │ │ │ │ ├── bricks │ │ │ │ │ │ │ ├── AndesiteBricks.java │ │ │ │ │ │ │ ├── DioriteBricks.java │ │ │ │ │ │ │ ├── GraniteBricks.java │ │ │ │ │ │ │ └── IStoneBricks.java │ │ │ │ │ │ ├── chiseled │ │ │ │ │ │ │ ├── ChiseledAndesite.java │ │ │ │ │ │ │ ├── ChiseledDiorite.java │ │ │ │ │ │ │ ├── ChiseledGranite.java │ │ │ │ │ │ │ ├── ChiseledPurpur.java │ │ │ │ │ │ │ ├── ChiseledStone.java │ │ │ │ │ │ │ └── IChiseledStone.java │ │ │ │ │ │ └── pillar │ │ │ │ │ │ │ ├── AndesiteStonePillar.java │ │ │ │ │ │ │ ├── BlackstoneStonePillar.java │ │ │ │ │ │ │ ├── DeepslateStonePillar.java │ │ │ │ │ │ │ ├── DioriteStonePillar.java │ │ │ │ │ │ │ ├── GraniteStonePillar.java │ │ │ │ │ │ │ ├── IStonePillar.java │ │ │ │ │ │ │ ├── StoneBricksStonePillar.java │ │ │ │ │ │ │ └── StoneStonePillar.java │ │ │ │ │ └── terracottashingles │ │ │ │ │ │ ├── BlackTerracottaShingles.java │ │ │ │ │ │ ├── BlueTerracottaShingles.java │ │ │ │ │ │ ├── BrownTerracottaShingles.java │ │ │ │ │ │ ├── CyanTerracottaShingles.java │ │ │ │ │ │ ├── GrayTerracottaShingles.java │ │ │ │ │ │ ├── GreenTerracottaShingles.java │ │ │ │ │ │ ├── IColoredTerracottaShingles.java │ │ │ │ │ │ ├── ITerracottaShingles.java │ │ │ │ │ │ ├── LightBlueTerracottaShingles.java │ │ │ │ │ │ ├── LightGrayTerracottaShingles.java │ │ │ │ │ │ ├── LimeTerracottaShingles.java │ │ │ │ │ │ ├── MagentaTerracottaShingles.java │ │ │ │ │ │ ├── OrangeTerracottaShingles.java │ │ │ │ │ │ ├── PinkTerracottaShingles.java │ │ │ │ │ │ ├── PurpleTerracottaShingles.java │ │ │ │ │ │ ├── RedTerracottaShingles.java │ │ │ │ │ │ ├── TerracottaShingles.java │ │ │ │ │ │ ├── WhiteTerracottaShingles.java │ │ │ │ │ │ └── YellowTerracottaShingles.java │ │ │ │ └── tripwire │ │ │ │ │ ├── common │ │ │ │ │ ├── CustomTripwireConfig.java │ │ │ │ │ ├── DirectionalConfig.java │ │ │ │ │ ├── ICraftableTripwire.java │ │ │ │ │ ├── ICustomTripwire.java │ │ │ │ │ ├── IDirectionalTripwire.java │ │ │ │ │ ├── IRequireDirt.java │ │ │ │ │ ├── IRequireSupport.java │ │ │ │ │ ├── IWaterLogged.java │ │ │ │ │ └── WaterLoggedConfig.java │ │ │ │ │ ├── cover │ │ │ │ │ ├── FungusCover.java │ │ │ │ │ ├── ICover.java │ │ │ │ │ └── aubrieta │ │ │ │ │ │ ├── DarkBlueAubrieta.java │ │ │ │ │ │ ├── LightBlueAubrieta.java │ │ │ │ │ │ ├── OrangeAubrieta.java │ │ │ │ │ │ ├── PinkAubrieta.java │ │ │ │ │ │ ├── PurpleAubrieta.java │ │ │ │ │ │ ├── RainbowAubrieta.java │ │ │ │ │ │ ├── RedAubrieta.java │ │ │ │ │ │ ├── WhiteAubrieta.java │ │ │ │ │ │ └── YellowAubrieta.java │ │ │ │ │ ├── incremental │ │ │ │ │ ├── IIncremental.java │ │ │ │ │ ├── pebbles │ │ │ │ │ │ ├── IPebbles.java │ │ │ │ │ │ ├── Pebbles_0.java │ │ │ │ │ │ ├── Pebbles_1.java │ │ │ │ │ │ └── Pebbles_2.java │ │ │ │ │ └── rocks │ │ │ │ │ │ ├── IRocks.java │ │ │ │ │ │ ├── Rocks_0.java │ │ │ │ │ │ ├── Rocks_1.java │ │ │ │ │ │ └── Rocks_2.java │ │ │ │ │ ├── misc │ │ │ │ │ └── Lavender.java │ │ │ │ │ ├── tall │ │ │ │ │ ├── BlueSage.java │ │ │ │ │ ├── Bluebell.java │ │ │ │ │ ├── Cattail.java │ │ │ │ │ ├── ITall.java │ │ │ │ │ ├── ITallFlower.java │ │ │ │ │ ├── MountainLaurel.java │ │ │ │ │ ├── OrangeGladiolus.java │ │ │ │ │ ├── PurpleHibiscus.java │ │ │ │ │ └── TallSupport.java │ │ │ │ │ └── tripwire │ │ │ │ │ ├── IActualTripwire.java │ │ │ │ │ ├── Tripwire.java │ │ │ │ │ └── TripwireCross.java │ │ │ └── worldedit │ │ │ │ ├── WorldEditListener.java │ │ │ │ ├── WorldEditUtils.java │ │ │ │ └── WrappedWorldEdit.java │ │ ├── decoration │ │ │ ├── DecorationEntityData.java │ │ │ ├── DecorationInteractData.java │ │ │ ├── DecorationLang.java │ │ │ ├── DecorationListener.java │ │ │ ├── DecorationTagType.java │ │ │ ├── DecorationType.java │ │ │ ├── DecorationTypeListener.java │ │ │ ├── DecorationUtils.java │ │ │ ├── Decorations.java │ │ │ ├── HitboxMaze.java │ │ │ ├── TickableDecorations.java │ │ │ ├── TypeConfig.java │ │ │ ├── catalog │ │ │ │ ├── Catalog.java │ │ │ │ ├── CatalogProvider.java │ │ │ │ ├── CatalogThemeProvider.java │ │ │ │ ├── CountersProvider.java │ │ │ │ └── MasterCatalogProvider.java │ │ │ ├── common │ │ │ │ ├── Decoration.java │ │ │ │ ├── DecorationConfig.java │ │ │ │ ├── Hitbox.java │ │ │ │ ├── HitboxEnums.java │ │ │ │ ├── PlacementType.java │ │ │ │ ├── RotationSnap.java │ │ │ │ └── interfaces │ │ │ │ │ ├── Addition.java │ │ │ │ │ ├── Colorable.java │ │ │ │ │ ├── CraftableDecoration.java │ │ │ │ │ ├── HasVirtualInventory.java │ │ │ │ │ ├── Interactable.java │ │ │ │ │ ├── MultiState.java │ │ │ │ │ ├── Seat.java │ │ │ │ │ ├── Structure.java │ │ │ │ │ ├── TickableDecoration.java │ │ │ │ │ └── Toggleable.java │ │ │ ├── events │ │ │ │ ├── DecorationDestroyEvent.java │ │ │ │ ├── DecorationEvent.java │ │ │ │ ├── DecorationInteractEvent.java │ │ │ │ ├── DecorationModifyEvent.java │ │ │ │ ├── DecorationPaintEvent.java │ │ │ │ ├── DecorationPlacedEvent.java │ │ │ │ ├── DecorationPrePlaceEvent.java │ │ │ │ ├── DecorationRotateEvent.java │ │ │ │ ├── DecorationSitEvent.java │ │ │ │ └── DecorationSpawnEvent.java │ │ │ ├── store │ │ │ │ ├── BuyableData.java │ │ │ │ ├── DecorationStoreCurrencyType.java │ │ │ │ ├── DecorationStoreManager.java │ │ │ │ ├── DecorationStoreType.java │ │ │ │ ├── DecorationStoreUtils.java │ │ │ │ └── TargetData.java │ │ │ └── types │ │ │ │ ├── Art.java │ │ │ │ ├── Bunting.java │ │ │ │ ├── Cabinet.java │ │ │ │ ├── Counter.java │ │ │ │ ├── Dyeable.java │ │ │ │ ├── DyeableFireplace.java │ │ │ │ ├── Fireplace.java │ │ │ │ ├── Flag.java │ │ │ │ ├── Flora.java │ │ │ │ ├── Furniture.java │ │ │ │ ├── HangingBanner.java │ │ │ │ ├── StandingBanner.java │ │ │ │ ├── Table.java │ │ │ │ ├── craftable │ │ │ │ ├── BirdHouse.java │ │ │ │ └── WindChime.java │ │ │ │ ├── instruments │ │ │ │ ├── DyeableInstrument.java │ │ │ │ ├── Instrument.java │ │ │ │ └── NoiseMaker.java │ │ │ │ ├── seats │ │ │ │ ├── Bench.java │ │ │ │ ├── Chair.java │ │ │ │ ├── Couch.java │ │ │ │ ├── DyeableChair.java │ │ │ │ ├── LongChair.java │ │ │ │ └── Stump.java │ │ │ │ ├── special │ │ │ │ ├── Backpack.java │ │ │ │ ├── BedAddition │ │ │ │ │ ├── BedAddition.java │ │ │ │ │ ├── BedInteractionData.java │ │ │ │ │ └── BedPaintProvider.java │ │ │ │ ├── Edible.java │ │ │ │ ├── Mailbox.java │ │ │ │ ├── MobPlushie.java │ │ │ │ ├── PlayerHeadBlock.java │ │ │ │ ├── PlayerPlushie.java │ │ │ │ ├── TrashCan.java │ │ │ │ ├── Trophy.java │ │ │ │ ├── Waystone.java │ │ │ │ ├── Well.java │ │ │ │ └── WorkBench.java │ │ │ │ ├── surfaces │ │ │ │ ├── Block.java │ │ │ │ ├── CeilingThing.java │ │ │ │ ├── DyeableCeilingThing.java │ │ │ │ ├── DyeableFloorThing.java │ │ │ │ ├── DyeableWallThing.java │ │ │ │ ├── FloorThing.java │ │ │ │ └── WallThing.java │ │ │ │ └── toggle │ │ │ │ ├── Curtain.java │ │ │ │ └── RecordPlayer.java │ │ ├── models │ │ │ ├── CustomArmorType.java │ │ │ ├── CustomItemCooldown.java │ │ │ ├── CustomSound.java │ │ │ ├── ItemModelInstance.java │ │ │ ├── ItemModelType.java │ │ │ ├── Saturn.java │ │ │ ├── annotations │ │ │ │ ├── AllowInVanillaRecipes.java │ │ │ │ └── HasCustomModelData.java │ │ │ ├── events │ │ │ │ ├── ResourcePackEvent.java │ │ │ │ ├── ResourcePackUpdateCompleteEvent.java │ │ │ │ └── ResourcePackUpdateStartEvent.java │ │ │ ├── files │ │ │ │ ├── FontFile.java │ │ │ │ ├── ItemModelFolder.java │ │ │ │ └── SoundsFile.java │ │ │ └── font │ │ │ │ ├── CustomEmoji.java │ │ │ │ ├── CustomFont.java │ │ │ │ └── InventoryTexture.java │ │ └── playerplushies │ │ │ ├── PlayerPlushieStoreMenu.java │ │ │ ├── PlayerPlushiesCommand.java │ │ │ ├── Pose.java │ │ │ └── Tier.java │ ├── scoreboard │ │ ├── ScoreboardCommand.java │ │ └── ScoreboardLine.java │ ├── shops │ │ ├── Market.java │ │ ├── MarketCommand.java │ │ ├── ResourceWorldCommand.java │ │ ├── ShopCommand.java │ │ ├── ShopUtils.java │ │ ├── Shops.java │ │ └── providers │ │ │ ├── BrowseMarketProvider.java │ │ │ ├── BrowseProductsProvider.java │ │ │ ├── BrowseShopsProvider.java │ │ │ ├── EditProductProvider.java │ │ │ ├── ExchangeConfigProvider.java │ │ │ ├── ItemSearchProvider.java │ │ │ ├── MainMenuProvider.java │ │ │ ├── PlayerShopProvider.java │ │ │ ├── ResourceWorldMarketProvider.java │ │ │ ├── SearchProductsProvider.java │ │ │ ├── YourShopProvider.java │ │ │ └── common │ │ │ ├── ShopMenuFunctions.java │ │ │ └── ShopProvider.java │ ├── skyblock │ │ └── README.md │ ├── socialmedia │ │ ├── SocialMedia.java │ │ ├── commands │ │ │ ├── InstagramCommand.java │ │ │ ├── QueUpCommand.java │ │ │ ├── RedditCommand.java │ │ │ ├── SocialMediaCommand.java │ │ │ ├── SteamCommand.java │ │ │ ├── TwitchCommand.java │ │ │ ├── TwitterCommand.java │ │ │ ├── WebsiteCommand.java │ │ │ └── YouTubeCommand.java │ │ └── integrations │ │ │ ├── Instagram.java │ │ │ ├── Twitch.java │ │ │ └── Twitter.java │ ├── statistics │ │ ├── StatisticsCommand.java │ │ ├── StatisticsMenu.java │ │ └── StatisticsMenuProvider.java │ ├── store │ │ ├── BuycraftUtils.java │ │ ├── HandlePurchaseCommand.java │ │ ├── Package.java │ │ ├── StoreCommand.java │ │ ├── annotations │ │ │ ├── Category.java │ │ │ ├── Commands.java │ │ │ ├── Display.java │ │ │ ├── ExpirationCommands.java │ │ │ ├── ExpirationDays.java │ │ │ ├── Id.java │ │ │ ├── PermissionGroup.java │ │ │ ├── Permissions.java │ │ │ └── World.java │ │ ├── gallery │ │ │ ├── GalleryPackage.java │ │ │ ├── StoreGallery.java │ │ │ ├── StoreGalleryListener.java │ │ │ ├── StoreGalleryNPCs.java │ │ │ └── annotations │ │ │ │ ├── Category.java │ │ │ │ ├── RealCategory.java │ │ │ │ └── StorePackage.java │ │ └── perks │ │ │ ├── boosts │ │ │ └── BoostsCommand.java │ │ │ ├── chat │ │ │ ├── NicknameCommand.java │ │ │ ├── PrefixCommand.java │ │ │ └── joinquit │ │ │ │ ├── JoinQuit.java │ │ │ │ └── JoinQuitCommand.java │ │ │ ├── inventory │ │ │ ├── AutoTorchCommand.java │ │ │ ├── FireworkBowCommand.java │ │ │ ├── HatCommand.java │ │ │ ├── InvisibleArmorCommand.java │ │ │ ├── ItemNameCommand.java │ │ │ ├── PlayerHeadCommand.java │ │ │ ├── autoinventory │ │ │ │ ├── AutoInventory.java │ │ │ │ ├── AutoInventoryCommand.java │ │ │ │ ├── AutoInventoryFeature.java │ │ │ │ ├── features │ │ │ │ │ ├── AutoCraft.java │ │ │ │ │ ├── AutoDeposit.java │ │ │ │ │ ├── AutoDepositQuick.java │ │ │ │ │ ├── AutoRefill.java │ │ │ │ │ ├── AutoSortChests.java │ │ │ │ │ ├── AutoSortInventory.java │ │ │ │ │ ├── AutoTool.java │ │ │ │ │ └── AutoTrash.java │ │ │ │ └── tasks │ │ │ │ │ ├── FindChestsThread.java │ │ │ │ │ └── InventorySorter.java │ │ │ ├── stattrack │ │ │ │ ├── StatTrackCommand.java │ │ │ │ ├── StatTrackListener.java │ │ │ │ └── models │ │ │ │ │ ├── Stat.java │ │ │ │ │ ├── StatIncreaseEvent.java │ │ │ │ │ └── StatItem.java │ │ │ └── workbenches │ │ │ │ ├── CartographyTableCommand.java │ │ │ │ ├── CraftingTableCommand.java │ │ │ │ ├── DyeStationCommand.java │ │ │ │ ├── GrindstoneCommand.java │ │ │ │ ├── LoomCommand.java │ │ │ │ ├── SmithingTableCommand.java │ │ │ │ ├── StoneCutterCommand.java │ │ │ │ ├── WorkbenchesCommand.java │ │ │ │ └── _WorkbenchCommand.java │ │ │ └── visuals │ │ │ ├── CostumeCommand.java │ │ │ ├── EmojiHatsCommand.java │ │ │ ├── EntityNameCommand.java │ │ │ ├── FireworkCommand.java │ │ │ ├── NPCListener.java │ │ │ ├── PlayerTimeCommand.java │ │ │ ├── RainbowArmorCommand.java │ │ │ ├── RainbowBeaconCommand.java │ │ │ └── WingsCommand.java │ ├── survival │ │ ├── MobNets.java │ │ ├── Sleep.java │ │ ├── Survival.java │ │ ├── avontyre │ │ │ ├── AmbientSounds.java │ │ │ ├── AvontyreEffects.java │ │ │ ├── AvontyreNPCListener.java │ │ │ ├── AvontyreNPCs.java │ │ │ └── weeklywakka │ │ │ │ ├── WeeklyWakkaCommand.java │ │ │ │ ├── WeeklyWakkaFeature.java │ │ │ │ └── WeeklyWakkaUtils.java │ │ ├── decorationstore │ │ │ ├── DecorationStore.java │ │ │ └── DecorationStoreLayouts.java │ │ ├── difficulty │ │ │ ├── Difficulty.java │ │ │ ├── DifficultyCommand.java │ │ │ └── ForDifficulty.java │ │ ├── gem │ │ │ └── GemCommand.java │ │ ├── models │ │ │ └── annotations │ │ │ │ ├── JobNPC.java │ │ │ │ └── NPCConfig.java │ │ ├── strongholds │ │ │ └── StrongholdFixer.java │ │ └── structures │ │ │ ├── EditEntityProvider.java │ │ │ ├── SpawnerCommand.java │ │ │ ├── SpawnerCustomizerProvider.java │ │ │ ├── Structures.java │ │ │ ├── StructuresCommand.java │ │ │ └── models │ │ │ ├── NMSSpawnData.java │ │ │ ├── NMSSpawner.java │ │ │ └── Spawner.java │ ├── test │ │ ├── CurveTestCommand.java │ │ ├── ItemFrameNameCommand.java │ │ ├── PacketsCommand.java │ │ ├── PlayerAnimation.java │ │ ├── PlayerAnimationCommand.java │ │ ├── TestCommand.java │ │ ├── TestFontCommand.java │ │ ├── TestGUICommand.java │ │ └── pathfinder │ │ │ ├── Pathfinder.java │ │ │ └── PathfinderCommand.java │ ├── tickets │ │ ├── ReportCommand.java │ │ ├── TicketCommand.java │ │ ├── TicketFeature.java │ │ └── TicketsCommand.java │ ├── titan │ │ ├── ClientMessage.java │ │ ├── ClientboundListeners.java │ │ ├── ServerClientMessaging.java │ │ ├── TitanCommand.java │ │ ├── clientbound │ │ │ ├── CustomBlocks.java │ │ │ ├── Decorations.java │ │ │ ├── ResetMinigame.java │ │ │ ├── SaturnUpdate.java │ │ │ └── UpdateState.java │ │ ├── models │ │ │ ├── Clientbound.java │ │ │ ├── CustomCreativeItem.java │ │ │ ├── Message.java │ │ │ ├── PluginMessage.java │ │ │ └── Serverbound.java │ │ └── serverbound │ │ │ ├── Handshake.java │ │ │ ├── TitanConfig.java │ │ │ └── Versions.java │ ├── trust │ │ ├── LWCTrustModule.java │ │ ├── TrustCommand.java │ │ ├── TrustFeature.java │ │ ├── UntrustCommand.java │ │ └── providers │ │ │ ├── TrustPlayerProvider.java │ │ │ └── TrustProvider.java │ ├── vanish │ │ ├── Vanish.java │ │ ├── VanishCommand.java │ │ ├── VanishListener.java │ │ └── events │ │ │ ├── AbstractVanishEvent.java │ │ │ ├── PreVanishToggleEvent.java │ │ │ └── VanishToggleEvent.java │ ├── vaults │ │ └── VaultCommand.java │ ├── virtualinventories │ │ ├── VirtualInventoriesCommand.java │ │ ├── VirtualInventoryUtils.java │ │ ├── events │ │ │ ├── VirtualInventoryEvent.java │ │ │ └── furnace │ │ │ │ ├── VirtualFurnaceCookEvent.java │ │ │ │ ├── VirtualFurnaceEndEvent.java │ │ │ │ ├── VirtualFurnaceExtractEvent.java │ │ │ │ ├── VirtualFurnaceFuelBurnEvent.java │ │ │ │ ├── VirtualFurnaceStartEvent.java │ │ │ │ └── VirtualFurnaceTickEvent.java │ │ ├── listeners │ │ │ └── VirtualInventoryListener.java │ │ ├── managers │ │ │ ├── VirtualInventoryManager.java │ │ │ ├── VirtualPersonalInventoryManager.java │ │ │ └── VirtualSharedInventoryManager.java │ │ └── models │ │ │ ├── inventories │ │ │ ├── VirtualInventory.java │ │ │ ├── VirtualInventoryType.java │ │ │ ├── VirtualPersonalInventory.java │ │ │ └── impl │ │ │ │ ├── VirtualFurnace.java │ │ │ │ └── VirtualPersonalFurnace.java │ │ │ ├── properties │ │ │ ├── VirtualInventoryProperties.java │ │ │ └── impl │ │ │ │ └── FurnaceProperties.java │ │ │ └── tiles │ │ │ ├── Tile.java │ │ │ ├── VirtualChunk.java │ │ │ ├── VirtualChunkKey.java │ │ │ └── impl │ │ │ └── FurnaceTile.java │ ├── votes │ │ ├── BannerCommand.java │ │ ├── DailyVoteRewardsCommand.java │ │ ├── EndOfMonth.java │ │ ├── VoteCommand.java │ │ ├── VoteHoloCommand.java │ │ ├── Votes.java │ │ ├── party │ │ │ ├── RewardTier.java │ │ │ ├── VoteParty.java │ │ │ ├── VotePartyResetJob.java │ │ │ └── VotePartyReward.java │ │ └── vps │ │ │ ├── VPS.java │ │ │ ├── VPSMenu.java │ │ │ └── VPSProvider.java │ ├── warps │ │ ├── WarpMenu.java │ │ ├── Warps.java │ │ ├── commands │ │ │ ├── ArenasCommand.java │ │ │ ├── CreativeCommand.java │ │ │ ├── GiliHousesCommand.java │ │ │ ├── QuestWarpsCommand.java │ │ │ ├── SpawnCommand.java │ │ │ ├── StaffWarpsCommand.java │ │ │ ├── SurvivalCommand.java │ │ │ ├── WallsOfGraceCommand.java │ │ │ ├── WarpsCommand.java │ │ │ ├── XrayWarpsCommand.java │ │ │ ├── _WarpCommand.java │ │ │ └── _WarpSubCommand.java │ │ └── providers │ │ │ └── WarpsMenuProvider.java │ ├── wiki │ │ ├── MCWikiCommand.java │ │ ├── WikiCommand.java │ │ └── _WikiSearchCommand.java │ ├── wither │ │ ├── BeginningCutscene.java │ │ ├── DifficultySelectionMenu.java │ │ ├── WitherChallenge.java │ │ ├── WitherCommand.java │ │ ├── fights │ │ │ ├── CorruptedFight.java │ │ │ ├── EasyFight.java │ │ │ ├── HardFight.java │ │ │ └── MediumFight.java │ │ └── models │ │ │ ├── AntiCamping.java │ │ │ └── WitherFight.java │ └── workbenches │ │ ├── CustomBench.java │ │ ├── EnchantedBookSplitter.java │ │ ├── ICraftableCustomBench.java │ │ ├── ToolModificationTable.java │ │ └── dyestation │ │ ├── ColorChoice.java │ │ ├── CreativeBrushMenu.java │ │ ├── DyeStation.java │ │ ├── DyeStationMenu.java │ │ └── IDyeMenu.java │ ├── framework │ ├── annotations │ │ ├── Date.java │ │ └── Icon.java │ ├── commands │ │ ├── CommandHandler.java │ │ ├── CommandListener.java │ │ ├── CommandMapUtils.java │ │ ├── Commands.java │ │ └── models │ │ │ ├── CustomCommand.java │ │ │ ├── ICustomCommand.java │ │ │ ├── PathParser.java │ │ │ ├── annotations │ │ │ ├── Aliases.java │ │ │ ├── Arg.java │ │ │ ├── Confirm.java │ │ │ ├── ConverterFor.java │ │ │ ├── Cooldown.java │ │ │ ├── Description.java │ │ │ ├── DescriptionExtra.java │ │ │ ├── DoubleSlash.java │ │ │ ├── Fallback.java │ │ │ ├── HideFromHelp.java │ │ │ ├── HideFromWiki.java │ │ │ ├── Path.java │ │ │ ├── Permission.java │ │ │ ├── Redirects.java │ │ │ ├── Switch.java │ │ │ ├── TabCompleteIgnore.java │ │ │ ├── TabCompleterFor.java │ │ │ └── WikiConfig.java │ │ │ └── events │ │ │ ├── CommandEvent.java │ │ │ ├── CommandRunEvent.java │ │ │ └── CommandTabEvent.java │ ├── exceptions │ │ ├── NexusException.java │ │ ├── postconfigured │ │ │ ├── CommandCooldownException.java │ │ │ ├── CrateOpeningException.java │ │ │ ├── InvalidInputException.java │ │ │ ├── PlayerNotFoundException.java │ │ │ ├── PlayerNotOnlineException.java │ │ │ └── PostConfiguredException.java │ │ └── preconfigured │ │ │ ├── BlockedInMinigamesException.java │ │ │ ├── MissingArgumentException.java │ │ │ ├── MustBeCommandBlockException.java │ │ │ ├── MustBeConsoleException.java │ │ │ ├── MustBeIngameException.java │ │ │ ├── NegativeBalanceException.java │ │ │ ├── NoPermissionException.java │ │ │ ├── NotEnoughMoneyException.java │ │ │ └── PreConfiguredException.java │ ├── features │ │ ├── Depends.java │ │ ├── Feature.java │ │ ├── Features.java │ │ └── Unreleased.java │ ├── interfaces │ │ ├── Colored.java │ │ ├── EntityOwnedObject.java │ │ ├── HasDescription.java │ │ ├── IsColored.java │ │ ├── IsColoredAndNamed.java │ │ ├── IsColoredAndNicknamed.java │ │ ├── PlayerOwnedObject.java │ │ └── impl │ │ │ └── ColoredImpl.java │ └── persistence │ │ ├── mongodb │ │ ├── MongoBukkitService.java │ │ ├── MongoEntityService.java │ │ └── MongoPlayerService.java │ │ ├── mysql │ │ ├── MySQLDatabase.java │ │ ├── MySQLPersistence.java │ │ └── MySQLService.java │ │ └── serializer │ │ ├── mongodb │ │ ├── ChannelConverter.java │ │ ├── ChatColorConverter.java │ │ ├── ColorConverter.java │ │ ├── ConcurrentLinkedQueueConverter.java │ │ ├── CostumeConverter.java │ │ ├── DurationConverter.java │ │ ├── EnumInterfaceConverter.java │ │ ├── EulerAngleConverter.java │ │ ├── FakeNPCConverter.java │ │ ├── ItemStackConverter.java │ │ ├── LocationConverter.java │ │ ├── MatchStatRecordConverter.java │ │ ├── MobHeadConverter.java │ │ ├── PrivateChannelConverter.java │ │ ├── PublicChannelConverter.java │ │ ├── QuestConverter.java │ │ ├── TimespanConverter.java │ │ ├── TraitConverter.java │ │ └── WorldConverter.java │ │ └── mysql │ │ ├── IntegerListSerializer.java │ │ ├── LocationSerializer.java │ │ └── StringSetSerializer.java │ ├── hooks │ ├── Hook.java │ ├── IHook.java │ ├── bentobox │ │ ├── BentoBoxHook.java │ │ └── BentoBoxHookImpl.java │ ├── citizens │ │ ├── CitizensHook.java │ │ └── CitizensHookImpl.java │ └── viaversion │ │ ├── ViaVersionHook.java │ │ └── ViaVersionHookImpl.java │ ├── lombok.config │ ├── models │ ├── achievement │ │ ├── Achievement.java │ │ ├── AchievementGroup.java │ │ ├── AchievementPlayer.java │ │ └── AchievementService.java │ ├── aeveonproject │ │ ├── AeveonProjectService.java │ │ └── AeveonProjectUser.java │ ├── afk │ │ ├── AFKUser.java │ │ ├── AFKUserService.java │ │ └── events │ │ │ ├── AFKEvent.java │ │ │ ├── NotAFKEvent.java │ │ │ └── NowAFKEvent.java │ ├── alerts │ │ ├── Alerts.java │ │ └── AlertsService.java │ ├── ambience │ │ ├── AmbienceConfig.java │ │ ├── AmbienceConfigService.java │ │ ├── AmbienceUser.java │ │ ├── AmbienceUserService.java │ │ └── Variables.java │ ├── assetcompetition │ │ ├── AssetCompetition.java │ │ └── AssetCompetitionService.java │ ├── autoinventory │ │ ├── AutoInventoryUser.java │ │ └── AutoInventoryUserService.java │ ├── autotorch │ │ ├── AutoTorchService.java │ │ └── AutoTorchUser.java │ ├── back │ │ ├── Back.java │ │ └── BackService.java │ ├── badge │ │ ├── BadgeUser.java │ │ └── BadgeUserService.java │ ├── banker │ │ ├── Banker.java │ │ ├── BankerService.java │ │ ├── Transaction.java │ │ ├── Transactions.java │ │ └── TransactionsService.java │ ├── bearfair20 │ │ ├── BearFair20User.java │ │ └── BearFair20UserService.java │ ├── bearfair21 │ │ ├── BearFair21Config.java │ │ ├── BearFair21ConfigService.java │ │ ├── BearFair21User.java │ │ ├── BearFair21UserService.java │ │ ├── BearFair21WebConfig.java │ │ ├── BearFair21WebConfigService.java │ │ ├── ClientsideContent.java │ │ ├── ClientsideContentService.java │ │ ├── MiniGolf21User.java │ │ └── MiniGolf21UserService.java │ ├── bigdoor │ │ ├── BigDoorConfig.java │ │ └── BigDoorConfigService.java │ ├── birthday21 │ │ ├── Birthday21User.java │ │ └── Birthday21UserService.java │ ├── blockorientation │ │ ├── BlockOrientationUser.java │ │ └── BlockOrientationUserService.java │ ├── blockparty │ │ ├── BlockPartyStatsService.java │ │ └── BlockPartyStatsUser.java │ ├── boost │ │ ├── BoostConfig.java │ │ ├── BoostConfigService.java │ │ ├── Boostable.java │ │ ├── Booster.java │ │ └── BoosterService.java │ ├── buildcontest │ │ ├── BuildContest.java │ │ └── BuildContestService.java │ ├── changelog │ │ ├── Changelog.java │ │ └── ChangelogService.java │ ├── chat │ │ ├── Channel.java │ │ ├── Chatter.java │ │ ├── ChatterService.java │ │ ├── PrivateChannel.java │ │ └── PublicChannel.java │ ├── chatgames │ │ ├── ChatGamesConfig.java │ │ └── ChatGamesConfigService.java │ ├── checkpoint │ │ ├── CheckpointService.java │ │ ├── CheckpointUser.java │ │ ├── CheckpointValue.java │ │ ├── MiniCheckpointTimeWrapper.java │ │ ├── Pace.java │ │ └── RecordTotalTime.java │ ├── clientside │ │ ├── ClientSideConfig.java │ │ ├── ClientSideConfigService.java │ │ ├── ClientSideUser.java │ │ └── ClientSideUserService.java │ ├── compass │ │ ├── Compass.java │ │ └── CompassService.java │ ├── cooldown │ │ ├── Cooldown.java │ │ └── CooldownService.java │ ├── costume │ │ ├── Costume.java │ │ ├── CostumeUser.java │ │ └── CostumeUserService.java │ ├── coupon │ │ ├── CouponService.java │ │ └── Coupons.java │ ├── crate │ │ ├── CrateConfig.java │ │ ├── CrateConfigService.java │ │ ├── CrateDisplay.java │ │ └── CrateType.java │ ├── curiosity │ │ ├── Curiosity.java │ │ └── CuriosityService.java │ ├── customblock │ │ ├── CustomNoteBlockTracker.java │ │ ├── CustomNoteBlockTrackerService.java │ │ └── NoteBlockData.java │ ├── customboundingbox │ │ ├── CustomBoundingBoxEntity.java │ │ └── CustomBoundingBoxEntityService.java │ ├── custommodels │ │ ├── CustomModelConfig.java │ │ └── CustomModelConfigService.java │ ├── dailyreward │ │ ├── DailyRewardUser.java │ │ ├── DailyRewardUserService.java │ │ └── Reward.java │ ├── dailyvotereward │ │ ├── DailyVoteReward.java │ │ └── DailyVoteRewardService.java │ ├── deathmessages │ │ ├── DeathMessages.java │ │ └── DeathMessagesService.java │ ├── decoration │ │ ├── DecorationUser.java │ │ └── DecorationUserService.java │ ├── decorationstore │ │ ├── DecorationStoreConfig.java │ │ └── DecorationStoreConfigService.java │ ├── difficulty │ │ ├── DifficultyUser.java │ │ └── DifficultyUserService.java │ ├── discord │ │ ├── DiscordCaptcha.java │ │ ├── DiscordCaptchaService.java │ │ ├── DiscordConfig.java │ │ ├── DiscordConfigService.java │ │ ├── DiscordUser.java │ │ └── DiscordUserService.java │ ├── dnd │ │ ├── DNDUser.java │ │ └── DNDUserService.java │ ├── documentation │ │ ├── CommandsConfig.java │ │ └── CommandsConfigService.java │ ├── doublejump │ │ ├── DoubleJumpUser.java │ │ └── DoubleJumpUserService.java │ ├── dumpster │ │ ├── Dumpster.java │ │ └── DumpsterService.java │ ├── durabilitywarning │ │ ├── DurabilityWarning.java │ │ └── DurabilityWarningService.java │ ├── easter21 │ │ ├── Easter21User.java │ │ └── Easter21UserService.java │ ├── easter22 │ │ ├── Easter22User.java │ │ └── Easter22UserService.java │ ├── emoji │ │ ├── EmojiUser.java │ │ └── EmojiUserService.java │ ├── emote │ │ ├── EmoteService.java │ │ └── EmoteUser.java │ ├── eventuser │ │ ├── EventUser.java │ │ └── EventUserService.java │ ├── extraplots │ │ ├── ExtraPlotUser.java │ │ └── ExtraPlotUserService.java │ ├── fakenpcs │ │ ├── config │ │ │ ├── FakeNPCConfig.java │ │ │ └── FakeNPCConfigService.java │ │ ├── npcs │ │ │ ├── FakeNPC.java │ │ │ ├── FakeNPCService.java │ │ │ ├── FakeNPCTraitType.java │ │ │ ├── FakeNPCType.java │ │ │ ├── Trait.java │ │ │ ├── traits │ │ │ │ ├── AlternativeSkinsTrait.java │ │ │ │ ├── HologramTrait.java │ │ │ │ ├── LookCloseTrait.java │ │ │ │ ├── MirrorTrait.java │ │ │ │ └── SkinTrait.java │ │ │ └── types │ │ │ │ └── PlayerNPC.java │ │ └── users │ │ │ ├── FakeNPCUser.java │ │ │ └── FakeNPCUserService.java │ ├── forcefield │ │ ├── ForceFieldUser.java │ │ └── ForceFieldUserService.java │ ├── freeze │ │ ├── Freeze.java │ │ └── FreezeService.java │ ├── friends │ │ ├── FriendsUser.java │ │ └── FriendsUserService.java │ ├── geoip │ │ ├── GeoIP.java │ │ └── GeoIPService.java │ ├── godmode │ │ ├── Godmode.java │ │ └── GodmodeService.java │ ├── hallofhistory │ │ ├── HallOfHistory.java │ │ └── HallOfHistoryService.java │ ├── halloween20 │ │ ├── Halloween20Service.java │ │ └── Halloween20User.java │ ├── halloween21 │ │ ├── Halloween21User.java │ │ └── Halloween21UserService.java │ ├── home │ │ ├── Home.java │ │ ├── HomeOwner.java │ │ └── HomeService.java │ ├── honeypot │ │ ├── HoneyPotBans.java │ │ ├── HoneyPotBansService.java │ │ ├── HoneyPotGriefer.java │ │ └── HoneyPotGrieferService.java │ ├── hours │ │ ├── Hours.java │ │ └── HoursService.java │ ├── hub │ │ ├── HubTreasureHunter.java │ │ └── HubTreasureHunterService.java │ ├── imagestand │ │ ├── ImageStand.java │ │ └── ImageStandService.java │ ├── interactioncommand │ │ ├── InteractionCommandConfig.java │ │ └── InteractionCommandConfigService.java │ ├── inventoryhistory │ │ ├── InventoryHistory.java │ │ └── InventoryHistoryService.java │ ├── invisiblearmour │ │ ├── InvisibleArmor.java │ │ └── InvisibleArmorService.java │ ├── inviterewards │ │ ├── InviteRewards.java │ │ └── InviteRewardsService.java │ ├── jigsawjam │ │ ├── JigsawJamService.java │ │ └── JigsawJammer.java │ ├── jukebox │ │ ├── JukeboxSong.java │ │ ├── JukeboxUser.java │ │ └── JukeboxUserService.java │ ├── legacy │ │ ├── LegacyUser.java │ │ ├── LegacyUserService.java │ │ ├── homes │ │ │ ├── LegacyHome.java │ │ │ ├── LegacyHomeOwner.java │ │ │ └── LegacyHomeService.java │ │ ├── itemtransfer │ │ │ ├── ItemTransferUser.java │ │ │ ├── ItemTransferUserService.java │ │ │ ├── LegacyItemTransferUser.java │ │ │ └── LegacyItemTransferUserService.java │ │ ├── mail │ │ │ ├── LegacyMailer.java │ │ │ └── LegacyMailerService.java │ │ ├── shops │ │ │ ├── LegacyShop.java │ │ │ └── LegacyShopService.java │ │ └── vaults │ │ │ ├── LegacyVaultUser.java │ │ │ └── LegacyVaultUserService.java │ ├── lockdown │ │ ├── LockdownConfig.java │ │ └── LockdownConfigService.java │ ├── lwc │ │ ├── LWCProtection.java │ │ └── LWCProtectionService.java │ ├── mail │ │ ├── Mailer.java │ │ └── MailerService.java │ ├── mcmmo │ │ ├── McMMOPrestigeUser.java │ │ └── McMMOPrestigeUserService.java │ ├── minigamersetting │ │ ├── MinigamerSetting.java │ │ └── MinigamerSettingService.java │ ├── minigamessetting │ │ ├── MinigamesConfig.java │ │ └── MinigamesConfigService.java │ ├── minigamestats │ │ ├── MinigameStatsService.java │ │ └── MinigameStatsUser.java │ ├── mobheads │ │ ├── MobHeadChanceConfig.java │ │ ├── MobHeadChanceConfigService.java │ │ ├── MobHeadUser.java │ │ └── MobHeadUserService.java │ ├── mode │ │ ├── ModeUser.java │ │ └── ModeUserService.java │ ├── modreview │ │ ├── ModReview.java │ │ └── ModReviewService.java │ ├── monthlypodium │ │ ├── MonthlyPodiumUser.java │ │ └── MonthlyPodiumUserService.java │ ├── mutemenu │ │ ├── MuteMenuService.java │ │ └── MuteMenuUser.java │ ├── nameplates │ │ ├── NameplateUser.java │ │ └── NameplateUserService.java │ ├── nerd │ │ ├── NBTPlayer.java │ │ ├── Nerd.java │ │ ├── NerdService.java │ │ └── Rank.java │ ├── newrankcolors │ │ ├── NewRankColors.java │ │ └── NewRankColorsService.java │ ├── nickname │ │ ├── Nickname.java │ │ └── NicknameService.java │ ├── objective │ │ ├── ObjectiveUser.java │ │ └── ObjectiveUserService.java │ ├── offline │ │ ├── OfflineMessage.java │ │ ├── OfflineMessageService.java │ │ └── OfflineMessageUser.java │ ├── parkour │ │ ├── LobbyParkourCourse.java │ │ ├── LobbyParkourCourseService.java │ │ ├── LobbyParkourUser.java │ │ └── LobbyParkourUserService.java │ ├── particle │ │ ├── ParticleOwner.java │ │ ├── ParticleService.java │ │ ├── ParticleSetting.java │ │ ├── ParticleTask.java │ │ └── ParticleType.java │ ├── party │ │ ├── Party.java │ │ ├── PartyManager.java │ │ ├── PartyService.java │ │ ├── PartyUser.java │ │ └── PartyUserService.java │ ├── perkowner │ │ ├── PerkOwner.java │ │ └── PerkOwnerService.java │ ├── playernotes │ │ ├── PlayerNotes.java │ │ └── PlayerNotesService.java │ ├── playerplushie │ │ ├── PlayerPlushieConfig.java │ │ ├── PlayerPlushieConfigService.java │ │ ├── PlayerPlushieUser.java │ │ ├── PlayerPlushieUserService.java │ │ └── PlayerPlushieVoucher.java │ ├── powertool │ │ ├── PowertoolService.java │ │ └── PowertoolUser.java │ ├── pride21 │ │ ├── Pride21User.java │ │ └── Pride21UserService.java │ ├── profile │ │ ├── ProfileUser.java │ │ └── ProfileUserService.java │ ├── pugmas20 │ │ ├── Pugmas20User.java │ │ └── Pugmas20UserService.java │ ├── pugmas21 │ │ ├── Advent21Config.java │ │ ├── Advent21ConfigService.java │ │ ├── Pugmas21User.java │ │ └── Pugmas21UserService.java │ ├── pugmas25 │ │ ├── Advent25Config.java │ │ ├── Advent25ConfigService.java │ │ ├── Advent25Present.java │ │ ├── Advent25User.java │ │ ├── Pugmas25User.java │ │ └── Pugmas25UserService.java │ ├── punishments │ │ ├── NameBanConfig.java │ │ ├── NameBanConfigService.java │ │ ├── Punishment.java │ │ ├── PunishmentType.java │ │ ├── Punishments.java │ │ ├── PunishmentsService.java │ │ ├── SkinBanConfig.java │ │ └── SkinBanConfigService.java │ ├── push │ │ ├── PushService.java │ │ └── PushUser.java │ ├── pvp │ │ ├── PVP.java │ │ └── PVPService.java │ ├── quests │ │ ├── Quest.java │ │ ├── QuestTaskProgress.java │ │ ├── QuestTaskStepProgress.java │ │ ├── Quester.java │ │ └── QuesterService.java │ ├── queup │ │ ├── QueUp.java │ │ └── QueUpService.java │ ├── radio │ │ ├── RadioConfig.java │ │ ├── RadioConfigService.java │ │ ├── RadioUser.java │ │ └── RadioUserService.java │ ├── rainbowarmor │ │ ├── RainbowArmor.java │ │ ├── RainbowArmorService.java │ │ └── RainbowArmorTask.java │ ├── rainbowbeacon │ │ ├── RainbowBeacon.java │ │ └── RainbowBeaconService.java │ ├── recipes │ │ ├── RecipeUser.java │ │ └── RecipeUserService.java │ ├── referral │ │ ├── Referral.java │ │ └── ReferralService.java │ ├── reminders │ │ └── ReminderConfig.java │ ├── resourcepack │ │ ├── LocalResourcePackUser.java │ │ └── LocalResourcePackUserService.java │ ├── rule │ │ ├── HasReadRules.java │ │ └── HasReadRulesService.java │ ├── safecracker │ │ ├── SafeCrackerEvent.java │ │ ├── SafeCrackerEventService.java │ │ ├── SafeCrackerPlayer.java │ │ └── SafeCrackerPlayerService.java │ ├── scheduledjobs │ │ └── jobs │ │ │ ├── BearFair21TreeRegenJob.java │ │ │ ├── BirthdayBeginJob.java │ │ │ ├── BirthdayEndJob.java │ │ │ ├── BlockRegenJob.java │ │ │ ├── ClearTemporaryCostumesJob.java │ │ │ ├── DailyRewardsResetJob.java │ │ │ ├── DailyVoteRewardsResetJob.java │ │ │ ├── DecorationStoreLayoutJob.java │ │ │ ├── DecorationStoreLayoutPasteJob.java │ │ │ ├── DiscordCaptchaKickJob.java │ │ │ ├── McMMOLuckyBoostEndJob.java │ │ │ ├── McMMOLuckyBoostStartJob.java │ │ │ ├── MonthlyPodiumsJob.java │ │ │ ├── PackageExpireJob.java │ │ │ ├── Pugmas20TreeRegenJob.java │ │ │ ├── Pugmas21TreeRegenJob.java │ │ │ ├── StoreGalleryNPCsJob.java │ │ │ ├── VotesResetJob.java │ │ │ ├── VuLan24DailyQuestJob.java │ │ │ ├── VuLan24LanternAnimationJob.java │ │ │ ├── WeeklyWakkaJob.java │ │ │ └── party │ │ │ ├── InviteExpiryJob.java │ │ │ └── OfflineRemoverJob.java │ ├── scoreboard │ │ ├── ScoreboardService.java │ │ └── ScoreboardUser.java │ ├── serializetest │ │ ├── SerializeTest.java │ │ └── SerializeTestService.java │ ├── shop │ │ ├── ResourceMarketLogger.java │ │ ├── ResourceMarketLoggerService.java │ │ ├── Shop.java │ │ └── ShopService.java │ ├── skincache │ │ ├── SkinCache.java │ │ └── SkinCacheService.java │ ├── skullhunt │ │ ├── SkullHuntService.java │ │ └── SkullHunter.java │ ├── snoweffect │ │ ├── SnowEffect.java │ │ └── SnowEffectService.java │ ├── socialmedia │ │ ├── InstagramData.java │ │ ├── InstagramService.java │ │ ├── SocialMediaUser.java │ │ ├── SocialMediaUserService.java │ │ ├── TwitterData.java │ │ └── TwitterService.java │ ├── spawnlimits │ │ ├── SpawnLimits.java │ │ └── SpawnLimitsService.java │ ├── staffhall │ │ ├── StaffHallConfig.java │ │ └── StaffHallConfigService.java │ ├── statistics │ │ ├── StatisticsUser.java │ │ └── StatisticsUserService.java │ ├── statuehunt │ │ ├── StatueHunt.java │ │ └── StatueHuntService.java │ ├── statusbar │ │ ├── StatusBar.java │ │ └── StatusBarService.java │ ├── store │ │ ├── Contributor.java │ │ └── ContributorService.java │ ├── striplogs │ │ ├── StripLogs.java │ │ └── StripLogsService.java │ ├── structure │ │ ├── Structure.java │ │ └── StructureService.java │ ├── teleport │ │ ├── TeleportRequests.java │ │ ├── TeleportRequestsService.java │ │ ├── TeleportUser.java │ │ └── TeleportUserService.java │ ├── testquestuser │ │ ├── TestQuestUser.java │ │ └── TestQuestUserService.java │ ├── ticket │ │ ├── Tickets.java │ │ └── TicketsService.java │ ├── tip │ │ ├── Tip.java │ │ └── TipService.java │ ├── trophy │ │ ├── TrophyHolder.java │ │ ├── TrophyHolderService.java │ │ └── TrophyType.java │ ├── trust │ │ ├── Trust.java │ │ └── TrustService.java │ ├── vanish │ │ ├── VanishUser.java │ │ └── VanishUserService.java │ ├── vaults │ │ ├── VaultUser.java │ │ └── VaultUserService.java │ ├── virtualinventories │ │ ├── VirtualInventoriesConfig.java │ │ └── VirtualInventoriesConfigService.java │ ├── voter │ │ ├── TopVoter.java │ │ ├── VotePartyData.java │ │ ├── VotePartyService.java │ │ ├── VoteSite.java │ │ ├── Voter.java │ │ └── VoterService.java │ ├── vulan24 │ │ ├── VuLan24Config.java │ │ ├── VuLan24ConfigService.java │ │ ├── VuLan24User.java │ │ └── VuLan24UserService.java │ ├── wallsofgrace │ │ ├── WallsOfGrace.java │ │ └── WallsOfGraceService.java │ ├── warps │ │ ├── WarpType.java │ │ ├── Warps.java │ │ └── WarpsService.java │ ├── webs │ │ ├── WebConfig.java │ │ └── WebConfigService.java │ ├── weeklywakka │ │ ├── WeeklyWakka.java │ │ └── WeeklyWakkaService.java │ ├── whereis │ │ ├── WhereIs.java │ │ └── WhereIsService.java │ ├── witherarena │ │ ├── WitherArenaConfig.java │ │ └── WitherArenaConfigService.java │ ├── worldban │ │ ├── WorldBan.java │ │ └── WorldBanService.java │ └── worldedit │ │ ├── ForestGeneratorConfig.java │ │ ├── ForestGeneratorConfigService.java │ │ ├── ForestGeneratorUser.java │ │ └── ForestGeneratorUserService.java │ └── utils │ ├── ActionBarUtils.java │ ├── AdventureUtils.java │ ├── AudioUtils.java │ ├── BiomeTag.java │ ├── BiomeUtils.java │ ├── BlockUtils.java │ ├── BoatType.java │ ├── BorderUtils.java │ ├── BossBarBuilder.java │ ├── BoundedCollections.java │ ├── BoundingBoxUtils.java │ ├── ChunkLoader.java │ ├── CitizensUtils.java │ ├── ColorType.java │ ├── ComparableEnum.java │ ├── CopperState.java │ ├── CoreProtectUtils.java │ ├── Currency.java │ ├── DateUtils.java │ ├── Debug.java │ ├── DescParseTickFormat.java │ ├── Distance.java │ ├── Enchant.java │ ├── EntityUtils.java │ ├── Extensions.java │ ├── FakeWorldEdit.java │ ├── FireworkLauncher.java │ ├── FuzzyItemStack.java │ ├── GameModeWrapper.java │ ├── GlowUtils.java │ ├── GoogleUtils.java │ ├── HttpUtils.java │ ├── IOUtils.java │ ├── ImageUtils.java │ ├── InventoryUtils.java │ ├── ItemBuilder.java │ ├── ItemUtils.java │ ├── JsonBuilder.java │ ├── LanguageUtils.java │ ├── LocationUtils.java │ ├── LuckPermsUtils.java │ ├── MapPointerDirection.java │ ├── MaterialTag.java │ ├── MaterialUtils.java │ ├── MathUtils.java │ ├── MerchantBuilder.java │ ├── Name.java │ ├── Nullables.java │ ├── PlayDoorSoundUtil.java │ ├── PlayerMovementUtils.java │ ├── PlayerUtils.java │ ├── PotionEffectBuilder.java │ ├── RandomUtils.java │ ├── SerializationUtils.java │ ├── SoundBuilder.java │ ├── SoundUtils.java │ ├── SplinePath.java │ ├── StringUtils.java │ ├── SymbolBanner.java │ ├── Tasks.java │ ├── Timer.java │ ├── TitleBuilder.java │ ├── ToolType.java │ ├── UncheckedConsumer.java │ ├── Utils.java │ ├── WoodType.java │ ├── WorldEditUtils.java │ ├── WorldGuardFlagUtils.java │ ├── WorldGuardUtils.java │ ├── WorldUtils.java │ ├── nms │ ├── NMSUtils.java │ ├── PacketUtils.java │ └── packet │ │ ├── EdenPacket.java │ │ ├── EntityDestroyPacket.java │ │ ├── EntityEquipmentPacket.java │ │ ├── EntityMetadataPacket.java │ │ ├── EntityPassengersPacket.java │ │ ├── EntitySneakPacket.java │ │ └── EntitySpawnPacket.java │ ├── protection │ ├── ProtectionCompatibility.java │ ├── ProtectionUtils.java │ └── compatibilities │ │ ├── BentoBoxCompat.java │ │ ├── PlotSquaredCompat.java │ │ └── WorldGuardCompat.java │ └── worldgroup │ ├── IWorldGroup.java │ ├── SubWorldGroup.java │ └── WorldGroup.java └── resources └── plugin.yml /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.java] 2 | charset=utf-8 3 | end_of_line=lf 4 | insert_final_newline=true 5 | indent_style=tab 6 | indent_size=4 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .settings 2 | .idea/ 3 | *.iml 4 | bin/ 5 | target/ 6 | build/ 7 | .class 8 | .DS_Store 9 | .classpath 10 | .project 11 | dependency-reduced-pom.xml 12 | logs/ 13 | javac.*.args 14 | .gradle/ 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nexus 2 | [Project Eden](https://projecteden.gg)'s main java plugin 3 | 4 | ## Building 5 | We use Gradle for dependency management and build instructions. After cloning the project, run `./gradlew[.bat] build` in the root of the project. The jar will be inside the `/build/libs` folder. 6 | 7 | ## Contact 8 | [](https://discord.projecteden.gg) 9 | 10 | or Griffin#2387 11 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | parchmentVersion=1.21.4-R0.1-SNAPSHOT 2 | edenApiVersion=2.3.6-SNAPSHOT -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectEdenGG/Nexus/b30febf30bb5ffe02493d84be12ca9ae2cdc609e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /libs/BuycraftX.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectEdenGG/Nexus/b30febf30bb5ffe02493d84be12ca9ae2cdc609e/libs/BuycraftX.jar -------------------------------------------------------------------------------- /libs/GlowAPI.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectEdenGG/Nexus/b30febf30bb5ffe02493d84be12ca9ae2cdc609e/libs/GlowAPI.jar -------------------------------------------------------------------------------- /libs/nuvotifier-universal-2.3.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectEdenGG/Nexus/b30febf30bb5ffe02493d84be12ca9ae2cdc609e/libs/nuvotifier-universal-2.3.4.jar -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | mavenLocal() 5 | maven("https://repo.papermc.io/repository/maven-public/") 6 | } 7 | } 8 | 9 | rootProject.name = "Nexus" 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/achievements/events/social/poof/PoofHereEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.achievements.events.social.poof; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public class PoofHereEvent extends PoofEvent { 6 | 7 | public PoofHereEvent(Player initiator, Player acceptor) { 8 | super(initiator, acceptor); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/achievements/events/social/poof/PoofToEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.achievements.events.social.poof; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public class PoofToEvent extends PoofEvent { 6 | 7 | public PoofToEvent(Player initiator, Player acceptor) { 8 | super(initiator, acceptor); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/effects/birds/common/annotations/Biomes.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.effects.birds.common.annotations; 2 | 3 | import gg.projecteden.nexus.utils.BiomeTag; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.FIELD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface Biomes { 13 | BiomeTag[] value(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/effects/birds/common/annotations/Birdhouse.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.effects.birds.common.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Birdhouse {} 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/effects/common/AmbientEffectConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.effects.common; 2 | 3 | public interface AmbientEffectConfig { 4 | 5 | T getEffectType(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/effects/sounds/common/SoundEffectType.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.effects.sounds.common; 2 | 3 | import gg.projecteden.nexus.features.ambience.effects.common.ConditionalEffect; 4 | import gg.projecteden.nexus.models.ambience.AmbienceUser; 5 | import lombok.AllArgsConstructor; 6 | 7 | @AllArgsConstructor 8 | public enum SoundEffectType implements ConditionalEffect { 9 | THING { 10 | @Override 11 | public boolean conditionsMet(AmbienceUser user, SoundEffectConfig config) { 12 | return false; 13 | } 14 | }; 15 | 16 | abstract public boolean conditionsMet(AmbienceUser user, SoundEffectConfig config); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/managers/common/AmbienceManager.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.managers.common; 2 | 3 | import gg.projecteden.nexus.models.ambience.AmbienceUser; 4 | 5 | public abstract class AmbienceManager { 6 | 7 | public void tick() {} 8 | 9 | public void update(AmbienceUser user) {} 10 | 11 | public void init(AmbienceUser user) {} 12 | 13 | public void onStart() {} 14 | 15 | public void onStop() {} 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/old/AmbienceUserOld.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.old; 2 | 3 | import gg.projecteden.nexus.features.ambience.old.sound.SoundPlayer; 4 | import lombok.Data; 5 | import lombok.NonNull; 6 | import lombok.RequiredArgsConstructor; 7 | import org.bukkit.entity.Player; 8 | 9 | @Data 10 | @RequiredArgsConstructor 11 | public class AmbienceUserOld { 12 | @NonNull 13 | Player player; 14 | BlockScanner blockScanner; 15 | SoundPlayer soundPlayer; 16 | VariablesOld variables; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/ambience/old/BlockScanner.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.ambience.old; 2 | 3 | public class BlockScanner { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/api/annotations/Get.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.api.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.METHOD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Get { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/api/annotations/Post.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.api.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.METHOD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Post { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/blockmechanics/BlockMechanics.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.blockmechanics; 2 | 3 | import gg.projecteden.nexus.features.blockmechanics.mechanics.BlockFireToggle; 4 | import gg.projecteden.nexus.features.blockmechanics.mechanics.FurnaceExperience; 5 | import gg.projecteden.nexus.features.blockmechanics.mechanics.JackOLanternToggle; 6 | import gg.projecteden.nexus.framework.features.Feature; 7 | 8 | public class BlockMechanics extends Feature { 9 | 10 | @Override 11 | public void onStart() { 12 | new JackOLanternToggle(); 13 | new BlockFireToggle(); 14 | new FurnaceExperience(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/commands/DoNothingCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.commands; 2 | 3 | import gg.projecteden.nexus.framework.commands.models.CustomCommand; 4 | import gg.projecteden.nexus.framework.commands.models.annotations.HideFromWiki; 5 | import gg.projecteden.nexus.framework.commands.models.annotations.Path; 6 | import gg.projecteden.nexus.framework.commands.models.events.CommandEvent; 7 | 8 | @HideFromWiki 9 | public class DoNothingCommand extends CustomCommand { 10 | 11 | public DoNothingCommand(CommandEvent event) { 12 | super(event); 13 | } 14 | 15 | @Path 16 | void nothing() { 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/customenchants/enchants/BeheadingEnchant.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.customenchants.enchants; 2 | 3 | import gg.projecteden.nexus.features.customenchants.models.CustomEnchant; 4 | import org.bukkit.NamespacedKey; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class BeheadingEnchant extends CustomEnchant { 8 | 9 | public static final int LEVEL_MULTIPLIER = 2; 10 | 11 | @Override 12 | public int getMaxLevel() { 13 | return 3; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/common/annotations/Verify.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.common.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target({ElementType.TYPE, ElementType.METHOD}) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Verify { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/AltBanAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Altban a player") 7 | public class AltBanAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public AltBanAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/BanAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Ban a player") 7 | public class BanAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public BanAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/FreezeAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Freeze a player") 7 | public class FreezeAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public FreezeAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/KickAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Kick a player") 7 | public class KickAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public KickAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/MuteAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Mute a player") 7 | public class MuteAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public MuteAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/WarnAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Warn a player") 7 | public class WarnAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public WarnAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/activate/WatchlistAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.activate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Watchlist a player") 7 | public class WatchlistAppCommand extends _PunishmentActivateAppCommand { 8 | 9 | public WatchlistAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/deactivate/UnAltBanAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.deactivate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Unaltban a player") 7 | public class UnAltBanAppCommand extends _PunishmentDeactivateAppCommand { 8 | 9 | public UnAltBanAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/deactivate/UnBanAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.deactivate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Unban a player") 7 | public class UnBanAppCommand extends _PunishmentDeactivateAppCommand { 8 | 9 | public UnBanAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/deactivate/UnFreezeAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.deactivate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Unfreeze a player") 7 | public class UnFreezeAppCommand extends _PunishmentDeactivateAppCommand { 8 | 9 | public UnFreezeAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/discord/commands/justice/deactivate/UnMuteAppCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.discord.commands.justice.deactivate; 2 | 3 | import gg.projecteden.api.discord.appcommands.AppCommandEvent; 4 | import gg.projecteden.api.discord.appcommands.annotations.Command; 5 | 6 | @Command("Unmute a player") 7 | public class UnMuteAppCommand extends _PunishmentDeactivateAppCommand { 8 | 9 | public UnMuteAppCommand(AppCommandEvent event) { 10 | super(event); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/documentation/Documentation.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.documentation; 2 | 3 | import gg.projecteden.nexus.framework.features.Feature; 4 | import gg.projecteden.nexus.utils.Tasks; 5 | 6 | public class Documentation extends Feature { 7 | 8 | @Override 9 | public void onStart() { 10 | Tasks.async(DocumentCommands::new); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/economy/events/NexusEconomyEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.economy.events; 2 | 3 | import lombok.Getter; 4 | import org.bukkit.event.Event; 5 | import org.bukkit.event.HandlerList; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class NexusEconomyEvent extends Event { 9 | @Getter 10 | private static final HandlerList handlerList = new HandlerList(); 11 | 12 | @Override 13 | public @NotNull HandlerList getHandlers() { 14 | return handlerList; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/EdenEventGameConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface EdenEventGameConfig { 8 | String prefix(); 9 | 10 | String world(); 11 | 12 | String playRegion(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/EventSounds.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events; 2 | 3 | import gg.projecteden.nexus.utils.SoundBuilder; 4 | import gg.projecteden.parchment.OptionalPlayer; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | import org.bukkit.Sound; 8 | 9 | @Getter 10 | @RequiredArgsConstructor 11 | public enum EventSounds { 12 | VILLAGER_NO(new SoundBuilder(Sound.ENTITY_VILLAGER_NO).volume(0.5)); 13 | 14 | private final SoundBuilder sound; 15 | 16 | public void play(OptionalPlayer player) { 17 | sound.clone().receiver(player).play(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/NullEventEffects.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events; 2 | 3 | import gg.projecteden.nexus.features.effects.Effects; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor 7 | public class NullEventEffects extends Effects { 8 | 9 | @Override 10 | public void onStart() { 11 | super.onStart(); 12 | } 13 | 14 | @Override 15 | public void onStop() { 16 | super.onStop(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/README.md: -------------------------------------------------------------------------------- 1 | ## Future Event Ideas 2 | - Bear Fair 2021 3 | - Bingo 4 | - Pugmas 2021 5 | - Radio tower "broadcasting" the server radio 6 | - radio heads in houses playing the radio station using Radio plugin, would need to make radius radios able to have multiple locations 7 | - Workshop underground massive factory 8 | - Cave with player ridable minecart track from coal mine to factory 9 | - Conveyor Belts -- Armorstands 10 | - Client side falling block entity train 11 | - Custom hand held map for pugmas 12 | 13 | - Event portal in spawn 14 | - In mine corner hole? 15 | - Fall through to event lobby 16 | - Launch pad to get back -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/aeveonproject/sets/APSet.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.aeveonproject.sets; 2 | 3 | import gg.projecteden.nexus.features.events.annotations.Region; 4 | 5 | import java.util.List; 6 | 7 | public interface APSet { 8 | 9 | default String getRegion() { 10 | try { 11 | return getClass().getAnnotation(Region.class).value(); 12 | } catch (Exception ignored) { 13 | } 14 | return null; 15 | } 16 | 17 | List getUpdateRegions(); 18 | 19 | boolean isActive(); 20 | 21 | void setActive(boolean bool); 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/aeveonproject/sets/vespyr/Particles.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.aeveonproject.sets.vespyr; 2 | 3 | public class Particles { 4 | public Particles() { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/annotations/Region.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Region { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/models/Quest.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.models; 2 | 3 | import java.util.Map; 4 | import java.util.function.Function; 5 | 6 | public interface Quest { 7 | 8 | Function> getInstructions(); 9 | 10 | default String getInstructions(T user, QuestStage stage) { 11 | return getInstructions().apply(user).getOrDefault(stage, null); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/models/QuestProgress.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.models; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import lombok.NonNull; 6 | import lombok.RequiredArgsConstructor; 7 | 8 | // TODO Needs better name 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @RequiredArgsConstructor 13 | public class QuestProgress { 14 | @NonNull 15 | private Quest quest; 16 | private QuestStage questStage; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2020/halloween20/models/QuestStage.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2020.halloween20.models; 2 | 3 | public class QuestStage { 4 | 5 | public enum LostPumpkins { 6 | NOT_STARTED, 7 | STARTED, 8 | FOUND_ALL, 9 | COMPLETE 10 | } 11 | 12 | public enum Combination { 13 | NOT_STARTED, 14 | STARTED, 15 | COMPLETE 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2021/bearfair21/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectEdenGG/Nexus/b30febf30bb5ffe02493d84be12ca9ae2cdc609e/src/main/java/gg/projecteden/nexus/features/events/y2021/bearfair21/README.md -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2021/bearfair21/islands/BearFair21Island.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2021.bearfair21.islands; 2 | 3 | import gg.projecteden.nexus.features.events.models.BearFairIsland; 4 | import gg.projecteden.nexus.features.events.y2021.bearfair21.BearFair21; 5 | import org.bukkit.event.Listener; 6 | 7 | public interface BearFair21Island extends BearFairIsland, Listener { 8 | @Override 9 | default String getEventRegion() { 10 | return BearFair21.getRegion(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2021/bearfair21/quests/BearFair21PathfinderHelper.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2021.bearfair21.quests; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.Location; 6 | import org.bukkit.entity.Entity; 7 | 8 | import java.util.ArrayList; 9 | import java.util.List; 10 | 11 | public class BearFair21PathfinderHelper { 12 | @Getter 13 | @Setter 14 | private static Location selectedLoc; 15 | @Getter 16 | @Setter 17 | private static List lineTasks = new ArrayList<>(); 18 | @Getter 19 | @Setter 20 | private static Entity selectedEntity; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2021/bearfair21/quests/clientside/BearFair21NPCNameTag.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2021.bearfair21.quests.clientside; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NonNull; 6 | import net.minecraft.world.entity.decoration.ArmorStand; 7 | 8 | import java.util.List; 9 | import java.util.UUID; 10 | 11 | @Data 12 | @AllArgsConstructor 13 | public class BearFair21NPCNameTag { 14 | int npcId; 15 | @NonNull UUID playerUuid; 16 | List armorStands; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/easter22/quests/Easter22Quest.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.easter22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuest; 4 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 5 | import lombok.Getter; 6 | 7 | import java.util.Arrays; 8 | import java.util.List; 9 | 10 | @Getter 11 | public enum Easter22Quest implements IQuest { 12 | MAIN(Easter22QuestTask.MAIN); 13 | 14 | private final List tasks; 15 | 16 | Easter22Quest(IQuestTask... tasks) { 17 | this.tasks = Arrays.asList(tasks); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/halloween22/quests/Halloween22Quest.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.halloween22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuest; 4 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 5 | import lombok.Getter; 6 | 7 | import java.util.Arrays; 8 | import java.util.List; 9 | 10 | @Getter 11 | public enum Halloween22Quest implements IQuest { 12 | ; 13 | 14 | private final List tasks; 15 | 16 | Halloween22Quest(IQuestTask... tasks) { 17 | this.tasks = Arrays.asList(tasks); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/halloween22/quests/Halloween22QuestItem.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.halloween22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.QuestItem; 4 | import gg.projecteden.nexus.utils.ItemBuilder; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import org.bukkit.inventory.ItemStack; 8 | 9 | @Getter 10 | @AllArgsConstructor 11 | public enum Halloween22QuestItem implements QuestItem { 12 | ; 13 | 14 | private final ItemBuilder itemBuilder; 15 | 16 | @Override 17 | public ItemStack get() { 18 | return itemBuilder.build(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/halloween22/quests/Halloween22QuestReward.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.halloween22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.QuestReward; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | 7 | import java.util.UUID; 8 | import java.util.function.BiConsumer; 9 | 10 | @Getter 11 | @AllArgsConstructor 12 | public enum Halloween22QuestReward implements QuestReward { 13 | ; 14 | 15 | private final BiConsumer consumer; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/halloween22/quests/Halloween22QuestTask.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.halloween22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 4 | import gg.projecteden.nexus.features.quests.tasks.common.QuestTask.TaskBuilder; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | 8 | @Getter 9 | @AllArgsConstructor 10 | public enum Halloween22QuestTask implements IQuestTask { 11 | ; 12 | 13 | private final TaskBuilder task; 14 | 15 | @Override 16 | public TaskBuilder builder() { 17 | return task; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/pride22/quests/Pride22Quest.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.pride22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuest; 4 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 5 | import lombok.Getter; 6 | 7 | import java.util.Arrays; 8 | import java.util.List; 9 | 10 | @Getter 11 | public enum Pride22Quest implements IQuest { 12 | ; 13 | 14 | private final List tasks; 15 | 16 | Pride22Quest(IQuestTask... tasks) { 17 | this.tasks = Arrays.asList(tasks); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/pride22/quests/Pride22QuestItem.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.pride22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.QuestItem; 4 | import gg.projecteden.nexus.utils.ItemBuilder; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import org.bukkit.inventory.ItemStack; 8 | 9 | @Getter 10 | @AllArgsConstructor 11 | public enum Pride22QuestItem implements QuestItem { 12 | ; 13 | 14 | private final ItemBuilder itemBuilder; 15 | 16 | @Override 17 | public ItemStack get() { 18 | return itemBuilder.build(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/pride22/quests/Pride22QuestReward.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.pride22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.QuestReward; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | 7 | import java.util.UUID; 8 | import java.util.function.BiConsumer; 9 | 10 | @Getter 11 | @AllArgsConstructor 12 | public enum Pride22QuestReward implements QuestReward { 13 | ; 14 | 15 | private final BiConsumer consumer; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2022/pride22/quests/Pride22QuestTask.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2022.pride22.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 4 | import gg.projecteden.nexus.features.quests.tasks.common.QuestTask.TaskBuilder; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | 8 | @Getter 9 | @AllArgsConstructor 10 | public enum Pride22QuestTask implements IQuestTask { 11 | ; 12 | 13 | private final TaskBuilder task; 14 | 15 | @Override 16 | public TaskBuilder builder() { 17 | return task; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2025/pugmas25/quests/Pugmas25Quest.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2025.pugmas25.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuest; 4 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 5 | import lombok.Getter; 6 | 7 | import java.util.Arrays; 8 | import java.util.List; 9 | 10 | @Getter 11 | public enum Pugmas25Quest implements IQuest { 12 | ; 13 | 14 | private final List tasks; 15 | 16 | Pugmas25Quest(IQuestTask... tasks) { 17 | this.tasks = Arrays.asList(tasks); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2025/pugmas25/quests/Pugmas25QuestReward.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2025.pugmas25.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.QuestReward; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | 7 | import java.util.UUID; 8 | import java.util.function.BiConsumer; 9 | 10 | @Getter 11 | @AllArgsConstructor 12 | public enum Pugmas25QuestReward implements QuestReward { 13 | // TODO 14 | ; 15 | 16 | private final BiConsumer consumer; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2025/pugmas25/quests/Pugmas25QuestTask.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.events.y2025.pugmas25.quests; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.IQuestTask; 4 | import gg.projecteden.nexus.features.quests.tasks.common.QuestTask.TaskBuilder; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | 8 | @Getter 9 | @AllArgsConstructor 10 | public enum Pugmas25QuestTask implements IQuestTask { 11 | // TODO 12 | ; 13 | 14 | private final TaskBuilder task; 15 | 16 | @Override 17 | public TaskBuilder builder() { 18 | return task; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/events/y2025/pugmas25/readme.md: -------------------------------------------------------------------------------- 1 | Fishing catch chance changes: 2 | 3 | - Positives: 4 | - Geyser (Radius based) 5 | - Rain 6 | - Night 7 | - Negatives 8 | - Train (time-limit) -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/fakenpc/DefaultTrait.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.fakenpc; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface DefaultTrait {} 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/fakenpc/events/FakeNPCLeftClickEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.fakenpc.events; 2 | 3 | import gg.projecteden.nexus.models.fakenpcs.npcs.FakeNPC; 4 | import org.bukkit.entity.Player; 5 | 6 | public class FakeNPCLeftClickEvent extends FakeNPCClickEvent { 7 | 8 | public FakeNPCLeftClickEvent(FakeNPC npc, Player leftClicker) { 9 | super(npc, leftClicker); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/fakenpc/events/FakeNPCRightClickEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.fakenpc.events; 2 | 3 | import gg.projecteden.nexus.models.fakenpcs.npcs.FakeNPC; 4 | import org.bukkit.entity.Player; 5 | 6 | public class FakeNPCRightClickEvent extends FakeNPCClickEvent { 7 | 8 | public FakeNPCRightClickEvent(FakeNPC npc, Player rightClicker) { 9 | super(npc, rightClicker); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/godmode/events/GodmodeActivatedEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.godmode.events; 2 | 3 | import gg.projecteden.nexus.models.godmode.Godmode; 4 | 5 | public class GodmodeActivatedEvent extends GodmodeEvent { 6 | 7 | public GodmodeActivatedEvent(Godmode user) { 8 | super(user); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/godmode/events/GodmodeDeactivatedEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.godmode.events; 2 | 3 | import gg.projecteden.nexus.models.godmode.Godmode; 4 | 5 | public class GodmodeDeactivatedEvent extends GodmodeEvent { 6 | 7 | public GodmodeDeactivatedEvent(Godmode user) { 8 | super(user); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/hub/README.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | - Hotbar compass to /warps 3 | - Walls of Grace 4 | - New name -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/itemtags/ITag.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.itemtags; 2 | 3 | public interface ITag { 4 | String name(); 5 | 6 | String getTag(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/justice/misc/_JusticeCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.justice.misc; 2 | 3 | import gg.projecteden.nexus.features.justice.Justice; 4 | import gg.projecteden.nexus.framework.commands.models.CustomCommand; 5 | import gg.projecteden.nexus.framework.commands.models.events.CommandEvent; 6 | import lombok.NoArgsConstructor; 7 | import lombok.NonNull; 8 | 9 | @NoArgsConstructor 10 | public abstract class _JusticeCommand extends CustomCommand { 11 | 12 | public _JusticeCommand(@NonNull CommandEvent event) { 13 | super(event); 14 | PREFIX = Justice.PREFIX; 15 | DISCORD_PREFIX = Justice.DISCORD_PREFIX; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/listeners/Listeners.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.listeners; 2 | 3 | import gg.projecteden.nexus.features.nameplates.Nameplates; 4 | import gg.projecteden.nexus.framework.features.Depends; 5 | import gg.projecteden.nexus.framework.features.Feature; 6 | import gg.projecteden.nexus.utils.Utils; 7 | 8 | @Depends(Nameplates.class) 9 | public class Listeners extends Feature { 10 | 11 | @Override 12 | public void onStart() { 13 | Utils.registerListeners(getClass().getPackageName()); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/listeners/common/TemporaryListener.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.listeners.common; 2 | 3 | import gg.projecteden.parchment.HasPlayer; 4 | import org.bukkit.entity.Player; 5 | import org.bukkit.event.Listener; 6 | 7 | public interface TemporaryListener extends Listener, HasPlayer { 8 | 9 | Player getPlayer(); 10 | 11 | default void unregister() {} 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/listeners/events/fake/FakeBlockBreakEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.listeners.events.fake; 2 | 3 | import com.gmail.nossr50.events.fake.FakeEvent; 4 | import org.bukkit.block.Block; 5 | import org.bukkit.entity.Player; 6 | import org.bukkit.event.block.BlockBreakEvent; 7 | 8 | public class FakeBlockBreakEvent extends BlockBreakEvent implements FakeEvent { 9 | 10 | public FakeBlockBreakEvent(Block block, Player player) { 11 | super(block, player); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/listeners/events/fake/FakeEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.listeners.events.fake; 2 | 3 | public interface FakeEvent { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/mcmmo/reset/annotations/Reward.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.mcmmo.reset.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Reward { 11 | @Target(ElementType.FIELD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @interface Permission { 14 | String value(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/menus/api/annotations/Rows.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.menus.api.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Rows { 11 | int value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/menus/api/annotations/Title.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.menus.api.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Title { 8 | String value(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/menus/api/annotations/Uncloseable.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.menus.api.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Uncloseable { 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/mechanics/Maze.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.mechanics; 2 | 3 | import org.bukkit.Material; 4 | import org.bukkit.inventory.ItemStack; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class Maze extends Parkour { 8 | 9 | @Override 10 | public @NotNull String getName() { 11 | return "Maze"; 12 | } 13 | 14 | @Override 15 | public @NotNull String getDescription() { 16 | return "Navigate your way to the end of these twisting tunnels"; 17 | } 18 | 19 | @Override 20 | public @NotNull ItemStack getMenuItem() { 21 | return new ItemStack(Material.OAK_LEAVES); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/mechanics/XRun.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.mechanics; 2 | 3 | import org.bukkit.Material; 4 | import org.bukkit.inventory.ItemStack; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class XRun extends Parkour { 8 | 9 | @Override 10 | public @NotNull String getName() { 11 | return "X-Run"; 12 | } 13 | 14 | @Override 15 | public @NotNull String getDescription() { 16 | return "Race your way to the finish line"; 17 | } 18 | 19 | @Override 20 | public @NotNull ItemStack getMenuItem() { 21 | return new ItemStack(Material.SUGAR); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/menus/annotations/CustomMechanicSettings.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.menus.annotations; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.mechanics.Mechanic; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | public @interface CustomMechanicSettings { 10 | Class[] value(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/menus/annotations/Scroll.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.menus.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Scroll { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/menus/custom/ICustomMechanicMenu.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.menus.custom; 2 | 3 | import gg.projecteden.nexus.features.menus.api.annotations.Rows; 4 | import gg.projecteden.nexus.features.menus.api.annotations.Title; 5 | import gg.projecteden.nexus.features.menus.api.content.InventoryProvider; 6 | 7 | @Rows(3) 8 | @Title("Custom Settings Menu") 9 | public abstract class ICustomMechanicMenu extends InventoryProvider { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/IHasSpawnpoints.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models; 2 | 3 | import org.bukkit.Location; 4 | 5 | import java.util.List; 6 | 7 | public interface IHasSpawnpoints { 8 | List getSpawnpoints(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/MinigameMessageType.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models; 2 | 3 | /** 4 | * Different types of messages sent in chat during minigames. 5 | */ 6 | public enum MinigameMessageType { 7 | /** 8 | * Sent when a player joins a minigame. 9 | */ 10 | JOIN, 11 | /** 12 | * Sent when a player leaves a minigame. 13 | */ 14 | QUIT, 15 | /** 16 | * Sent when a player dies in a minigame. 17 | */ 18 | DEATH 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/AntiCamp.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface AntiCamp { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/MatchDataFor.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.mechanics.Mechanic; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | public @interface MatchDataFor { 10 | Class[] value(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/MatchStatisticsClass.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.MatchStatistics; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | public @interface MatchStatisticsClass { 10 | Class value(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/Railgun.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Railgun { 8 | int cooldownTicks() default 24; 9 | 10 | boolean damageWithConsole() default false; 11 | 12 | boolean mustBeGliding() default false; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/Regenerating.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Regenerating { 8 | String[] value() default ""; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/Scoreboard.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.scoreboards.MinigameScoreboard.Type; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | public @interface Scoreboard { 10 | Type sidebarType() default Type.MATCH; 11 | boolean teams() default true; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/annotations/TeamGlowing.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface TeamGlowing { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/MinigameEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events; 2 | 3 | import lombok.Getter; 4 | import lombok.RequiredArgsConstructor; 5 | import org.bukkit.event.Event; 6 | import org.bukkit.event.HandlerList; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | @RequiredArgsConstructor 10 | public abstract class MinigameEvent extends Event { 11 | @Getter 12 | protected static final HandlerList handlerList = new HandlerList(); 13 | 14 | @Override 15 | public @NotNull HandlerList getHandlers() { 16 | return handlerList; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/lobby/MinigamerLobbyEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events.lobby; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Minigamer; 4 | import gg.projecteden.nexus.features.minigames.models.events.MinigameEvent; 5 | import lombok.Data; 6 | 7 | @Data 8 | public abstract class MinigamerLobbyEvent extends MinigameEvent { 9 | private final Minigamer minigamer; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/matches/MatchEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events.matches; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Match; 4 | import gg.projecteden.nexus.features.minigames.models.events.MinigameEvent; 5 | import lombok.Data; 6 | import lombok.NonNull; 7 | 8 | @Data 9 | public abstract class MatchEvent extends MinigameEvent { 10 | @NonNull 11 | protected final Match match; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/matches/lobbies/LobbyEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events.matches.lobbies; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Lobby; 4 | import gg.projecteden.nexus.features.minigames.models.Match; 5 | import gg.projecteden.nexus.features.minigames.models.events.matches.MatchEvent; 6 | import lombok.Getter; 7 | import lombok.NonNull; 8 | 9 | public abstract class LobbyEvent extends MatchEvent { 10 | @NonNull 11 | @Getter 12 | private Lobby lobby; 13 | 14 | public LobbyEvent(Match match, Lobby lobby) { 15 | super(match); 16 | this.lobby = lobby; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/matches/minigamers/MinigamerMatchEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events.matches.minigamers; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Minigamer; 4 | import gg.projecteden.nexus.features.minigames.models.events.matches.MatchEvent; 5 | import lombok.Getter; 6 | import lombok.NonNull; 7 | 8 | public abstract class MinigamerMatchEvent extends MatchEvent { 9 | @Getter 10 | @NonNull 11 | protected final Minigamer minigamer; 12 | 13 | public MinigamerMatchEvent(Minigamer minigamer) { 14 | super(minigamer.getMatch()); 15 | this.minigamer = minigamer; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/events/matches/teams/TeamEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.events.matches.teams; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Match; 4 | import gg.projecteden.nexus.features.minigames.models.Team; 5 | import gg.projecteden.nexus.features.minigames.models.events.matches.MatchEvent; 6 | import lombok.Getter; 7 | 8 | public abstract class TeamEvent extends MatchEvent { 9 | @Getter 10 | private final Team team; 11 | 12 | public TeamEvent(Match match, Team team) { 13 | super(match); 14 | this.team = team; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/exceptions/MinigameException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.exceptions; 2 | 3 | import gg.projecteden.nexus.framework.exceptions.NexusException; 4 | 5 | public class MinigameException extends NexusException { 6 | public MinigameException(String message) { 7 | super(message); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/exceptions/NotYourTurnException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.exceptions; 2 | 3 | public class NotYourTurnException extends MinigameException { 4 | public NotYourTurnException() { 5 | super("Please wait until your turn"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/exceptions/YourTurnIsOverException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.exceptions; 2 | 3 | public class YourTurnIsOverException extends MinigameException { 4 | public YourTurnIsOverException() { 5 | super("Your turn is already over"); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/matchdata/CheckpointMatchData.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.matchdata; 2 | 3 | import gg.projecteden.nexus.features.minigames.mechanics.common.CheckpointMechanic; 4 | import gg.projecteden.nexus.features.minigames.models.Match; 5 | import gg.projecteden.nexus.features.minigames.models.annotations.MatchDataFor; 6 | 7 | @MatchDataFor(CheckpointMechanic.class) 8 | public class CheckpointMatchData extends CheckpointData { 9 | 10 | public CheckpointMatchData(Match match) { 11 | super(match); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/mechanics/MechanicGroup.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.mechanics; 2 | 3 | public enum MechanicGroup { 4 | 5 | ARCADE, 6 | PVP, 7 | SURVIVAL, 8 | TIMED, 9 | CLASSIC, 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/mechanics/custom/bingo/challenge/common/IEntityChallenge.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.challenge.common; 2 | 3 | import gg.projecteden.nexus.utils.ItemBuilder; 4 | import org.bukkit.Material; 5 | import org.bukkit.entity.EntityType; 6 | 7 | import java.util.Set; 8 | 9 | public interface IEntityChallenge extends IChallenge { 10 | 11 | Set getTypes(); 12 | 13 | int getAmount(); 14 | 15 | @Override 16 | default Material getDisplayMaterial() { 17 | return new ItemBuilder(Material.BARRIER).spawnEgg(getTypes().iterator().next()).material(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/mechanics/custom/bingo/challenge/common/IItemChallenge.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.challenge.common; 2 | 3 | import gg.projecteden.nexus.utils.FuzzyItemStack; 4 | import org.bukkit.Material; 5 | 6 | import java.util.Set; 7 | 8 | public interface IItemChallenge extends IChallenge { 9 | 10 | Set getItems(); 11 | 12 | @Override 13 | default Material getDisplayMaterial() { 14 | return getItems().iterator().next().getMaterials().iterator().next(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/mechanics/custom/bingo/challenge/common/ProgressClass.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.challenge.common; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.progress.common.IChallengeProgress; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.TYPE) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface ProgressClass { 13 | 14 | Class value(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/mechanics/custom/bingo/progress/common/IChallengeProgress.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.progress.common; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Minigamer; 4 | import gg.projecteden.nexus.features.minigames.models.mechanics.custom.bingo.Challenge; 5 | 6 | import java.util.Set; 7 | 8 | public interface IChallengeProgress { 9 | 10 | Minigamer getMinigamer(); 11 | 12 | default boolean isCompleted(Challenge challenge) { 13 | return getRemainingTasks(challenge).isEmpty(); 14 | } 15 | 16 | Set getRemainingTasks(Challenge challenge); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/perks/IHasPerkCategory.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.perks; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | public interface IHasPerkCategory { 6 | 7 | @NotNull PerkCategory getPerkCategory(); 8 | 9 | /** 10 | * Determines if this perk prevents another perk from being enabled. 11 | * @return true if this perk blocks the other, else false 12 | */ 13 | default boolean excludes(IHasPerkCategory other) { 14 | return getPerkCategory().isExclusive() && getPerkCategory().getExclusionGroup() == other.getPerkCategory().getExclusionGroup(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/perks/common/HatMaterialPerk.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.perks.common; 2 | 3 | import org.bukkit.Material; 4 | import org.bukkit.inventory.ItemStack; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public interface HatMaterialPerk extends HatPerk { 8 | Material getMaterial(); 9 | 10 | @Override 11 | default @NotNull ItemStack getItem() { 12 | return new ItemStack(getMaterial()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/perks/common/IParticlePerk.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.perks.common; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.perks.IHasPerkCategory; 4 | import gg.projecteden.nexus.features.minigames.models.perks.Perk; 5 | import org.bukkit.Particle; 6 | 7 | public interface IParticlePerk extends IHasPerkCategory, Perk { 8 | 9 | int getCount(); 10 | 11 | Particle getParticle(); 12 | 13 | default double getSpeed() { 14 | return 0.01d; 15 | } 16 | 17 | double getOffsetH(); 18 | 19 | double getOffsetV(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/statistics/models/generics/DeathsStat.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.statistics.models.generics; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.statistics.models.MinigameStatistic; 4 | 5 | public interface DeathsStat { 6 | 7 | MinigameStatistic DEATHS = new MinigameStatistic("deaths", "Deaths"); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/statistics/models/generics/KillsStat.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.statistics.models.generics; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.statistics.models.MinigameStatistic; 4 | 5 | public interface KillsStat { 6 | 7 | MinigameStatistic KILLS = new MinigameStatistic("kills", "Kills"); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/models/statistics/models/generics/RailgunStatistics.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.models.statistics.models.generics; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.statistics.models.MinigameStatistic; 4 | 5 | public interface RailgunStatistics { 6 | 7 | MinigameStatistic SHOTS_FIRED = new MinigameStatistic("shots_fired", "Shots Fired"); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigames/modifiers/NoModifier.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigames.modifiers; 2 | 3 | import gg.projecteden.nexus.features.minigames.models.Minigamer; 4 | import gg.projecteden.nexus.features.minigames.models.modifiers.MinigameModifier; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class NoModifier implements MinigameModifier { 8 | @Override 9 | public void afterLoadout(@NotNull Minigamer minigamer) {} 10 | 11 | @Override 12 | public @NotNull String getName() { 13 | return "No Modifier"; 14 | } 15 | 16 | @Override 17 | public @NotNull String getDescription() { 18 | return "Does nothing"; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigolf/models/events/MiniGolfBallBounceEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigolf.models.events; 2 | 3 | import gg.projecteden.nexus.features.minigolf.models.GolfBall; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.bukkit.Material; 7 | import org.bukkit.event.Cancellable; 8 | 9 | public class MiniGolfBallBounceEvent extends MiniGolfBallMoveEvent implements Cancellable { 10 | @Getter 11 | @Setter 12 | protected boolean cancelled = false; 13 | 14 | @Getter 15 | Material material; 16 | 17 | public MiniGolfBallBounceEvent(GolfBall golfBall) { 18 | super(golfBall); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigolf/models/events/MiniGolfBallEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigolf.models.events; 2 | 3 | import gg.projecteden.nexus.features.minigolf.models.GolfBall; 4 | import lombok.Getter; 5 | 6 | public class MiniGolfBallEvent extends MiniGolfEvent { 7 | @Getter 8 | protected GolfBall golfBall; 9 | 10 | public MiniGolfBallEvent(final GolfBall golfBall) { 11 | this.golfBall = golfBall; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigolf/models/events/MiniGolfBallModifierBlockEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigolf.models.events; 2 | 3 | import gg.projecteden.nexus.features.minigolf.models.GolfBall; 4 | import gg.projecteden.nexus.features.minigolf.models.blocks.ModifierBlockType; 5 | import lombok.Getter; 6 | 7 | public class MiniGolfBallModifierBlockEvent extends MiniGolfBallMoveEvent { 8 | @Getter 9 | private final ModifierBlockType modifierBlockType; 10 | 11 | public MiniGolfBallModifierBlockEvent(GolfBall golfBall, ModifierBlockType modifierBlockType) { 12 | super(golfBall); 13 | this.modifierBlockType = modifierBlockType; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigolf/models/events/MiniGolfUserEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigolf.models.events; 2 | 3 | import gg.projecteden.nexus.features.minigolf.models.MiniGolfUser; 4 | import lombok.Getter; 5 | 6 | public class MiniGolfUserEvent extends MiniGolfEvent { 7 | @Getter 8 | protected MiniGolfUser user; 9 | 10 | public MiniGolfUserEvent(final MiniGolfUser user) { 11 | this.user = user; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/minigolf/models/events/MiniGolfUserQuitEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.minigolf.models.events; 2 | 3 | import gg.projecteden.nexus.features.minigolf.models.MiniGolfUser; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.bukkit.event.Cancellable; 7 | 8 | public class MiniGolfUserQuitEvent extends MiniGolfUserEvent implements Cancellable { 9 | @Getter 10 | @Setter 11 | protected boolean cancelled = false; 12 | 13 | public MiniGolfUserQuitEvent(MiniGolfUser user) { 14 | super(user); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/mobheads/common/HeadConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.mobheads.common; 2 | 3 | import org.bukkit.Material; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.FIELD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface HeadConfig { 13 | 14 | String headId() default ""; 15 | 16 | Material headType() default Material.AIR; 17 | 18 | Class variantClass() default MobHeadVariant.class; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/nameplates/TeamAssigner.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.nameplates; 2 | 3 | import org.bukkit.Bukkit; 4 | import org.bukkit.entity.Player; 5 | import org.bukkit.scoreboard.Scoreboard; 6 | import org.bukkit.scoreboard.Team; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | @FunctionalInterface 10 | public interface TeamAssigner { 11 | static @NotNull Scoreboard scoreboard() { 12 | return Bukkit.getScoreboardManager().getMainScoreboard(); 13 | } 14 | 15 | @NotNull Team teamFor(Player player); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/QuestItem.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests; 2 | 3 | import gg.projecteden.nexus.utils.ItemBuilder; 4 | import gg.projecteden.nexus.utils.ItemUtils; 5 | import org.bukkit.inventory.ItemStack; 6 | 7 | public interface QuestItem { 8 | 9 | ItemBuilder getItemBuilder(); 10 | 11 | ItemStack get(); 12 | 13 | default ItemStack amount(int amount) { 14 | return new ItemBuilder(get()).amount(amount).build(); 15 | } 16 | 17 | default boolean fuzzyMatch(ItemStack item) { 18 | return ItemUtils.isFuzzyMatch(get(), item); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/QuestShopMenu.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests; 2 | 3 | import gg.projecteden.nexus.features.menus.MenuUtils.NPCShopMenu.NPCShopMenuBuilder; 4 | import gg.projecteden.nexus.features.quests.interactable.InteractableNPC; 5 | import org.bukkit.entity.Player; 6 | 7 | public interface QuestShopMenu { 8 | 9 | InteractableNPC getNPC(); 10 | 11 | NPCShopMenuBuilder getShopBuilder(); 12 | 13 | default NPCShopMenuBuilder getShopMenu() { 14 | return getShopBuilder().npcId(getNPC().getNpcId()).shopGroup(null); 15 | } 16 | 17 | default void open(Player player) { 18 | getShopMenu().open(player); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/interactable/Inanimate.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests.interactable; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Inanimate { 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/interactable/InteractableEntity.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests.interactable; 2 | 3 | import org.bukkit.entity.Entity; 4 | 5 | import java.util.UUID; 6 | import java.util.function.Predicate; 7 | 8 | public interface InteractableEntity extends Interactable { 9 | 10 | UUID getUuid(); 11 | 12 | Predicate getPredicate(); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/interactable/InteractableNPC.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests.interactable; 2 | 3 | import net.citizensnpcs.api.npc.NPC; 4 | 5 | import java.util.function.Predicate; 6 | 7 | public interface InteractableNPC extends Interactable { 8 | 9 | int getNpcId(); 10 | 11 | Predicate getPredicate(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/quests/tasks/common/IQuestTask.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.quests.tasks.common; 2 | 3 | import gg.projecteden.nexus.features.quests.tasks.common.QuestTask.TaskBuilder; 4 | 5 | public interface IQuestTask { 6 | 7 | String name(); 8 | 9 | default QuestTask get() { 10 | return QuestTask.CACHE.computeIfAbsent(this, $ -> builder().build()); 11 | } 12 | 13 | TaskBuilder builder(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/radio/README.md: -------------------------------------------------------------------------------- 1 | TODO 2 | - playlist shows which song is current playing 3 | - multiple locations for radius radios 4 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/recipes/models/RecipeGroup.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.recipes.models; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.Getter; 6 | import org.bukkit.inventory.ItemStack; 7 | 8 | @Getter 9 | @AllArgsConstructor 10 | @EqualsAndHashCode 11 | public class RecipeGroup { 12 | @EqualsAndHashCode.Include 13 | final int id; 14 | final String displayName; 15 | final ItemStack displayItem; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/regionapi/MovementType.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.regionapi; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * Describes the way how an entity left/entered a region 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum MovementType { 12 | MOVE, 13 | RIDE, 14 | TELEPORT, 15 | WORLD_CHANGE, 16 | ENTER_BED, 17 | ENTER_VEHICLE, 18 | SPAWN, 19 | RESPAWN, 20 | DESPAWN, 21 | CONNECT, 22 | DISCONNECT, 23 | ; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/events/NoteBlockChangePitchEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.events; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.block.Block; 6 | import org.bukkit.entity.Player; 7 | import org.bukkit.event.Cancellable; 8 | 9 | public class NoteBlockChangePitchEvent extends NoteBlockEvent implements Cancellable { 10 | @Getter 11 | @Setter 12 | protected boolean cancelled = false; 13 | @Getter 14 | protected Player player; 15 | 16 | 17 | public NoteBlockChangePitchEvent(Player player, Block block) { 18 | super(block); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/events/NoteBlockPlayEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.events; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.block.Block; 6 | import org.bukkit.event.Cancellable; 7 | 8 | public class NoteBlockPlayEvent extends NoteBlockEvent implements Cancellable { 9 | @Getter 10 | @Setter 11 | protected boolean cancelled = false; 12 | 13 | public NoteBlockPlayEvent(Block block) { 14 | super(block); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/common/CustomBlockConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.common; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.TYPE) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface CustomBlockConfig { 13 | String name(); 14 | 15 | ItemModelType itemModel(); 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/common/IDirectional.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.common; 2 | 3 | public interface IDirectional extends ICustomBlock { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/common/IPistonActions.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.common; 2 | 3 | public interface IPistonActions { 4 | 5 | PistonAction getPistonPushAction(); 6 | 7 | PistonAction getPistonPullAction(); 8 | 9 | enum PistonAction { 10 | MOVE, 11 | PREVENT, 12 | BREAK; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/common/IReDyeable.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.common; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.CustomBlockTag; 4 | 5 | /* 6 | Only use this interface if the crafting recipe is different from the re-dye recipe, 7 | otherwise add it into the crafting recipe, see IColoredPlanks#getCraftRecipe 8 | */ 9 | public interface IReDyeable extends ICustomBlock { 10 | 11 | CustomBlockTag getReDyeTag(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/common/Unobtainable.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.common; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Unobtainable { 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/noteblocks/common/DirectionalConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.common; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface DirectionalConfig { 11 | int step_NS(); 12 | int step_EW(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/noteblocks/common/ICraftableNoteBlock.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.common; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.common.ICraftable; 4 | 5 | public interface ICraftableNoteBlock extends ICraftable, ICustomNoteBlock { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/noteblocks/genericcrate/IGenericCrate.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.genericcrate; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.common.ICustomNoteBlock; 4 | 5 | public interface IGenericCrate extends ICustomNoteBlock { 6 | @Override 7 | default double getBlockHardness() { 8 | return 2.0; 9 | } 10 | 11 | @Override 12 | default boolean requiresCorrectToolForDrops() { 13 | return false; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/noteblocks/shulker/IShulkerBlock.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.shulker; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.noteblocks.common.ICustomNoteBlock; 4 | import org.bukkit.Material; 5 | 6 | public interface IShulkerBlock extends ICustomNoteBlock { 7 | 8 | @Override 9 | default double getBlockHardness() { 10 | return 1.5; 11 | } 12 | 13 | @Override 14 | default Material getMinimumPreferredTool() { 15 | return Material.WOODEN_PICKAXE; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/tripwire/common/ICraftableTripwire.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.tripwire.common; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.common.ICraftable; 4 | 5 | public interface ICraftableTripwire extends ICraftable, ICustomTripwire { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/tripwire/cover/ICover.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.tripwire.cover; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.tripwire.common.IRequireSupport; 4 | 5 | public interface ICover extends IRequireSupport { 6 | @Override 7 | default boolean requiresCorrectToolForDrops() { 8 | return false; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/customblocks/models/tripwire/tripwire/IActualTripwire.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.customblocks.models.tripwire.tripwire; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.customblocks.models.tripwire.common.ICustomTripwire; 4 | 5 | public interface IActualTripwire extends ICustomTripwire { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/common/interfaces/HasVirtualInventory.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.common.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface HasVirtualInventory { 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/common/interfaces/Interactable.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.common.interfaces; 2 | 3 | public interface Interactable { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/common/interfaces/MultiState.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.common.interfaces; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 4 | 5 | // Decorations like bird houses, or curtains that have multiple states for player/internal use 6 | // Used for converting the internal item to the desired item on ItemSpawnEvent 7 | public interface MultiState { 8 | 9 | ItemModelType getBaseItemModel(); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/common/interfaces/Structure.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.common.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Structure { 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/common/interfaces/TickableDecoration.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.common.interfaces; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.Decorations; 4 | import org.bukkit.Location; 5 | 6 | public interface TickableDecoration { 7 | void tick(Location location); 8 | 9 | default boolean shouldTick() { 10 | return !Decorations.isServerReloading(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/events/DecorationRotateEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.events; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.common.Decoration; 4 | import org.bukkit.block.Block; 5 | import org.bukkit.entity.Player; 6 | 7 | public class DecorationRotateEvent extends DecorationInteractEvent { 8 | 9 | public DecorationRotateEvent(Player player, Block block, Decoration decoration, InteractType type) { 10 | super(player, block, decoration, type); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/types/DyeableFireplace.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.types; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.common.HitboxEnums.HitboxUnique; 4 | import gg.projecteden.nexus.features.resourcepack.decoration.types.surfaces.DyeableFloorThing; 5 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 6 | 7 | public class DyeableFireplace extends DyeableFloorThing { 8 | 9 | public DyeableFireplace(boolean multiblock, String name, ItemModelType itemModelType) { 10 | super(multiblock, name, itemModelType, ColorableType.STAIN, HitboxUnique.FIREPLACE); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/types/Fireplace.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.types; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.common.HitboxEnums.HitboxUnique; 4 | import gg.projecteden.nexus.features.resourcepack.decoration.types.surfaces.FloorThing; 5 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 6 | 7 | public class Fireplace extends FloorThing { 8 | 9 | public Fireplace(boolean multiblock, String name, ItemModelType itemModelType) { 10 | super(multiblock, name, itemModelType, HitboxUnique.FIREPLACE); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/types/special/MobPlushie.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.types.special; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.types.surfaces.FloorThing; 4 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 5 | import lombok.Getter; 6 | 7 | public class MobPlushie extends FloorThing { 8 | @Getter 9 | private final double dropChance; 10 | 11 | public MobPlushie(String name, ItemModelType itemModelType, double dropChance) { 12 | super(false, name, itemModelType); 13 | this.dropChance = dropChance; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/decoration/types/surfaces/Block.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.decoration.types.surfaces; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.decoration.common.HitboxEnums.HitboxSingle; 4 | import gg.projecteden.nexus.features.resourcepack.decoration.common.RotationSnap; 5 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 6 | 7 | public class Block extends FloorThing { 8 | public Block(String name, ItemModelType itemModelType, RotationSnap rotationSnap) { 9 | super(false, name, itemModelType, HitboxSingle._1x1_BARRIER); 10 | this.rotationSnap = rotationSnap; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/annotations/AllowInVanillaRecipes.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface AllowInVanillaRecipes {} 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/annotations/HasCustomModelData.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface HasCustomModelData {} 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/events/ResourcePackEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.events; 2 | 3 | import lombok.Getter; 4 | import org.bukkit.event.Event; 5 | import org.bukkit.event.HandlerList; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | @Getter 9 | public abstract class ResourcePackEvent extends Event { 10 | @Getter 11 | private static final HandlerList handlerList = new HandlerList(); 12 | 13 | public ResourcePackEvent() { 14 | super(true); 15 | } 16 | 17 | @Override 18 | public @NotNull HandlerList getHandlers() { 19 | return handlerList; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/events/ResourcePackUpdateCompleteEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.events; 2 | 3 | import lombok.NoArgsConstructor; 4 | 5 | @NoArgsConstructor 6 | public class ResourcePackUpdateCompleteEvent extends ResourcePackEvent { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/events/ResourcePackUpdateStartEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.events; 2 | 3 | import lombok.NoArgsConstructor; 4 | 5 | @NoArgsConstructor 6 | public class ResourcePackUpdateStartEvent extends ResourcePackEvent { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/models/font/CustomFont.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.models.font; 2 | 3 | import lombok.AllArgsConstructor; 4 | import net.kyori.adventure.key.Key; 5 | import net.kyori.adventure.text.format.Style; 6 | 7 | @AllArgsConstructor 8 | public enum CustomFont { 9 | DEFAULT("minecraft:default"), 10 | ACTION_BAR_LINE_1("minecraft:actionbar_line1"), 11 | PROFILE_TITLE("minecraft:profile_title"), 12 | ; 13 | 14 | private final String key; 15 | 16 | public Key getFont() { 17 | return Key.key(this.key); 18 | } 19 | 20 | public Style getStyle() { 21 | return Style.style().font(this.getFont()).build(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/resourcepack/playerplushies/Tier.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.resourcepack.playerplushies; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum Tier { 9 | TIER_1, 10 | TIER_2, 11 | TIER_3, 12 | SERVER, 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/skyblock/README.md: -------------------------------------------------------------------------------- 1 | Ideas to make it more interesting or harder: 2 | - XX hour speedrun contest 3 | - Point is to get them to reset and keep them interested 4 | - Tark: disable some default crafting recipes 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/statistics/StatisticsMenu.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.statistics; 2 | 3 | public class StatisticsMenu { 4 | 5 | public enum StatsMenus { 6 | MAIN, 7 | GENERAL, 8 | BLOCKS, 9 | ITEMS, 10 | MOBS; 11 | 12 | public int getSize() { 13 | if (this.equals(MAIN)) 14 | return 3; 15 | return 6; 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/Commands.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Repeatable; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.FIELD) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | public @interface Commands { 12 | Command[] value() default {}; 13 | 14 | @Target(ElementType.FIELD) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Repeatable(value = Commands.class) 17 | @interface Command { 18 | String value(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/Display.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.models.ItemModelType; 4 | import org.bukkit.Material; 5 | 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | @Target(ElementType.FIELD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Display { 14 | Material value() default Material.AIR; 15 | ItemModelType model() default ItemModelType.INVISIBLE; 16 | int amount() default 1; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/ExpirationDays.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface ExpirationDays { 11 | int value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/Id.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Id { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/PermissionGroup.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface PermissionGroup { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/Permissions.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Repeatable; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.FIELD) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | public @interface Permissions { 12 | Permission[] value() default {}; 13 | 14 | @Target(ElementType.FIELD) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Repeatable(value = Permissions.class) 17 | @interface Permission { 18 | String value(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/annotations/World.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface World { 11 | String value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/gallery/annotations/RealCategory.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.gallery.annotations; 2 | 3 | import gg.projecteden.nexus.features.store.annotations.Category; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target(ElementType.FIELD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface RealCategory { 13 | Category.StoreCategory value(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/store/gallery/annotations/StorePackage.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.store.gallery.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface StorePackage { 11 | gg.projecteden.nexus.features.store.Package value(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/survival/difficulty/ForDifficulty.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.survival.difficulty; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface ForDifficulty { 8 | Difficulty[] value(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/survival/models/annotations/JobNPC.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.survival.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface JobNPC { 8 | // TODO: JOB TYPE ? 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/survival/models/annotations/NPCConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.survival.models.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface NPCConfig { 8 | int npcId(); 9 | 10 | String skinId(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/survival/structures/EditEntityProvider.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.survival.structures; 2 | 3 | import gg.projecteden.nexus.features.menus.api.content.InventoryProvider; 4 | 5 | public class EditEntityProvider extends InventoryProvider { 6 | @Override 7 | public void init() { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/survival/structures/SpawnerCustomizerProvider.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.survival.structures; 2 | 3 | import gg.projecteden.nexus.features.menus.api.content.InventoryProvider; 4 | 5 | public class SpawnerCustomizerProvider extends InventoryProvider { 6 | 7 | @Override 8 | public void init() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/test/pathfinder/Pathfinder.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.test.pathfinder; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.bukkit.Location; 6 | 7 | //TODO: 8 | // give nodes a class enum value: low, medium, high, castle 9 | // when an NPC is pathfinding, they can only pathfind on their level node, or lower 10 | public class Pathfinder { 11 | @Getter 12 | @Setter 13 | private static Location selectedLoc; 14 | @Getter 15 | @Setter 16 | private static Location targetA = null; 17 | @Getter 18 | @Setter 19 | private static Location targetB = null; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/clientbound/CustomBlocks.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.clientbound; 2 | 3 | import gg.projecteden.nexus.features.titan.models.Clientbound; 4 | import gg.projecteden.nexus.features.titan.models.PluginMessage; 5 | 6 | public class CustomBlocks extends Clientbound { 7 | 8 | @Override 9 | public PluginMessage getType() { 10 | return PluginMessage.CUSTOM_BLOCKS; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/clientbound/Decorations.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.clientbound; 2 | 3 | import gg.projecteden.nexus.features.titan.models.Clientbound; 4 | import gg.projecteden.nexus.features.titan.models.PluginMessage; 5 | 6 | public class Decorations extends Clientbound { 7 | 8 | @Override 9 | public PluginMessage getType() { 10 | return PluginMessage.DECORATIONS; 11 | } 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/clientbound/ResetMinigame.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.clientbound; 2 | 3 | import gg.projecteden.nexus.features.titan.models.Clientbound; 4 | import gg.projecteden.nexus.features.titan.models.PluginMessage; 5 | 6 | public class ResetMinigame extends Clientbound { 7 | @Override 8 | public PluginMessage getType() { 9 | return PluginMessage.RESET_MINIGAME; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/clientbound/SaturnUpdate.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.clientbound; 2 | 3 | import gg.projecteden.nexus.features.titan.models.Clientbound; 4 | import gg.projecteden.nexus.features.titan.models.PluginMessage; 5 | 6 | public class SaturnUpdate extends Clientbound { 7 | 8 | @Override 9 | public PluginMessage getType() { 10 | return PluginMessage.SATURN_UPDATE; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/clientbound/UpdateState.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.clientbound; 2 | 3 | import gg.projecteden.nexus.features.titan.models.Clientbound; 4 | import gg.projecteden.nexus.features.titan.models.PluginMessage; 5 | import lombok.Builder; 6 | 7 | @Builder 8 | public class UpdateState extends Clientbound { 9 | 10 | String mode; 11 | String worldGroup; 12 | String arena; 13 | String mechanic; 14 | Boolean vanished; 15 | Boolean afk; 16 | String channel; 17 | 18 | @Override 19 | public PluginMessage getType() { 20 | return PluginMessage.UPDATE_STATE; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/models/Clientbound.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.models; 2 | 3 | import gg.projecteden.nexus.features.titan.ServerClientMessaging; 4 | import org.bukkit.entity.Player; 5 | 6 | public abstract class Clientbound implements Message { 7 | 8 | public void onSend(Player player) {} 9 | 10 | public String getJson() { 11 | return ServerClientMessaging.GSON.toJson(this); 12 | } 13 | 14 | public abstract PluginMessage getType(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/models/Message.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.models; 2 | 3 | public interface Message { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/titan/models/Serverbound.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.titan.models; 2 | 3 | import org.bukkit.entity.Player; 4 | 5 | public abstract class Serverbound implements Message { 6 | 7 | public void onReceive(Player player) {} 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/events/furnace/VirtualFurnaceEndEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.events.furnace; 2 | 3 | import gg.projecteden.nexus.features.virtualinventories.events.VirtualInventoryEvent; 4 | import gg.projecteden.nexus.features.virtualinventories.models.inventories.impl.VirtualFurnace; 5 | 6 | public class VirtualFurnaceEndEvent extends VirtualInventoryEvent { 7 | 8 | public VirtualFurnaceEndEvent(VirtualFurnace inventory) { 9 | super(inventory); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/events/furnace/VirtualFurnaceStartEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.events.furnace; 2 | 3 | import gg.projecteden.nexus.features.virtualinventories.events.VirtualInventoryEvent; 4 | import gg.projecteden.nexus.features.virtualinventories.models.inventories.impl.VirtualFurnace; 5 | 6 | public class VirtualFurnaceStartEvent extends VirtualInventoryEvent { 7 | 8 | public VirtualFurnaceStartEvent(VirtualFurnace inventory) { 9 | super(inventory); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/events/furnace/VirtualFurnaceTickEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.events.furnace; 2 | 3 | import gg.projecteden.nexus.features.virtualinventories.events.VirtualInventoryEvent; 4 | import gg.projecteden.nexus.features.virtualinventories.models.inventories.impl.VirtualFurnace; 5 | 6 | public class VirtualFurnaceTickEvent extends VirtualInventoryEvent { 7 | 8 | public VirtualFurnaceTickEvent(VirtualFurnace inventory) { 9 | super(inventory); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/models/inventories/VirtualPersonalInventory.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.models.inventories; 2 | 3 | import org.bukkit.Location; 4 | import org.bukkit.entity.Player; 5 | 6 | public interface VirtualPersonalInventory { 7 | Location getLocation(); 8 | Player getPlayer(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/models/properties/VirtualInventoryProperties.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.models.properties; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | import org.bukkit.event.inventory.InventoryType; 6 | 7 | @Data 8 | @Accessors(fluent = true, chain = true) 9 | public abstract class VirtualInventoryProperties { 10 | public abstract InventoryType inventoryType(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/virtualinventories/models/tiles/VirtualChunkKey.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.virtualinventories.models.tiles; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.Getter; 6 | 7 | @Getter 8 | @AllArgsConstructor 9 | @EqualsAndHashCode 10 | public class VirtualChunkKey { 11 | 12 | final int x, z; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/votes/party/VotePartyResetJob.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.votes.party; 2 | 3 | import gg.projecteden.api.mongodb.models.scheduledjobs.common.AbstractJob; 4 | 5 | import java.util.concurrent.CompletableFuture; 6 | 7 | public class VotePartyResetJob extends AbstractJob { 8 | @Override 9 | protected CompletableFuture run() { 10 | VoteParty.setCompleted(false); 11 | return CompletableFuture.completedFuture(JobStatus.COMPLETED); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/wiki/MCWikiCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.wiki; 2 | 3 | import gg.projecteden.nexus.framework.commands.models.annotations.Aliases; 4 | import gg.projecteden.nexus.framework.commands.models.events.CommandEvent; 5 | 6 | @Aliases("minecraftwiki") 7 | public class MCWikiCommand extends _WikiSearchCommand { 8 | 9 | MCWikiCommand(CommandEvent event) { 10 | super(event); 11 | } 12 | 13 | @Override 14 | WikiType getWikiType() { 15 | return WikiType.MINECRAFT; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/wiki/WikiCommand.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.wiki; 2 | 3 | import gg.projecteden.nexus.framework.commands.models.events.CommandEvent; 4 | 5 | public class WikiCommand extends _WikiSearchCommand { 6 | 7 | public WikiCommand(CommandEvent event) { 8 | super(event); 9 | } 10 | 11 | @Override 12 | WikiType getWikiType() { 13 | return WikiType.SERVER; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/features/workbenches/ICraftableCustomBench.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.features.workbenches; 2 | 3 | import gg.projecteden.nexus.features.recipes.models.RecipeType; 4 | import gg.projecteden.nexus.features.recipes.models.builders.RecipeBuilder; 5 | 6 | import java.util.List; 7 | 8 | public interface ICraftableCustomBench { 9 | 10 | default RecipeBuilder getBenchRecipe() { 11 | return null; 12 | } 13 | 14 | default List> getAdditionRecipes() { 15 | return null; 16 | } 17 | 18 | default RecipeType getRecipeType() { 19 | return RecipeType.FUNCTIONAL; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/annotations/Date.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Date { 8 | int m(); 9 | int d(); 10 | int y(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/annotations/Icon.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.annotations; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Icon { 8 | String value(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Aliases.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Specify a list of aliases that may be used for a command. 10 | */ 11 | @Target(ElementType.TYPE) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Aliases { 14 | String[] value(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Confirm.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Pulls up a confirmation menu when a user runs this command to ensure they wish to do so 10 | */ 11 | @Target(ElementType.METHOD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Confirm { 14 | /** 15 | * Sets the title of the confirmation menu window 16 | * @return window title 17 | */ 18 | String title() default "&4Are you sure?"; 19 | } -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Cooldown.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import gg.projecteden.api.common.utils.TimeUtils.TickTime; 4 | 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target({ElementType.TYPE, ElementType.METHOD}) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface Cooldown { 13 | TickTime value(); 14 | double x() default 1; 15 | boolean global() default false; 16 | String bypass() default ""; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Description.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Adds a description to a command which can be seen via the in-game command /<command> help 10 | */ 11 | @Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD}) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Description { 14 | String value(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/DoubleSlash.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Used on a parent command to make it look like a WorldEdit command by requiring two slashes to run instead of one 10 | */ 11 | @Target(ElementType.TYPE) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface DoubleSlash { 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/HideFromHelp.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Hides a subcommand from /<parent> help 10 | */ 11 | @Target(ElementType.METHOD) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface HideFromHelp { 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/HideFromWiki.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Hides a command from the wiki 10 | */ 11 | @Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER}) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface HideFromWiki { 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Path.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Indicates that a method is a (sub)command and sets the syntax used to execute it 10 | * @see #value() 11 | */ 12 | @Target(ElementType.METHOD) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface Path { 15 | // TODO: javadoc 16 | String value() default ""; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/Switch.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | // TODO Support quotations with regex "(?:[^"\\]|\\.)*" 9 | 10 | @Target(ElementType.PARAMETER) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface Switch { 13 | char shorthand() default '-'; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/commands/models/annotations/WikiConfig.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.commands.models.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Defines a command's wiki category 10 | */ 11 | @Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER}) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface WikiConfig { 14 | String rank() default ""; 15 | String feature() default ""; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/postconfigured/CrateOpeningException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.postconfigured; 2 | 3 | public class CrateOpeningException extends PostConfiguredException { 4 | 5 | /** 6 | * Used to full stop a crate process at any point and reset it. 7 | * 8 | * @param message The message to send to the player 9 | */ 10 | public CrateOpeningException(String message) { 11 | super(message); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/postconfigured/InvalidInputException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.postconfigured; 2 | 3 | import gg.projecteden.nexus.utils.JsonBuilder; 4 | import net.kyori.adventure.text.ComponentLike; 5 | 6 | public class InvalidInputException extends PostConfiguredException { 7 | 8 | public InvalidInputException(JsonBuilder json) { 9 | super(json); 10 | } 11 | 12 | public InvalidInputException(ComponentLike component) { 13 | this(new JsonBuilder(component)); 14 | } 15 | 16 | public InvalidInputException(String message) { 17 | this(new JsonBuilder(message)); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/postconfigured/PlayerNotFoundException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.postconfigured; 2 | 3 | public class PlayerNotFoundException extends gg.projecteden.api.common.exceptions.postconfigured.PlayerNotFoundException { 4 | 5 | public PlayerNotFoundException(String input) { 6 | super("&e" + input + "&c"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/postconfigured/PlayerNotOnlineException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.postconfigured; 2 | 3 | import gg.projecteden.api.interfaces.HasUniqueId; 4 | import gg.projecteden.nexus.models.nickname.Nickname; 5 | 6 | import java.util.UUID; 7 | 8 | public class PlayerNotOnlineException extends PostConfiguredException { 9 | 10 | public PlayerNotOnlineException(UUID uuid) { 11 | super(Nickname.of(uuid) + " is not online"); 12 | } 13 | 14 | public PlayerNotOnlineException(HasUniqueId player) { 15 | super(Nickname.of(player) + " is not online"); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/MissingArgumentException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class MissingArgumentException extends PreConfiguredException { 4 | 5 | public MissingArgumentException() { 6 | super("Missing argument"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/MustBeCommandBlockException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class MustBeCommandBlockException extends PreConfiguredException { 4 | 5 | public MustBeCommandBlockException() { 6 | super("You must be a command block to use this command"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/MustBeConsoleException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class MustBeConsoleException extends PreConfiguredException { 4 | 5 | public MustBeConsoleException() { 6 | super("You must be console to use this command"); 7 | } 8 | 9 | } -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/MustBeIngameException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class MustBeIngameException extends PreConfiguredException { 4 | 5 | public MustBeIngameException() { 6 | super("You must be in-game to use this command"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/NegativeBalanceException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class NegativeBalanceException extends PreConfiguredException { 4 | 5 | public NegativeBalanceException() { 6 | super("Balances cannot be negative"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/NoPermissionException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | import gg.projecteden.nexus.utils.Nullables; 4 | 5 | public class NoPermissionException extends PreConfiguredException { 6 | 7 | public NoPermissionException() { 8 | this(null); 9 | } 10 | 11 | public NoPermissionException(String extra) { 12 | super("You don't have permission to do that!" + (Nullables.isNullOrEmpty(extra) ? "" : " " + extra)); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/NotEnoughMoneyException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | public class NotEnoughMoneyException extends PreConfiguredException { 4 | 5 | public NotEnoughMoneyException() { 6 | super("You do not have enough money to complete this transaction"); 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/exceptions/preconfigured/PreConfiguredException.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.exceptions.preconfigured; 2 | 3 | import gg.projecteden.nexus.framework.exceptions.NexusException; 4 | import net.md_5.bungee.api.ChatColor; 5 | 6 | public class PreConfiguredException extends NexusException { 7 | 8 | public PreConfiguredException(String message) { 9 | super(ChatColor.RED + message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/features/Depends.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.features; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.TYPE) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Depends { 11 | Class[] value(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/features/Unreleased.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.features; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | @Retention(RetentionPolicy.RUNTIME) 7 | public @interface Unreleased { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/interfaces/HasDescription.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.interfaces; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | /** 6 | * Represents an object that can be described 7 | */ 8 | public interface HasDescription { 9 | /** 10 | * Gets the description of this object 11 | * @return a human-readable string 12 | */ 13 | @NotNull String getDescription(); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/interfaces/IsColored.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.interfaces; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | /** 6 | * Represents an object that has a {@link Colored} object. 7 | */ 8 | public interface IsColored { 9 | /** 10 | * Gets the {@link Colored} object associated with this object 11 | * @return colored object 12 | */ 13 | @NotNull Colored colored(); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/interfaces/impl/ColoredImpl.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.interfaces.impl; 2 | 3 | import gg.projecteden.nexus.framework.interfaces.Colored; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Getter; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | import java.awt.*; 9 | 10 | @AllArgsConstructor 11 | public class ColoredImpl implements Colored { 12 | @Getter 13 | private final int value; 14 | 15 | @Override 16 | public @NotNull Color getColor() { 17 | return new Color(value); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/persistence/mongodb/MongoEntityService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.persistence.mongodb; 2 | 3 | import gg.projecteden.nexus.framework.interfaces.EntityOwnedObject; 4 | 5 | public abstract class MongoEntityService extends MongoBukkitService { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/persistence/mysql/MySQLDatabase.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.persistence.mysql; 2 | 3 | public enum MySQLDatabase { 4 | BEARNATION, 5 | LITEBANS, 6 | NAMELESS, 7 | SMP_LWC; 8 | 9 | public String getDatabase() { 10 | String name = name().toLowerCase(); 11 | 12 | if ("bearnation".equals(name)) 13 | return name; 14 | 15 | return "bearnation_" + name; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/persistence/serializer/mysql/LocationSerializer.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.persistence.serializer.mysql; 2 | 3 | import com.dieselpoint.norm.serialize.DbSerializable; 4 | import gg.projecteden.nexus.utils.SerializationUtils.Json; 5 | import org.bukkit.Location; 6 | 7 | public class LocationSerializer implements DbSerializable { 8 | 9 | @Override 10 | public String serialize(Object in) { 11 | return Json.serializeLocation((Location) in); 12 | } 13 | 14 | @Override 15 | public Location deserialize(String in) { 16 | return Json.deserializeLocation(in); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/framework/persistence/serializer/mysql/StringSetSerializer.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.framework.persistence.serializer.mysql; 2 | 3 | import com.dieselpoint.norm.serialize.DbSerializable; 4 | 5 | import java.util.Arrays; 6 | import java.util.HashSet; 7 | import java.util.Set; 8 | 9 | public class StringSetSerializer implements DbSerializable { 10 | @Override 11 | public String serialize(Object in) { 12 | return String.join(",", ((Set) in)); 13 | } 14 | 15 | @Override 16 | public Set deserialize(String in) { 17 | return new HashSet<>(Arrays.asList(in.split(","))); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/hooks/IHook.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.hooks; 2 | 3 | import org.bukkit.event.Listener; 4 | 5 | public abstract class IHook> implements Listener { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/hooks/viaversion/ViaVersionHook.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.hooks.viaversion; 2 | 3 | import gg.projecteden.nexus.hooks.IHook; 4 | import org.bukkit.entity.Player; 5 | 6 | public class ViaVersionHook extends IHook { 7 | 8 | public String getPlayerVersion(Player player) { 9 | return "Unknown (ViaVersion not loaded)"; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/lombok.config: -------------------------------------------------------------------------------- 1 | config.stopBubbling=true 2 | lombok.equalsAndHashCode.callSuper=call -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/achievement/AchievementService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.achievement; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(AchievementPlayer.class) 11 | public class AchievementService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/afk/AFKUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.afk; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(AFKUser.class) 11 | public class AFKUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/afk/events/NotAFKEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.afk.events; 2 | 3 | import gg.projecteden.nexus.models.afk.AFKUser; 4 | 5 | public class NotAFKEvent extends AFKEvent { 6 | 7 | public NotAFKEvent(AFKUser user) { 8 | super(user); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/afk/events/NowAFKEvent.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.afk.events; 2 | 3 | import gg.projecteden.nexus.models.afk.AFKUser; 4 | 5 | public class NowAFKEvent extends AFKEvent { 6 | 7 | public NowAFKEvent(AFKUser user) { 8 | super(user); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/alerts/AlertsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.alerts; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Alerts.class) 11 | public class AlertsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/ambience/AmbienceConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.ambience; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(AmbienceConfig.class) 11 | public class AmbienceConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/ambience/AmbienceUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.ambience; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(AmbienceUser.class) 11 | public class AmbienceUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/autotorch/AutoTorchService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.autotorch; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(AutoTorchUser.class) 11 | public class AutoTorchService extends MongoPlayerService { 12 | private static final Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/badge/BadgeUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.badge; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(BadgeUser.class) 11 | public class BadgeUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/bearfair21/BearFair21ConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.bearfair21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(BearFair21Config.class) 11 | public class BearFair21ConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/birthday21/Birthday21UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.birthday21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Birthday21User.class) 11 | public class Birthday21UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/boost/BoostConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.boost; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(BoostConfig.class) 11 | public class BoostConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/boost/BoosterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.boost; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Booster.class) 11 | public class BoosterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/buildcontest/BuildContestService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.buildcontest; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(BuildContest.class) 11 | public class BuildContestService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/chat/Channel.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.chat; 2 | 3 | import net.md_5.bungee.api.ChatColor; 4 | 5 | import java.util.Set; 6 | 7 | public interface Channel { 8 | 9 | Set getRecipients(Chatter chatter); 10 | 11 | String getAssignMessage(Chatter chatter); 12 | 13 | default ChatColor getMessageColor() { 14 | return ChatColor.WHITE; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/chat/ChatterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.chat; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Chatter.class) 11 | public class ChatterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/chatgames/ChatGamesConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.chatgames; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ChatGamesConfig.class) 11 | public class ChatGamesConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/checkpoint/Pace.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.checkpoint; 2 | 3 | public record Pace(String header, String body) { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/clientside/ClientSideUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.clientside; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ClientSideUser.class) 11 | public class ClientSideUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/compass/CompassService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.compass; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Compass.class) 11 | public class CompassService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/crate/CrateDisplay.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.crate; 2 | 3 | import org.bukkit.entity.Player; 4 | import org.bukkit.inventory.ItemStack; 5 | 6 | public interface CrateDisplay { 7 | 8 | String getDisplayName(); 9 | 10 | ItemStack getDisplayItem(); 11 | 12 | double getWeight(); 13 | 14 | default double getWeightForPlayer(Player player) { 15 | return getWeight(); 16 | } 17 | 18 | boolean isActive(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/curiosity/CuriosityService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.curiosity; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Curiosity.class) 11 | public class CuriosityService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/decoration/DecorationUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.decoration; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(DecorationUser.class) 11 | public class DecorationUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/difficulty/DifficultyUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.difficulty; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(DifficultyUser.class) 11 | public class DifficultyUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/discord/DiscordConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.discord; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(DiscordConfig.class) 11 | public class DiscordConfigService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/dnd/DNDUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.dnd; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(DNDUser.class) 11 | public class DNDUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/documentation/CommandsConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.documentation; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(CommandsConfig.class) 11 | public class CommandsConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/doublejump/DoubleJumpUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.doublejump; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(DoubleJumpUser.class) 11 | public class DoubleJumpUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/dumpster/DumpsterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.dumpster; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Dumpster.class) 11 | public class DumpsterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/easter21/Easter21UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.easter21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Easter21User.class) 11 | public class Easter21UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/emoji/EmojiUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.emoji; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(EmojiUser.class) 11 | public class EmojiUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/extraplots/ExtraPlotUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.extraplots; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ExtraPlotUser.class) 11 | public class ExtraPlotUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/fakenpcs/config/FakeNPCConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.fakenpcs.config; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(FakeNPCConfig.class) 11 | public class FakeNPCConfigService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/fakenpcs/users/FakeNPCUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.fakenpcs.users; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(FakeNPCUser.class) 11 | public class FakeNPCUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/forcefield/ForceFieldUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.forcefield; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ForceFieldUser.class) 11 | public class ForceFieldUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/freeze/FreezeService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.freeze; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Freeze.class) 11 | public class FreezeService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/friends/FriendsUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.friends; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(FriendsUser.class) 11 | public class FriendsUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/halloween20/Halloween20Service.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.halloween20; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Halloween20User.class) 11 | public class Halloween20Service extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/halloween21/Halloween21UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.halloween21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Halloween21User.class) 11 | public class Halloween21UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/honeypot/HoneyPotBansService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.honeypot; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(HoneyPotBans.class) 11 | public class HoneyPotBansService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/honeypot/HoneyPotGrieferService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.honeypot; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(HoneyPotGriefer.class) 11 | public class HoneyPotGrieferService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/hub/HubTreasureHunterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.hub; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(HubTreasureHunter.class) 11 | public class HubTreasureHunterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/invisiblearmour/InvisibleArmorService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.invisiblearmour; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(InvisibleArmor.class) 11 | public class InvisibleArmorService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/jigsawjam/JigsawJamService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.jigsawjam; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(JigsawJammer.class) 11 | public class JigsawJamService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/legacy/LegacyUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.legacy; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(LegacyUser.class) 11 | public class LegacyUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/legacy/mail/LegacyMailerService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.legacy.mail; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(LegacyMailer.class) 11 | public class LegacyMailerService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/legacy/shops/LegacyShopService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.legacy.shops; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(LegacyShop.class) 11 | public class LegacyShopService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/mcmmo/McMMOPrestigeUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.mcmmo; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(McMMOPrestigeUser.class) 11 | public class McMMOPrestigeUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/mode/ModeUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.mode; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ModeUser.class) 11 | public class ModeUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/modreview/ModReviewService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.modreview; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ModReview.class) 11 | public class ModReviewService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/mutemenu/MuteMenuService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.mutemenu; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(MuteMenuUser.class) 11 | public class MuteMenuService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/nameplates/NameplateUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.nameplates; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(NameplateUser.class) 11 | public class NameplateUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/newrankcolors/NewRankColorsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.newrankcolors; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(NewRankColors.class) 11 | public class NewRankColorsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/objective/ObjectiveUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.objective; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ObjectiveUser.class) 11 | public class ObjectiveUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/offline/OfflineMessageService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.offline; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(OfflineMessageUser.class) 11 | public class OfflineMessageService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/parkour/LobbyParkourUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.parkour; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(LobbyParkourUser.class) 11 | public class LobbyParkourUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/particle/ParticleTask.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.particle; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class ParticleTask { 9 | private ParticleType particleType; 10 | private int taskId; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/party/PartyUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.party; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(PartyUser.class) 11 | public class PartyUserService extends MongoPlayerService { 12 | 13 | private final static Map cache = new ConcurrentHashMap<>(); 14 | 15 | @Override 16 | public Map getCache() { 17 | return cache; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/perkowner/PerkOwnerService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.perkowner; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(PerkOwner.class) 11 | public class PerkOwnerService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/playerplushie/PlayerPlushieVoucher.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.playerplushie; 2 | 3 | import gg.projecteden.nexus.features.resourcepack.playerplushies.Tier; 4 | 5 | public class PlayerPlushieVoucher { 6 | private Tier tier; 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pride21/Pride21UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pride21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Pride21User.class) 11 | public class Pride21UserService extends MongoPlayerService { 12 | private static final Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/profile/ProfileUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.profile; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(ProfileUser.class) 11 | public class ProfileUserService extends MongoPlayerService { 12 | private static final Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pugmas20/Pugmas20UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pugmas20; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Pugmas20User.class) 11 | public class Pugmas20UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pugmas21/Advent21ConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pugmas21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Advent21Config.class) 11 | public class Advent21ConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pugmas21/Pugmas21UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pugmas21; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Pugmas21User.class) 11 | public class Pugmas21UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pugmas25/Advent25ConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pugmas25; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Advent25Config.class) 11 | public class Advent25ConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pugmas25/Pugmas25UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pugmas25; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Pugmas25User.class) 11 | public class Pugmas25UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/punishments/NameBanConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.punishments; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(NameBanConfig.class) 11 | public class NameBanConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/punishments/SkinBanConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.punishments; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SkinBanConfig.class) 11 | public class SkinBanConfigService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/push/PushService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.push; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(PushUser.class) 11 | public class PushService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/pvp/PVPService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.pvp; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(PVP.class) 11 | public class PVPService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/quests/QuestTaskStepProgress.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.quests; 2 | 3 | import gg.projecteden.nexus.framework.interfaces.PlayerOwnedObject; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.NonNull; 7 | import lombok.RequiredArgsConstructor; 8 | 9 | import java.util.UUID; 10 | 11 | @Data 12 | @NoArgsConstructor 13 | @RequiredArgsConstructor 14 | public class QuestTaskStepProgress implements PlayerOwnedObject { 15 | @NonNull 16 | private UUID uuid; 17 | private boolean firstInteraction = true; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/quests/QuesterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.quests; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Quester.class) 11 | public class QuesterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/queup/QueUpService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.queup; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(QueUp.class) 11 | public class QueUpService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/radio/RadioUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.radio; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(RadioUser.class) 11 | public class RadioUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/rainbowarmor/RainbowArmorService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.rainbowarmor; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(RainbowArmor.class) 11 | public class RainbowArmorService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/rainbowbeacon/RainbowBeaconService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.rainbowbeacon; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(RainbowBeacon.class) 11 | public class RainbowBeaconService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/recipes/RecipeUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.recipes; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(RecipeUser.class) 11 | public class RecipeUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/referral/ReferralService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.referral; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Referral.class) 11 | public class ReferralService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/rule/HasReadRulesService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.rule; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(HasReadRules.class) 11 | public class HasReadRulesService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/serializetest/SerializeTestService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.serializetest; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SerializeTest.class) 11 | public class SerializeTestService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/skincache/SkinCacheService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.skincache; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SkinCache.class) 11 | public class SkinCacheService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/skullhunt/SkullHuntService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.skullhunt; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SkullHunter.class) 11 | public class SkullHuntService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/snoweffect/SnowEffectService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.snoweffect; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SnowEffect.class) 11 | public class SnowEffectService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/socialmedia/InstagramService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.socialmedia; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(InstagramData.class) 11 | public class InstagramService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/socialmedia/SocialMediaUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.socialmedia; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(SocialMediaUser.class) 11 | public class SocialMediaUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/socialmedia/TwitterService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.socialmedia; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(TwitterData.class) 11 | public class TwitterService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/staffhall/StaffHallConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.staffhall; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(StaffHallConfig.class) 11 | public class StaffHallConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/statuehunt/StatueHuntService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.statuehunt; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(StatueHunt.class) 11 | public class StatueHuntService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | @Override 15 | public Map getCache() { 16 | return cache; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/statusbar/StatusBarService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.statusbar; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(StatusBar.class) 11 | public class StatusBarService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/striplogs/StripLogsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.striplogs; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(StripLogs.class) 11 | public class StripLogsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/teleport/TeleportUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.teleport; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(TeleportUser.class) 11 | public class TeleportUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/testquestuser/TestQuestUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.testquestuser; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(TestQuestUser.class) 11 | public class TestQuestUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/ticket/TicketsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.ticket; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Tickets.class) 11 | public class TicketsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/tip/TipService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.tip; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Tip.class) 11 | public class TipService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/trophy/TrophyHolderService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.trophy; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(TrophyHolder.class) 11 | public class TrophyHolderService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/trust/TrustService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.trust; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Trust.class) 11 | public class TrustService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/vanish/VanishUserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.vanish; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(VanishUser.class) 11 | public class VanishUserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/voter/VotePartyService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.voter; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(VotePartyData.class) 11 | public class VotePartyService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/vulan24/VuLan24ConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.vulan24; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoBukkitService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(VuLan24Config.class) 11 | public class VuLan24ConfigService extends MongoBukkitService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/vulan24/VuLan24UserService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.vulan24; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(VuLan24User.class) 11 | public class VuLan24UserService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/warps/WarpsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.warps; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(Warps.class) 11 | public class WarpsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/webs/WebConfigService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.webs; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(WebConfig.class) 11 | public class WebConfigService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/models/whereis/WhereIsService.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.models.whereis; 2 | 3 | import gg.projecteden.api.mongodb.annotations.ObjectClass; 4 | import gg.projecteden.nexus.framework.persistence.mongodb.MongoPlayerService; 5 | 6 | import java.util.Map; 7 | import java.util.UUID; 8 | import java.util.concurrent.ConcurrentHashMap; 9 | 10 | @ObjectClass(WhereIs.class) 11 | public class WhereIsService extends MongoPlayerService { 12 | private final static Map cache = new ConcurrentHashMap<>(); 13 | 14 | public Map getCache() { 15 | return cache; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/BiomeUtils.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils; 2 | 3 | import com.google.common.collect.Lists; 4 | import net.kyori.adventure.text.Component; 5 | import org.bukkit.Registry; 6 | import org.bukkit.block.Biome; 7 | 8 | public class BiomeUtils { 9 | 10 | public static Biome[] values() { 11 | return Lists.newArrayList(Registry.BIOME).toArray(new Biome[0]); 12 | } 13 | 14 | public static String name(Biome biome) { 15 | return AdventureUtils.asPlainText(Component.translatable(biome.translationKey())); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/BoundedCollections.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils; 2 | 3 | import lombok.AllArgsConstructor; 4 | 5 | import java.util.ArrayList; 6 | 7 | public class BoundedCollections { 8 | 9 | @AllArgsConstructor 10 | public static class BoundedList extends ArrayList { 11 | private final int maxEntries; 12 | 13 | @Override 14 | public boolean add(Element element) { 15 | if (size() > maxEntries) { 16 | removeFirst(); 17 | } 18 | 19 | return super.add(element); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/ComparableEnum.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils; 2 | 3 | public interface ComparableEnum { 4 | int ordinal(); 5 | 6 | default boolean gt(Enum other) { 7 | return ordinal() > other.ordinal(); 8 | } 9 | 10 | default boolean gte(Enum other) { 11 | return ordinal() >= other.ordinal(); 12 | } 13 | 14 | default boolean lt(Enum other) { 15 | return ordinal() < other.ordinal(); 16 | } 17 | 18 | default boolean lte(Enum other) { 19 | return ordinal() <= other.ordinal(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/UncheckedConsumer.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils; 2 | 3 | @FunctionalInterface 4 | public interface UncheckedConsumer { 5 | void accept(T var1) throws Exception; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/nms/packet/EdenPacket.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils.nms.packet; 2 | 3 | import gg.projecteden.nexus.utils.nms.PacketUtils; 4 | import net.minecraft.network.protocol.Packet; 5 | import net.minecraft.network.protocol.game.ClientGamePacketListener; 6 | import org.bukkit.entity.Player; 7 | 8 | public abstract class EdenPacket { 9 | 10 | protected abstract Packet build(); 11 | 12 | public void send(Player viewer) { 13 | PacketUtils.sendPacket(viewer, build()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/gg/projecteden/nexus/utils/nms/packet/EntityDestroyPacket.java: -------------------------------------------------------------------------------- 1 | package gg.projecteden.nexus.utils.nms.packet; 2 | 3 | import lombok.Data; 4 | import net.minecraft.network.protocol.Packet; 5 | import net.minecraft.network.protocol.game.ClientGamePacketListener; 6 | import net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket; 7 | 8 | @Data 9 | public class EntityDestroyPacket extends EdenPacket { 10 | private final int entityId; 11 | 12 | @Override 13 | protected Packet build() { 14 | return new ClientboundRemoveEntitiesPacket(entityId); 15 | } 16 | 17 | } 18 | --------------------------------------------------------------------------------