From cbb815b325c8969f8e5c811e6ee72a377d8bcb08 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 2 Apr 2025 02:03:01 -0400 Subject: [PATCH 1/9] fix: lots of bugs with: messaging, parsing, modules, etc. --- .../base/runnables/PlayerTeleporter.java | 3 - .../platform/listeners/PlatformListener.java | 23 +++- .../singularity/command/CommandHandler.java | 55 ++++++++ .../singularity/command/ModuleCommand.java | 9 +- .../database/modules/DBKeeper.java | 16 +++ .../player/location/PlayerMovementEvent.java | 27 ++++ .../main/java/singularity/loading/Loader.java | 2 + .../singularity/modules/CosmicModule.java | 17 ++- .../singularity/objects/CosmicFavicon.java | 60 ++++++--- .../singularity/objects/PingedResponse.java | 14 +-- spigot/build.gradle | 6 +- .../net/streamline/base/TenSecondTimer.java | 2 + .../base/runnables/PlayerTeleporter.java | 21 +++- .../net/streamline/platform/Messenger.java | 117 ++++++------------ .../commands/StreamlineSpigotCommand.java | 14 +-- .../platform/listeners/PaperListener.java | 109 ++++++++++++++++ .../platform/listeners/PlatformListener.java | 76 +++++++++++- .../platform/listeners/PlatformListener.java | 22 +++- 18 files changed, 449 insertions(+), 144 deletions(-) create mode 100644 singularity-api/src/main/java/singularity/events/player/location/PlayerMovementEvent.java create mode 100644 spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java diff --git a/bungee/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java b/bungee/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java index 3996e16a..e3dfeddc 100644 --- a/bungee/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java +++ b/bungee/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java @@ -6,15 +6,12 @@ import net.md_5.bungee.api.event.ServerConnectEvent; import net.streamline.api.base.timers.AbstractPlayerTeleporter; import net.streamline.base.Streamline; -import singularity.configs.given.GivenConfigs; import singularity.data.teleportation.TPTicket; import singularity.utils.MessageUtils; import java.util.Date; import java.util.UUID; import java.util.concurrent.ConcurrentSkipListSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; public class PlayerTeleporter extends AbstractPlayerTeleporter { // private static final ExecutorService executor = Executors.newFixedThreadPool(4); // Adjust as needed diff --git a/bungee/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/bungee/src/main/java/net/streamline/platform/listeners/PlatformListener.java index 12845f59..c79b7f76 100644 --- a/bungee/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/bungee/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -24,6 +24,7 @@ import singularity.messages.proxied.ProxiedMessage; import singularity.modules.ModuleManager; import singularity.modules.ModuleUtils; +import singularity.objects.CosmicFavicon; import singularity.objects.PingedResponse; import net.streamline.base.Streamline; import net.streamline.platform.Messenger; @@ -184,10 +185,17 @@ public void onPing(ProxyPingEvent event) { PingedResponse.Players players = new PingedResponse.Players(ping.getPlayers().getMax(), ping.getPlayers().getOnline(), infos.toArray(new PingedResponse.PlayerInfo[0])); PingedResponse response; - if (ping.getFaviconObject() != null) { - response = new PingedResponse(protocol, players, ping.getDescriptionComponent().toLegacyText(), ping.getFaviconObject().getEncoded()); - } else { - response = new PingedResponse(protocol, players, ping.getDescriptionComponent().toLegacyText()); + try { + if (ping.getFaviconObject() != null) { + response = new PingedResponse(protocol, players, ping.getDescriptionComponent().toLegacyText(), ping.getFaviconObject().getEncoded()); + } else { + response = new PingedResponse(protocol, players, ping.getDescriptionComponent().toLegacyText()); + } + } catch (Throwable e) { + MessageUtils.logWarning("Failed to get favicon from ping response: " + e.getMessage()); + MessageUtils.logWarning(e.getStackTrace()); + + return; } PingReceivedEvent pingReceivedEvent = new PingReceivedEvent(response, hostName).fire(); @@ -215,8 +223,11 @@ public void onPing(ProxyPingEvent event) { ping.setDescriptionComponent(new TextComponent(Messenger.getInstance().codedText(pingReceivedEvent.getResponse().getDescription()))); try { - Favicon favicon = Favicon.create(pingReceivedEvent.getResponse().getFavicon().getEncoded()); - ping.setFavicon(favicon); + CosmicFavicon favicon = pingReceivedEvent.getResponse().getFavicon(); + if (favicon != null) { + Favicon fav = Favicon.create(favicon.getImage()); + ping.setFavicon(fav); + } } catch (Exception e) { // do nothing. } diff --git a/singularity-api/src/main/java/singularity/command/CommandHandler.java b/singularity-api/src/main/java/singularity/command/CommandHandler.java index 47993cae..f841c537 100644 --- a/singularity-api/src/main/java/singularity/command/CommandHandler.java +++ b/singularity-api/src/main/java/singularity/command/CommandHandler.java @@ -5,7 +5,11 @@ import singularity.Singularity; import singularity.interfaces.IProperCommand; +import java.util.Arrays; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentSkipListMap; +import java.util.concurrent.ConcurrentSkipListSet; +import java.util.concurrent.atomic.AtomicReference; public class CommandHandler { @Getter @Setter @@ -81,4 +85,55 @@ public static void flushProperCommands() { iProperCommand.unregister(); }); } + + public static ConcurrentSkipListSet getAllAliases() { + ConcurrentSkipListSet r = new ConcurrentSkipListSet<>(); + + getLoadedStreamlineCommands().forEach((s, command) -> { + r.addAll(Arrays.asList(command.getAliases())); + + r.add(command.getBase()); + }); + + getLoadedModuleCommands().forEach((s, command) -> { + r.addAll(Arrays.asList(command.getAliases())); + + r.add(command.getBase()); + }); + + return r; + } + + public static CosmicCommand getCommandByAlias(String alias) { + CosmicCommand command = getStreamlineCommand(alias); + if (command != null) return command; + + AtomicReference commandRef = new AtomicReference<>(null); + + getLoadedStreamlineCommands().forEach((s, c) -> { + if (commandRef.get() != null) return; + + for (String a : c.getAliases()) { + if (a.equalsIgnoreCase(alias)) { + commandRef.set(c); + break; + } + } + }); + + if (commandRef.get() != null) return commandRef.get(); + + getLoadedModuleCommands().forEach((s, c) -> { + if (commandRef.get() != null) return; + + for (String a : c.getAliases()) { + if (a.equalsIgnoreCase(alias)) { + commandRef.set(c); + break; + } + } + }); + + return commandRef.get(); + } } diff --git a/singularity-api/src/main/java/singularity/command/ModuleCommand.java b/singularity-api/src/main/java/singularity/command/ModuleCommand.java index 1e03afa6..aabd12db 100644 --- a/singularity-api/src/main/java/singularity/command/ModuleCommand.java +++ b/singularity-api/src/main/java/singularity/command/ModuleCommand.java @@ -14,7 +14,6 @@ public ModuleCommand(ModuleLike module, String base, String permission, String.. this(module, base, permission, new File(module.getDataFolder(), Singularity.getCommandsFolderChild()), aliases); } - public ModuleCommand(ModuleLike module, String base, String permission, File parentDirectory, String... aliases) { super(module.getIdentifier(), base, permission, parentDirectory, aliases); this.owningModule = module; @@ -34,14 +33,10 @@ public ModuleCommand(ModuleLike module, String base, String permission, File par // } public void modulize() { - if (isEnabled()) return; - getOwningModule().addCommand(this); } public void demodulize() { - if (! isEnabled()) return; - getOwningModule().removeCommand(this); } @@ -50,6 +45,8 @@ public void register() { if (! isEnabled()) return; CommandHandler.registerModuleCommand(this); + + modulize(); } @Override @@ -57,6 +54,8 @@ public void unregister() { if (! isEnabled()) if (! CommandHandler.getLoadedModuleCommands().containsKey(getIdentifier())) return; CommandHandler.unregisterModuleCommand(this); + + demodulize(); } @Override diff --git a/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java b/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java index 9ce3085b..f89e2ee7 100644 --- a/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java +++ b/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java @@ -63,6 +63,22 @@ public void saveRaw(T obj) { } } + public String getTablePrefix() { + return getDatabase().getConnectorSet().getTablePrefix(); + } + + public String injectTablePrefix(String statement) { + return statement.replace("%table_prefix%", getTablePrefix()); + } + + public String getDatabaseName() { + return getDatabase().getConnectorSet().getDatabase(); + } + + public String injectDatabaseName(String statement) { + return statement.replace("%database_name%", getDatabaseName()); + } + public abstract void saveMysql(T obj); public abstract void saveSqlite(T obj); diff --git a/singularity-api/src/main/java/singularity/events/player/location/PlayerMovementEvent.java b/singularity-api/src/main/java/singularity/events/player/location/PlayerMovementEvent.java new file mode 100644 index 00000000..f7824ed3 --- /dev/null +++ b/singularity-api/src/main/java/singularity/events/player/location/PlayerMovementEvent.java @@ -0,0 +1,27 @@ +package singularity.events.player.location; + +import lombok.Getter; +import lombok.Setter; +import singularity.data.players.CosmicPlayer; +import singularity.data.players.location.CosmicLocation; +import singularity.events.player.PlatformedPlayerEvent; + +@Getter @Setter +public class PlayerMovementEvent extends PlatformedPlayerEvent { + private CosmicPlayer player; + private CosmicLocation oldLocation; + private CosmicLocation newLocation; + + public PlayerMovementEvent(CosmicPlayer player, CosmicLocation newLocation) { + super(player.getUuid()); + + this.player = player; + + this.oldLocation = player.getLocation(); + this.newLocation = newLocation; + } + + public void completeMovement() { + player.setLocation(newLocation); + } +} diff --git a/singularity-api/src/main/java/singularity/loading/Loader.java b/singularity-api/src/main/java/singularity/loading/Loader.java index d0489d76..7495d532 100644 --- a/singularity-api/src/main/java/singularity/loading/Loader.java +++ b/singularity-api/src/main/java/singularity/loading/Loader.java @@ -105,6 +105,8 @@ public L getOrCreate(String identifier) { L toGet = createNew(identifier); + load(toGet); + return toGet.augment(loader); } diff --git a/singularity-api/src/main/java/singularity/modules/CosmicModule.java b/singularity-api/src/main/java/singularity/modules/CosmicModule.java index 3d207ef7..c570f5ed 100644 --- a/singularity-api/src/main/java/singularity/modules/CosmicModule.java +++ b/singularity-api/src/main/java/singularity/modules/CosmicModule.java @@ -86,8 +86,13 @@ public void stop() { if (! isEnabled()) return; for (ModuleCommand command : this.getCommands()) { - ModuleUtils.logInfo(this, "Unregistering command: " + command.getIdentifier()); - command.unregister(); + try { + ModuleUtils.logInfo(this, "Unregistering command: " + command.getIdentifier()); + command.unregister(); + } catch (Throwable e) { + ModuleUtils.logWarning(this, "Failed to unregister command: " + command.getIdentifier()); + ModuleUtils.logWarning(this, e.getStackTrace()); + } } ModuleUtils.fireEvent(new ModuleDisableEvent(this)); @@ -101,6 +106,14 @@ public void restart() { start(); } + public void unregister() { + ModuleManager.unregisterModule(this); + } + + public void register() { + ModuleManager.registerModule(this); + } + public void onLoad() { /* Nothing as of right now. diff --git a/singularity-api/src/main/java/singularity/objects/CosmicFavicon.java b/singularity-api/src/main/java/singularity/objects/CosmicFavicon.java index 228b7788..857212ba 100644 --- a/singularity-api/src/main/java/singularity/objects/CosmicFavicon.java +++ b/singularity-api/src/main/java/singularity/objects/CosmicFavicon.java @@ -7,14 +7,17 @@ import com.google.gson.stream.JsonWriter; import lombok.Getter; import lombok.NonNull; +import lombok.Setter; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.net.URI; import java.net.URL; -@Getter +@Getter @Setter public class CosmicFavicon { private static final TypeAdapter FAVICON_TYPE_ADAPTER = new TypeAdapter<>() { @Override @@ -25,12 +28,41 @@ public void write(JsonWriter out, CosmicFavicon value) throws IOException { @Override public CosmicFavicon read(JsonReader in) throws IOException { String enc = TypeAdapters.STRING.read(in); - return enc == null ? null : create(enc); + if ( enc == null ) + { + return null; + } + + // decode + byte[] imageBytes = BaseEncoding.base64().decode( enc.substring( "data:image/png;base64,".length() ) ); + BufferedImage image; + try + { + image = ImageIO.read( new ByteArrayInputStream( imageBytes ) ); + } catch ( IOException e ) + { + throw new IOException( "Failed to decode favicon", e ); + } + + // check size + if ( image.getWidth() != 64 || image.getHeight() != 64 ) + { + throw new IOException( "Favicon must be exactly 64x64 pixels" ); + } + + // create + CosmicFavicon favicon = new CosmicFavicon( enc, image ); + if ( favicon.getEncoded().length() > Short.MAX_VALUE ) + { + throw new IOException( "Favicon file too large for server to process" ); + } + return favicon; } }; - public CosmicFavicon(@NonNull String encoded) { + public CosmicFavicon(@NonNull String encoded, @NonNull BufferedImage image) { this.encoded = encoded; + this.image = image; } public static TypeAdapter getFaviconTypeAdapter() @@ -44,6 +76,9 @@ public static TypeAdapter getFaviconTypeAdapter() @NonNull private final String encoded; + @NonNull + private final BufferedImage image; + /** * Creates a favicon from an image. * @@ -83,23 +118,14 @@ public static CosmicFavicon create(BufferedImage image) } // create - return new CosmicFavicon( encoded ); - } - - /** - * Creates a Favicon from an encoded PNG. - * - * @param encodedString a base64 mime encoded PNG string - * @return the created favicon - * @deprecated Use #create(java.awt.image.BufferedImage) instead - */ - @Deprecated - public static CosmicFavicon create(String encodedString) - { - return new CosmicFavicon( encodedString ); + return new CosmicFavicon( encoded, image ); } public static CosmicFavicon createFromURL(URL url) throws IOException { return create(ImageIO.read(url)); } + + public static CosmicFavicon createFromURL(String url) throws IOException { + return createFromURL(URI.create(url).toURL()); + } } diff --git a/singularity-api/src/main/java/singularity/objects/PingedResponse.java b/singularity-api/src/main/java/singularity/objects/PingedResponse.java index c87240f7..b93646c8 100644 --- a/singularity-api/src/main/java/singularity/objects/PingedResponse.java +++ b/singularity-api/src/main/java/singularity/objects/PingedResponse.java @@ -6,6 +6,8 @@ import lombok.Setter; import singularity.data.uuid.UuidManager; +import java.io.IOException; +import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -96,13 +98,12 @@ public static class ModItem // create the server ping. Vanilla clients will ignore this. private final ModInfo modinfo = new ModInfo(); - public PingedResponse(Protocol version, Players players, String description) { + public PingedResponse(Protocol version, Players players, String description) throws IOException { this(version, players, description, (String) null); } - public PingedResponse(Protocol version, Players players, String description, String favicon) - { - this( version, players, description, favicon == null ? null : CosmicFavicon.create(favicon)); + public PingedResponse(Protocol version, Players players, String description, String favicon) throws IOException { + this( version, players, description, favicon == null ? null : CosmicFavicon.createFromURL(favicon)); } public PingedResponse(Protocol version, Players players, String description, CosmicFavicon favicon) @@ -117,9 +118,4 @@ public String getFaviconString() { return getFavicon() == null ? null : getFavicon().getEncoded(); } - - public void setFaviconString(String favicon) - { - setFavicon(favicon == null ? null : CosmicFavicon.create( favicon ) ); - } } diff --git a/spigot/build.gradle b/spigot/build.gradle index 9e818bdb..558fc6a8 100644 --- a/spigot/build.gradle +++ b/spigot/build.gradle @@ -1,13 +1,13 @@ dependencies { // Platform dependencies. // Spigot (commented out: uncomment if needed) - // compileOnly "org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT" +// compileOnly "org.spigotmc:spigot-api:1.21.4-R0.1-SNAPSHOT" // Paper (commented out: uncomment if needed) - // compileOnly "io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT" + compileOnly "io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT" // Use Spigot API for version 1.16.5 - compileOnly "org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT" +// compileOnly "org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT" // Defaults. compileOnly(files(FILES)) diff --git a/spigot/src/main/java/net/streamline/base/TenSecondTimer.java b/spigot/src/main/java/net/streamline/base/TenSecondTimer.java index 0a1247dc..f007c176 100644 --- a/spigot/src/main/java/net/streamline/base/TenSecondTimer.java +++ b/spigot/src/main/java/net/streamline/base/TenSecondTimer.java @@ -42,6 +42,8 @@ public void run() { CosmicLocation streamlineLocation = new CosmicLocation(cosmicServer, streamlineWorld, streamlinePosition, streamlineRotation); + streamPlayer.setLocation(streamlineLocation); + PlayerLocationMessageBuilder.build(streamPlayer, streamlineLocation, streamPlayer).send(); } diff --git a/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java b/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java index 72d1be1d..90d92426 100644 --- a/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java +++ b/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java @@ -10,6 +10,7 @@ import singularity.data.players.location.PlayerRotation; import singularity.data.players.location.PlayerWorld; import singularity.data.players.location.WorldPosition; +import singularity.data.server.CosmicServer; import singularity.data.teleportation.TPTicket; import singularity.utils.MessageUtils; @@ -49,7 +50,7 @@ private void processTicket(TPTicket ticket) { return; } - if (ticket.getTargetServer().getIdentifier().equals(GivenConfigs.getServerName())) { + if (isOnCorrectServer(ticket)) { Player player = Bukkit.getPlayer(UUID.fromString(ticket.getIdentifier())); if (player == null) { clearTicket(ticket, 2); @@ -64,6 +65,19 @@ private void processTicket(TPTicket ticket) { } } + public static boolean isOnCorrectServer(TPTicket ticket) { + CosmicServer targetServer = ticket.getTargetServer(); + String myServer = GivenConfigs.getServerName(); + + if (targetServer == null || myServer == null) { + return true; + } + + if (targetServer.getIdentifier().equals("--null")) return true; + + return targetServer.getIdentifier().equals(myServer); + } + private void teleportPlayer(Player player, TPTicket ticket) { PlayerWorld world = ticket.getTargetWorld(); WorldPosition position = ticket.getTargetLocation(); @@ -87,7 +101,8 @@ private void teleportPlayer(Player player, TPTicket ticket) { ); player.teleport(location); - MessageUtils.logInfo("Teleported " + player.getName() + " to " + location); +// MessageUtils.logInfo("Teleported " + player.getName() + " to X: " + position.getX() + +// ", Y: " + position.getY() + ", Z: " + position.getZ() + " in world " + world.getIdentifier()); } catch (Exception e) { MessageUtils.logWarning("Failed to teleport player " + player.getName(), e); } @@ -96,6 +111,6 @@ private void teleportPlayer(Player player, TPTicket ticket) { private static void clearTicket(TPTicket ticket, int instance) { ticket.clear(); - MessageUtils.logInfo("Cleared teleportation ticket for player " + ticket.getIdentifier() + ". [" + instance + "]"); +// MessageUtils.logInfo("Cleared teleportation ticket for player " + ticket.getIdentifier() + ". [" + instance + "]"); } } diff --git a/spigot/src/main/java/net/streamline/platform/Messenger.java b/spigot/src/main/java/net/streamline/platform/Messenger.java index 4bf4feb4..54dfd938 100644 --- a/spigot/src/main/java/net/streamline/platform/Messenger.java +++ b/spigot/src/main/java/net/streamline/platform/Messenger.java @@ -1,6 +1,8 @@ package net.streamline.platform; +import host.plas.bou.commands.Sender; import host.plas.bou.utils.ColorUtils; +import host.plas.bou.utils.SenderUtils; import lombok.Getter; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.chat.BaseComponent; @@ -33,57 +35,57 @@ public Messenger() { } public static String colorAsString(String message) { - StringBuilder builder = new StringBuilder(); - - for (BaseComponent component : ColorUtils.color(message)) { - builder.append(component.toLegacyText()); - } - - return builder.toString(); + return ColorUtils.colorAsString(message); } public void sendMessage(@Nullable CommandSender to, String message) { if (to == null) return; + Sender s = SenderUtils.getSender(to); if (! SLAPI.isReady()) { - to.sendMessage(simplify(codedText(message))); + s.sendMessage(message); } else { - to.sendMessage(simplify(codedText(replaceAllPlayerBungee(to, message)))); + s.sendMessage(replaceAllPlayerBungee(to, message)); } } public void sendMessage(@Nullable CommandSender to, String otherUUID, String message) { if (to == null) return; + Sender s = SenderUtils.getSender(to); if (! SLAPI.isReady()) { - to.sendMessage(simplify(codedText(message))); + s.sendMessage(message); } else { - to.sendMessage(simplify(codedText(MessageUtils.replaceAllPlayerBungee(otherUUID, message)))); + s.sendMessage(MessageUtils.replaceAllPlayerBungee(otherUUID, message)); } } public void sendMessage(@Nullable CommandSender to, CosmicSender other, String message) { if (to == null) return; + Sender s = SenderUtils.getSender(to); if (! SLAPI.isReady()) { - to.sendMessage(simplify(codedText(message))); + s.sendMessage(message); } else { - to.sendMessage(simplify(codedText(MessageUtils.replaceAllPlayerBungee(other, message)))); + s.sendMessage(MessageUtils.replaceAllPlayerBungee(other, message)); } } + @Override public void sendMessage(@Nullable CosmicSender to, String message) { if (to == null) return; - if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(to.getUuid()), message); + if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(UUID.fromString(to.getUuid())), message); else sendMessage(Bukkit.getConsoleSender(), message); } - + + @Override public void sendMessage(@Nullable CosmicSender to, String otherUUID, String message) { if (to == null) return; - if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(to.getUuid()), otherUUID, message); + if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(UUID.fromString(to.getUuid())), otherUUID, message); else sendMessage(Bukkit.getConsoleSender(), otherUUID, message); } + @Override public void sendMessage(@Nullable CosmicSender to, CosmicSender other, String message) { if (to == null || other == null) return; - if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(to.getUuid()), other, message); + if (to instanceof CosmicPlayer) sendMessage(Bukkit.getPlayer(UUID.fromString(to.getUuid())), other, message); else sendMessage(Bukkit.getConsoleSender(), other, message); } @@ -120,34 +122,28 @@ public void sendMessageRaw(CommandSender to, CosmicSender other, String message) to.sendMessage(r); } + @Override public void sendMessageRaw(@Nullable CosmicSender to, String message) { if (to == null) return; - if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(to.getUuid()), message); + if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(UUID.fromString(to.getUuid())), message); else sendMessageRaw(Bukkit.getConsoleSender(), message); } + @Override public void sendMessageRaw(@Nullable CosmicSender to, String otherUUID, String message) { if (to == null) return; - if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(to.getUuid()), otherUUID, message); + if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(UUID.fromString(to.getUuid())), otherUUID, message); else sendMessageRaw(Bukkit.getConsoleSender(), otherUUID, message); } + @Override public void sendMessageRaw(@Nullable CosmicSender to, CosmicSender other, String message) { if (to == null || other == null) return; - if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(to.getUuid()), other, message); + if (to instanceof CosmicPlayer) sendMessageRaw(Bukkit.getPlayer(UUID.fromString(to.getUuid())), other, message); else sendMessageRaw(Bukkit.getConsoleSender(), other, message); } - public String simplify(BaseComponent... components) { - StringBuilder builder = new StringBuilder(); - - for (BaseComponent component : components) { - builder.append(component.toLegacyText()); - } - - return builder.toString(); - } - + @Override public void sendTitle(CosmicSender player, CosmicTitle title) { Player p = Streamline.getPlayer(player.getUuid()); if (p == null) { @@ -166,61 +162,28 @@ public void sendTitle(CosmicSender player, CosmicTitle title) { @Override public String codedString(String from) { - return ChatColor.translateAlternateColorCodes('&', ModuleUtils.newLined(from)); + return codedStringBOU(from); } + @Override public String stripColor(String string){ return ChatColor.stripColor(string).replaceAll("([<][#][1-9a-f][1-9a-f][1-9a-f][1-9a-f][1-9a-f][1-9a-f][>])+", ""); } + public String codedStringBOU(String value) { + return host.plas.bou.utils.MessageUtils.codedString(value); // Already new-lined. + } + + public BaseComponent[] colorizeBOU(String value) { + return ColorUtils.color(value); + } + public BaseComponent[] codedText(String from) { - String raw = from; - - List componentsList = new ArrayList<>(); - - // Handle hex codes - for (HexPolicy policy : TextManager.getHexPolicies()) { - for (String hexCode : TextManager.extractHexCodes(raw, policy)) { - String original = hexCode; - if (! hexCode.startsWith("#")) hexCode = "#" + hexCode; - String replacement = ChatColor.of(hexCode).toString(); - raw = raw.replace(policy.getResult(original), replacement); - } - } - - raw = codedString(raw); - - // Assuming codedString is another method you've implemented to replace color codes etc. - String legacy = MessageUtils.codedString(raw); - - List jsonStrings = TextManager.extractJsonStrings(legacy, "!!json:"); - - int lastEnd = 0; - - for (String jsonStr : jsonStrings) { - int index = legacy.indexOf("!!json:" + jsonStr); - String before = legacy.substring(lastEnd, index); - BaseComponent[] beforeComponent = TextComponent.fromLegacyText(before); - Collections.addAll(componentsList, beforeComponent); - - try { - BaseComponent[] jsonComponent = ComponentSerializer.parse(jsonStr); - Collections.addAll(componentsList, jsonComponent); - } catch (Exception e) { - // Handle exception - e.printStackTrace(); - } - - lastEnd = index + jsonStr.length() + 7; // 7 is the length of "!!json:" - } - - // Append any remaining text after the last JSON block - if (lastEnd < legacy.length()) { - BaseComponent[] remainingComponent = TextComponent.fromLegacyText(legacy.substring(lastEnd)); - Collections.addAll(componentsList, remainingComponent); - } + return colorizeBOU(from); + } - return componentsList.toArray(new BaseComponent[0]); + public String colorizeHard(String value) { + return ColorUtils.colorizeHard(value); } public String replaceAllPlayerBungee(CommandSender sender, String of) { diff --git a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java index af9983ee..2dbd7cfe 100644 --- a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java +++ b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java @@ -30,9 +30,9 @@ public StreamlineSpigotCommand() { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (args == null) args = new String[] { "" }; - String commandName = args[0]; + String alias = args[0]; - CosmicCommand streamlineCommand = CommandHandler.getStreamlineCommand(commandName); + CosmicCommand streamlineCommand = CommandHandler.getCommandByAlias(alias); if (streamlineCommand == null) { sender.sendMessage(ChatColor.RED + "Command not found."); return true; @@ -54,17 +54,15 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command @Override public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (args.length == 0) { - return StringUtils.getAsCompletionList("", - CommandHandler.getLoadedStreamlineCommands().values().stream().map(CosmicCommand::getBase).collect(Collectors.toList())); + return StringUtils.getAsCompletionList("", CommandHandler.getAllAliases()); } if (args.length == 1) { - return StringUtils.getAsCompletionList(args[0], - CommandHandler.getLoadedStreamlineCommands().values().stream().map(CosmicCommand::getBase).collect(Collectors.toList())); + return StringUtils.getAsCompletionList(args[0], CommandHandler.getAllAliases()); } - String commandName = args[0]; + String alias = args[0]; - CosmicCommand streamlineCommand = CommandHandler.getStreamlineCommand(commandName); + CosmicCommand streamlineCommand = CommandHandler.getCommandByAlias(alias); if (streamlineCommand == null) return null; String[] newArgs = StringUtils.argsMinus(args, 0); diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java new file mode 100644 index 00000000..0e9cc6dd --- /dev/null +++ b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java @@ -0,0 +1,109 @@ +package net.streamline.platform.listeners; + +import com.destroystokyo.paper.event.server.PaperServerListPingEvent; +import com.destroystokyo.paper.profile.PlayerProfile; +import com.destroystokyo.paper.profile.ProfileProperty; +import host.plas.bou.utils.ClassHelper; +import host.plas.bou.utils.ColorUtils; +import net.streamline.base.Streamline; +import net.streamline.platform.Messenger; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.util.CachedServerIcon; +import singularity.events.server.ping.PingReceivedEvent; +import singularity.objects.CosmicFavicon; +import singularity.objects.PingedResponse; + +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +public class PaperListener implements Listener { + public PaperListener() { + if (! ClassHelper.isPaper()) return; + + Bukkit.getPluginManager().registerEvents(this, Streamline.getInstance()); + Streamline.getInstance().logInfo("PaperListener registered."); + } + + @EventHandler + public void onPing(PaperServerListPingEvent event) { + String hostName; + try { + hostName = event.getAddress().getHostName(); + } catch (Throwable e) { + hostName = ""; + } + + PingedResponse.Protocol protocol = new PingedResponse.Protocol("latest", 1); + + List playerInfos = new ArrayList<>(); + for (Player player : Bukkit.getOnlinePlayers()) { + playerInfos.add(new PingedResponse.PlayerInfo(player.getName(), player.getUniqueId().toString())); + } + + PingedResponse.Players players = new PingedResponse.Players(event.getMaxPlayers(), event.getNumPlayers(), + playerInfos.toArray(new PingedResponse.PlayerInfo[0])); + + PingedResponse response; + try { + response = new PingedResponse(protocol, players, event.getMotd()); + } catch (Throwable e) { + Streamline.getInstance().logWarning("Failed to create PingedResponse: " + e.getMessage()); + Streamline.getInstance().logWarning(e.getStackTrace()); + return; + } + + PingReceivedEvent pingReceivedEvent = new PingReceivedEvent(response, hostName).fire(); + + if (pingReceivedEvent.isCancelled()) { + return; + } + + event.setMotd(Messenger.colorAsString(pingReceivedEvent.getResponse().getDescription())); + + // Set the sample of the server (the players displayed when hovering over the player count) + try { + event.getPlayerSample().clear(); + + List playerSample = new ArrayList<>(); + for (PingedResponse.PlayerInfo playerInfo : pingReceivedEvent.getResponse().getPlayers().getSample()) { + try { + PlayerProfile profile = Bukkit.getServer().createProfile(playerInfo.getUniqueId()); + profile.setName(ColorUtils.colorizeHard(playerInfo.getName())); + playerSample.add(profile); + } catch (Throwable e) { + // do nothing. + } + } + + event.getPlayerSample().addAll(playerSample); + } catch (Throwable e) { + Streamline.getInstance().logWarning("Failed to set player sample: " + e.getMessage()); + Streamline.getInstance().logWarning(e.getStackTrace()); + } + + event.setMaxPlayers(pingReceivedEvent.getResponse().getPlayers().getMax()); + event.setNumPlayers(pingReceivedEvent.getResponse().getPlayers().getOnline()); + + CosmicFavicon favicon = pingReceivedEvent.getResponse().getFavicon(); + if (favicon != null) { + try { + CachedServerIcon icon = Bukkit.loadServerIcon(favicon.getImage()); + event.setServerIcon(icon); + } catch (Throwable e) { + Streamline.getInstance().logWarning("Failed to set server icon: " + e.getMessage()); + Streamline.getInstance().logWarning(e.getStackTrace()); + } + } + + try { + CachedServerIcon icon = Bukkit.loadServerIcon(Paths.get(pingReceivedEvent.getResponse().getFaviconString()).toFile()); + event.setServerIcon(icon); + } catch (Exception e) { + // do nothing. + } + } +} diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java index 3fed724c..49b17878 100644 --- a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -1,5 +1,6 @@ package net.streamline.platform.listeners; +import host.plas.bou.utils.ClassHelper; import lombok.Getter; import lombok.Setter; import net.streamline.api.SLAPI; @@ -9,13 +10,12 @@ import net.streamline.platform.events.ProperEvent; import net.streamline.platform.savables.UserManager; import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.AsyncPlayerPreLoginEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.*; import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.event.server.ServerLoadEvent; import org.bukkit.plugin.messaging.PluginMessageListener; @@ -26,7 +26,12 @@ import singularity.configs.given.whitelist.WhitelistConfig; import singularity.configs.given.whitelist.WhitelistEntry; import singularity.data.players.CosmicPlayer; +import singularity.data.players.location.CosmicLocation; +import singularity.data.players.location.PlayerRotation; +import singularity.data.players.location.PlayerWorld; +import singularity.data.players.location.WorldPosition; import singularity.data.uuid.UuidManager; +import singularity.events.player.location.PlayerMovementEvent; import singularity.events.server.*; import singularity.events.server.ping.PingReceivedEvent; import singularity.messages.events.ProxyMessageInEvent; @@ -56,10 +61,17 @@ public static boolean isTested() { return isMessaged() && isJoined(); } + @Getter @Setter + public static PaperListener paperListener; + public PlatformListener() { MessageUtils.logInfo("BaseListener registered!"); setProcessorListener(new BaseProcessorListener()); ModuleUtils.listen(getProcessorListener(), SLAPI.getBaseModule()); + + if (ClassHelper.isPaper()) { + paperListener = new PaperListener(); + } } @EventHandler @@ -98,6 +110,24 @@ public void onJoin(PlayerJoinEvent event) { streamPlayer.setCurrentIp(UserManager.getInstance().parsePlayerIP(player)); streamPlayer.setCurrentName(player.getName()); + CosmicLocation location = streamPlayer.getLocation(); + + Location loc = player.getLocation(); + World w = loc.getWorld(); + if (w != null) { + PlayerWorld world = new PlayerWorld(w.getName()); + WorldPosition position = new WorldPosition(loc.getX(), loc.getY(), loc.getZ()); + PlayerRotation rotation = new PlayerRotation(loc.getYaw(), loc.getPitch()); + + CosmicLocation newLocation = new CosmicLocation(location.getServer(), world, position, rotation); + +// PlayerMovementEvent e = new PlayerMovementEvent(streamPlayer, newLocation).fire(); +// e.completeMovement(); + + streamPlayer.setLocation(newLocation); + streamPlayer.save(); + } + LoginCompletedEvent loginCompletedEvent = new LoginCompletedEvent(streamPlayer); ModuleUtils.fireEvent(loginCompletedEvent); @@ -182,6 +212,8 @@ public void onProxiedMessageReceived(ProxyMessageInEvent event) { @EventHandler public void onPing(ServerListPingEvent event) { + if (ClassHelper.isPaper()) return; // Handled by PaperListener + String hostName; try { hostName = event.getAddress().getHostName(); @@ -199,7 +231,14 @@ public void onPing(ServerListPingEvent event) { PingedResponse.Players players = new PingedResponse.Players(event.getMaxPlayers(), event.getNumPlayers(), playerInfos.toArray(new PingedResponse.PlayerInfo[0])); - PingedResponse response = new PingedResponse(protocol, players, event.getMotd()); + PingedResponse response; + try { + response = new PingedResponse(protocol, players, event.getMotd()); + } catch (Throwable e) { + Streamline.getInstance().logWarning("Failed to create PingedResponse: " + e.getMessage()); + Streamline.getInstance().logWarning(e.getStackTrace()); + return; + } PingReceivedEvent pingReceivedEvent = new PingReceivedEvent(response, hostName).fire(); @@ -222,4 +261,31 @@ public void onPing(ServerListPingEvent event) { // do nothing. } } + + @EventHandler(ignoreCancelled = true) + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + + CosmicPlayer streamPlayer = UserUtils.getOrCreatePlayer(player.getUniqueId().toString()); + if (streamPlayer == null) return; + + Location loc = event.getTo(); + if (loc == null) return; + if (loc.getWorld() == null) return; + + CosmicLocation location = streamPlayer.getLocation(); + PlayerWorld world = new PlayerWorld(loc.getWorld().getName()); + WorldPosition position = new WorldPosition(loc.getX(), loc.getY(), loc.getZ()); + PlayerRotation rotation = new PlayerRotation(loc.getYaw(), loc.getPitch()); + + CosmicLocation newLocation = new CosmicLocation(location.getServer(), world, position, rotation); + + PlayerMovementEvent e = new PlayerMovementEvent(streamPlayer, newLocation).fire(); + if (e.isCancelled()) { + event.setCancelled(true); + return; + } + + streamPlayer.setLocation(e.getNewLocation()); + } } diff --git a/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java index e3950e7c..ba753def 100644 --- a/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -32,6 +32,7 @@ import singularity.messages.proxied.ProxiedMessage; import singularity.modules.ModuleManager; import singularity.modules.ModuleUtils; +import singularity.objects.CosmicFavicon; import singularity.objects.PingedResponse; import singularity.utils.MessageUtils; import singularity.utils.UserUtils; @@ -194,10 +195,16 @@ public void onPing(ProxyPingEvent event) { players = new PingedResponse.Players(0, 0, new PingedResponse.PlayerInfo[0]); } PingedResponse response; - if (ping.getFavicon().isEmpty()) { - response = new PingedResponse(protocol, players, Messenger.getInstance().asString(ping.getDescriptionComponent())); - } else { - response = new PingedResponse(protocol, players, Messenger.getInstance().asString(ping.getDescriptionComponent()), ping.getFavicon().toString()); + try { + if (ping.getFavicon().isEmpty()) { + response = new PingedResponse(protocol, players, Messenger.getInstance().asString(ping.getDescriptionComponent())); + } else { + response = new PingedResponse(protocol, players, Messenger.getInstance().asString(ping.getDescriptionComponent()), ping.getFavicon().toString()); + } + } catch (Throwable e) { + MessageUtils.logWarning("Failed to get favicon from ping: " + e.getMessage()); + MessageUtils.logWarning(e.getStackTrace()); + return; } PingReceivedEvent pingReceivedEvent = new PingReceivedEvent(response, hostName).fire(); @@ -227,8 +234,11 @@ public void onPing(ProxyPingEvent event) { builder.description(Messenger.getInstance().codedText(ModuleUtils.replacePlaceholders(pingReceivedEvent.getResponse().getDescription()))); try { - Favicon favicon = Favicon.create(Paths.get(pingReceivedEvent.getResponse().getFavicon().getEncoded())); - builder.favicon(favicon); + CosmicFavicon favicon = pingReceivedEvent.getResponse().getFavicon(); + if (favicon != null) { + Favicon fav = Favicon.create(favicon.getImage()); + builder.favicon(fav); + } } catch (Exception e) { // do nothing. } From 8236da2225974fd12fc5508140d2b8b7b5fd60c5 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 5 Jun 2025 07:30:54 -0400 Subject: [PATCH 2/9] fix: bukkit api version issues --- spigot/src/main/resources/plugin.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/spigot/src/main/resources/plugin.yml b/spigot/src/main/resources/plugin.yml index f7a1cd63..65600d70 100644 --- a/spigot/src/main/resources/plugin.yml +++ b/spigot/src/main/resources/plugin.yml @@ -2,8 +2,6 @@ name: '${name}' version: '${version}' main: 'net.streamline.base.Streamline' -api-version: 1.21 - authors: [ Drak ] website: https://github.com/Streamline-Essentials description: True potential is here. A Proxy and Spigot plugin that opens up endless cross-platform possibilities. From c9f2bd0588163ad94be33a4351bae22bd69c0c02 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 5 Jun 2025 07:33:42 -0400 Subject: [PATCH 3/9] fix: hex related issues --- .../main/java/net/streamline/platform/Messenger.java | 8 +++++++- .../streamline/platform/listeners/PaperListener.java | 5 ++--- .../platform/listeners/PlatformListener.java | 2 +- .../streamline/platform/savables/ConsoleHolder.java | 10 ++++++---- .../streamline/platform/savables/PlayerInterface.java | 11 ++++++----- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/spigot/src/main/java/net/streamline/platform/Messenger.java b/spigot/src/main/java/net/streamline/platform/Messenger.java index 54dfd938..fe04b5ea 100644 --- a/spigot/src/main/java/net/streamline/platform/Messenger.java +++ b/spigot/src/main/java/net/streamline/platform/Messenger.java @@ -34,8 +34,14 @@ public Messenger() { instance = this; } + @Deprecated public static String colorAsString(String message) { - return ColorUtils.colorAsString(message); + return colorAsStringBOU(message); + } + + @Deprecated + public static String colorAsStringBOU(String message) { + return host.plas.bou.utils.MessageUtils.codedString(message); // Already new-lined. } public void sendMessage(@Nullable CommandSender to, String message) { diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java index 0e9cc6dd..f035df0c 100644 --- a/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java +++ b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java @@ -2,7 +2,6 @@ import com.destroystokyo.paper.event.server.PaperServerListPingEvent; import com.destroystokyo.paper.profile.PlayerProfile; -import com.destroystokyo.paper.profile.ProfileProperty; import host.plas.bou.utils.ClassHelper; import host.plas.bou.utils.ColorUtils; import net.streamline.base.Streamline; @@ -62,7 +61,7 @@ public void onPing(PaperServerListPingEvent event) { return; } - event.setMotd(Messenger.colorAsString(pingReceivedEvent.getResponse().getDescription())); + event.setMotd(Messenger.getInstance().codedString(pingReceivedEvent.getResponse().getDescription())); // Set the sample of the server (the players displayed when hovering over the player count) try { @@ -72,7 +71,7 @@ public void onPing(PaperServerListPingEvent event) { for (PingedResponse.PlayerInfo playerInfo : pingReceivedEvent.getResponse().getPlayers().getSample()) { try { PlayerProfile profile = Bukkit.getServer().createProfile(playerInfo.getUniqueId()); - profile.setName(ColorUtils.colorizeHard(playerInfo.getName())); + profile.setName(Messenger.getInstance().codedString(playerInfo.getName())); playerSample.add(profile); } catch (Throwable e) { // do nothing. diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java index 49b17878..43f39c85 100644 --- a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -246,7 +246,7 @@ public void onPing(ServerListPingEvent event) { return; } - event.setMotd(Messenger.colorAsString(pingReceivedEvent.getResponse().getDescription())); + event.setMotd(Messenger.getInstance().codedString(pingReceivedEvent.getResponse().getDescription())); // Set the sample of the server (the players displayed when hovering over the player count) // does not work right now... diff --git a/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java b/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java index 56fa3c30..7aadea28 100644 --- a/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java +++ b/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java @@ -1,7 +1,9 @@ package net.streamline.platform.savables; +import host.plas.bou.commands.Sender; import lombok.Getter; import lombok.Setter; +import net.streamline.base.Streamline; import net.streamline.platform.Messenger; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; @@ -31,12 +33,12 @@ public void removePermission(String permission) { @Override public void sendMessage(String message) { - getConsole().sendMessage(Messenger.getInstance().codedString(message)); + new Sender(getConsole()).sendMessage(message); } @Override public void sendMessageRaw(String message) { - getConsole().sendMessage(message); + new Sender(getConsole()).sendMessage(message, false); } @Override @@ -46,12 +48,12 @@ public void sendConsoleMessageNonNull(String message) { @Override public void sendLogMessage(String message) { - Bukkit.getLogger().info(message); + Streamline.getInstance().logInfo(message); } @Override public void runCommand(String command) { - Bukkit.dispatchCommand(getConsole(), command); + new Sender(getConsole()).executeCommand(command); } }; } diff --git a/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java b/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java index d8a08fa4..2a1d0f30 100644 --- a/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java +++ b/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java @@ -1,5 +1,6 @@ package net.streamline.platform.savables; +import host.plas.bou.commands.Sender; import lombok.Getter; import lombok.Setter; import net.luckperms.api.LuckPerms; @@ -31,23 +32,23 @@ public PlayerGetter getPlayerGetter(String playerName) { public RealPlayer getPlayer(PlayerGetter playerGetter) { return new RealPlayer<>(playerGetter) { @Override - public void chatAs(String command) { - getPlayer().chat(command); + public void chatAs(String message) { + new Sender(getPlayer()).chatAs(message); } @Override public void runCommand(String command) { - Bukkit.dispatchCommand(getPlayer(), command); + new Sender(getPlayer()).executeCommand(command); } @Override public void sendMessage(String message) { - getPlayer().sendMessage(Messenger.getInstance().codedString(message)); + new Sender(getPlayer()).sendMessage(message); } @Override public void sendMessageRaw(String message) { - getPlayer().sendMessage(message); + new Sender(getPlayer()).sendMessage(message, false); } @Override From 5e0af11cf76b922535ccdb5cd615514eb1a0938d Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 5 Jun 2025 07:34:15 -0400 Subject: [PATCH 4/9] version: bump --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 440f44f2..57e9d87e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.vfs.watch = false # Other properties name = StreamlineCore group = com.github.Streamline-Essentials.StreamlineCore -version = 2.5.3.0 +version = 2.5.3.1 base-version = 6f2e7e2d From 5c1152136e78c28a3eee53b034ccf377d69e865b Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 5 Jun 2025 07:40:27 -0400 Subject: [PATCH 5/9] fix: 1st startup message issues --- .../src/main/java/singularity/modules/ModuleManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/singularity-api/src/main/java/singularity/modules/ModuleManager.java b/singularity-api/src/main/java/singularity/modules/ModuleManager.java index 898cff57..3668e3d2 100644 --- a/singularity-api/src/main/java/singularity/modules/ModuleManager.java +++ b/singularity-api/src/main/java/singularity/modules/ModuleManager.java @@ -97,9 +97,10 @@ protected PluginDescriptorFinder createPluginDescriptorFinder() { "&a&m&l %newline%" + "&cDisable ðis message in the &bmain-config.yml%newline%" + "&a&m&l %newline%" + - "&6Our &b&lWiki&7: &bhttps://wiki.plas.host/en/streamline/modules%newline%" + - "&6Our &9&lDiscord&7: &bhttps://dsc.gg/streamline%newline%" + + "&6Streamline &b&lWiki&7: &bhttps://wiki.plas.host/streamline/modules.html%newline%" + + "&6Streamline &9&lDiscord&7: &bhttps://dsc.gg/streamline%newline%" + "&6Drak&7'&6s &c&lSpigotMC &6Page&7: &bhttps://www.spigotmc.org/resources/authors/393831%newline%" + + "&6Drak&7'&6s &c&lModrinth &6Page&7: &bhttps://modrinth.com/user/MrDrak%newline%" + "&a&m&l " ; From 68298533cff8827cd8f08568c695dcbe439932a1 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 7 Jun 2025 02:52:14 -0400 Subject: [PATCH 6/9] fix: command argument completion --- .../net/streamline/platform/BasePlugin.java | 32 ++++++++++++++++++- .../platform/commands/ProperCommand.java | 16 ++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/net/streamline/platform/BasePlugin.java b/spigot/src/main/java/net/streamline/platform/BasePlugin.java index cf7bdc95..d98ea352 100644 --- a/spigot/src/main/java/net/streamline/platform/BasePlugin.java +++ b/spigot/src/main/java/net/streamline/platform/BasePlugin.java @@ -19,6 +19,7 @@ import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandMap; +import org.bukkit.command.PluginCommand; import org.bukkit.event.Event; import org.jetbrains.annotations.NotNull; import singularity.command.CosmicCommand; @@ -417,6 +418,12 @@ public static void registerCommands(ProperCommand... commands) { // Register all the commands into the map for (final ProperCommand command : commands) { commandMap.register(command.getLabel(), command.getParent().getBase(), command); + + try { + commandMap.register("streamlinecore", command); + } catch (Throwable e) { + MessageUtils.logDebugWithInfo("Failed to register command: " + command.getLabel(), e); + } } CompletableFuture.runAsync(BasePlugin::syncCommands); @@ -441,7 +448,26 @@ public static void unregisterCommands(String... commands) { continue; } - com.unregister(commandMap); + try { + com.unregister(commandMap); + } catch (Throwable e) { + MessageUtils.logDebugWithInfo("Failed to unregister command: " + command, e); + } + + try { + // Unregister the command + final Field knownCommandsField = commandMap.getClass().getDeclaredField("knownCommands"); + knownCommandsField.setAccessible(true); + @SuppressWarnings("unchecked") final Map knownCommands = (java.util.Map) knownCommandsField.get(commandMap); + + // Remove the command and its aliases + knownCommands.remove(com.getName()); + for (String alias : com.getAliases()) { + knownCommands.remove(alias); + } + } catch (Throwable e) { + MessageUtils.logDebugWithInfo("Failed to unregister command: " + command, e); + } } CompletableFuture.runAsync(BasePlugin::syncCommands); @@ -479,4 +505,8 @@ public static ConcurrentSkipListMap getPlayersByUUID() { } return map; } + + public static Command getBukkitCommand(String name) { + return commandMap.getCommand(name); + } } \ No newline at end of file diff --git a/spigot/src/main/java/net/streamline/platform/commands/ProperCommand.java b/spigot/src/main/java/net/streamline/platform/commands/ProperCommand.java index cf036709..ce299705 100644 --- a/spigot/src/main/java/net/streamline/platform/commands/ProperCommand.java +++ b/spigot/src/main/java/net/streamline/platform/commands/ProperCommand.java @@ -17,7 +17,9 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentSkipListSet; +import java.util.stream.Collectors; @Getter public class ProperCommand extends BukkitCommand implements TabExecutor, IProperCommand { @@ -46,6 +48,20 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman return r == null ? new ArrayList<>() : new ArrayList<>(MessageUtils.getCompletion(r, args[args.length - 1])); } + @Override + public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String @NotNull [] args) throws IllegalArgumentException { + List completions = onTabComplete(sender, this, alias, args); + if (completions == null) { + return new ArrayList<>(); + } + + return completions.stream() + .filter(Objects::nonNull) + .map(String::trim) + .filter(s -> ! s.isEmpty()) + .collect(Collectors.toList()); + } + public void register() { try { Streamline.registerCommands(this); From 4ef494138ba52afb1e11ea7edf009e85662e76e1 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 7 Jun 2025 02:52:35 -0400 Subject: [PATCH 7/9] version: bump --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 57e9d87e..246c83c7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.vfs.watch = false # Other properties name = StreamlineCore group = com.github.Streamline-Essentials.StreamlineCore -version = 2.5.3.1 +version = 2.5.3.2 base-version = 6f2e7e2d From 4ab4f8c9664b5914e0505cdfe4f9017caf64480d Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 7 Jun 2025 02:53:16 -0400 Subject: [PATCH 8/9] change: make StreamlineSpigotCommand use BOU BetterCommand class --- .../commands/StreamlineSpigotCommand.java | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java index 2dbd7cfe..ebb04d07 100644 --- a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java +++ b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java @@ -1,5 +1,7 @@ package net.streamline.platform.commands; +import host.plas.bou.commands.CommandContext; +import host.plas.bou.commands.SimplifiedCommand; import net.streamline.base.Streamline; import net.streamline.platform.savables.UserManager; import org.bukkit.ChatColor; @@ -16,33 +18,34 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.concurrent.ConcurrentSkipListSet; import java.util.stream.Collectors; -public class StreamlineSpigotCommand implements TabExecutor { +public class StreamlineSpigotCommand extends SimplifiedCommand { public StreamlineSpigotCommand() { - try { - Objects.requireNonNull(Streamline.getInstance().getCommand("streamlinespigot")).setExecutor(this); - } catch (Exception e) { - e.printStackTrace(); - } + super("streamlinespigot", Streamline.getInstance()); } @Override - public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { - if (args == null) args = new String[] { "" }; - String alias = args[0]; + public boolean command(CommandContext ctx) { + if (ctx.getArgCount() < 1) { + ctx.sendMessage("&cCommand not found."); + return false; + } + + String alias = ctx.getStringArg(0); CosmicCommand streamlineCommand = CommandHandler.getCommandByAlias(alias); if (streamlineCommand == null) { - sender.sendMessage(ChatColor.RED + "Command not found."); - return true; + ctx.sendMessage("&cCommand not found."); + return false; } - String[] newArgs = StringUtils.argsMinus(args, 0); + String[] newArgs = StringUtils.argsMinus(ctx.getArgsAsStringArray(), 0); - CosmicSender s = UserManager.getInstance().getOrCreateSender(sender); + CosmicSender s = UserManager.getInstance().getOrCreateSender(ctx.getCommandSender()); if (s == null) { - sender.sendMessage(ChatColor.RED + "Could not find your user..."); + ctx.sendMessage("&cCould not find your user..."); return true; } @@ -52,24 +55,21 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command @Nullable @Override - public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { - if (args.length == 0) { - return StringUtils.getAsCompletionList("", CommandHandler.getAllAliases()); - } - if (args.length == 1) { - return StringUtils.getAsCompletionList(args[0], CommandHandler.getAllAliases()); + public ConcurrentSkipListSet tabComplete(CommandContext ctx) { + if (ctx.getArgCount() <= 1) { + return CommandHandler.getAllAliases(); } - String alias = args[0]; + String alias = ctx.getStringArg(0); CosmicCommand streamlineCommand = CommandHandler.getCommandByAlias(alias); if (streamlineCommand == null) return null; - String[] newArgs = StringUtils.argsMinus(args, 0); + String[] newArgs = StringUtils.argsMinus(ctx.getArgsAsStringArray(), 0); - CosmicSender s = UserManager.getInstance().getOrCreateSender(sender); + CosmicSender s = UserManager.getInstance().getOrCreateSender(ctx.getCommandSender()); if (s == null) return null; - return new ArrayList<>(streamlineCommand.baseTabComplete(s, newArgs)); + return streamlineCommand.baseTabComplete(s, newArgs); } } From d73ea357eda8044c64b32e1b3e1a9fdbed7f3bf5 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 21 Jun 2025 15:55:24 -0400 Subject: [PATCH 9/9] update: clean up code and use new TheBase library. --- .../net/streamline/api/base/commands/PTagCommand.java | 6 +++--- .../streamline/api/base/commands/PlaytimeCommand.java | 2 +- .../streamline/api/base/listeners/BaseListener.java | 6 +++--- .../net/streamline/api/base/module/BaseModule.java | 1 - .../api/base/ratapi/LuckpermsExpansion.java | 2 +- .../api/base/ratapi/StreamlineExpansion.java | 2 +- .../api/base/timers/AbstractPlayerTeleporter.java | 1 - .../streamline/api/permissions/MetaGrabberImpl.java | 4 ++-- .../net/streamline/apib/craft/SavedEulerAngle.java | 2 +- .../streamline/base/events/BungeeBaseListener.java | 2 +- .../main/java/net/streamline/platform/BasePlugin.java | 2 +- gradle.properties | 4 +--- singularity-api/build.gradle | 3 --- .../src/main/java/singularity/Singularity.java | 4 ++-- .../main/java/singularity/board/data/BoardData.java | 4 ++-- .../java/singularity/configs/CommandResource.java | 2 +- .../java/singularity/configs/ModularizedConfig.java | 2 +- .../configs/given/DatabaseConfigHandler.java | 2 +- .../singularity/configs/given/MainConfigHandler.java | 2 +- .../configs/given/MainMessagesHandler.java | 2 +- .../configs/given/ServerConfigHandler.java | 3 +-- .../given/punishments/PunishmentsDocument.java | 4 ++-- .../configs/given/whitelist/WhitelistConfig.java | 2 +- .../src/main/java/singularity/data/IUuidable.java | 2 +- .../data/players/location/PlayerWorld.java | 2 +- .../java/singularity/data/players/meta/MetaTag.java | 6 +++--- .../singularity/data/players/meta/SenderMeta.java | 4 ++-- .../java/singularity/data/server/CosmicServer.java | 2 +- .../java/singularity/data/teleportation/TPTicket.java | 2 +- .../java/singularity/data/update/UpdateManager.java | 1 - .../main/java/singularity/data/update/UpdateType.java | 2 +- .../src/main/java/singularity/data/uuid/UuidInfo.java | 4 ++-- .../main/java/singularity/database/DBOperator.java | 5 ++--- .../java/singularity/database/modules/DBKeeper.java | 2 +- .../singularity/database/servers/SavedServer.java | 2 +- .../src/main/java/singularity/events/CosmicEvent.java | 2 +- .../main/java/singularity/interfaces/IModuleLike.java | 2 +- .../src/main/java/singularity/loading/Loadable.java | 2 +- .../messages/answered/ReturnableMessage.java | 1 - .../singularity/messages/proxied/ProxiedMessage.java | 2 +- .../messages/proxied/ProxiedMessageManager.java | 2 +- .../main/java/singularity/modules/ModuleManager.java | 4 ++-- .../main/java/singularity/modules/ModuleUtils.java | 2 +- .../main/java/singularity/objects/PingedResponse.java | 1 - .../src/main/java/singularity/objects/SingleSet.java | 2 +- .../main/java/singularity/permissions/MetaValue.java | 2 +- .../java/singularity/placeholders/RATRegistry.java | 4 ++-- .../placeholders/handling/RATHandledString.java | 4 ++-- .../replaceables/AbstractReplaceable.java | 2 +- .../placeholders/replaceables/GenericReplaceable.java | 2 +- .../replaceables/IdentifiedReplaceable.java | 2 +- .../replaceables/IdentifiedUserReplaceable.java | 2 +- .../placeholders/replaceables/UserReplaceable.java | 2 +- .../main/java/singularity/scheduler/BaseRunnable.java | 1 - .../java/singularity/scheduler/ModuleTaskManager.java | 1 - .../src/main/java/singularity/text/HexReplacer.java | 6 +++--- .../src/main/java/singularity/text/TextManager.java | 6 +++--- .../main/java/singularity/text/UsersReplacements.java | 2 +- .../streamline/base/runnables/PlayerTeleporter.java | 8 -------- .../src/main/java/net/streamline/metrics/Metrics.java | 1 - .../main/java/net/streamline/platform/BasePlugin.java | 3 +-- .../main/java/net/streamline/platform/Messenger.java | 5 ----- .../platform/commands/StreamlineSpigotCommand.java | 11 +---------- .../streamline/platform/listeners/PaperListener.java | 1 - .../platform/listeners/PlatformListener.java | 6 +++--- .../streamline/platform/savables/ConsoleHolder.java | 1 - .../streamline/platform/savables/PlayerInterface.java | 4 ---- .../java/net/streamline/base/StreamlineVelocity.java | 1 - .../streamline/base/runnables/PlayerTeleporter.java | 3 --- .../main/java/net/streamline/platform/BasePlugin.java | 2 +- .../streamline/platform/commands/ProperCommand.java | 1 - .../platform/listeners/PlatformListener.java | 1 - .../streamline/platform/savables/PlayerInterface.java | 3 --- .../net/streamline/platform/savables/UserManager.java | 2 -- 74 files changed, 76 insertions(+), 131 deletions(-) diff --git a/api/src/main/java/net/streamline/api/base/commands/PTagCommand.java b/api/src/main/java/net/streamline/api/base/commands/PTagCommand.java index d1e2f24f..fed3970e 100644 --- a/api/src/main/java/net/streamline/api/base/commands/PTagCommand.java +++ b/api/src/main/java/net/streamline/api/base/commands/PTagCommand.java @@ -52,12 +52,12 @@ public void run(CommandContext context) { return; } - if (context.getArgCount() == 2) { - other.sendMessage(getWithOther(context.getSender(), this.messageTagsGet, playerName)); + if (context.getArgCount() == 1) { + context.sendMessage(getWithOther(context.getSender(), this.messageTagsGet, playerName)); return; } - if (context.getArgCount() < 4) { + if (context.getArgCount() < 3) { context.sendMessage(MainMessagesHandler.MESSAGES.INVALID.ARGUMENTS_TOO_FEW.get()); return; } diff --git a/api/src/main/java/net/streamline/api/base/commands/PlaytimeCommand.java b/api/src/main/java/net/streamline/api/base/commands/PlaytimeCommand.java index 46546d20..dc86c58f 100644 --- a/api/src/main/java/net/streamline/api/base/commands/PlaytimeCommand.java +++ b/api/src/main/java/net/streamline/api/base/commands/PlaytimeCommand.java @@ -51,7 +51,7 @@ public void run(CommandContext context) { } if (context.getArgCount() == 1) { - other.sendMessage(getWithOther(context.getSender(), this.messageGet, playerName)); + context.sendMessage(getWithOther(context.getSender(), this.messageGet, playerName)); return; } diff --git a/api/src/main/java/net/streamline/api/base/listeners/BaseListener.java b/api/src/main/java/net/streamline/api/base/listeners/BaseListener.java index 11cbaa67..39532e44 100644 --- a/api/src/main/java/net/streamline/api/base/listeners/BaseListener.java +++ b/api/src/main/java/net/streamline/api/base/listeners/BaseListener.java @@ -1,12 +1,12 @@ package net.streamline.api.base.listeners; +import gg.drak.thebase.events.BaseEventHandler; +import gg.drak.thebase.events.BaseEventListener; +import gg.drak.thebase.events.processing.BaseProcessor; import singularity.Singularity; import net.streamline.api.base.module.BaseModule; import singularity.messages.events.ProxyMessageInEvent; import singularity.messages.proxied.ProxiedMessageManager; -import tv.quaint.events.BaseEventHandler; -import tv.quaint.events.BaseEventListener; -import tv.quaint.events.processing.BaseProcessor; public class BaseListener implements BaseEventListener { public BaseListener() { diff --git a/api/src/main/java/net/streamline/api/base/module/BaseModule.java b/api/src/main/java/net/streamline/api/base/module/BaseModule.java index aec34e58..4252aa9b 100644 --- a/api/src/main/java/net/streamline/api/base/module/BaseModule.java +++ b/api/src/main/java/net/streamline/api/base/module/BaseModule.java @@ -2,7 +2,6 @@ import lombok.Getter; import lombok.Setter; -import net.streamline.api.base.commands.GivenCommands; import net.streamline.api.base.ratapi.LuckpermsExpansion; import singularity.Singularity; import net.streamline.api.base.listeners.BaseListener; diff --git a/api/src/main/java/net/streamline/api/base/ratapi/LuckpermsExpansion.java b/api/src/main/java/net/streamline/api/base/ratapi/LuckpermsExpansion.java index 3c2ddc2a..5b534b40 100644 --- a/api/src/main/java/net/streamline/api/base/ratapi/LuckpermsExpansion.java +++ b/api/src/main/java/net/streamline/api/base/ratapi/LuckpermsExpansion.java @@ -1,5 +1,6 @@ package net.streamline.api.base.ratapi; +import gg.drak.thebase.objects.AtomicString; import net.luckperms.api.LuckPerms; import net.luckperms.api.LuckPermsProvider; import net.luckperms.api.model.group.Group; @@ -11,7 +12,6 @@ import singularity.placeholders.expansions.RATExpansion; import singularity.placeholders.replaceables.IdentifiedUserReplaceable; import singularity.utils.UserUtils; -import tv.quaint.objects.AtomicString; import java.util.Optional; import java.util.UUID; diff --git a/api/src/main/java/net/streamline/api/base/ratapi/StreamlineExpansion.java b/api/src/main/java/net/streamline/api/base/ratapi/StreamlineExpansion.java index 0e2c9bde..10bdaed0 100644 --- a/api/src/main/java/net/streamline/api/base/ratapi/StreamlineExpansion.java +++ b/api/src/main/java/net/streamline/api/base/ratapi/StreamlineExpansion.java @@ -1,5 +1,6 @@ package net.streamline.api.base.ratapi; +import gg.drak.thebase.utils.MatcherUtils; import singularity.Singularity; import net.streamline.api.base.module.BaseModule; import singularity.configs.given.MainMessagesHandler; @@ -11,7 +12,6 @@ import singularity.placeholders.replaceables.IdentifiedReplaceable; import singularity.placeholders.replaceables.IdentifiedUserReplaceable; import singularity.utils.UserUtils; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.Optional; diff --git a/api/src/main/java/net/streamline/api/base/timers/AbstractPlayerTeleporter.java b/api/src/main/java/net/streamline/api/base/timers/AbstractPlayerTeleporter.java index 42709c84..1613e948 100644 --- a/api/src/main/java/net/streamline/api/base/timers/AbstractPlayerTeleporter.java +++ b/api/src/main/java/net/streamline/api/base/timers/AbstractPlayerTeleporter.java @@ -7,7 +7,6 @@ import singularity.utils.MessageUtils; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; diff --git a/api/src/main/java/net/streamline/api/permissions/MetaGrabberImpl.java b/api/src/main/java/net/streamline/api/permissions/MetaGrabberImpl.java index fd444626..5fcb0a0f 100644 --- a/api/src/main/java/net/streamline/api/permissions/MetaGrabberImpl.java +++ b/api/src/main/java/net/streamline/api/permissions/MetaGrabberImpl.java @@ -1,5 +1,7 @@ package net.streamline.api.permissions; +import gg.drak.thebase.objects.AtomicString; +import gg.drak.thebase.utils.MathUtils; import net.luckperms.api.LuckPerms; import net.luckperms.api.model.group.Group; import net.luckperms.api.model.user.User; @@ -13,8 +15,6 @@ import singularity.permissions.MetaKey; import singularity.permissions.MetaValue; import singularity.utils.UUIDFetcher; -import tv.quaint.objects.AtomicString; -import tv.quaint.utils.MathUtils; import java.util.Objects; import java.util.Optional; diff --git a/backend-api/src/main/java/net/streamline/apib/craft/SavedEulerAngle.java b/backend-api/src/main/java/net/streamline/apib/craft/SavedEulerAngle.java index a51128ca..fbdc5c60 100644 --- a/backend-api/src/main/java/net/streamline/apib/craft/SavedEulerAngle.java +++ b/backend-api/src/main/java/net/streamline/apib/craft/SavedEulerAngle.java @@ -1,9 +1,9 @@ package net.streamline.apib.craft; +import gg.drak.thebase.lib.leonhard.storage.sections.FlatFileSection; import lombok.Getter; import lombok.Setter; import org.bukkit.util.EulerAngle; -import tv.quaint.thebase.lib.leonhard.storage.sections.FlatFileSection; @Getter public class SavedEulerAngle { diff --git a/bungee/src/main/java/net/streamline/base/events/BungeeBaseListener.java b/bungee/src/main/java/net/streamline/base/events/BungeeBaseListener.java index e910562c..b4acc4c3 100644 --- a/bungee/src/main/java/net/streamline/base/events/BungeeBaseListener.java +++ b/bungee/src/main/java/net/streamline/base/events/BungeeBaseListener.java @@ -1,11 +1,11 @@ package net.streamline.base.events; +import gg.drak.thebase.events.processing.BaseProcessor; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.streamline.api.base.listeners.BaseListener; import net.streamline.base.Streamline; import singularity.events.player.updates.properties.PlayerIPUpdateEvent; import singularity.utils.MessageUtils; -import tv.quaint.events.processing.BaseProcessor; public class BungeeBaseListener extends BaseListener { public BungeeBaseListener() { diff --git a/bungee/src/main/java/net/streamline/platform/BasePlugin.java b/bungee/src/main/java/net/streamline/platform/BasePlugin.java index 4019c4e4..d21cf1b1 100644 --- a/bungee/src/main/java/net/streamline/platform/BasePlugin.java +++ b/bungee/src/main/java/net/streamline/platform/BasePlugin.java @@ -1,5 +1,6 @@ package net.streamline.platform; +import gg.drak.thebase.events.BaseEventHandler; import lombok.Getter; import lombok.Setter; import net.md_5.bungee.api.CommandSender; @@ -35,7 +36,6 @@ import singularity.interfaces.ISingularityExtension; import singularity.scheduler.TaskManager; import singularity.utils.UserUtils; -import tv.quaint.events.BaseEventHandler; import java.io.File; import java.util.*; diff --git a/gradle.properties b/gradle.properties index 246c83c7..61e520ae 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,8 +9,6 @@ org.gradle.vfs.watch = false # Other properties name = StreamlineCore group = com.github.Streamline-Essentials.StreamlineCore -version = 2.5.3.2 - -base-version = 6f2e7e2d +version = 2.5.4.0 plugin.main = default \ No newline at end of file diff --git a/singularity-api/build.gradle b/singularity-api/build.gradle index 7ace970b..b99846ec 100644 --- a/singularity-api/build.gradle +++ b/singularity-api/build.gradle @@ -23,9 +23,6 @@ dependencies { // JetBrains. annotationProcessor(shadow(implementation('org.jetbrains:annotations:20.1.0'))) - // Caffeine. - shadow(implementation('com.github.ben-manes.caffeine:caffeine:3.1.8')) - // Files. // implementation(shadow(files(FILES))); } \ No newline at end of file diff --git a/singularity-api/src/main/java/singularity/Singularity.java b/singularity-api/src/main/java/singularity/Singularity.java index b725dec6..e6033f04 100644 --- a/singularity-api/src/main/java/singularity/Singularity.java +++ b/singularity-api/src/main/java/singularity/Singularity.java @@ -1,5 +1,7 @@ package singularity; +import gg.drak.thebase.objects.SingleSet; +import gg.drak.thebase.objects.handling.derived.PluginEventable; import lombok.Getter; import lombok.Setter; import singularity.configs.given.GivenConfigs; @@ -22,8 +24,6 @@ import singularity.scheduler.ModuleTaskManager; import singularity.utils.MessageUtils; import singularity.utils.UserUtils; -import tv.quaint.objects.SingleSet; -import tv.quaint.objects.handling.derived.PluginEventable; import java.io.File; import java.io.IOException; diff --git a/singularity-api/src/main/java/singularity/board/data/BoardData.java b/singularity-api/src/main/java/singularity/board/data/BoardData.java index 12867221..a088c4d6 100644 --- a/singularity-api/src/main/java/singularity/board/data/BoardData.java +++ b/singularity-api/src/main/java/singularity/board/data/BoardData.java @@ -1,12 +1,12 @@ package singularity.board.data; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.board.data.constructor.BoardConstructable; import singularity.board.data.constructor.StringConstructable; -import tv.quaint.utils.MatcherUtils; import org.jetbrains.annotations.NotNull; -import tv.quaint.thebase.lib.re2j.Matcher; import java.util.List; import java.util.concurrent.ConcurrentHashMap; diff --git a/singularity-api/src/main/java/singularity/configs/CommandResource.java b/singularity-api/src/main/java/singularity/configs/CommandResource.java index 6295fc57..f6827308 100644 --- a/singularity-api/src/main/java/singularity/configs/CommandResource.java +++ b/singularity-api/src/main/java/singularity/configs/CommandResource.java @@ -1,12 +1,12 @@ package singularity.configs; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import lombok.Getter; import lombok.Setter; import singularity.command.CommandHandler; import singularity.command.CosmicCommand; import singularity.modules.ModuleLike; import singularity.modules.CosmicModule; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; import java.io.File; import java.util.Arrays; diff --git a/singularity-api/src/main/java/singularity/configs/ModularizedConfig.java b/singularity-api/src/main/java/singularity/configs/ModularizedConfig.java index 62c92157..bda85bd5 100644 --- a/singularity-api/src/main/java/singularity/configs/ModularizedConfig.java +++ b/singularity-api/src/main/java/singularity/configs/ModularizedConfig.java @@ -1,8 +1,8 @@ package singularity.configs; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import lombok.Getter; import singularity.modules.ModuleLike; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; import java.io.File; diff --git a/singularity-api/src/main/java/singularity/configs/given/DatabaseConfigHandler.java b/singularity-api/src/main/java/singularity/configs/given/DatabaseConfigHandler.java index a3c61234..886428af 100644 --- a/singularity-api/src/main/java/singularity/configs/given/DatabaseConfigHandler.java +++ b/singularity-api/src/main/java/singularity/configs/given/DatabaseConfigHandler.java @@ -1,11 +1,11 @@ package singularity.configs.given; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.database.ConnectorSet; import singularity.database.DatabaseType; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; @Getter @Setter public class DatabaseConfigHandler extends SimpleConfiguration { diff --git a/singularity-api/src/main/java/singularity/configs/given/MainConfigHandler.java b/singularity-api/src/main/java/singularity/configs/given/MainConfigHandler.java index 037cf01c..e24e0e40 100644 --- a/singularity-api/src/main/java/singularity/configs/given/MainConfigHandler.java +++ b/singularity-api/src/main/java/singularity/configs/given/MainConfigHandler.java @@ -1,7 +1,7 @@ package singularity.configs.given; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import singularity.Singularity; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; import java.util.ArrayList; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/configs/given/MainMessagesHandler.java b/singularity-api/src/main/java/singularity/configs/given/MainMessagesHandler.java index 56500cc4..aa1009c4 100644 --- a/singularity-api/src/main/java/singularity/configs/given/MainMessagesHandler.java +++ b/singularity-api/src/main/java/singularity/configs/given/MainMessagesHandler.java @@ -1,7 +1,7 @@ package singularity.configs.given; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import singularity.Singularity; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/configs/given/ServerConfigHandler.java b/singularity-api/src/main/java/singularity/configs/given/ServerConfigHandler.java index 2f93a1c9..d691a51e 100644 --- a/singularity-api/src/main/java/singularity/configs/given/ServerConfigHandler.java +++ b/singularity-api/src/main/java/singularity/configs/given/ServerConfigHandler.java @@ -1,12 +1,11 @@ package singularity.configs.given; +import gg.drak.thebase.storage.resources.flat.simple.SimpleConfiguration; import lombok.Getter; import lombok.Setter; import singularity.Singularity; -import singularity.data.server.CosmicServer; import singularity.database.servers.SavedServer; import singularity.utils.UuidUtils; -import tv.quaint.storage.resources.flat.simple.SimpleConfiguration; import java.util.UUID; diff --git a/singularity-api/src/main/java/singularity/configs/given/punishments/PunishmentsDocument.java b/singularity-api/src/main/java/singularity/configs/given/punishments/PunishmentsDocument.java index add37176..a5ef845f 100644 --- a/singularity-api/src/main/java/singularity/configs/given/punishments/PunishmentsDocument.java +++ b/singularity-api/src/main/java/singularity/configs/given/punishments/PunishmentsDocument.java @@ -1,8 +1,8 @@ package singularity.configs.given.punishments; +import gg.drak.thebase.objects.AtomicString; +import gg.drak.thebase.storage.datastores.SimpleJsonDatastore; import singularity.Singularity; -import tv.quaint.objects.AtomicString; -import tv.quaint.storage.datastores.SimpleJsonDatastore; import java.util.Date; diff --git a/singularity-api/src/main/java/singularity/configs/given/whitelist/WhitelistConfig.java b/singularity-api/src/main/java/singularity/configs/given/whitelist/WhitelistConfig.java index 171c20a2..ae351024 100644 --- a/singularity-api/src/main/java/singularity/configs/given/whitelist/WhitelistConfig.java +++ b/singularity-api/src/main/java/singularity/configs/given/whitelist/WhitelistConfig.java @@ -1,9 +1,9 @@ package singularity.configs.given.whitelist; +import gg.drak.thebase.storage.documents.SimpleJsonDocument; import singularity.Singularity; import singularity.configs.given.GivenConfigs; import singularity.utils.MessageUtils; -import tv.quaint.storage.documents.SimpleJsonDocument; import java.util.Date; diff --git a/singularity-api/src/main/java/singularity/data/IUuidable.java b/singularity-api/src/main/java/singularity/data/IUuidable.java index d6150600..14a76e2e 100644 --- a/singularity-api/src/main/java/singularity/data/IUuidable.java +++ b/singularity-api/src/main/java/singularity/data/IUuidable.java @@ -1,6 +1,6 @@ package singularity.data; -import tv.quaint.objects.Identifiable; +import gg.drak.thebase.objects.Identifiable; import java.util.UUID; diff --git a/singularity-api/src/main/java/singularity/data/players/location/PlayerWorld.java b/singularity-api/src/main/java/singularity/data/players/location/PlayerWorld.java index 99404e46..834f1bf5 100644 --- a/singularity-api/src/main/java/singularity/data/players/location/PlayerWorld.java +++ b/singularity-api/src/main/java/singularity/data/players/location/PlayerWorld.java @@ -1,8 +1,8 @@ package singularity.data.players.location; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.Identifiable; @Getter @Setter public class PlayerWorld implements Identifiable { diff --git a/singularity-api/src/main/java/singularity/data/players/meta/MetaTag.java b/singularity-api/src/main/java/singularity/data/players/meta/MetaTag.java index 89a0ec0b..73284ecc 100644 --- a/singularity-api/src/main/java/singularity/data/players/meta/MetaTag.java +++ b/singularity-api/src/main/java/singularity/data/players/meta/MetaTag.java @@ -1,10 +1,10 @@ package singularity.data.players.meta; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.objects.Identifiable; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.Identifiable; -import tv.quaint.thebase.lib.re2j.Matcher; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/data/players/meta/SenderMeta.java b/singularity-api/src/main/java/singularity/data/players/meta/SenderMeta.java index d61438f9..0e8a700f 100644 --- a/singularity-api/src/main/java/singularity/data/players/meta/SenderMeta.java +++ b/singularity-api/src/main/java/singularity/data/players/meta/SenderMeta.java @@ -1,12 +1,12 @@ package singularity.data.players.meta; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.configs.given.GivenConfigs; import singularity.data.IUuidable; import singularity.data.console.CosmicSender; -import tv.quaint.thebase.lib.re2j.Matcher; -import tv.quaint.utils.MatcherUtils; import java.util.List; import java.util.concurrent.ConcurrentSkipListMap; diff --git a/singularity-api/src/main/java/singularity/data/server/CosmicServer.java b/singularity-api/src/main/java/singularity/data/server/CosmicServer.java index 4d32df38..f9fa41a4 100644 --- a/singularity-api/src/main/java/singularity/data/server/CosmicServer.java +++ b/singularity-api/src/main/java/singularity/data/server/CosmicServer.java @@ -1,8 +1,8 @@ package singularity.data.server; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.Identifiable; @Getter @Setter public class CosmicServer implements Identifiable { diff --git a/singularity-api/src/main/java/singularity/data/teleportation/TPTicket.java b/singularity-api/src/main/java/singularity/data/teleportation/TPTicket.java index 05c53270..13c079a4 100644 --- a/singularity-api/src/main/java/singularity/data/teleportation/TPTicket.java +++ b/singularity-api/src/main/java/singularity/data/teleportation/TPTicket.java @@ -1,5 +1,6 @@ package singularity.data.teleportation; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; import singularity.Singularity; @@ -8,7 +9,6 @@ import singularity.data.players.location.PlayerWorld; import singularity.data.players.location.WorldPosition; import singularity.data.server.CosmicServer; -import tv.quaint.objects.Identifiable; import java.util.Date; diff --git a/singularity-api/src/main/java/singularity/data/update/UpdateManager.java b/singularity-api/src/main/java/singularity/data/update/UpdateManager.java index c27af509..5812ae38 100644 --- a/singularity-api/src/main/java/singularity/data/update/UpdateManager.java +++ b/singularity-api/src/main/java/singularity/data/update/UpdateManager.java @@ -6,7 +6,6 @@ import singularity.database.servers.UpdateInfo; import singularity.utils.MessageUtils; -import java.util.Date; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentSkipListSet; diff --git a/singularity-api/src/main/java/singularity/data/update/UpdateType.java b/singularity-api/src/main/java/singularity/data/update/UpdateType.java index 91210717..80e00ce1 100644 --- a/singularity-api/src/main/java/singularity/data/update/UpdateType.java +++ b/singularity-api/src/main/java/singularity/data/update/UpdateType.java @@ -1,11 +1,11 @@ package singularity.data.update; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.configs.given.GivenConfigs; import singularity.database.servers.UpdateInfo; -import tv.quaint.objects.Identifiable; import java.util.Date; import java.util.Optional; diff --git a/singularity-api/src/main/java/singularity/data/uuid/UuidInfo.java b/singularity-api/src/main/java/singularity/data/uuid/UuidInfo.java index 46342927..bfc5d966 100644 --- a/singularity-api/src/main/java/singularity/data/uuid/UuidInfo.java +++ b/singularity-api/src/main/java/singularity/data/uuid/UuidInfo.java @@ -1,11 +1,11 @@ package singularity.data.uuid; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.data.IUuidable; -import tv.quaint.thebase.lib.re2j.Matcher; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/database/DBOperator.java b/singularity-api/src/main/java/singularity/database/DBOperator.java index a52446ba..bab9ad5b 100644 --- a/singularity-api/src/main/java/singularity/database/DBOperator.java +++ b/singularity-api/src/main/java/singularity/database/DBOperator.java @@ -1,11 +1,11 @@ package singularity.database; +import gg.drak.thebase.lib.hikari.HikariConfig; +import gg.drak.thebase.lib.hikari.HikariDataSource; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.utils.MessageUtils; -import tv.quaint.thebase.lib.hikari.HikariConfig; -import tv.quaint.thebase.lib.hikari.HikariDataSource; import java.io.File; import java.sql.Connection; @@ -13,7 +13,6 @@ import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; @Getter @Setter diff --git a/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java b/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java index f89e2ee7..963b28aa 100644 --- a/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java +++ b/singularity-api/src/main/java/singularity/database/modules/DBKeeper.java @@ -1,11 +1,11 @@ package singularity.database.modules; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.database.CoreDBOperator; import singularity.database.DatabaseType; -import tv.quaint.objects.Identifiable; import java.util.Optional; import java.util.concurrent.CompletableFuture; diff --git a/singularity-api/src/main/java/singularity/database/servers/SavedServer.java b/singularity-api/src/main/java/singularity/database/servers/SavedServer.java index 2478e8ea..9b1a7212 100644 --- a/singularity-api/src/main/java/singularity/database/servers/SavedServer.java +++ b/singularity-api/src/main/java/singularity/database/servers/SavedServer.java @@ -1,10 +1,10 @@ package singularity.database.servers; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; import singularity.Singularity; import singularity.interfaces.ISingularityExtension; -import tv.quaint.objects.Identifiable; @Getter @Setter public class SavedServer implements Identifiable { diff --git a/singularity-api/src/main/java/singularity/events/CosmicEvent.java b/singularity-api/src/main/java/singularity/events/CosmicEvent.java index fa536f8f..84a0f485 100644 --- a/singularity-api/src/main/java/singularity/events/CosmicEvent.java +++ b/singularity-api/src/main/java/singularity/events/CosmicEvent.java @@ -1,6 +1,6 @@ package singularity.events; -import tv.quaint.events.components.BaseEvent; +import gg.drak.thebase.events.components.BaseEvent; public abstract class CosmicEvent extends BaseEvent { public CosmicEvent() {} diff --git a/singularity-api/src/main/java/singularity/interfaces/IModuleLike.java b/singularity-api/src/main/java/singularity/interfaces/IModuleLike.java index 9cdb3780..7a0ddd02 100644 --- a/singularity-api/src/main/java/singularity/interfaces/IModuleLike.java +++ b/singularity-api/src/main/java/singularity/interfaces/IModuleLike.java @@ -1,7 +1,7 @@ package singularity.interfaces; +import gg.drak.thebase.objects.handling.derived.IModifierEventable; import singularity.command.ModuleCommand; -import tv.quaint.objects.handling.derived.IModifierEventable; import java.io.File; import java.io.InputStream; diff --git a/singularity-api/src/main/java/singularity/loading/Loadable.java b/singularity-api/src/main/java/singularity/loading/Loadable.java index a6b6a16b..3cffee65 100644 --- a/singularity-api/src/main/java/singularity/loading/Loadable.java +++ b/singularity-api/src/main/java/singularity/loading/Loadable.java @@ -1,6 +1,6 @@ package singularity.loading; -import tv.quaint.objects.Identifiable; +import gg.drak.thebase.objects.Identifiable; import java.util.Optional; import java.util.concurrent.CompletableFuture; diff --git a/singularity-api/src/main/java/singularity/messages/answered/ReturnableMessage.java b/singularity-api/src/main/java/singularity/messages/answered/ReturnableMessage.java index ff78569a..04d5223f 100644 --- a/singularity-api/src/main/java/singularity/messages/answered/ReturnableMessage.java +++ b/singularity-api/src/main/java/singularity/messages/answered/ReturnableMessage.java @@ -5,7 +5,6 @@ import singularity.messages.events.AnsweredMessageEvent; import singularity.messages.proxied.ProxiedMessage; import singularity.messages.proxied.ProxiedMessageManager; -import singularity.modules.ModuleUtils; import singularity.scheduler.BaseRunnable; import org.jetbrains.annotations.NotNull; diff --git a/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessage.java b/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessage.java index beabc286..53122437 100644 --- a/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessage.java +++ b/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessage.java @@ -1,5 +1,6 @@ package singularity.messages.proxied; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.Singularity; @@ -11,7 +12,6 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import org.jetbrains.annotations.NotNull; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.Arrays; diff --git a/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessageManager.java b/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessageManager.java index 453d99f6..8b367f15 100644 --- a/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessageManager.java +++ b/singularity-api/src/main/java/singularity/messages/proxied/ProxiedMessageManager.java @@ -2,6 +2,7 @@ import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; +import gg.drak.thebase.utils.MathUtils; import lombok.Getter; import lombok.Setter; import singularity.Singularity; @@ -11,7 +12,6 @@ import singularity.objects.SingleSet; import singularity.objects.CosmicResourcePack; import singularity.scheduler.BaseRunnable; -import tv.quaint.utils.MathUtils; import java.time.Duration; import java.time.temporal.ChronoUnit; diff --git a/singularity-api/src/main/java/singularity/modules/ModuleManager.java b/singularity-api/src/main/java/singularity/modules/ModuleManager.java index 3668e3d2..eb01c8d5 100644 --- a/singularity-api/src/main/java/singularity/modules/ModuleManager.java +++ b/singularity-api/src/main/java/singularity/modules/ModuleManager.java @@ -1,6 +1,8 @@ package singularity.modules; import com.google.common.base.Preconditions; +import gg.drak.thebase.events.BaseEventHandler; +import gg.drak.thebase.events.BaseEventListener; import org.pf4j.*; import lombok.Getter; import lombok.NonNull; @@ -12,8 +14,6 @@ import singularity.events.modules.ModuleLoadEvent; import singularity.utils.MessageUtils; import org.jetbrains.annotations.NotNull; -import tv.quaint.events.BaseEventHandler; -import tv.quaint.events.BaseEventListener; import java.io.File; import java.nio.file.Path; diff --git a/singularity-api/src/main/java/singularity/modules/ModuleUtils.java b/singularity-api/src/main/java/singularity/modules/ModuleUtils.java index 71d46386..aee6b4e6 100644 --- a/singularity-api/src/main/java/singularity/modules/ModuleUtils.java +++ b/singularity-api/src/main/java/singularity/modules/ModuleUtils.java @@ -1,5 +1,6 @@ package singularity.modules; +import gg.drak.thebase.events.BaseEventListener; import singularity.Singularity; import singularity.data.console.CosmicSender; import singularity.data.players.CosmicPlayer; @@ -15,7 +16,6 @@ import singularity.utils.MessageUtils; import singularity.utils.UserUtils; import org.jetbrains.annotations.Nullable; -import tv.quaint.events.BaseEventListener; import java.util.*; import java.util.concurrent.ConcurrentSkipListMap; diff --git a/singularity-api/src/main/java/singularity/objects/PingedResponse.java b/singularity-api/src/main/java/singularity/objects/PingedResponse.java index b93646c8..fd4c73c4 100644 --- a/singularity-api/src/main/java/singularity/objects/PingedResponse.java +++ b/singularity-api/src/main/java/singularity/objects/PingedResponse.java @@ -7,7 +7,6 @@ import singularity.data.uuid.UuidManager; import java.io.IOException; -import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.UUID; diff --git a/singularity-api/src/main/java/singularity/objects/SingleSet.java b/singularity-api/src/main/java/singularity/objects/SingleSet.java index e028a7f2..f9e59723 100644 --- a/singularity-api/src/main/java/singularity/objects/SingleSet.java +++ b/singularity-api/src/main/java/singularity/objects/SingleSet.java @@ -1,8 +1,8 @@ package singularity.objects; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.Identifiable; @Setter @Getter diff --git a/singularity-api/src/main/java/singularity/permissions/MetaValue.java b/singularity-api/src/main/java/singularity/permissions/MetaValue.java index 5860211c..48c8184c 100644 --- a/singularity-api/src/main/java/singularity/permissions/MetaValue.java +++ b/singularity-api/src/main/java/singularity/permissions/MetaValue.java @@ -1,10 +1,10 @@ package singularity.permissions; +import gg.drak.thebase.objects.Identified; import lombok.Getter; import lombok.Setter; import singularity.data.players.CosmicPlayer; import singularity.utils.UserUtils; -import tv.quaint.objects.Identified; @Getter @Setter public class MetaValue implements Identified { diff --git a/singularity-api/src/main/java/singularity/placeholders/RATRegistry.java b/singularity-api/src/main/java/singularity/placeholders/RATRegistry.java index d57c2982..25218870 100644 --- a/singularity-api/src/main/java/singularity/placeholders/RATRegistry.java +++ b/singularity-api/src/main/java/singularity/placeholders/RATRegistry.java @@ -1,16 +1,16 @@ package singularity.placeholders; +import gg.drak.thebase.objects.AtomicString; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.data.console.CosmicSender; import singularity.modules.ModuleLike; import singularity.modules.CosmicModule; -import tv.quaint.objects.AtomicString; import singularity.placeholders.callbacks.RATCallback; import singularity.placeholders.expansions.RATExpansion; import singularity.placeholders.replaceables.*; import singularity.utils.UserUtils; -import tv.quaint.utils.MatcherUtils; import java.util.Objects; import java.util.concurrent.ConcurrentSkipListMap; diff --git a/singularity-api/src/main/java/singularity/placeholders/handling/RATHandledString.java b/singularity-api/src/main/java/singularity/placeholders/handling/RATHandledString.java index dfd14ca8..c9aa5b2c 100644 --- a/singularity-api/src/main/java/singularity/placeholders/handling/RATHandledString.java +++ b/singularity-api/src/main/java/singularity/placeholders/handling/RATHandledString.java @@ -1,8 +1,8 @@ package singularity.placeholders.handling; -import tv.quaint.thebase.lib.re2j.Matcher; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/placeholders/replaceables/AbstractReplaceable.java b/singularity-api/src/main/java/singularity/placeholders/replaceables/AbstractReplaceable.java index c2d6438d..8b920e70 100644 --- a/singularity-api/src/main/java/singularity/placeholders/replaceables/AbstractReplaceable.java +++ b/singularity-api/src/main/java/singularity/placeholders/replaceables/AbstractReplaceable.java @@ -1,5 +1,6 @@ package singularity.placeholders.replaceables; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.placeholders.RATRegistry; @@ -7,7 +8,6 @@ import singularity.placeholders.handling.RATHandledString; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import tv.quaint.utils.MatcherUtils; @Setter @Getter diff --git a/singularity-api/src/main/java/singularity/placeholders/replaceables/GenericReplaceable.java b/singularity-api/src/main/java/singularity/placeholders/replaceables/GenericReplaceable.java index c7c279f8..ad73ecc3 100644 --- a/singularity-api/src/main/java/singularity/placeholders/replaceables/GenericReplaceable.java +++ b/singularity-api/src/main/java/singularity/placeholders/replaceables/GenericReplaceable.java @@ -1,6 +1,6 @@ package singularity.placeholders.replaceables; -import tv.quaint.objects.AtomicString; +import gg.drak.thebase.objects.AtomicString; import singularity.placeholders.callbacks.CallbackString; import singularity.placeholders.callbacks.PlaceholderCallback; import org.jetbrains.annotations.Nullable; diff --git a/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedReplaceable.java b/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedReplaceable.java index 75de8437..1d66ceef 100644 --- a/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedReplaceable.java +++ b/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedReplaceable.java @@ -1,10 +1,10 @@ package singularity.placeholders.replaceables; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import singularity.placeholders.RATRegistry; import singularity.placeholders.callbacks.PlaceholderCallback; import singularity.placeholders.expansions.RATExpansion; -import tv.quaint.utils.MatcherUtils; @Getter public class IdentifiedReplaceable extends GenericReplaceable { diff --git a/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedUserReplaceable.java b/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedUserReplaceable.java index 8d36162a..87720f96 100644 --- a/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedUserReplaceable.java +++ b/singularity-api/src/main/java/singularity/placeholders/replaceables/IdentifiedUserReplaceable.java @@ -1,10 +1,10 @@ package singularity.placeholders.replaceables; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import singularity.placeholders.RATRegistry; import singularity.placeholders.callbacks.UserPlaceholderCallback; import singularity.placeholders.expansions.RATExpansion; -import tv.quaint.utils.MatcherUtils; @Getter public class IdentifiedUserReplaceable extends UserReplaceable { diff --git a/singularity-api/src/main/java/singularity/placeholders/replaceables/UserReplaceable.java b/singularity-api/src/main/java/singularity/placeholders/replaceables/UserReplaceable.java index 5d370e23..801a301e 100644 --- a/singularity-api/src/main/java/singularity/placeholders/replaceables/UserReplaceable.java +++ b/singularity-api/src/main/java/singularity/placeholders/replaceables/UserReplaceable.java @@ -1,7 +1,7 @@ package singularity.placeholders.replaceables; +import gg.drak.thebase.objects.AtomicString; import singularity.data.console.CosmicSender; -import tv.quaint.objects.AtomicString; import singularity.placeholders.callbacks.CallbackString; import singularity.placeholders.callbacks.UserPlaceholderCallback; diff --git a/singularity-api/src/main/java/singularity/scheduler/BaseRunnable.java b/singularity-api/src/main/java/singularity/scheduler/BaseRunnable.java index b3f1ae9f..d77479db 100644 --- a/singularity-api/src/main/java/singularity/scheduler/BaseRunnable.java +++ b/singularity-api/src/main/java/singularity/scheduler/BaseRunnable.java @@ -2,7 +2,6 @@ import lombok.Getter; import lombok.Setter; -import singularity.modules.ModuleUtils; import singularity.utils.MessageUtils; import java.util.Date; diff --git a/singularity-api/src/main/java/singularity/scheduler/ModuleTaskManager.java b/singularity-api/src/main/java/singularity/scheduler/ModuleTaskManager.java index 0a8192e2..3e13b11f 100644 --- a/singularity-api/src/main/java/singularity/scheduler/ModuleTaskManager.java +++ b/singularity-api/src/main/java/singularity/scheduler/ModuleTaskManager.java @@ -1,6 +1,5 @@ package singularity.scheduler; - import singularity.modules.ModuleLike; import java.util.TreeMap; diff --git a/singularity-api/src/main/java/singularity/text/HexReplacer.java b/singularity-api/src/main/java/singularity/text/HexReplacer.java index 9f40fa3e..d74f9336 100644 --- a/singularity-api/src/main/java/singularity/text/HexReplacer.java +++ b/singularity-api/src/main/java/singularity/text/HexReplacer.java @@ -1,11 +1,11 @@ package singularity.text; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.objects.AtomicString; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.AtomicString; import org.jetbrains.annotations.NotNull; -import tv.quaint.thebase.lib.re2j.Matcher; -import tv.quaint.utils.MatcherUtils; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/text/TextManager.java b/singularity-api/src/main/java/singularity/text/TextManager.java index 4bcc8154..4183bc97 100644 --- a/singularity-api/src/main/java/singularity/text/TextManager.java +++ b/singularity-api/src/main/java/singularity/text/TextManager.java @@ -1,11 +1,11 @@ package singularity.text; +import gg.drak.thebase.lib.re2j.Matcher; +import gg.drak.thebase.lib.re2j.Pattern; +import gg.drak.thebase.utils.MatcherUtils; import lombok.Getter; import lombok.Setter; import singularity.utils.MessageUtils; -import tv.quaint.thebase.lib.re2j.Matcher; -import tv.quaint.thebase.lib.re2j.Pattern; -import tv.quaint.utils.MatcherUtils; import java.util.ArrayList; import java.util.List; diff --git a/singularity-api/src/main/java/singularity/text/UsersReplacements.java b/singularity-api/src/main/java/singularity/text/UsersReplacements.java index 71f5b7ea..dff6fcf3 100644 --- a/singularity-api/src/main/java/singularity/text/UsersReplacements.java +++ b/singularity-api/src/main/java/singularity/text/UsersReplacements.java @@ -2,9 +2,9 @@ import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; +import gg.drak.thebase.objects.Identifiable; import lombok.Getter; import lombok.Setter; -import tv.quaint.objects.Identifiable; import java.time.Duration; import java.util.Optional; diff --git a/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java b/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java index 90d92426..a25c405a 100644 --- a/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java +++ b/spigot/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java @@ -17,12 +17,8 @@ import java.util.Date; import java.util.UUID; import java.util.concurrent.ConcurrentSkipListSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; public class PlayerTeleporter extends AbstractPlayerTeleporter { -// private static final ExecutorService executor = Executors.newFixedThreadPool(4); // Adjust as needed - public static void init() { setInstance(new PlayerTeleporter()); startInstance(); @@ -36,7 +32,6 @@ public void tick() { ConcurrentSkipListSet tickets = getTicketsPending().join(); getStage().set(TeleportStage.TELEPORTATION); -// tickets.forEach(ticket -> executor.submit(() -> processTicket(ticket))); tickets.forEach(this::processTicket); unpendTickets(); @@ -101,8 +96,6 @@ private void teleportPlayer(Player player, TPTicket ticket) { ); player.teleport(location); -// MessageUtils.logInfo("Teleported " + player.getName() + " to X: " + position.getX() + -// ", Y: " + position.getY() + ", Z: " + position.getZ() + " in world " + world.getIdentifier()); } catch (Exception e) { MessageUtils.logWarning("Failed to teleport player " + player.getName(), e); } @@ -111,6 +104,5 @@ private void teleportPlayer(Player player, TPTicket ticket) { private static void clearTicket(TPTicket ticket, int instance) { ticket.clear(); -// MessageUtils.logInfo("Cleared teleportation ticket for player " + ticket.getIdentifier() + ". [" + instance + "]"); } } diff --git a/spigot/src/main/java/net/streamline/metrics/Metrics.java b/spigot/src/main/java/net/streamline/metrics/Metrics.java index 4d52eca3..697b689d 100644 --- a/spigot/src/main/java/net/streamline/metrics/Metrics.java +++ b/spigot/src/main/java/net/streamline/metrics/Metrics.java @@ -34,7 +34,6 @@ import org.bukkit.plugin.java.JavaPlugin; public class Metrics { - private final Plugin plugin; private final MetricsBase metricsBase; diff --git a/spigot/src/main/java/net/streamline/platform/BasePlugin.java b/spigot/src/main/java/net/streamline/platform/BasePlugin.java index d98ea352..a604afd5 100644 --- a/spigot/src/main/java/net/streamline/platform/BasePlugin.java +++ b/spigot/src/main/java/net/streamline/platform/BasePlugin.java @@ -1,5 +1,6 @@ package net.streamline.platform; +import gg.drak.thebase.events.BaseEventHandler; import host.plas.bou.BetterPlugin; import host.plas.bou.libs.universalScheduler.UniversalScheduler; import host.plas.bou.libs.universalScheduler.scheduling.schedulers.TaskScheduler; @@ -19,7 +20,6 @@ import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandMap; -import org.bukkit.command.PluginCommand; import org.bukkit.event.Event; import org.jetbrains.annotations.NotNull; import singularity.command.CosmicCommand; @@ -41,7 +41,6 @@ import singularity.utils.MessageUtils; import singularity.utils.StorageUtils; import singularity.utils.UserUtils; -import tv.quaint.events.BaseEventHandler; import java.io.File; import java.lang.reflect.Field; diff --git a/spigot/src/main/java/net/streamline/platform/Messenger.java b/spigot/src/main/java/net/streamline/platform/Messenger.java index fe04b5ea..c6406ea6 100644 --- a/spigot/src/main/java/net/streamline/platform/Messenger.java +++ b/spigot/src/main/java/net/streamline/platform/Messenger.java @@ -6,8 +6,6 @@ import lombok.Getter; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.streamline.api.SLAPI; import singularity.data.console.CosmicSender; import singularity.data.players.CosmicPlayer; @@ -18,10 +16,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; import singularity.interfaces.IMessenger; -import singularity.modules.ModuleUtils; import singularity.objects.CosmicTitle; -import singularity.text.HexPolicy; -import singularity.text.TextManager; import singularity.utils.MessageUtils; import java.util.*; diff --git a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java index ebb04d07..acd9c62b 100644 --- a/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java +++ b/spigot/src/main/java/net/streamline/platform/commands/StreamlineSpigotCommand.java @@ -1,25 +1,16 @@ package net.streamline.platform.commands; +import gg.drak.thebase.utils.StringUtils; import host.plas.bou.commands.CommandContext; import host.plas.bou.commands.SimplifiedCommand; import net.streamline.base.Streamline; import net.streamline.platform.savables.UserManager; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabExecutor; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import singularity.command.CommandHandler; import singularity.command.CosmicCommand; import singularity.data.console.CosmicSender; -import tv.quaint.utils.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; import java.util.concurrent.ConcurrentSkipListSet; -import java.util.stream.Collectors; public class StreamlineSpigotCommand extends SimplifiedCommand { public StreamlineSpigotCommand() { diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java index f035df0c..13d8cf8d 100644 --- a/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java +++ b/spigot/src/main/java/net/streamline/platform/listeners/PaperListener.java @@ -3,7 +3,6 @@ import com.destroystokyo.paper.event.server.PaperServerListPingEvent; import com.destroystokyo.paper.profile.PlayerProfile; import host.plas.bou.utils.ClassHelper; -import host.plas.bou.utils.ColorUtils; import net.streamline.base.Streamline; import net.streamline.platform.Messenger; import org.bukkit.Bukkit; diff --git a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java index 43f39c85..4b52899a 100644 --- a/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/spigot/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -1,5 +1,8 @@ package net.streamline.platform.listeners; +import gg.drak.thebase.events.BaseEventHandler; +import gg.drak.thebase.events.BaseEventListener; +import gg.drak.thebase.events.processing.BaseProcessor; import host.plas.bou.utils.ClassHelper; import lombok.Getter; import lombok.Setter; @@ -41,9 +44,6 @@ import singularity.objects.PingedResponse; import singularity.utils.MessageUtils; import singularity.utils.UserUtils; -import tv.quaint.events.BaseEventHandler; -import tv.quaint.events.BaseEventListener; -import tv.quaint.events.processing.BaseProcessor; import java.nio.file.Paths; import java.util.ArrayList; diff --git a/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java b/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java index 7aadea28..ac158bb4 100644 --- a/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java +++ b/spigot/src/main/java/net/streamline/platform/savables/ConsoleHolder.java @@ -4,7 +4,6 @@ import lombok.Getter; import lombok.Setter; import net.streamline.base.Streamline; -import net.streamline.platform.Messenger; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import singularity.interfaces.audiences.IConsoleHolder; diff --git a/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java b/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java index 2a1d0f30..6c843614 100644 --- a/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java +++ b/spigot/src/main/java/net/streamline/platform/savables/PlayerInterface.java @@ -3,11 +3,7 @@ import host.plas.bou.commands.Sender; import lombok.Getter; import lombok.Setter; -import net.luckperms.api.LuckPerms; -import net.luckperms.api.node.types.PermissionNode; -import net.streamline.api.SLAPI; import net.streamline.api.permissions.LuckPermsHandler; -import net.streamline.platform.Messenger; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import singularity.interfaces.audiences.IPlayerInterface; diff --git a/velocity/src/main/java/net/streamline/base/StreamlineVelocity.java b/velocity/src/main/java/net/streamline/base/StreamlineVelocity.java index 7fedc5fe..641cc7ed 100644 --- a/velocity/src/main/java/net/streamline/base/StreamlineVelocity.java +++ b/velocity/src/main/java/net/streamline/base/StreamlineVelocity.java @@ -3,7 +3,6 @@ import com.google.inject.Inject; import com.velocitypowered.api.plugin.Dependency; import com.velocitypowered.api.plugin.Plugin; -import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; import net.streamline.metrics.Metrics; import net.streamline.platform.BasePlugin; diff --git a/velocity/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java b/velocity/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java index e709a291..6ac86e6a 100644 --- a/velocity/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java +++ b/velocity/src/main/java/net/streamline/base/runnables/PlayerTeleporter.java @@ -4,7 +4,6 @@ import com.velocitypowered.api.proxy.server.RegisteredServer; import net.streamline.api.base.timers.AbstractPlayerTeleporter; import net.streamline.base.StreamlineVelocity; -import singularity.configs.given.GivenConfigs; import singularity.data.teleportation.TPTicket; import singularity.utils.MessageUtils; @@ -12,8 +11,6 @@ import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentSkipListSet; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; public class PlayerTeleporter extends AbstractPlayerTeleporter { // private static final ExecutorService executor = Executors.newFixedThreadPool(4); // Adjust as needed diff --git a/velocity/src/main/java/net/streamline/platform/BasePlugin.java b/velocity/src/main/java/net/streamline/platform/BasePlugin.java index 1e3eb990..c70d1442 100644 --- a/velocity/src/main/java/net/streamline/platform/BasePlugin.java +++ b/velocity/src/main/java/net/streamline/platform/BasePlugin.java @@ -9,6 +9,7 @@ import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier; import com.velocitypowered.api.proxy.player.ResourcePackInfo; import com.velocitypowered.api.proxy.server.RegisteredServer; +import gg.drak.thebase.events.BaseEventHandler; import lombok.Getter; import lombok.Setter; import net.streamline.api.SLAPI; @@ -39,7 +40,6 @@ import singularity.utils.MessageUtils; import singularity.utils.StorageUtils; import singularity.utils.UserUtils; -import tv.quaint.events.BaseEventHandler; import java.io.File; import java.nio.file.Path; diff --git a/velocity/src/main/java/net/streamline/platform/commands/ProperCommand.java b/velocity/src/main/java/net/streamline/platform/commands/ProperCommand.java index 639dd61b..bd65e982 100644 --- a/velocity/src/main/java/net/streamline/platform/commands/ProperCommand.java +++ b/velocity/src/main/java/net/streamline/platform/commands/ProperCommand.java @@ -7,7 +7,6 @@ import net.streamline.platform.savables.UserManager; import singularity.command.CosmicCommand; import singularity.data.console.CosmicSender; -import singularity.data.players.CosmicPlayer; import singularity.interfaces.IProperCommand; import singularity.utils.MessageUtils; diff --git a/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java b/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java index ba753def..85bb33ce 100644 --- a/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java +++ b/velocity/src/main/java/net/streamline/platform/listeners/PlatformListener.java @@ -37,7 +37,6 @@ import singularity.utils.MessageUtils; import singularity.utils.UserUtils; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Optional; diff --git a/velocity/src/main/java/net/streamline/platform/savables/PlayerInterface.java b/velocity/src/main/java/net/streamline/platform/savables/PlayerInterface.java index c048fabc..24f7ff06 100644 --- a/velocity/src/main/java/net/streamline/platform/savables/PlayerInterface.java +++ b/velocity/src/main/java/net/streamline/platform/savables/PlayerInterface.java @@ -4,9 +4,6 @@ import lombok.Getter; import lombok.Setter; import net.kyori.adventure.text.Component; -import net.luckperms.api.LuckPerms; -import net.luckperms.api.node.types.PermissionNode; -import net.streamline.api.SLAPI; import net.streamline.api.permissions.LuckPermsHandler; import net.streamline.base.StreamlineVelocity; import net.streamline.platform.Messenger; diff --git a/velocity/src/main/java/net/streamline/platform/savables/UserManager.java b/velocity/src/main/java/net/streamline/platform/savables/UserManager.java index fdc4b0c5..37f71f40 100644 --- a/velocity/src/main/java/net/streamline/platform/savables/UserManager.java +++ b/velocity/src/main/java/net/streamline/platform/savables/UserManager.java @@ -6,8 +6,6 @@ import com.velocitypowered.api.proxy.server.RegisteredServer; import com.velocitypowered.api.proxy.server.ServerInfo; import lombok.Getter; -import net.luckperms.api.model.user.User; -import net.streamline.api.SLAPI; import net.streamline.api.permissions.LuckPermsHandler; import net.streamline.base.StreamlineVelocity; import net.streamline.platform.BasePlugin;