├── .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 extends Mechanic>[] 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 extends Mechanic>[] 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 extends MatchStatistics> 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 extends IChallengeProgress> 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 extends MobHeadVariant> 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 extends Feature>[] 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