# Hierarchy For All Packages

Package Hierarchies:

- dev.plex,
- dev.plex.admin,
- dev.plex.cache,
- dev.plex.command,
- dev.plex.command.annotation,
- dev.plex.command.blocking,
- dev.plex.command.exception,
- dev.plex.command.impl,
- dev.plex.command.source,
- dev.plex.config,
- dev.plex.event,
- dev.plex.handlers,
- dev.plex.hook,
- dev.plex.listener,
- dev.plex.listener.annotation,
- dev.plex.listener.impl,
- dev.plex.menu,
- dev.plex.module,
- dev.plex.module.exception,
- dev.plex.permission,
- dev.plex.player,
- dev.plex.punishment,
- dev.plex.punishment.extra,
- dev.plex.rank,
- dev.plex.rank.enums,
- dev.plex.services,
- dev.plex.services.impl,
- dev.plex.storage,
- dev.plex.storage.codec,
- dev.plex.storage.permission,
- dev.plex.storage.player,
- dev.plex.storage.punishment,
- dev.plex.util,
- dev.plex.util.adapter,
- dev.plex.util.item,
- dev.plex.util.menu,
- dev.plex.util.minimessage,
- dev.plex.util.redis,
- dev.plex.world

## Class Hierarchy

- java.lang.Object
  - dev.plex.util.menu.AbstractMenu (implements org.bukkit.event.Listener)
    - dev.plex.menu.PunishedPlayerMenu
    - dev.plex.menu.PunishmentMenu
    - dev.plex.menu.ToggleMenu (implements dev.plex.PlexBase)
  - dev.plex.services.AbstractService (implements dev.plex.services.IService, dev.plex.PlexBase)
    - dev.plex.services.impl.AutoWipeService
    - dev.plex.services.impl.BanService
    - dev.plex.services.impl.CommandBlockerService
    - dev.plex.services.impl.GameRuleService
    - dev.plex.services.impl.TimingService
    - dev.plex.services.impl.UpdateCheckerService
  - dev.plex.admin.Admin
  - dev.plex.admin.AdminList (implements dev.plex.PlexBase)
  - dev.plex.util.AshconInfo
  - dev.plex.util.AshconInfo.SkinData
  - dev.plex.util.AshconInfo.Textures
  - dev.plex.util.AshconInfo.UsernameHistory
  - dev.plex.command.blocking.BlockedCommand
  - dev.plex.util.BlockUtils
  - dev.plex.util.BuildInfo
  - dev.plex.util.BungeeUtil
  - dev.plex.listener.impl.ChatListener.PlexChatRenderer (implements io.papermc.paper.chat.ChatRenderer)
  - org.bukkit.generator.ChunkGenerator
    - dev.plex.world.CustomChunkGenerator
      - dev.plex.world.FlatChunkGenerator
        - dev.plex.world.BlockMapChunkGenerator
          - dev.plex.world.ConfigurationChunkGenerator
      - dev.plex.world.NoiseChunkGenerator
      - dev.plex.world.OctaveChunkGenerator
  - org.bukkit.command.Command
    - dev.plex.command.PlexCommand (implements org.bukkit.command.PluginIdentifiableCommand)
      - dev.plex.command.impl.AdminChatCMD
      - dev.plex.command.impl.AdminCMD
      - dev.plex.command.impl.AdminworldCMD
      - dev.plex.command.impl.AdventureCMD
      - dev.plex.command.impl.BanCMD
      - dev.plex.command.impl.BlockEditCMD
      - dev.plex.command.impl.CommandSpyCMD
      - dev.plex.command.impl.ConsoleSayCMD
      - dev.plex.command.impl.CreativeCMD
      - dev.plex.command.impl.DebugCMD
      - dev.plex.command.impl.DeopAllCMD
      - dev.plex.command.impl.DeopCMD
      - dev.plex.command.impl.EntityWipeCMD
      - dev.plex.command.impl.FlatlandsCMD
      - dev.plex.command.impl.FreezeCMD
      - dev.plex.command.impl.GamemodeCMD
      - dev.plex.command.impl.KickCMD
      - dev.plex.command.impl.ListCMD
      - dev.plex.command.impl.LocalSpawnCMD
      - dev.plex.command.impl.LockupCMD
      - dev.plex.command.impl.MasterbuilderworldCMD
      - dev.plex.command.impl.MobPurgeCMD
      - dev.plex.command.impl.MuteCMD
      - dev.plex.command.impl.NameHistoryCMD
      - dev.plex.command.impl.NotesCMD
      - dev.plex.command.impl.OpAllCMD
      - dev.plex.command.impl.OpCMD
      - dev.plex.command.impl.PlexCMD
      - dev.plex.command.impl.PunishmentsCMD
      - dev.plex.command.impl.RankCMD
      - dev.plex.command.impl.RawSayCMD
      - dev.plex.command.impl.RemoveLoginMessageCMD
      - dev.plex.command.impl.SayCMD
      - dev.plex.command.impl.SetLoginMessageCMD
      - dev.plex.command.impl.SmiteCMD
      - dev.plex.command.impl.SpectatorCMD
      - dev.plex.command.impl.SurvivalCMD
      - dev.plex.command.impl.TagCMD
      - dev.plex.command.impl.TempbanCMD
      - dev.plex.command.impl.TFMCMD
      - dev.plex.command.impl.ToggleCMD
      - dev.plex.command.impl.UnbanCMD
      - dev.plex.command.impl.UnfreezeCMD
      - dev.plex.command.impl.UnmuteCMD
      - dev.plex.command.impl.WorldCMD
  - dev.plex.handlers.CommandHandler (implements dev.plex.PlexBase)
  - dev.plex.cache.DataUtils
  - org.bukkit.event.Event
    - dev.plex.event.AdminAddEvent
    - dev.plex.event.AdminRemoveEvent
    - dev.plex.event.AdminSetRankEvent
    - dev.plex.event.GameModeUpdateEvent
    - org.bukkit.event.player.PlayerEvent
      - dev.plex.event.PunishedPlayerEvent (implements org.bukkit.event.Cancellable)
        - dev.plex.event.PunishedPlayerFreezeEvent (implements org.bukkit.event.Cancellable)
        - dev.plex.event.PunishedPlayerLockupEvent (implements org.bukkit.event.Cancellable)
        - dev.plex.event.PunishedPlayerMuteEvent (implements org.bukkit.event.Cancellable)
  - dev.plex.util.GameRuleUtil
  - dev.plex.util.item.ItemBuilder
  - dev.plex.handlers.ListenerHandler (implements dev.plex.PlexBase)
  - org.bukkit.configuration.MemorySection (implements org.bukkit.configuration.ConfigurationSection)
    - org.bukkit.configuration.MemoryConfiguration (implements org.bukkit.configuration.Configuration)
      - org.bukkit.configuration.file.FileConfiguration
        - org.bukkit.configuration.file.YamlConfiguration
          - dev.plex.config.Config
          - dev.plex.config.ModuleConfig
  - dev.plex.util.redis.MessageUtil
  - dev.plex.module.ModuleManager
  - dev.plex.util.MojangUtils
  - dev.plex.storage.MongoConnection (implements dev.plex.PlexBase)
  - dev.plex.storage.player.MongoPlayerData
  - dev.plex.world.NoiseOptions
    - dev.plex.world.OctaveOptions
  - dev.plex.punishment.extra.Note
  - dev.plex.permission.Permission
  - dev.plex.util.PermissionsUtil
  - dev.plex.cache.PlayerCache
  - dev.plex.PlexLibraryManager (implements io.papermc.paper.plugin.loader.PluginLoader)
  - dev.plex.listener.PlexListener (implements org.bukkit.event.Listener, dev.plex.PlexBase)
    - dev.plex.listener.impl.AdminListener
    - dev.plex.listener.impl.AntiNukerListener
    - dev.plex.listener.impl.AntiSpamListener
    - dev.plex.listener.impl.BanListener
    - dev.plex.listener.impl.BlockListener
    - dev.plex.listener.impl.BookListener
    - dev.plex.listener.impl.ChatListener
    - dev.plex.listener.impl.CommandListener
    - dev.plex.listener.impl.DropListener
    - dev.plex.listener.impl.FreezeListener
    - dev.plex.listener.impl.GameModeListener
    - dev.plex.listener.impl.MobListener
    - dev.plex.listener.impl.MuteListener
    - dev.plex.listener.impl.PlayerListener<T>
    - dev.plex.listener.impl.ServerListener
    - dev.plex.listener.impl.SignListener
    - dev.plex.listener.impl.TabListener
    - dev.plex.listener.impl.TogglesListener
    - dev.plex.listener.impl.WorldListener
  - dev.plex.util.PlexLog
  - dev.plex.module.PlexModule
  - dev.plex.module.PlexModuleFile
  - dev.plex.player.PlexPlayer
  - dev.plex.util.PlexUtils (implements dev.plex.PlexBase)
  - org.bukkit.plugin.PluginBase (implements org.bukkit.plugin.Plugin)
    - org.bukkit.plugin.java.JavaPlugin
      - dev.plex.Plex
  - dev.plex.punishment.Punishment
  - dev.plex.punishment.PunishmentManager (implements dev.plex.PlexBase)
  - dev.plex.punishment.PunishmentManager.IndefiniteBan
  - dev.plex.util.RandomUtil
  - dev.plex.rank.RankManager
  - java.lang.Record
    - dev.plex.PlexLibraryManager.PluginLibraries
  - dev.plex.storage.RedisConnection (implements dev.plex.PlexBase)
  - dev.plex.util.ReflectionsUtil
  - dev.plex.util.minimessage.SafeMiniMessage
  - dev.plex.util.minimessage.SafeMiniMessage.SafeMiniMessageTagResolver (implements net.kyori.adventure.text.minimessage.tag.resolver.TagResolver)
  - dev.plex.services.ServiceManager
  - dev.plex.storage.SQLConnection (implements dev.plex.PlexBase)
  - dev.plex.storage.punishment.SQLNotes
  - dev.plex.storage.permission.SQLPermissions
  - dev.plex.storage.player.SQLPlayerData
  - dev.plex.storage.punishment.SQLPunishment
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - dev.plex.command.exception.CommandFailException
        - dev.plex.command.exception.ConsoleMustDefinePlayerException
        - dev.plex.command.exception.ConsoleOnlyException
        - dev.plex.module.exception.ModuleLoadException
        - dev.plex.command.exception.PlayerNotBannedException
        - dev.plex.command.exception.PlayerNotFoundException
  - dev.plex.util.TimeUtils
  - dev.plex.util.UpdateChecker (implements dev.plex.PlexBase)
  - dev.plex.hook.VaultHook
  - dev.plex.util.WebUtils
  - org.bukkit.WorldCreator
    - dev.plex.world.CustomWorld
  - dev.plex.util.adapter.ZonedDateTimeAdapter (implements com.google.gson.JsonDeserializer<T>, com.google.gson.JsonSerializer<T>)
  - dev.plex.storage.codec.ZonedDateTimeCodec (implements org.bson.codecs.Codec<T>)

## Interface Hierarchy

- dev.plex.util.menu.IMenu
- dev.plex.services.IService
- dev.plex.PlexBase

## Annotation Interface Hierarchy

- dev.plex.command.annotation.CommandParameters (implements java.lang.annotation.Annotation)
- dev.plex.command.annotation.CommandPermissions (implements java.lang.annotation.Annotation)
- dev.plex.command.annotation.System (implements java.lang.annotation.Annotation)
- dev.plex.listener.annotation.Toggleable (implements java.lang.annotation.Annotation)

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - dev.plex.punishment.PunishmentType
    - dev.plex.rank.enums.Rank
    - dev.plex.command.source.RequiredCommandSource
    - dev.plex.storage.StorageType
    - dev.plex.rank.enums.Title