Skip to main content

Modules

Each page covers one area of StoneLib: what it is for, its full public API, a worked example, and the behaviour worth knowing before you rely on it. All classes live under dev.anchorlight.stonelib.

PageClasses
Commandscommand.CommandRouter, command.SubCommand
Configurationconfig.ConfigManager, config.MultiConfigManager, config.ConfigUpdater, ConfigValidator, CopyResources (deprecated)
Messagesmessage.MessageService, message.MiniMessages, message.UntrustedText, message.LegacyColorConverter
Storagestorage.Repository, storage.RecordCodec, storage.YamlRepository, storage.SqliteRepository, storage.LocationCodec
MySQLstorage.sql.DatabaseConfig, storage.sql.ConnectionPool, storage.sql.SchemaMigrator, storage.MySqlRepository
Schedulerscheduler.SchedulerService
Cooldownscooldown.CooldownService
Menusmenu.MenuHolder, menu.MenuListener, ItemBuilder
Dialogsdialog.FormDialog, dialog.FormResponse
Hologramshologram.HologramService
Loot Tablesloot.LootTable
Durationstime.Durations
Permissionspermission.PermissionService
Cross-Server Messagingmessaging.MessageBus, messaging.Message, messaging.proxy.ProxyMessageRelay
Render Looprender.RenderLoop, render.Renderable, render.RenderContext

Which modules depend on which

Most modules stand alone. The exceptions:

  • ConfigManager, MultiConfigManager, and MessageService all update their files through ConfigUpdater.
  • MySqlRepository needs a ConnectionPool, and SchemaMigrator does too.
  • RenderLoop needs a SchedulerService.
  • PermissionService needs the LuckPerms plugin for grants, but its cached lookups work without it.
  • ProxyMessageRelay needs Velocity, and is only ever loaded on a proxy.