From 1a6fa4336727320cb3fd795b8503e14c2b7e4ef8 Mon Sep 17 00:00:00 2001 From: KingRainbow44 Date: Sat, 20 May 2023 02:25:49 -0400 Subject: [PATCH] Clean up `.utils` --- .../java/emu/grasscutter/GameConstants.java | 4 +- .../java/emu/grasscutter/Grasscutter.java | 25 +- .../auth/DefaultAuthentication.java | 2 +- .../auth/DefaultAuthenticators.java | 2 +- .../grasscutter/command/CommandHandler.java | 2 +- .../command/commands/AccountCommand.java | 2 +- .../command/commands/AnnounceCommand.java | 2 +- .../command/commands/EnterDungeonCommand.java | 2 +- .../command/commands/EntityCommand.java | 2 +- .../command/commands/GroupCommand.java | 2 +- .../command/commands/HealCommand.java | 2 +- .../command/commands/HelpCommand.java | 2 +- .../command/commands/KillAllCommand.java | 5 +- .../commands/KillCharacterCommand.java | 2 +- .../command/commands/LanguageCommand.java | 2 +- .../command/commands/ListCommand.java | 2 +- .../command/commands/PermissionCommand.java | 2 +- .../command/commands/PositionCommand.java | 2 +- .../command/commands/QuestCommand.java | 2 +- .../command/commands/ReloadCommand.java | 2 +- .../command/commands/ResetConstCommand.java | 2 +- .../commands/ResetShopLimitCommand.java | 2 +- .../command/commands/SendMailCommand.java | 2 +- .../command/commands/SetConstCommand.java | 2 +- .../commands/SetFetterLevelCommand.java | 2 +- .../command/commands/SoundCommand.java | 4 +- .../command/commands/SpawnCommand.java | 4 +- .../command/commands/StopCommand.java | 2 +- .../command/commands/TalentCommand.java | 2 +- .../command/commands/TeleportAllCommand.java | 2 +- .../command/commands/TeleportCommand.java | 4 +- .../commands/TrialAvatarActivityCommand.java | 2 +- .../command/commands/UnlockAllCommand.java | 2 +- .../java/emu/grasscutter/data/GameDepot.java | 2 +- .../emu/grasscutter/data/ResourceLoader.java | 24 +- .../data/binout/HomeworldDefaultSaveData.java | 2 +- .../data/binout/SceneNpcBornEntry.java | 2 +- .../data/binout/routes/RoutePoint.java | 2 +- .../grasscutter/data/common/PointData.java | 2 +- .../data/excels/dungeon/DungeonData.java | 2 +- .../emu/grasscutter/data/server/Grid.java | 4 +- .../game/activity/ActivityHandler.java | 2 +- .../emu/grasscutter/game/avatar/Avatar.java | 2 +- .../game/drop/DropSystemLegacy.java | 2 +- .../game/dungeons/DungeonManager.java | 2 +- .../game/dungeons/DungeonSystem.java | 2 +- .../grasscutter/game/entity/EntityAvatar.java | 4 +- .../game/entity/EntityBaseGadget.java | 2 +- .../game/entity/EntityClientGadget.java | 4 +- .../grasscutter/game/entity/EntityGadget.java | 4 +- .../grasscutter/game/entity/EntityItem.java | 4 +- .../game/entity/EntityMonster.java | 4 +- .../grasscutter/game/entity/EntityNPC.java | 2 +- .../grasscutter/game/entity/EntityRegion.java | 2 +- .../game/entity/EntityVehicle.java | 4 +- .../grasscutter/game/entity/GameEntity.java | 2 +- .../entity/gadget/platform/AbilityRoute.java | 2 +- .../entity/gadget/platform/BaseRoute.java | 2 +- .../entity/gadget/platform/ConfigRoute.java | 2 +- .../gadget/platform/PointArrayRoute.java | 2 +- .../EntitySolarIsotomaElevatorPlatform.java | 2 +- .../grasscutter/game/home/HomeAnimalItem.java | 2 +- .../game/home/HomeFurnitureItem.java | 2 +- .../grasscutter/game/home/HomeNPCItem.java | 2 +- .../grasscutter/game/home/HomeSceneItem.java | 2 +- .../grasscutter/game/inventory/GameItem.java | 2 +- .../managers/blossom/BlossomActivity.java | 2 +- .../deforestation/DeforestationManager.java | 2 +- .../game/managers/energy/EnergyManager.java | 2 +- .../game/managers/mapmark/MapMark.java | 2 +- .../managers/mapmark/MapMarksManager.java | 2 +- .../game/managers/stamina/StaminaManager.java | 2 +- .../emu/grasscutter/game/player/Player.java | 10 +- .../grasscutter/game/player/TeamManager.java | 2 +- .../grasscutter/game/quest/GameMainQuest.java | 2 +- .../grasscutter/game/quest/QuestManager.java | 2 +- .../talk/exec/ExecTransSceneDummyPoint.java | 2 +- .../{utils => game/world}/GridPosition.java | 9 +- .../{utils => game/world}/Location.java | 3 +- .../{utils => game/world}/Position.java | 3 +- .../emu/grasscutter/game/world/Scene.java | 3 +- .../game/world/SpawnDataEntry.java | 2 +- .../emu/grasscutter/game/world/World.java | 1 - .../game/world/data/TeleportProperties.java | 4 +- .../emu/grasscutter/plugin/PluginManager.java | 11 +- .../grasscutter/plugin/api/PlayerHook.java | 2 +- .../scripts/SceneScriptManager.java | 4 +- .../emu/grasscutter/scripts/ScriptLib.java | 2 +- .../emu/grasscutter/scripts/ScriptUtils.java | 2 +- .../grasscutter/scripts/data/SceneBlock.java | 2 +- .../grasscutter/scripts/data/SceneConfig.java | 2 +- .../grasscutter/scripts/data/SceneGroup.java | 2 +- .../grasscutter/scripts/data/SceneObject.java | 2 +- .../grasscutter/scripts/data/SceneRegion.java | 2 +- .../server/event/EventHandler.java | 2 +- .../server/event/entity/EntityDeathEvent.java | 2 +- .../server/event/entity/EntityMoveEvent.java | 2 +- .../server/event/player/PlayerMoveEvent.java | 2 +- .../event/player/PlayerTeleportEvent.java | 2 +- .../grasscutter/server/game/GameServer.java | 2 +- .../grasscutter/server/game/GameSession.java | 2 +- .../grasscutter/server/http/HttpServer.java | 2 +- .../http/dispatch/AuthenticationHandler.java | 2 +- .../GachaMappingRequestHandler.java | 7 +- .../documentation/HandbookRequestHandler.java | 2 +- .../documentation/RootRequestHandler.java | 2 +- .../server/http/handlers/GachaHandler.java | 2 +- .../server/http/objects/HttpJsonResponse.java | 2 +- .../recv/HandlerCombatInvocationsNotify.java | 2 +- .../packet/recv/HandlerCreateVehicleReq.java | 2 +- .../packet/recv/HandlerGetPlayerTokenReq.java | 2 +- .../recv/HandlerHomeChangeModuleReq.java | 2 +- .../packet/recv/HandlerHomeSceneJumpReq.java | 2 +- .../recv/HandlerPersonalSceneJumpReq.java | 2 +- .../recv/HandlerQuestCreateEntityReq.java | 2 +- .../packet/recv/HandlerQuestTransmitReq.java | 2 +- .../packet/recv/HandlerTryEnterHomeReq.java | 2 +- .../packet/recv/HandlerWidgetDoBagReq.java | 2 +- .../PacketActivityScheduleInfoNotify.java | 2 +- .../PacketBeginCameraSceneLookNotify.java | 2 +- .../packet/send/PacketCreateVehicleRsp.java | 2 +- .../send/PacketPersonalSceneJumpRsp.java | 2 +- .../send/PacketPlayerEnterSceneNotify.java | 2 +- .../packet/send/PacketPlayerPropNotify.java | 2 +- .../send/PacketScenePlayerSoundNotify.java | 2 +- .../packet/send/PacketTowerAllDataRsp.java | 2 +- .../java/emu/grasscutter/tools/Dumpers.java | 2 +- .../java/emu/grasscutter/tools/Tools.java | 17 +- .../emu/grasscutter/utils/JsonAdapters.java | 74 +++--- .../java/emu/grasscutter/utils/JsonUtils.java | 2 + .../emu/grasscutter/utils/MessageHandler.java | 21 -- .../grasscutter/utils/StartupArguments.java | 17 +- .../java/emu/grasscutter/utils/TsvUtils.java | 13 +- .../java/emu/grasscutter/utils/Utils.java | 3 +- .../utils/{ => helpers}/ByteHelper.java | 14 +- .../utils/{ => helpers}/DateHelper.java | 10 +- .../utils/{ => helpers}/ProtoHelper.java | 6 +- .../utils/{ => lang}/Language.java | 15 +- .../utils/{ => objects}/EventConsumer.java | 2 +- .../JLineLogbackAppender.java} | 9 +- .../utils/{ => objects}/KahnsSort.java | 2 +- .../{ => objects}/ServerLogEventAppender.java | 4 +- .../utils/{ => objects}/SparseSet.java | 2 +- .../utils/{ => objects}/WeightedList.java | 2 +- .../grasscutter/utils/objects/text/Style.java | 235 ++++++++++++++++++ .../grasscutter/utils/objects/text/Text.java | 103 ++++++++ src/main/resources/logback.xml | 4 +- 147 files changed, 623 insertions(+), 291 deletions(-) rename src/main/java/emu/grasscutter/{utils => game/world}/GridPosition.java (98%) rename src/main/java/emu/grasscutter/{utils => game/world}/Location.java (92%) rename src/main/java/emu/grasscutter/{utils => game/world}/Position.java (98%) delete mode 100644 src/main/java/emu/grasscutter/utils/MessageHandler.java rename src/main/java/emu/grasscutter/utils/{ => helpers}/ByteHelper.java (59%) rename src/main/java/emu/grasscutter/utils/{ => helpers}/DateHelper.java (62%) rename src/main/java/emu/grasscutter/utils/{ => helpers}/ProtoHelper.java (61%) rename src/main/java/emu/grasscutter/utils/{ => lang}/Language.java (99%) rename src/main/java/emu/grasscutter/utils/{ => objects}/EventConsumer.java (76%) rename src/main/java/emu/grasscutter/utils/{JlineLogbackAppender.java => objects/JLineLogbackAppender.java} (70%) rename src/main/java/emu/grasscutter/utils/{ => objects}/KahnsSort.java (98%) rename src/main/java/emu/grasscutter/utils/{ => objects}/ServerLogEventAppender.java (86%) rename src/main/java/emu/grasscutter/utils/{ => objects}/SparseSet.java (98%) rename src/main/java/emu/grasscutter/utils/{ => objects}/WeightedList.java (94%) create mode 100644 src/main/java/emu/grasscutter/utils/objects/text/Style.java create mode 100644 src/main/java/emu/grasscutter/utils/objects/text/Text.java diff --git a/src/main/java/emu/grasscutter/GameConstants.java b/src/main/java/emu/grasscutter/GameConstants.java index 1768e94bf..d2cdd2767 100644 --- a/src/main/java/emu/grasscutter/GameConstants.java +++ b/src/main/java/emu/grasscutter/GameConstants.java @@ -1,7 +1,7 @@ package emu.grasscutter; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.SparseSet; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.objects.SparseSet; import emu.grasscutter.utils.Utils; import java.util.Arrays; diff --git a/src/main/java/emu/grasscutter/Grasscutter.java b/src/main/java/emu/grasscutter/Grasscutter.java index bed0a9453..88a3b9235 100644 --- a/src/main/java/emu/grasscutter/Grasscutter.java +++ b/src/main/java/emu/grasscutter/Grasscutter.java @@ -1,8 +1,5 @@ package emu.grasscutter; -import static emu.grasscutter.config.Configuration.SERVER; -import static emu.grasscutter.utils.Language.translate; - import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import emu.grasscutter.auth.AuthenticationSystem; @@ -28,13 +25,11 @@ import emu.grasscutter.server.http.handlers.GachaHandler; import emu.grasscutter.server.http.handlers.GenericHandler; import emu.grasscutter.server.http.handlers.LogHandler; import emu.grasscutter.tools.Tools; -import emu.grasscutter.utils.*; -import java.io.File; -import java.io.FileWriter; -import java.io.IOError; -import java.io.IOException; -import java.util.Calendar; -import javax.annotation.Nullable; +import emu.grasscutter.utils.Crypto; +import emu.grasscutter.utils.JsonUtils; +import emu.grasscutter.utils.StartupArguments; +import emu.grasscutter.utils.Utils; +import emu.grasscutter.utils.lang.Language; import lombok.Getter; import lombok.Setter; import org.jline.reader.EndOfFileException; @@ -46,6 +41,16 @@ import org.jline.terminal.TerminalBuilder; import org.reflections.Reflections; import org.slf4j.LoggerFactory; +import javax.annotation.Nullable; +import java.io.File; +import java.io.FileWriter; +import java.io.IOError; +import java.io.IOException; +import java.util.Calendar; + +import static emu.grasscutter.config.Configuration.SERVER; +import static emu.grasscutter.utils.lang.Language.translate; + public final class Grasscutter { public static final File configFile = new File("./config.json"); public static final Reflections reflector = new Reflections("emu.grasscutter"); diff --git a/src/main/java/emu/grasscutter/auth/DefaultAuthentication.java b/src/main/java/emu/grasscutter/auth/DefaultAuthentication.java index 4dbfcf967..241b7c894 100644 --- a/src/main/java/emu/grasscutter/auth/DefaultAuthentication.java +++ b/src/main/java/emu/grasscutter/auth/DefaultAuthentication.java @@ -1,7 +1,7 @@ package emu.grasscutter.auth; import static emu.grasscutter.config.Configuration.ACCOUNT; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.auth.DefaultAuthenticators.*; diff --git a/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java b/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java index 1206eec5d..219342d32 100644 --- a/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java +++ b/src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java @@ -1,7 +1,7 @@ package emu.grasscutter.auth; import static emu.grasscutter.config.Configuration.ACCOUNT; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import at.favre.lib.crypto.bcrypt.BCrypt; import emu.grasscutter.Grasscutter; diff --git a/src/main/java/emu/grasscutter/command/CommandHandler.java b/src/main/java/emu/grasscutter/command/CommandHandler.java index 213c79627..29e59aaf0 100644 --- a/src/main/java/emu/grasscutter/command/CommandHandler.java +++ b/src/main/java/emu/grasscutter/command/CommandHandler.java @@ -1,6 +1,6 @@ package emu.grasscutter.command; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.game.player.Player; diff --git a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java index fa9f5be23..b9edb9d32 100644 --- a/src/main/java/emu/grasscutter/command/commands/AccountCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/AccountCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import at.favre.lib.crypto.bcrypt.BCrypt; import emu.grasscutter.Grasscutter; diff --git a/src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java b/src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java index ce1aadee6..078e7a3a3 100644 --- a/src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/AnnounceCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/EnterDungeonCommand.java b/src/main/java/emu/grasscutter/command/commands/EnterDungeonCommand.java index 0edb6076c..77a2f7cb7 100644 --- a/src/main/java/emu/grasscutter/command/commands/EnterDungeonCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/EnterDungeonCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/EntityCommand.java b/src/main/java/emu/grasscutter/command/commands/EntityCommand.java index 38b9c397e..1c933dee7 100644 --- a/src/main/java/emu/grasscutter/command/commands/EntityCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/EntityCommand.java @@ -1,7 +1,7 @@ package emu.grasscutter.command.commands; import static emu.grasscutter.command.CommandHelpers.*; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/GroupCommand.java b/src/main/java/emu/grasscutter/command/commands/GroupCommand.java index f84686408..5bec40be1 100644 --- a/src/main/java/emu/grasscutter/command/commands/GroupCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/GroupCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/HealCommand.java b/src/main/java/emu/grasscutter/command/commands/HealCommand.java index 14cf0ae7d..491303cd3 100644 --- a/src/main/java/emu/grasscutter/command/commands/HealCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HealCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java index 28e1cc019..9e3ecbafa 100644 --- a/src/main/java/emu/grasscutter/command/commands/HelpCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/HelpCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java index bc0e9d09f..f2277574a 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillAllCommand.java @@ -1,15 +1,16 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; - import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.entity.EntityMonster; import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.game.player.Player; import emu.grasscutter.game.world.Scene; + import java.util.List; +import static emu.grasscutter.utils.lang.Language.translate; + @Command( label = "killall", usage = {"[]"}, diff --git a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java index 9c439151c..1ff4e42f6 100644 --- a/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/KillCharacterCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/LanguageCommand.java b/src/main/java/emu/grasscutter/command/commands/LanguageCommand.java index 2b0aeb76f..e6823b90f 100644 --- a/src/main/java/emu/grasscutter/command/commands/LanguageCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/LanguageCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/ListCommand.java b/src/main/java/emu/grasscutter/command/commands/ListCommand.java index 11d531f84..1b0bc954f 100644 --- a/src/main/java/emu/grasscutter/command/commands/ListCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ListCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java index 381c879c3..876a31a65 100644 --- a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java index a9ce498c8..9d412d800 100644 --- a/src/main/java/emu/grasscutter/command/commands/PositionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PositionCommand.java @@ -3,7 +3,7 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.player.Player; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; @Command( diff --git a/src/main/java/emu/grasscutter/command/commands/QuestCommand.java b/src/main/java/emu/grasscutter/command/commands/QuestCommand.java index 7345ccd28..7818933ea 100644 --- a/src/main/java/emu/grasscutter/command/commands/QuestCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/QuestCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java index 752859d1f..205852d6f 100644 --- a/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ReloadCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java index f3cff5a87..963a1ccb1 100644 --- a/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ResetConstCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/ResetShopLimitCommand.java b/src/main/java/emu/grasscutter/command/commands/ResetShopLimitCommand.java index f43a30559..0b1ae22f4 100644 --- a/src/main/java/emu/grasscutter/command/commands/ResetShopLimitCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/ResetShopLimitCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java index 07ccd5d02..bca7d0e2a 100644 --- a/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SendMailCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/SetConstCommand.java b/src/main/java/emu/grasscutter/command/commands/SetConstCommand.java index 1952cadec..9833f367c 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetConstCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetConstCommand.java @@ -8,7 +8,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.World; import emu.grasscutter.server.packet.send.PacketSceneEntityAppearNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; @Command( diff --git a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java index 5bb63bba0..472e0df2b 100644 --- a/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SetFetterLevelCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/SoundCommand.java b/src/main/java/emu/grasscutter/command/commands/SoundCommand.java index 6f1915e66..17555ad85 100644 --- a/src/main/java/emu/grasscutter/command/commands/SoundCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SoundCommand.java @@ -1,12 +1,12 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.player.Player; import emu.grasscutter.server.packet.send.PacketScenePlayerSoundNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import lombok.val; diff --git a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java index c1c1fd481..cdc735c38 100644 --- a/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/SpawnCommand.java @@ -2,7 +2,7 @@ package emu.grasscutter.command.commands; import static emu.grasscutter.command.CommandHelpers.*; import static emu.grasscutter.config.Configuration.GAME_OPTIONS; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; @@ -15,7 +15,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.EntityType; import emu.grasscutter.game.props.FightProperty; import emu.grasscutter.game.world.Scene; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import java.util.Map; import java.util.function.BiConsumer; diff --git a/src/main/java/emu/grasscutter/command/commands/StopCommand.java b/src/main/java/emu/grasscutter/command/commands/StopCommand.java index 330e38654..ec43b6c0f 100644 --- a/src/main/java/emu/grasscutter/command/commands/StopCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/StopCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.Command; diff --git a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java index e5720ff56..69d655afb 100644 --- a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java @@ -6,7 +6,7 @@ import emu.grasscutter.data.GameData; import emu.grasscutter.data.excels.avatar.AvatarSkillDepotData; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.player.Player; -import emu.grasscutter.utils.Language; +import emu.grasscutter.utils.lang.Language; import java.util.List; @Command( diff --git a/src/main/java/emu/grasscutter/command/commands/TeleportAllCommand.java b/src/main/java/emu/grasscutter/command/commands/TeleportAllCommand.java index 19aeaabd8..a253b40e4 100644 --- a/src/main/java/emu/grasscutter/command/commands/TeleportAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TeleportAllCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java index 33adf2347..06812c690 100644 --- a/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TeleportCommand.java @@ -1,12 +1,12 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; import emu.grasscutter.game.player.Player; import emu.grasscutter.server.event.player.PlayerTeleportEvent.TeleportType; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; @Command( diff --git a/src/main/java/emu/grasscutter/command/commands/TrialAvatarActivityCommand.java b/src/main/java/emu/grasscutter/command/commands/TrialAvatarActivityCommand.java index 92500cb10..5a2a0160b 100644 --- a/src/main/java/emu/grasscutter/command/commands/TrialAvatarActivityCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TrialAvatarActivityCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/command/commands/UnlockAllCommand.java b/src/main/java/emu/grasscutter/command/commands/UnlockAllCommand.java index dd66507b9..4f16448b0 100644 --- a/src/main/java/emu/grasscutter/command/commands/UnlockAllCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/UnlockAllCommand.java @@ -1,6 +1,6 @@ package emu.grasscutter.command.commands; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; diff --git a/src/main/java/emu/grasscutter/data/GameDepot.java b/src/main/java/emu/grasscutter/data/GameDepot.java index f9e791a71..31b5377b5 100644 --- a/src/main/java/emu/grasscutter/data/GameDepot.java +++ b/src/main/java/emu/grasscutter/data/GameDepot.java @@ -6,7 +6,7 @@ import emu.grasscutter.data.excels.reliquary.ReliquaryAffixData; import emu.grasscutter.data.excels.reliquary.ReliquaryMainPropData; import emu.grasscutter.game.managers.blossom.BlossomConfig; import emu.grasscutter.game.world.SpawnDataEntry; -import emu.grasscutter.utils.WeightedList; +import emu.grasscutter.utils.objects.WeightedList; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import java.util.ArrayList; diff --git a/src/main/java/emu/grasscutter/data/ResourceLoader.java b/src/main/java/emu/grasscutter/data/ResourceLoader.java index 9f533567a..38b91f981 100644 --- a/src/main/java/emu/grasscutter/data/ResourceLoader.java +++ b/src/main/java/emu/grasscutter/data/ResourceLoader.java @@ -1,9 +1,5 @@ package emu.grasscutter.data; -import static emu.grasscutter.utils.FileUtils.getDataPath; -import static emu.grasscutter.utils.FileUtils.getResourcePath; -import static emu.grasscutter.utils.Language.translate; - import com.google.gson.annotations.SerializedName; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.binout.*; @@ -28,12 +24,18 @@ import emu.grasscutter.scripts.SceneIndexManager; import emu.grasscutter.scripts.ScriptLoader; import emu.grasscutter.utils.FileUtils; import emu.grasscutter.utils.JsonUtils; -import emu.grasscutter.utils.Language; import emu.grasscutter.utils.TsvUtils; +import emu.grasscutter.utils.lang.Language; import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntArraySet; +import lombok.SneakyThrows; +import lombok.val; +import org.reflections.Reflections; + +import javax.script.Bindings; +import javax.script.CompiledScript; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Files; @@ -46,11 +48,10 @@ import java.util.concurrent.CopyOnWriteArraySet; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.script.Bindings; -import javax.script.CompiledScript; -import lombok.SneakyThrows; -import lombok.val; -import org.reflections.Reflections; + +import static emu.grasscutter.utils.FileUtils.getDataPath; +import static emu.grasscutter.utils.FileUtils.getResourcePath; +import static emu.grasscutter.utils.lang.Language.translate; public final class ResourceLoader { @@ -125,6 +126,8 @@ public final class ResourceLoader { @SneakyThrows public static void loadAll() { if (loadedAll) return; + loadedAll = true; + Grasscutter.getLogger().info(translate("messages.status.resources.loading")); // Mark the starting time. @@ -202,7 +205,6 @@ public final class ResourceLoader { Grasscutter.getLogger().debug("Loading resources took " + ns + "ns (" + ns / 1000000 + "ms)."); Grasscutter.getLogger().info(translate("messages.status.resources.finish")); - loadedAll = true; } public static void loadResources() { diff --git a/src/main/java/emu/grasscutter/data/binout/HomeworldDefaultSaveData.java b/src/main/java/emu/grasscutter/data/binout/HomeworldDefaultSaveData.java index f372ccd56..bf65544c8 100644 --- a/src/main/java/emu/grasscutter/data/binout/HomeworldDefaultSaveData.java +++ b/src/main/java/emu/grasscutter/data/binout/HomeworldDefaultSaveData.java @@ -1,7 +1,7 @@ package emu.grasscutter.data.binout; import com.google.gson.annotations.SerializedName; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import lombok.AccessLevel; import lombok.Data; diff --git a/src/main/java/emu/grasscutter/data/binout/SceneNpcBornEntry.java b/src/main/java/emu/grasscutter/data/binout/SceneNpcBornEntry.java index 926554bb8..372704a66 100644 --- a/src/main/java/emu/grasscutter/data/binout/SceneNpcBornEntry.java +++ b/src/main/java/emu/grasscutter/data/binout/SceneNpcBornEntry.java @@ -1,7 +1,7 @@ package emu.grasscutter.data.binout; import com.google.gson.annotations.SerializedName; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import lombok.AccessLevel; import lombok.Data; diff --git a/src/main/java/emu/grasscutter/data/binout/routes/RoutePoint.java b/src/main/java/emu/grasscutter/data/binout/routes/RoutePoint.java index 49fd36d18..e7ca9fbb2 100644 --- a/src/main/java/emu/grasscutter/data/binout/routes/RoutePoint.java +++ b/src/main/java/emu/grasscutter/data/binout/routes/RoutePoint.java @@ -1,7 +1,7 @@ package emu.grasscutter.data.binout.routes; import emu.grasscutter.net.proto.RoutePointOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.AccessLevel; import lombok.Data; import lombok.experimental.FieldDefaults; diff --git a/src/main/java/emu/grasscutter/data/common/PointData.java b/src/main/java/emu/grasscutter/data/common/PointData.java index daf749ac1..608bcbd8a 100644 --- a/src/main/java/emu/grasscutter/data/common/PointData.java +++ b/src/main/java/emu/grasscutter/data/common/PointData.java @@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.GameData; import emu.grasscutter.data.excels.dungeon.DailyDungeonData; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/data/excels/dungeon/DungeonData.java b/src/main/java/emu/grasscutter/data/excels/dungeon/DungeonData.java index 520d501fc..013c9574f 100644 --- a/src/main/java/emu/grasscutter/data/excels/dungeon/DungeonData.java +++ b/src/main/java/emu/grasscutter/data/excels/dungeon/DungeonData.java @@ -6,7 +6,7 @@ import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.excels.RewardPreviewData; import emu.grasscutter.game.dungeons.enums.*; import emu.grasscutter.scripts.data.SceneMeta; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/data/server/Grid.java b/src/main/java/emu/grasscutter/data/server/Grid.java index 3a0ed2536..d0c333324 100644 --- a/src/main/java/emu/grasscutter/data/server/Grid.java +++ b/src/main/java/emu/grasscutter/data/server/Grid.java @@ -4,8 +4,8 @@ import com.github.davidmoten.rtreemulti.RTree; import com.github.davidmoten.rtreemulti.geometry.Geometry; import emu.grasscutter.Grasscutter; import emu.grasscutter.scripts.SceneIndexManager; -import emu.grasscutter.utils.GridPosition; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.GridPosition; +import emu.grasscutter.game.world.Position; import java.util.*; public class Grid { diff --git a/src/main/java/emu/grasscutter/game/activity/ActivityHandler.java b/src/main/java/emu/grasscutter/game/activity/ActivityHandler.java index 276120481..a1371376e 100644 --- a/src/main/java/emu/grasscutter/game/activity/ActivityHandler.java +++ b/src/main/java/emu/grasscutter/game/activity/ActivityHandler.java @@ -9,7 +9,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.props.WatcherTriggerType; import emu.grasscutter.game.quest.enums.QuestCond; import emu.grasscutter.net.proto.ActivityInfoOuterClass; -import emu.grasscutter.utils.DateHelper; +import emu.grasscutter.utils.helpers.DateHelper; import java.util.*; import java.util.stream.Collectors; import lombok.AccessLevel; diff --git a/src/main/java/emu/grasscutter/game/avatar/Avatar.java b/src/main/java/emu/grasscutter/game/avatar/Avatar.java index 0b7292e16..d1f2809d0 100644 --- a/src/main/java/emu/grasscutter/game/avatar/Avatar.java +++ b/src/main/java/emu/grasscutter/game/avatar/Avatar.java @@ -40,7 +40,7 @@ import emu.grasscutter.net.proto.ShowEquipOuterClass.ShowEquip; import emu.grasscutter.net.proto.TrialAvatarGrantRecordOuterClass.TrialAvatarGrantRecord; import emu.grasscutter.net.proto.TrialAvatarInfoOuterClass.TrialAvatarInfo; import emu.grasscutter.server.packet.send.*; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.*; import java.util.*; import java.util.stream.Stream; diff --git a/src/main/java/emu/grasscutter/game/drop/DropSystemLegacy.java b/src/main/java/emu/grasscutter/game/drop/DropSystemLegacy.java index d63ad2d99..2ea1d25e1 100644 --- a/src/main/java/emu/grasscutter/game/drop/DropSystemLegacy.java +++ b/src/main/java/emu/grasscutter/game/drop/DropSystemLegacy.java @@ -14,7 +14,7 @@ import emu.grasscutter.game.props.ActionReason; import emu.grasscutter.game.world.Scene; import emu.grasscutter.server.game.BaseGameSystem; import emu.grasscutter.server.game.GameServer; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/src/main/java/emu/grasscutter/game/dungeons/DungeonManager.java b/src/main/java/emu/grasscutter/game/dungeons/DungeonManager.java index 47be79116..ead09dbaf 100644 --- a/src/main/java/emu/grasscutter/game/dungeons/DungeonManager.java +++ b/src/main/java/emu/grasscutter/game/dungeons/DungeonManager.java @@ -20,7 +20,7 @@ import emu.grasscutter.scripts.constants.EventType; import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.server.packet.send.PacketDungeonWayPointNotify; import emu.grasscutter.server.packet.send.PacketGadgetAutoPickDropInfoNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntSet; diff --git a/src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java b/src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java index 60ef71347..9c4334ac9 100644 --- a/src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java +++ b/src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java @@ -15,7 +15,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.server.game.BaseGameSystem; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.packet.send.PacketDungeonEntryInfoRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import lombok.val; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java index f53d0bfcb..c2fce31c9 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityAvatar.java @@ -34,8 +34,8 @@ import emu.grasscutter.server.event.player.PlayerMoveEvent; import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketEntityFightPropChangeReasonNotify; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityBaseGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityBaseGadget.java index 0e4db72e6..3f2d1325a 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityBaseGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityBaseGadget.java @@ -8,7 +8,7 @@ import emu.grasscutter.game.quest.enums.QuestContent; import emu.grasscutter.game.world.Scene; import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.server.event.entity.EntityDamageEvent; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Getter; public abstract class EntityBaseGadget extends GameEntity { diff --git a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java index 27453a691..6fb185555 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityClientGadget.java @@ -17,8 +17,8 @@ import emu.grasscutter.net.proto.SceneEntityAiInfoOuterClass.SceneEntityAiInfo; import emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo; import emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo; import emu.grasscutter.net.proto.VectorOuterClass.Vector; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java index c2bbf615d..2608677f6 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityGadget.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityGadget.java @@ -34,8 +34,8 @@ import emu.grasscutter.server.packet.send.PacketGadgetStateNotify; import emu.grasscutter.server.packet.send.PacketPlatformStartRouteNotify; import emu.grasscutter.server.packet.send.PacketPlatformStopRouteNotify; import emu.grasscutter.server.packet.send.PacketSceneTimeNotify; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import java.util.ArrayList; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityItem.java b/src/main/java/emu/grasscutter/game/entity/EntityItem.java index 1ca0a583a..d985dba6e 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityItem.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityItem.java @@ -23,8 +23,8 @@ import emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo; import emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo; import emu.grasscutter.net.proto.VectorOuterClass.Vector; import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java index d5b5a062f..2edc587d0 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityMonster.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityMonster.java @@ -28,8 +28,8 @@ import emu.grasscutter.scripts.constants.EventType; import emu.grasscutter.scripts.data.SceneMonster; import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.server.event.entity.EntityDamageEvent; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityNPC.java b/src/main/java/emu/grasscutter/game/entity/EntityNPC.java index e9db22fa7..896416ff9 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityNPC.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityNPC.java @@ -4,7 +4,7 @@ import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.world.Scene; import emu.grasscutter.net.proto.*; import emu.grasscutter.scripts.data.SceneNPC; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityRegion.java b/src/main/java/emu/grasscutter/game/entity/EntityRegion.java index 6a52297b2..2fa320f77 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityRegion.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityRegion.java @@ -4,7 +4,7 @@ import emu.grasscutter.game.props.EntityIdType; import emu.grasscutter.game.world.Scene; import emu.grasscutter.net.proto.SceneEntityInfoOuterClass; import emu.grasscutter.scripts.data.SceneRegion; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/emu/grasscutter/game/entity/EntityVehicle.java b/src/main/java/emu/grasscutter/game/entity/EntityVehicle.java index 27d6a8bd9..202760257 100644 --- a/src/main/java/emu/grasscutter/game/entity/EntityVehicle.java +++ b/src/main/java/emu/grasscutter/game/entity/EntityVehicle.java @@ -21,8 +21,8 @@ import emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo; import emu.grasscutter.net.proto.VectorOuterClass.Vector; import emu.grasscutter.net.proto.VehicleInfoOuterClass.VehicleInfo; import emu.grasscutter.net.proto.VehicleMemberOuterClass.VehicleMember; -import emu.grasscutter.utils.Position; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.game.world.Position; +import emu.grasscutter.utils.helpers.ProtoHelper; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2FloatOpenHashMap; import java.util.ArrayList; diff --git a/src/main/java/emu/grasscutter/game/entity/GameEntity.java b/src/main/java/emu/grasscutter/game/entity/GameEntity.java index 04baa939a..c77abbbaf 100644 --- a/src/main/java/emu/grasscutter/game/entity/GameEntity.java +++ b/src/main/java/emu/grasscutter/game/entity/GameEntity.java @@ -18,7 +18,7 @@ import emu.grasscutter.scripts.data.controller.EntityController; import emu.grasscutter.server.event.entity.EntityDamageEvent; import emu.grasscutter.server.event.entity.EntityDeathEvent; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.Int2FloatMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/src/main/java/emu/grasscutter/game/entity/gadget/platform/AbilityRoute.java b/src/main/java/emu/grasscutter/game/entity/gadget/platform/AbilityRoute.java index 69e8d9eea..dda57c522 100644 --- a/src/main/java/emu/grasscutter/game/entity/gadget/platform/AbilityRoute.java +++ b/src/main/java/emu/grasscutter/game/entity/gadget/platform/AbilityRoute.java @@ -3,7 +3,7 @@ package emu.grasscutter.game.entity.gadget.platform; import emu.grasscutter.net.proto.MathQuaternionOuterClass.MathQuaternion; import emu.grasscutter.net.proto.MovingPlatformTypeOuterClass; import emu.grasscutter.net.proto.PlatformInfoOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; /** TODO mostly hardcoded for EntitySolarIsotomaElevatorPlatform, should be more generic */ public class AbilityRoute extends BaseRoute { diff --git a/src/main/java/emu/grasscutter/game/entity/gadget/platform/BaseRoute.java b/src/main/java/emu/grasscutter/game/entity/gadget/platform/BaseRoute.java index d3d02e790..11e08df01 100644 --- a/src/main/java/emu/grasscutter/game/entity/gadget/platform/BaseRoute.java +++ b/src/main/java/emu/grasscutter/game/entity/gadget/platform/BaseRoute.java @@ -4,7 +4,7 @@ import emu.grasscutter.game.world.Scene; import emu.grasscutter.net.proto.MathQuaternionOuterClass.MathQuaternion; import emu.grasscutter.net.proto.PlatformInfoOuterClass.PlatformInfo; import emu.grasscutter.scripts.data.SceneGadget; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Getter; import lombok.Setter; import lombok.val; diff --git a/src/main/java/emu/grasscutter/game/entity/gadget/platform/ConfigRoute.java b/src/main/java/emu/grasscutter/game/entity/gadget/platform/ConfigRoute.java index 69f68f37a..91bbf2984 100644 --- a/src/main/java/emu/grasscutter/game/entity/gadget/platform/ConfigRoute.java +++ b/src/main/java/emu/grasscutter/game/entity/gadget/platform/ConfigRoute.java @@ -3,7 +3,7 @@ package emu.grasscutter.game.entity.gadget.platform; import emu.grasscutter.net.proto.MovingPlatformTypeOuterClass; import emu.grasscutter.net.proto.PlatformInfoOuterClass; import emu.grasscutter.scripts.data.SceneGadget; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/game/entity/gadget/platform/PointArrayRoute.java b/src/main/java/emu/grasscutter/game/entity/gadget/platform/PointArrayRoute.java index e987aef34..48909b549 100644 --- a/src/main/java/emu/grasscutter/game/entity/gadget/platform/PointArrayRoute.java +++ b/src/main/java/emu/grasscutter/game/entity/gadget/platform/PointArrayRoute.java @@ -3,7 +3,7 @@ package emu.grasscutter.game.entity.gadget.platform; import emu.grasscutter.net.proto.MovingPlatformTypeOuterClass; import emu.grasscutter.net.proto.PlatformInfoOuterClass; import emu.grasscutter.scripts.data.SceneGadget; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/game/entity/platform/EntitySolarIsotomaElevatorPlatform.java b/src/main/java/emu/grasscutter/game/entity/platform/EntitySolarIsotomaElevatorPlatform.java index 84d7a8803..e21783244 100644 --- a/src/main/java/emu/grasscutter/game/entity/platform/EntitySolarIsotomaElevatorPlatform.java +++ b/src/main/java/emu/grasscutter/game/entity/platform/EntitySolarIsotomaElevatorPlatform.java @@ -6,7 +6,7 @@ import emu.grasscutter.game.entity.*; import emu.grasscutter.game.entity.gadget.GadgetAbility; import emu.grasscutter.game.entity.gadget.platform.AbilityRoute; import emu.grasscutter.game.world.Scene; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; public class EntitySolarIsotomaElevatorPlatform extends EntityGadget { @SuppressWarnings("removal") diff --git a/src/main/java/emu/grasscutter/game/home/HomeAnimalItem.java b/src/main/java/emu/grasscutter/game/home/HomeAnimalItem.java index 838281d23..07239d65d 100644 --- a/src/main/java/emu/grasscutter/game/home/HomeAnimalItem.java +++ b/src/main/java/emu/grasscutter/game/home/HomeAnimalItem.java @@ -2,7 +2,7 @@ package emu.grasscutter.game.home; import dev.morphia.annotations.Entity; import emu.grasscutter.net.proto.HomeAnimalDataOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.AccessLevel; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/emu/grasscutter/game/home/HomeFurnitureItem.java b/src/main/java/emu/grasscutter/game/home/HomeFurnitureItem.java index 48a83246d..548c1ac0b 100644 --- a/src/main/java/emu/grasscutter/game/home/HomeFurnitureItem.java +++ b/src/main/java/emu/grasscutter/game/home/HomeFurnitureItem.java @@ -6,7 +6,7 @@ import emu.grasscutter.data.binout.HomeworldDefaultSaveData; import emu.grasscutter.data.excels.ItemData; import emu.grasscutter.net.proto.HomeFurnitureDataOuterClass; import emu.grasscutter.net.proto.HomeMarkPointFurnitureDataOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.AccessLevel; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/emu/grasscutter/game/home/HomeNPCItem.java b/src/main/java/emu/grasscutter/game/home/HomeNPCItem.java index aee33fd0f..f1870046d 100644 --- a/src/main/java/emu/grasscutter/game/home/HomeNPCItem.java +++ b/src/main/java/emu/grasscutter/game/home/HomeNPCItem.java @@ -2,7 +2,7 @@ package emu.grasscutter.game.home; import dev.morphia.annotations.Entity; import emu.grasscutter.net.proto.HomeNpcDataOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.AccessLevel; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/emu/grasscutter/game/home/HomeSceneItem.java b/src/main/java/emu/grasscutter/game/home/HomeSceneItem.java index 6af72600a..2c8e2a7a8 100644 --- a/src/main/java/emu/grasscutter/game/home/HomeSceneItem.java +++ b/src/main/java/emu/grasscutter/game/home/HomeSceneItem.java @@ -5,7 +5,7 @@ import dev.morphia.annotations.Id; import emu.grasscutter.Grasscutter; import emu.grasscutter.data.binout.HomeworldDefaultSaveData; import emu.grasscutter.net.proto.HomeSceneArrangementInfoOuterClass.HomeSceneArrangementInfo; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.Map; import java.util.stream.Collectors; import lombok.AccessLevel; diff --git a/src/main/java/emu/grasscutter/game/inventory/GameItem.java b/src/main/java/emu/grasscutter/game/inventory/GameItem.java index 049c2b2d8..f93d29c29 100644 --- a/src/main/java/emu/grasscutter/game/inventory/GameItem.java +++ b/src/main/java/emu/grasscutter/game/inventory/GameItem.java @@ -21,7 +21,7 @@ import emu.grasscutter.net.proto.ReliquaryOuterClass.Reliquary; import emu.grasscutter.net.proto.SceneReliquaryInfoOuterClass.SceneReliquaryInfo; import emu.grasscutter.net.proto.SceneWeaponInfoOuterClass.SceneWeaponInfo; import emu.grasscutter.net.proto.WeaponOuterClass.Weapon; -import emu.grasscutter.utils.WeightedList; +import emu.grasscutter.utils.objects.WeightedList; import java.util.ArrayList; import java.util.HashSet; import java.util.List; diff --git a/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java b/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java index b6f5a4ca5..34f333e98 100644 --- a/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java +++ b/src/main/java/emu/grasscutter/game/managers/blossom/BlossomActivity.java @@ -11,7 +11,7 @@ import emu.grasscutter.game.world.Scene; import emu.grasscutter.scripts.data.SceneBossChest; import emu.grasscutter.scripts.data.SceneGadget; import emu.grasscutter.scripts.data.SceneGroup; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.Utils; import java.util.ArrayDeque; import java.util.ArrayList; diff --git a/src/main/java/emu/grasscutter/game/managers/deforestation/DeforestationManager.java b/src/main/java/emu/grasscutter/game/managers/deforestation/DeforestationManager.java index 3c85c616f..fc70e17d2 100644 --- a/src/main/java/emu/grasscutter/game/managers/deforestation/DeforestationManager.java +++ b/src/main/java/emu/grasscutter/game/managers/deforestation/DeforestationManager.java @@ -8,7 +8,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.world.Scene; import emu.grasscutter.net.proto.HitTreeNotifyOuterClass; import emu.grasscutter.net.proto.VectorOuterClass; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/emu/grasscutter/game/managers/energy/EnergyManager.java b/src/main/java/emu/grasscutter/game/managers/energy/EnergyManager.java index a624855ac..c277a975d 100644 --- a/src/main/java/emu/grasscutter/game/managers/energy/EnergyManager.java +++ b/src/main/java/emu/grasscutter/game/managers/energy/EnergyManager.java @@ -25,7 +25,7 @@ import emu.grasscutter.net.proto.ChangeEnergyReasonOuterClass.ChangeEnergyReason import emu.grasscutter.net.proto.EvtBeingHitInfoOuterClass.EvtBeingHitInfo; import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason; import emu.grasscutter.server.game.GameSession; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; diff --git a/src/main/java/emu/grasscutter/game/managers/mapmark/MapMark.java b/src/main/java/emu/grasscutter/game/managers/mapmark/MapMark.java index a3a65ab9e..1c3bc757d 100644 --- a/src/main/java/emu/grasscutter/game/managers/mapmark/MapMark.java +++ b/src/main/java/emu/grasscutter/game/managers/mapmark/MapMark.java @@ -4,7 +4,7 @@ import dev.morphia.annotations.Entity; import emu.grasscutter.net.proto.MapMarkFromTypeOuterClass.MapMarkFromType; import emu.grasscutter.net.proto.MapMarkPointOuterClass.MapMarkPoint; import emu.grasscutter.net.proto.MapMarkPointTypeOuterClass.MapMarkPointType; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Entity public class MapMark { diff --git a/src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java b/src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java index 65c8f7e5a..254f8818d 100644 --- a/src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java +++ b/src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java @@ -9,7 +9,7 @@ import emu.grasscutter.net.proto.MarkMapReqOuterClass.MarkMapReq.Operation; import emu.grasscutter.server.event.player.PlayerTeleportEvent.TeleportType; import emu.grasscutter.server.packet.send.PacketMarkMapRsp; import emu.grasscutter.server.packet.send.PacketSceneEntityAppearNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.Map; public class MapMarksManager extends BasePlayerManager { diff --git a/src/main/java/emu/grasscutter/game/managers/stamina/StaminaManager.java b/src/main/java/emu/grasscutter/game/managers/stamina/StaminaManager.java index bc1474c58..bc4f6ffb1 100644 --- a/src/main/java/emu/grasscutter/game/managers/stamina/StaminaManager.java +++ b/src/main/java/emu/grasscutter/game/managers/stamina/StaminaManager.java @@ -22,7 +22,7 @@ import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketLifeStateChangeNotify; import emu.grasscutter.server.packet.send.PacketVehicleStaminaNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import org.jetbrains.annotations.NotNull; import java.util.*; diff --git a/src/main/java/emu/grasscutter/game/player/Player.java b/src/main/java/emu/grasscutter/game/player/Player.java index 070fe54a8..4f1db9c55 100644 --- a/src/main/java/emu/grasscutter/game/player/Player.java +++ b/src/main/java/emu/grasscutter/game/player/Player.java @@ -47,6 +47,7 @@ import emu.grasscutter.game.shop.ShopLimit; import emu.grasscutter.game.talk.TalkManager; import emu.grasscutter.game.tower.TowerData; import emu.grasscutter.game.tower.TowerManager; +import emu.grasscutter.game.world.Position; import emu.grasscutter.game.world.Scene; import emu.grasscutter.game.world.World; import emu.grasscutter.net.packet.BasePacket; @@ -73,6 +74,7 @@ import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.game.GameSession.SessionState; import emu.grasscutter.server.packet.send.*; import emu.grasscutter.utils.*; +import emu.grasscutter.utils.helpers.DateHelper; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import lombok.Getter; @@ -152,7 +154,6 @@ public class Player implements PlayerHook { @Getter private transient Inventory inventory; @Getter private transient FriendsList friendsList; @Getter private transient MailHandler mailHandler; - @Getter @Setter private transient MessageHandler messageHandler; @Getter private transient AbilityManager abilityManager; @Getter @Setter private transient QuestManager questManager; @Getter private transient TowerManager towerManager; @@ -277,7 +278,6 @@ public class Player implements PlayerHook { this.progressManager = new PlayerProgressManager(this); this.shopLimit = new ArrayList<>(); this.expeditionInfo = new HashMap<>(); - this.messageHandler = null; this.mapMarksManager = new MapMarksManager(this); this.staminaManager = new StaminaManager(this); this.sotsManager = new SotSManager(this); @@ -309,7 +309,6 @@ public class Player implements PlayerHook { this.getFlyCloakList().add(140001); this.getNameCardList().add(210001); - this.messageHandler = null; this.mapMarksManager = new MapMarksManager(this); this.staminaManager = new StaminaManager(this); this.sotsManager = new SotSManager(this); @@ -954,11 +953,6 @@ public class Player implements PlayerHook { * @param message The message to send. */ public void dropMessage(Object message) { - if (this.messageHandler != null) { - this.messageHandler.append(message.toString()); - return; - } - this.getServer().getChatSystem().sendPrivateMessageFromServer(getUid(), message.toString()); } diff --git a/src/main/java/emu/grasscutter/game/player/TeamManager.java b/src/main/java/emu/grasscutter/game/player/TeamManager.java index 0c1efd20f..4aaff8176 100644 --- a/src/main/java/emu/grasscutter/game/player/TeamManager.java +++ b/src/main/java/emu/grasscutter/game/player/TeamManager.java @@ -26,7 +26,7 @@ import emu.grasscutter.net.proto.TrialAvatarGrantRecordOuterClass.TrialAvatarGra import emu.grasscutter.net.proto.VisionTypeOuterClass; import emu.grasscutter.server.event.player.PlayerTeamDeathEvent; import emu.grasscutter.server.packet.send.*; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; diff --git a/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java b/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java index 5b891fd2a..214e7d65e 100644 --- a/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java +++ b/src/main/java/emu/grasscutter/game/quest/GameMainQuest.java @@ -23,7 +23,7 @@ import emu.grasscutter.server.packet.send.PacketFinishedParentQuestUpdateNotify; import emu.grasscutter.server.packet.send.PacketQuestProgressUpdateNotify; import emu.grasscutter.server.packet.send.PacketQuestUpdateQuestVarNotify; import emu.grasscutter.utils.ConversionUtils; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.*; import java.util.stream.Collectors; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/quest/QuestManager.java b/src/main/java/emu/grasscutter/game/quest/QuestManager.java index 9a3b4b1e9..a3f34185d 100644 --- a/src/main/java/emu/grasscutter/game/quest/QuestManager.java +++ b/src/main/java/emu/grasscutter/game/quest/QuestManager.java @@ -12,7 +12,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.quest.enums.*; import emu.grasscutter.server.packet.send.PacketFinishedParentQuestUpdateNotify; import emu.grasscutter.server.packet.send.PacketQuestGlobalVarNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import io.netty.util.concurrent.FastThreadLocalThread; import it.unimi.dsi.fastutil.ints.*; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/talk/exec/ExecTransSceneDummyPoint.java b/src/main/java/emu/grasscutter/game/talk/exec/ExecTransSceneDummyPoint.java index 2c1a4ef8c..6eca515ae 100644 --- a/src/main/java/emu/grasscutter/game/talk/exec/ExecTransSceneDummyPoint.java +++ b/src/main/java/emu/grasscutter/game/talk/exec/ExecTransSceneDummyPoint.java @@ -7,7 +7,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.talk.TalkExec; import emu.grasscutter.game.talk.TalkExecHandler; import emu.grasscutter.game.talk.TalkValueExec; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @TalkValueExec(TalkExec.TALK_EXEC_TRANS_SCENE_DUMMY_POINT) public final class ExecTransSceneDummyPoint extends TalkExecHandler { diff --git a/src/main/java/emu/grasscutter/utils/GridPosition.java b/src/main/java/emu/grasscutter/game/world/GridPosition.java similarity index 98% rename from src/main/java/emu/grasscutter/utils/GridPosition.java rename to src/main/java/emu/grasscutter/game/world/GridPosition.java index 5bb9cc305..4261bf33c 100644 --- a/src/main/java/emu/grasscutter/utils/GridPosition.java +++ b/src/main/java/emu/grasscutter/game/world/GridPosition.java @@ -1,14 +1,15 @@ -package emu.grasscutter.utils; +package emu.grasscutter.game.world; import com.github.davidmoten.rtreemulti.geometry.Point; import dev.morphia.annotations.Entity; -import java.io.IOException; -import java.io.Serializable; -import java.util.List; import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; +import java.io.IOException; +import java.io.Serializable; +import java.util.List; + @Entity public final class GridPosition implements Serializable { private static final long serialVersionUID = -2001232300615923575L; diff --git a/src/main/java/emu/grasscutter/utils/Location.java b/src/main/java/emu/grasscutter/game/world/Location.java similarity index 92% rename from src/main/java/emu/grasscutter/utils/Location.java rename to src/main/java/emu/grasscutter/game/world/Location.java index 829b7ed27..32779f170 100644 --- a/src/main/java/emu/grasscutter/utils/Location.java +++ b/src/main/java/emu/grasscutter/game/world/Location.java @@ -1,8 +1,7 @@ -package emu.grasscutter.utils; +package emu.grasscutter.game.world; import dev.morphia.annotations.Entity; import dev.morphia.annotations.Transient; -import emu.grasscutter.game.world.Scene; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/utils/Position.java b/src/main/java/emu/grasscutter/game/world/Position.java similarity index 98% rename from src/main/java/emu/grasscutter/utils/Position.java rename to src/main/java/emu/grasscutter/game/world/Position.java index 29eb5ebce..29da3680d 100644 --- a/src/main/java/emu/grasscutter/utils/Position.java +++ b/src/main/java/emu/grasscutter/game/world/Position.java @@ -1,9 +1,10 @@ -package emu.grasscutter.utils; +package emu.grasscutter.game.world; import com.github.davidmoten.rtreemulti.geometry.Point; import com.google.gson.annotations.SerializedName; import dev.morphia.annotations.Entity; import emu.grasscutter.net.proto.VectorOuterClass.Vector; +import emu.grasscutter.utils.Utils; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/game/world/Scene.java b/src/main/java/emu/grasscutter/game/world/Scene.java index fdc02b06b..b8744e53f 100644 --- a/src/main/java/emu/grasscutter/game/world/Scene.java +++ b/src/main/java/emu/grasscutter/game/world/Scene.java @@ -38,8 +38,7 @@ import emu.grasscutter.scripts.data.SceneGroup; import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.server.event.player.PlayerTeleportEvent; import emu.grasscutter.server.packet.send.*; -import emu.grasscutter.utils.KahnsSort; -import emu.grasscutter.utils.Position; +import emu.grasscutter.utils.objects.KahnsSort; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import java.util.*; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/emu/grasscutter/game/world/SpawnDataEntry.java b/src/main/java/emu/grasscutter/game/world/SpawnDataEntry.java index c08f33193..1c5ad8c0f 100644 --- a/src/main/java/emu/grasscutter/game/world/SpawnDataEntry.java +++ b/src/main/java/emu/grasscutter/game/world/SpawnDataEntry.java @@ -1,7 +1,7 @@ package emu.grasscutter.game.world; import emu.grasscutter.data.GameDepot; -import emu.grasscutter.utils.Position; + import java.util.List; import java.util.Objects; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/game/world/World.java b/src/main/java/emu/grasscutter/game/world/World.java index 6d1f8af9f..ffc388cec 100644 --- a/src/main/java/emu/grasscutter/game/world/World.java +++ b/src/main/java/emu/grasscutter/game/world/World.java @@ -20,7 +20,6 @@ import emu.grasscutter.server.event.player.PlayerTeleportEvent.TeleportType; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.server.packet.send.*; import emu.grasscutter.utils.ConversionUtils; -import emu.grasscutter.utils.Position; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/src/main/java/emu/grasscutter/game/world/data/TeleportProperties.java b/src/main/java/emu/grasscutter/game/world/data/TeleportProperties.java index baaa93f42..136a716f4 100644 --- a/src/main/java/emu/grasscutter/game/world/data/TeleportProperties.java +++ b/src/main/java/emu/grasscutter/game/world/data/TeleportProperties.java @@ -3,13 +3,13 @@ package emu.grasscutter.game.world.data; import emu.grasscutter.game.props.EnterReason; import emu.grasscutter.net.proto.EnterTypeOuterClass; import emu.grasscutter.server.event.player.PlayerTeleportEvent; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Builder; import lombok.Data; @Data @Builder -public class TeleportProperties { +public final class TeleportProperties { private final int sceneId; private final int dungeonId; private final PlayerTeleportEvent.TeleportType teleportType; diff --git a/src/main/java/emu/grasscutter/plugin/PluginManager.java b/src/main/java/emu/grasscutter/plugin/PluginManager.java index 615bea574..de2e205d7 100644 --- a/src/main/java/emu/grasscutter/plugin/PluginManager.java +++ b/src/main/java/emu/grasscutter/plugin/PluginManager.java @@ -1,13 +1,15 @@ package emu.grasscutter.plugin; -import static emu.grasscutter.utils.Language.translate; - import emu.grasscutter.Grasscutter; import emu.grasscutter.server.event.Event; import emu.grasscutter.server.event.EventHandler; import emu.grasscutter.server.event.HandlerPriority; import emu.grasscutter.utils.FileUtils; import emu.grasscutter.utils.JsonUtils; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import javax.annotation.Nullable; import java.io.File; import java.io.FileNotFoundException; import java.io.InputStreamReader; @@ -18,9 +20,8 @@ import java.net.URLClassLoader; import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; -import javax.annotation.Nullable; -import lombok.AllArgsConstructor; -import lombok.Getter; + +import static emu.grasscutter.utils.lang.Language.translate; /** Manages the server's plugins and the event system. */ public final class PluginManager { diff --git a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java index 0211c820d..b4457a360 100644 --- a/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java +++ b/src/main/java/emu/grasscutter/plugin/api/PlayerHook.java @@ -10,7 +10,7 @@ import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify; import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify; import emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; /** Hooks into the {@link Player} class, adding convenient ways to do certain things. */ public interface PlayerHook { diff --git a/src/main/java/emu/grasscutter/scripts/SceneScriptManager.java b/src/main/java/emu/grasscutter/scripts/SceneScriptManager.java index c82956004..8e8f7cffe 100644 --- a/src/main/java/emu/grasscutter/scripts/SceneScriptManager.java +++ b/src/main/java/emu/grasscutter/scripts/SceneScriptManager.java @@ -22,9 +22,9 @@ import emu.grasscutter.scripts.service.ScriptMonsterSpawnService; import emu.grasscutter.scripts.service.ScriptMonsterTideService; import emu.grasscutter.server.packet.send.PacketGroupSuiteNotify; import emu.grasscutter.utils.FileUtils; -import emu.grasscutter.utils.GridPosition; +import emu.grasscutter.game.world.GridPosition; import emu.grasscutter.utils.JsonUtils; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import io.netty.util.concurrent.FastThreadLocalThread; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/src/main/java/emu/grasscutter/scripts/ScriptLib.java b/src/main/java/emu/grasscutter/scripts/ScriptLib.java index c805b6967..16d70cc44 100644 --- a/src/main/java/emu/grasscutter/scripts/ScriptLib.java +++ b/src/main/java/emu/grasscutter/scripts/ScriptLib.java @@ -23,7 +23,7 @@ import emu.grasscutter.scripts.data.SceneGroup; import emu.grasscutter.scripts.data.SceneObject; import emu.grasscutter.scripts.data.ScriptArgs; import emu.grasscutter.server.packet.send.*; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import io.netty.util.concurrent.FastThreadLocal; import lombok.val; import org.luaj.vm2.LuaTable; diff --git a/src/main/java/emu/grasscutter/scripts/ScriptUtils.java b/src/main/java/emu/grasscutter/scripts/ScriptUtils.java index 7dfeaa2b5..96c36a636 100644 --- a/src/main/java/emu/grasscutter/scripts/ScriptUtils.java +++ b/src/main/java/emu/grasscutter/scripts/ScriptUtils.java @@ -1,7 +1,7 @@ package emu.grasscutter.scripts; import emu.grasscutter.Grasscutter; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.HashMap; import org.luaj.vm2.LuaTable; import org.luaj.vm2.LuaValue; diff --git a/src/main/java/emu/grasscutter/scripts/data/SceneBlock.java b/src/main/java/emu/grasscutter/scripts/data/SceneBlock.java index b03851d7d..ac0383fc7 100644 --- a/src/main/java/emu/grasscutter/scripts/data/SceneBlock.java +++ b/src/main/java/emu/grasscutter/scripts/data/SceneBlock.java @@ -6,7 +6,7 @@ import com.github.davidmoten.rtreemulti.geometry.Rectangle; import emu.grasscutter.Grasscutter; import emu.grasscutter.scripts.SceneIndexManager; import emu.grasscutter.scripts.ScriptLoader; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.Map; import java.util.stream.Collectors; import javax.script.Bindings; diff --git a/src/main/java/emu/grasscutter/scripts/data/SceneConfig.java b/src/main/java/emu/grasscutter/scripts/data/SceneConfig.java index f92534e2c..74b6c1164 100644 --- a/src/main/java/emu/grasscutter/scripts/data/SceneConfig.java +++ b/src/main/java/emu/grasscutter/scripts/data/SceneConfig.java @@ -1,6 +1,6 @@ package emu.grasscutter.scripts.data; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Setter; import lombok.ToString; diff --git a/src/main/java/emu/grasscutter/scripts/data/SceneGroup.java b/src/main/java/emu/grasscutter/scripts/data/SceneGroup.java index de8627312..20fd5a9a5 100644 --- a/src/main/java/emu/grasscutter/scripts/data/SceneGroup.java +++ b/src/main/java/emu/grasscutter/scripts/data/SceneGroup.java @@ -2,7 +2,7 @@ package emu.grasscutter.scripts.data; import emu.grasscutter.Grasscutter; import emu.grasscutter.scripts.ScriptLoader; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/src/main/java/emu/grasscutter/scripts/data/SceneObject.java b/src/main/java/emu/grasscutter/scripts/data/SceneObject.java index dc2561ff6..e81adf2c4 100644 --- a/src/main/java/emu/grasscutter/scripts/data/SceneObject.java +++ b/src/main/java/emu/grasscutter/scripts/data/SceneObject.java @@ -1,6 +1,6 @@ package emu.grasscutter.scripts.data; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Setter; import lombok.ToString; diff --git a/src/main/java/emu/grasscutter/scripts/data/SceneRegion.java b/src/main/java/emu/grasscutter/scripts/data/SceneRegion.java index 3fab2bebc..5db984149 100644 --- a/src/main/java/emu/grasscutter/scripts/data/SceneRegion.java +++ b/src/main/java/emu/grasscutter/scripts/data/SceneRegion.java @@ -1,7 +1,7 @@ package emu.grasscutter.scripts.data; import emu.grasscutter.scripts.constants.ScriptRegionShape; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; import lombok.EqualsAndHashCode; import lombok.Setter; diff --git a/src/main/java/emu/grasscutter/server/event/EventHandler.java b/src/main/java/emu/grasscutter/server/event/EventHandler.java index 0d16b6904..e9b29e33f 100644 --- a/src/main/java/emu/grasscutter/server/event/EventHandler.java +++ b/src/main/java/emu/grasscutter/server/event/EventHandler.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.event; import emu.grasscutter.Grasscutter; import emu.grasscutter.plugin.Plugin; -import emu.grasscutter.utils.EventConsumer; +import emu.grasscutter.utils.objects.EventConsumer; public final class EventHandler { /** diff --git a/src/main/java/emu/grasscutter/server/event/entity/EntityDeathEvent.java b/src/main/java/emu/grasscutter/server/event/entity/EntityDeathEvent.java index 6da7414c6..66c41a3c0 100644 --- a/src/main/java/emu/grasscutter/server/event/entity/EntityDeathEvent.java +++ b/src/main/java/emu/grasscutter/server/event/entity/EntityDeathEvent.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.event.entity; import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.server.event.types.EntityEvent; -import emu.grasscutter.utils.Location; +import emu.grasscutter.game.world.Location; import javax.annotation.Nullable; import lombok.Getter; diff --git a/src/main/java/emu/grasscutter/server/event/entity/EntityMoveEvent.java b/src/main/java/emu/grasscutter/server/event/entity/EntityMoveEvent.java index 9c4eff060..8e9816ae4 100644 --- a/src/main/java/emu/grasscutter/server/event/entity/EntityMoveEvent.java +++ b/src/main/java/emu/grasscutter/server/event/entity/EntityMoveEvent.java @@ -3,7 +3,7 @@ package emu.grasscutter.server.event.entity; import emu.grasscutter.game.entity.GameEntity; import emu.grasscutter.net.proto.MotionStateOuterClass.MotionState; import emu.grasscutter.server.event.types.EntityEvent; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; public final class EntityMoveEvent extends EntityEvent { private final Position position, rotation; diff --git a/src/main/java/emu/grasscutter/server/event/player/PlayerMoveEvent.java b/src/main/java/emu/grasscutter/server/event/player/PlayerMoveEvent.java index 49b54e10c..ba4069d70 100644 --- a/src/main/java/emu/grasscutter/server/event/player/PlayerMoveEvent.java +++ b/src/main/java/emu/grasscutter/server/event/player/PlayerMoveEvent.java @@ -2,7 +2,7 @@ package emu.grasscutter.server.event.player; import emu.grasscutter.game.player.Player; import emu.grasscutter.server.event.types.PlayerEvent; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; public final class PlayerMoveEvent extends PlayerEvent { private final MoveType type; diff --git a/src/main/java/emu/grasscutter/server/event/player/PlayerTeleportEvent.java b/src/main/java/emu/grasscutter/server/event/player/PlayerTeleportEvent.java index 402f38c35..cd62c24a2 100644 --- a/src/main/java/emu/grasscutter/server/event/player/PlayerTeleportEvent.java +++ b/src/main/java/emu/grasscutter/server/event/player/PlayerTeleportEvent.java @@ -4,7 +4,7 @@ import emu.grasscutter.game.player.Player; import emu.grasscutter.game.world.data.TeleportProperties; import emu.grasscutter.server.event.Cancellable; import emu.grasscutter.server.event.types.PlayerEvent; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; public final class PlayerTeleportEvent extends PlayerEvent implements Cancellable { private final TeleportProperties properties; diff --git a/src/main/java/emu/grasscutter/server/game/GameServer.java b/src/main/java/emu/grasscutter/server/game/GameServer.java index 99f610696..d551a420c 100644 --- a/src/main/java/emu/grasscutter/server/game/GameServer.java +++ b/src/main/java/emu/grasscutter/server/game/GameServer.java @@ -54,7 +54,7 @@ import java.util.concurrent.ConcurrentHashMap; import static emu.grasscutter.config.Configuration.DISPATCH_INFO; import static emu.grasscutter.config.Configuration.GAME_INFO; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; @Getter public final class GameServer extends KcpServer implements Iterable { diff --git a/src/main/java/emu/grasscutter/server/game/GameSession.java b/src/main/java/emu/grasscutter/server/game/GameSession.java index 81548f4d1..4b5bee4bc 100644 --- a/src/main/java/emu/grasscutter/server/game/GameSession.java +++ b/src/main/java/emu/grasscutter/server/game/GameSession.java @@ -22,7 +22,7 @@ import java.nio.file.Path; import static emu.grasscutter.config.Configuration.GAME_INFO; import static emu.grasscutter.config.Configuration.SERVER; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; public class GameSession implements GameSessionManager.KcpChannel { private final GameServer server; diff --git a/src/main/java/emu/grasscutter/server/http/HttpServer.java b/src/main/java/emu/grasscutter/server/http/HttpServer.java index aa6bef68f..7b02e61a6 100644 --- a/src/main/java/emu/grasscutter/server/http/HttpServer.java +++ b/src/main/java/emu/grasscutter/server/http/HttpServer.java @@ -15,7 +15,7 @@ import java.io.UnsupportedEncodingException; import java.util.Arrays; import static emu.grasscutter.config.Configuration.*; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; /** * Manages all HTTP-related classes. diff --git a/src/main/java/emu/grasscutter/server/http/dispatch/AuthenticationHandler.java b/src/main/java/emu/grasscutter/server/http/dispatch/AuthenticationHandler.java index e6fa37042..8e47641be 100644 --- a/src/main/java/emu/grasscutter/server/http/dispatch/AuthenticationHandler.java +++ b/src/main/java/emu/grasscutter/server/http/dispatch/AuthenticationHandler.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.http.dispatch; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.auth.AuthenticationSystem; diff --git a/src/main/java/emu/grasscutter/server/http/documentation/GachaMappingRequestHandler.java b/src/main/java/emu/grasscutter/server/http/documentation/GachaMappingRequestHandler.java index 02f0da8ae..d882aae7c 100644 --- a/src/main/java/emu/grasscutter/server/http/documentation/GachaMappingRequestHandler.java +++ b/src/main/java/emu/grasscutter/server/http/documentation/GachaMappingRequestHandler.java @@ -1,13 +1,14 @@ package emu.grasscutter.server.http.documentation; -import static emu.grasscutter.config.Configuration.DOCUMENT_LANGUAGE; - import emu.grasscutter.tools.Tools; -import emu.grasscutter.utils.Language; +import emu.grasscutter.utils.lang.Language; import io.javalin.http.ContentType; import io.javalin.http.Context; + import java.util.List; +import static emu.grasscutter.config.Configuration.DOCUMENT_LANGUAGE; + final class GachaMappingRequestHandler implements DocumentationHandler { private final List gachaJsons; diff --git a/src/main/java/emu/grasscutter/server/http/documentation/HandbookRequestHandler.java b/src/main/java/emu/grasscutter/server/http/documentation/HandbookRequestHandler.java index e4669537a..5baef5ec1 100644 --- a/src/main/java/emu/grasscutter/server/http/documentation/HandbookRequestHandler.java +++ b/src/main/java/emu/grasscutter/server/http/documentation/HandbookRequestHandler.java @@ -8,7 +8,7 @@ import emu.grasscutter.data.excels.SceneData; import emu.grasscutter.data.excels.avatar.AvatarData; import emu.grasscutter.data.excels.monster.MonsterData; import emu.grasscutter.utils.FileUtils; -import emu.grasscutter.utils.Language; +import emu.grasscutter.utils.lang.Language; import io.javalin.http.ContentType; import io.javalin.http.Context; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; diff --git a/src/main/java/emu/grasscutter/server/http/documentation/RootRequestHandler.java b/src/main/java/emu/grasscutter/server/http/documentation/RootRequestHandler.java index 0330cb443..b71863086 100644 --- a/src/main/java/emu/grasscutter/server/http/documentation/RootRequestHandler.java +++ b/src/main/java/emu/grasscutter/server/http/documentation/RootRequestHandler.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.http.documentation; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.utils.FileUtils; diff --git a/src/main/java/emu/grasscutter/server/http/handlers/GachaHandler.java b/src/main/java/emu/grasscutter/server/http/handlers/GachaHandler.java index 23b5ec3bc..29c51523e 100644 --- a/src/main/java/emu/grasscutter/server/http/handlers/GachaHandler.java +++ b/src/main/java/emu/grasscutter/server/http/handlers/GachaHandler.java @@ -1,6 +1,6 @@ package emu.grasscutter.server.http.handlers; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import com.google.gson.JsonObject; import emu.grasscutter.Grasscutter; diff --git a/src/main/java/emu/grasscutter/server/http/objects/HttpJsonResponse.java b/src/main/java/emu/grasscutter/server/http/objects/HttpJsonResponse.java index e0dd7ad92..2f8d99585 100644 --- a/src/main/java/emu/grasscutter/server/http/objects/HttpJsonResponse.java +++ b/src/main/java/emu/grasscutter/server/http/objects/HttpJsonResponse.java @@ -1,7 +1,7 @@ package emu.grasscutter.server.http.objects; import static emu.grasscutter.config.Configuration.DISPATCH_INFO; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.Grasscutter.ServerDebugMode; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java index 9bdff120c..a03795d42 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java @@ -19,7 +19,7 @@ import emu.grasscutter.net.proto.PlayerDieTypeOuterClass; import emu.grasscutter.server.event.entity.EntityMoveEvent; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketEntityFightPropUpdateNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.CombatInvocationsNotify) public class HandlerCombatInvocationsNotify extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCreateVehicleReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCreateVehicleReq.java index 4d0c18857..a164914d6 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerCreateVehicleReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerCreateVehicleReq.java @@ -6,7 +6,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CreateVehicleReqOuterClass; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketCreateVehicleRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.CreateVehicleReq) public class HandlerCreateVehicleReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerTokenReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerTokenReq.java index e52fe48c5..2e6d9f09b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerTokenReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerGetPlayerTokenReq.java @@ -13,7 +13,7 @@ import emu.grasscutter.server.event.game.PlayerCreationEvent; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.game.GameSession.SessionState; import emu.grasscutter.server.packet.send.PacketGetPlayerTokenRsp; -import emu.grasscutter.utils.ByteHelper; +import emu.grasscutter.utils.helpers.ByteHelper; import emu.grasscutter.utils.Crypto; import emu.grasscutter.utils.DispatchUtils; import emu.grasscutter.utils.Utils; diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeChangeModuleReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeChangeModuleReq.java index 66780449c..98dcb579e 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeChangeModuleReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeChangeModuleReq.java @@ -10,7 +10,7 @@ import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketHomeChangeModuleRsp; import emu.grasscutter.server.packet.send.PacketHomeComfortInfoNotify; import emu.grasscutter.server.packet.send.PacketPlayerHomeCompInfoNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.HomeChangeModuleReq) public class HandlerHomeChangeModuleReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeSceneJumpReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeSceneJumpReq.java index c4ca0b4dd..8606ded54 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeSceneJumpReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeSceneJumpReq.java @@ -7,7 +7,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.HomeSceneJumpReqOuterClass; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketHomeSceneJumpRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.HomeSceneJumpReq) public class HandlerHomeSceneJumpReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPersonalSceneJumpReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPersonalSceneJumpReq.java index 282098ad7..46605ee5f 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerPersonalSceneJumpReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerPersonalSceneJumpReq.java @@ -8,7 +8,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PersonalSceneJumpReqOuterClass.PersonalSceneJumpReq; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketPersonalSceneJumpRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.PersonalSceneJumpReq) public class HandlerPersonalSceneJumpReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestCreateEntityReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestCreateEntityReq.java index 69ead946c..dc270f30b 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestCreateEntityReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestCreateEntityReq.java @@ -11,7 +11,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.QuestCreateEntityReqOuterClass.QuestCreateEntityReq; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketQuestCreateEntityRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.val; @Opcodes(PacketOpcodes.QuestCreateEntityReq) diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestTransmitReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestTransmitReq.java index b745ebb77..c87ce185a 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestTransmitReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerQuestTransmitReq.java @@ -7,7 +7,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.QuestTransmitReqOuterClass.QuestTransmitReq; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketQuestTransmitRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.ArrayList; @Opcodes(PacketOpcodes.QuestTransmitReq) diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java index 37063550e..16639832e 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java @@ -11,7 +11,7 @@ import emu.grasscutter.net.proto.TryEnterHomeReqOuterClass; import emu.grasscutter.server.event.player.PlayerTeleportEvent.TeleportType; import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketTryEnterHomeRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.TryEnterHomeReq) public class HandlerTryEnterHomeReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/recv/HandlerWidgetDoBagReq.java b/src/main/java/emu/grasscutter/server/packet/recv/HandlerWidgetDoBagReq.java index ded47db7f..de192c2d4 100644 --- a/src/main/java/emu/grasscutter/server/packet/recv/HandlerWidgetDoBagReq.java +++ b/src/main/java/emu/grasscutter/server/packet/recv/HandlerWidgetDoBagReq.java @@ -9,7 +9,7 @@ import emu.grasscutter.server.game.GameSession; import emu.grasscutter.server.packet.send.PacketWidgetCoolDownNotify; import emu.grasscutter.server.packet.send.PacketWidgetDoBagRsp; import emu.grasscutter.server.packet.send.PacketWidgetGadgetDataNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; @Opcodes(PacketOpcodes.WidgetDoBagReq) public class HandlerWidgetDoBagReq extends PacketHandler { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketActivityScheduleInfoNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketActivityScheduleInfoNotify.java index c7ec0f45f..6b32fe33b 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketActivityScheduleInfoNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketActivityScheduleInfoNotify.java @@ -5,7 +5,7 @@ import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ActivityScheduleInfoNotifyOuterClass; import emu.grasscutter.net.proto.ActivityScheduleInfoOuterClass; -import emu.grasscutter.utils.DateHelper; +import emu.grasscutter.utils.helpers.DateHelper; import java.util.Collection; public class PacketActivityScheduleInfoNotify extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketBeginCameraSceneLookNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketBeginCameraSceneLookNotify.java index e7ca4d6c9..85fe253ec 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketBeginCameraSceneLookNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketBeginCameraSceneLookNotify.java @@ -3,7 +3,7 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.BeginCameraSceneLookNotifyOuterClass.BeginCameraSceneLookNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketCreateVehicleRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketCreateVehicleRsp.java index 4da63690a..e5eae2782 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketCreateVehicleRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketCreateVehicleRsp.java @@ -8,7 +8,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.CreateVehicleRspOuterClass.CreateVehicleRsp; import emu.grasscutter.net.proto.VehicleInteractTypeOuterClass; import emu.grasscutter.net.proto.VehicleMemberOuterClass.VehicleMember; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.List; public class PacketCreateVehicleRsp extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPersonalSceneJumpRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPersonalSceneJumpRsp.java index 3ef09d755..aa2ea9a08 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPersonalSceneJumpRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPersonalSceneJumpRsp.java @@ -3,7 +3,7 @@ package emu.grasscutter.server.packet.send; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PersonalSceneJumpRspOuterClass.PersonalSceneJumpRsp; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; public class PacketPersonalSceneJumpRsp extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java index ea870dd16..0c68b8409 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerEnterSceneNotify.java @@ -8,7 +8,7 @@ import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType; import emu.grasscutter.net.proto.PlayerEnterSceneNotifyOuterClass.PlayerEnterSceneNotify; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.Utils; public class PacketPlayerEnterSceneNotify extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java index 47127f489..133d0f93e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketPlayerPropNotify.java @@ -5,7 +5,7 @@ import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.packet.BasePacket; import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.PlayerPropNotifyOuterClass.PlayerPropNotify; -import emu.grasscutter.utils.ProtoHelper; +import emu.grasscutter.utils.helpers.ProtoHelper; public class PacketPlayerPropNotify extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerSoundNotify.java b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerSoundNotify.java index 0de12ec10..20e57e87e 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerSoundNotify.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketScenePlayerSoundNotify.java @@ -5,7 +5,7 @@ import emu.grasscutter.net.packet.PacketOpcodes; import emu.grasscutter.net.proto.ScenePlayerSoundNotifyOuterClass.ScenePlayerSoundNotify; import emu.grasscutter.net.proto.ScenePlayerSoundNotifyOuterClass.ScenePlayerSoundNotify.PlaySoundType; import emu.grasscutter.net.proto.VectorOuterClass.Vector; -import emu.grasscutter.utils.Position; +import emu.grasscutter.game.world.Position; import java.util.Objects; public class PacketScenePlayerSoundNotify extends BasePacket { diff --git a/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java b/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java index d1a641e16..32ba0764f 100644 --- a/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java +++ b/src/main/java/emu/grasscutter/server/packet/send/PacketTowerAllDataRsp.java @@ -8,7 +8,7 @@ import emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp; import emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord; import emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord; import emu.grasscutter.net.proto.TowerLevelRecordOuterClass; -import emu.grasscutter.utils.DateHelper; +import emu.grasscutter.utils.helpers.DateHelper; import java.util.List; import java.util.Map; import java.util.stream.Collectors; diff --git a/src/main/java/emu/grasscutter/tools/Dumpers.java b/src/main/java/emu/grasscutter/tools/Dumpers.java index 6251b9ce1..23547f3c0 100644 --- a/src/main/java/emu/grasscutter/tools/Dumpers.java +++ b/src/main/java/emu/grasscutter/tools/Dumpers.java @@ -8,7 +8,7 @@ import emu.grasscutter.data.ResourceLoader; import emu.grasscutter.game.inventory.ItemType; import emu.grasscutter.game.props.SceneType; import emu.grasscutter.utils.JsonUtils; -import emu.grasscutter.utils.Language; +import emu.grasscutter.utils.lang.Language; import java.io.File; import java.io.IOException; import java.nio.file.Files; diff --git a/src/main/java/emu/grasscutter/tools/Tools.java b/src/main/java/emu/grasscutter/tools/Tools.java index 6251b327e..57010ae0a 100644 --- a/src/main/java/emu/grasscutter/tools/Tools.java +++ b/src/main/java/emu/grasscutter/tools/Tools.java @@ -1,8 +1,5 @@ package emu.grasscutter.tools; -import static emu.grasscutter.utils.FileUtils.getResourcePath; -import static emu.grasscutter.utils.Language.getTextMapKey; - import emu.grasscutter.GameConstants; import emu.grasscutter.Grasscutter; import emu.grasscutter.command.CommandHandler; @@ -16,10 +13,14 @@ import emu.grasscutter.data.excels.achievement.AchievementData; import emu.grasscutter.data.excels.avatar.AvatarData; import emu.grasscutter.utils.FileUtils; import emu.grasscutter.utils.JsonUtils; -import emu.grasscutter.utils.Language; -import emu.grasscutter.utils.Language.TextStrings; +import emu.grasscutter.utils.lang.Language; +import emu.grasscutter.utils.lang.Language.TextStrings; import it.unimi.dsi.fastutil.ints.Int2IntRBTreeMap; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.val; + import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -31,9 +32,9 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.LongStream; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.val; + +import static emu.grasscutter.utils.FileUtils.getResourcePath; +import static emu.grasscutter.utils.lang.Language.getTextMapKey; public final class Tools { /** diff --git a/src/main/java/emu/grasscutter/utils/JsonAdapters.java b/src/main/java/emu/grasscutter/utils/JsonAdapters.java index 184c70691..572577e77 100644 --- a/src/main/java/emu/grasscutter/utils/JsonAdapters.java +++ b/src/main/java/emu/grasscutter/utils/JsonAdapters.java @@ -8,44 +8,50 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import emu.grasscutter.data.common.DynamicFloat; +import emu.grasscutter.game.world.GridPosition; +import emu.grasscutter.game.world.Position; import it.unimi.dsi.fastutil.floats.FloatArrayList; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; +import lombok.val; + import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.Objects; -import lombok.val; -public class JsonAdapters { - static class DynamicFloatAdapter extends TypeAdapter { +public interface JsonAdapters { + class DynamicFloatAdapter extends TypeAdapter { @Override public DynamicFloat read(JsonReader reader) throws IOException { switch (reader.peek()) { - case STRING: + case STRING -> { return new DynamicFloat(reader.nextString()); - case NUMBER: + } + case NUMBER -> { return new DynamicFloat((float) reader.nextDouble()); - case BOOLEAN: + } + case BOOLEAN -> { return new DynamicFloat(reader.nextBoolean()); - case BEGIN_ARRAY: + } + case BEGIN_ARRAY -> { reader.beginArray(); val opStack = new ArrayList(); while (reader.hasNext()) { opStack.add( - switch (reader.peek()) { - case STRING -> new DynamicFloat.StackOp(reader.nextString()); - case NUMBER -> new DynamicFloat.StackOp((float) reader.nextDouble()); - case BOOLEAN -> new DynamicFloat.StackOp(reader.nextBoolean()); - default -> throw new IOException( - "Invalid DynamicFloat definition - " + reader.peek().name()); - }); + switch (reader.peek()) { + case STRING -> new DynamicFloat.StackOp(reader.nextString()); + case NUMBER -> new DynamicFloat.StackOp((float) reader.nextDouble()); + case BOOLEAN -> new DynamicFloat.StackOp(reader.nextBoolean()); + default -> throw new IOException( + "Invalid DynamicFloat definition - " + reader.peek().name()); + }); } reader.endArray(); return new DynamicFloat(opStack); - default: - throw new IOException("Invalid DynamicFloat definition - " + reader.peek().name()); + } + default -> throw new IOException("Invalid DynamicFloat definition - " + reader.peek().name()); } } @@ -53,7 +59,7 @@ public class JsonAdapters { public void write(JsonWriter writer, DynamicFloat f) {} } - static class IntListAdapter extends TypeAdapter { + class IntListAdapter extends TypeAdapter { @Override public IntList read(JsonReader reader) throws IOException { if (Objects.requireNonNull(reader.peek()) == JsonToken.BEGIN_ARRAY) { @@ -72,12 +78,12 @@ public class JsonAdapters { public void write(JsonWriter writer, IntList l) throws IOException { writer.beginArray(); for (val i : l) // .forEach() doesn't appreciate exceptions - writer.value(i); + writer.value(i); writer.endArray(); } } - public static class ByteArrayAdapter extends TypeAdapter { + public class ByteArrayAdapter extends TypeAdapter { @Override public void write(JsonWriter out, byte[] value) throws IOException { out.value(Utils.base64Encode(value)); @@ -89,7 +95,7 @@ public class JsonAdapters { } } - static class GridPositionAdapter extends TypeAdapter { + class GridPositionAdapter extends TypeAdapter { @Override public void write(JsonWriter out, GridPosition value) throws IOException { out.value("(" + value.getX() + ", " + value.getZ() + ", " + value.getWidth() + ")"); @@ -113,17 +119,18 @@ public class JsonAdapters { } } - static class PositionAdapter extends TypeAdapter { + class PositionAdapter extends TypeAdapter { @Override public Position read(JsonReader reader) throws IOException { switch (reader.peek()) { - case BEGIN_ARRAY: // "pos": [x,y,z] + case BEGIN_ARRAY -> { // "pos": [x,y,z] reader.beginArray(); val array = new FloatArrayList(3); while (reader.hasNext()) array.add(reader.nextInt()); reader.endArray(); return new Position(array); - case BEGIN_OBJECT: // "pos": {"x": x, "y": y, "z": z} + } + case BEGIN_OBJECT -> { // "pos": {"x": x, "y": y, "z": z} float x = 0f; float y = 0f; float z = 0f; @@ -139,8 +146,8 @@ public class JsonAdapters { } reader.endObject(); return new Position(x, y, z); - default: - throw new IOException("Invalid Position definition - " + reader.peek().name()); + } + default -> throw new IOException("Invalid Position definition - " + reader.peek().name()); } } @@ -154,7 +161,7 @@ public class JsonAdapters { } } - static class EnumTypeAdapterFactory implements TypeAdapterFactory { + class EnumTypeAdapterFactory implements TypeAdapterFactory { @SuppressWarnings("unchecked") public TypeAdapter create(Gson gson, TypeToken type) { Class enumClass = (Class) type.getRawType(); @@ -186,16 +193,13 @@ public class JsonAdapters { } } - return new TypeAdapter() { + return new TypeAdapter<>() { public T read(JsonReader reader) throws IOException { - switch (reader.peek()) { - case STRING: - return map.get(reader.nextString()); - case NUMBER: - return map.get(String.valueOf(reader.nextInt())); - default: - throw new IOException("Invalid Enum definition - " + reader.peek().name()); - } + return switch (reader.peek()) { + case STRING -> map.get(reader.nextString()); + case NUMBER -> map.get(String.valueOf(reader.nextInt())); + default -> throw new IOException("Invalid Enum definition - " + reader.peek().name()); + }; } public void write(JsonWriter writer, T value) throws IOException { diff --git a/src/main/java/emu/grasscutter/utils/JsonUtils.java b/src/main/java/emu/grasscutter/utils/JsonUtils.java index f6c50fad1..851558268 100644 --- a/src/main/java/emu/grasscutter/utils/JsonUtils.java +++ b/src/main/java/emu/grasscutter/utils/JsonUtils.java @@ -3,6 +3,8 @@ package emu.grasscutter.utils; import com.google.gson.*; import com.google.gson.reflect.TypeToken; import emu.grasscutter.data.common.DynamicFloat; +import emu.grasscutter.game.world.GridPosition; +import emu.grasscutter.game.world.Position; import emu.grasscutter.utils.JsonAdapters.*; import it.unimi.dsi.fastutil.ints.IntList; import java.io.FileInputStream; diff --git a/src/main/java/emu/grasscutter/utils/MessageHandler.java b/src/main/java/emu/grasscutter/utils/MessageHandler.java deleted file mode 100644 index 19c795731..000000000 --- a/src/main/java/emu/grasscutter/utils/MessageHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -package emu.grasscutter.utils; - -public class MessageHandler { - private String message; - - public MessageHandler() { - this.message = ""; - } - - public void append(String message) { - this.message += message + "\r\n\r\n"; - } - - public String getMessage() { - return this.message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/src/main/java/emu/grasscutter/utils/StartupArguments.java b/src/main/java/emu/grasscutter/utils/StartupArguments.java index 3c11a2d5f..0f12d21fd 100644 --- a/src/main/java/emu/grasscutter/utils/StartupArguments.java +++ b/src/main/java/emu/grasscutter/utils/StartupArguments.java @@ -1,22 +1,23 @@ package emu.grasscutter.utils; -import static emu.grasscutter.config.Configuration.*; - import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import emu.grasscutter.BuildConfig; import emu.grasscutter.Grasscutter; import emu.grasscutter.net.packet.PacketOpcodesUtils; import emu.grasscutter.tools.Dumpers; +import org.slf4j.LoggerFactory; + import java.util.HashMap; import java.util.Map; import java.util.function.Function; -import org.slf4j.LoggerFactory; + +import static emu.grasscutter.config.Configuration.*; /** A parser for start-up arguments. */ -public final class StartupArguments { +public interface StartupArguments { /* A map of parameter -> argument handler. */ - private static final Map> argumentHandlers = + Map> argumentHandlers = new HashMap<>() { { putAll( @@ -74,17 +75,13 @@ public final class StartupArguments { } }; - private StartupArguments() { - // This class is not meant to be instantiated. - } - /** * Parses the provided start-up arguments. * * @param args The application start-up arguments. * @return If the application should exit. */ - public static boolean parse(String[] args) { + static boolean parse(String[] args) { boolean exitEarly = false; // Parse the arguments. diff --git a/src/main/java/emu/grasscutter/utils/TsvUtils.java b/src/main/java/emu/grasscutter/utils/TsvUtils.java index 4212ecb98..35c32a898 100644 --- a/src/main/java/emu/grasscutter/utils/TsvUtils.java +++ b/src/main/java/emu/grasscutter/utils/TsvUtils.java @@ -1,7 +1,5 @@ package emu.grasscutter.utils; -import static emu.grasscutter.utils.Utils.nonRegexSplit; - import com.google.gson.*; import com.google.gson.annotations.SerializedName; import emu.grasscutter.Grasscutter; @@ -9,6 +7,8 @@ import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; +import lombok.val; + import java.io.IOException; import java.lang.reflect.*; import java.nio.charset.StandardCharsets; @@ -19,11 +19,12 @@ import java.util.*; import java.util.function.Function; import java.util.stream.IntStream; import java.util.stream.Stream; -import lombok.val; + +import static emu.grasscutter.utils.Utils.nonRegexSplit; // Throughout this file, commented System.out.println debug log calls are left in. // This is because the default logger will deadlock when operating on parallel streams. -public class TsvUtils { +public final class TsvUtils { private static final Map defaultValues = Map.ofEntries( // Map.entry(String.class, null), // builder hates null values @@ -679,4 +680,8 @@ public class TsvUtils { return map; } } + + private TsvUtils() { + // No instantiation. + } } diff --git a/src/main/java/emu/grasscutter/utils/Utils.java b/src/main/java/emu/grasscutter/utils/Utils.java index ad9d3c7ea..6ac6d59e4 100644 --- a/src/main/java/emu/grasscutter/utils/Utils.java +++ b/src/main/java/emu/grasscutter/utils/Utils.java @@ -1,11 +1,12 @@ package emu.grasscutter.utils; import static emu.grasscutter.utils.FileUtils.getResourcePath; -import static emu.grasscutter.utils.Language.translate; +import static emu.grasscutter.utils.lang.Language.translate; import emu.grasscutter.Grasscutter; import emu.grasscutter.config.ConfigContainer; import emu.grasscutter.data.DataLoader; +import emu.grasscutter.game.world.Position; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; import io.netty.buffer.Unpooled; diff --git a/src/main/java/emu/grasscutter/utils/ByteHelper.java b/src/main/java/emu/grasscutter/utils/helpers/ByteHelper.java similarity index 59% rename from src/main/java/emu/grasscutter/utils/ByteHelper.java rename to src/main/java/emu/grasscutter/utils/helpers/ByteHelper.java index 9cd12bafe..d6ac48d19 100644 --- a/src/main/java/emu/grasscutter/utils/ByteHelper.java +++ b/src/main/java/emu/grasscutter/utils/helpers/ByteHelper.java @@ -1,16 +1,16 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.helpers; -public class ByteHelper { - public static byte[] changeBytes(byte[] a) { - byte[] b = new byte[a.length]; - for (int i = 0; i < a.length; i++) { +public interface ByteHelper { + static byte[] changeBytes(byte[] a) { + var b = new byte[a.length]; + for (var i = 0; i < a.length; i++) { b[i] = a[a.length - i - 1]; } return b; } - public static byte[] longToBytes(long x) { - byte[] bytes = new byte[8]; + static byte[] longToBytes(long x) { + var bytes = new byte[8]; bytes[0] = (byte) (x >> 56); bytes[1] = (byte) (x >> 48); bytes[2] = (byte) (x >> 40); diff --git a/src/main/java/emu/grasscutter/utils/DateHelper.java b/src/main/java/emu/grasscutter/utils/helpers/DateHelper.java similarity index 62% rename from src/main/java/emu/grasscutter/utils/DateHelper.java rename to src/main/java/emu/grasscutter/utils/helpers/DateHelper.java index f78eec584..ee412727e 100644 --- a/src/main/java/emu/grasscutter/utils/DateHelper.java +++ b/src/main/java/emu/grasscutter/utils/helpers/DateHelper.java @@ -1,11 +1,11 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.helpers; import java.util.Calendar; import java.util.Date; -public final class DateHelper { - public static Date onlyYearMonthDay(Date now) { - Calendar calendar = Calendar.getInstance(); +public interface DateHelper { + static Date onlyYearMonthDay(Date now) { + var calendar = Calendar.getInstance(); calendar.setTime(now); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); @@ -14,7 +14,7 @@ public final class DateHelper { return calendar.getTime(); } - public static int getUnixTime(Date localDateTime) { + static int getUnixTime(Date localDateTime) { return (int) (localDateTime.getTime() / 1000L); } } diff --git a/src/main/java/emu/grasscutter/utils/ProtoHelper.java b/src/main/java/emu/grasscutter/utils/helpers/ProtoHelper.java similarity index 61% rename from src/main/java/emu/grasscutter/utils/ProtoHelper.java rename to src/main/java/emu/grasscutter/utils/helpers/ProtoHelper.java index 9a79161fd..2b7fca966 100644 --- a/src/main/java/emu/grasscutter/utils/ProtoHelper.java +++ b/src/main/java/emu/grasscutter/utils/helpers/ProtoHelper.java @@ -1,10 +1,10 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.helpers; import emu.grasscutter.game.props.PlayerProperty; import emu.grasscutter.net.proto.PropValueOuterClass.PropValue; -public final class ProtoHelper { - public static PropValue newPropValue(PlayerProperty key, int value) { +public interface ProtoHelper { + static PropValue newPropValue(PlayerProperty key, int value) { return PropValue.newBuilder().setType(key.getId()).setIval(value).setVal(value).build(); } } diff --git a/src/main/java/emu/grasscutter/utils/Language.java b/src/main/java/emu/grasscutter/utils/lang/Language.java similarity index 99% rename from src/main/java/emu/grasscutter/utils/Language.java rename to src/main/java/emu/grasscutter/utils/lang/Language.java index 1c6f81557..a1591f94c 100644 --- a/src/main/java/emu/grasscutter/utils/Language.java +++ b/src/main/java/emu/grasscutter/utils/lang/Language.java @@ -1,8 +1,4 @@ -package emu.grasscutter.utils; - -import static emu.grasscutter.config.Configuration.FALLBACK_LANGUAGE; -import static emu.grasscutter.utils.FileUtils.getCachePath; -import static emu.grasscutter.utils.FileUtils.getResourcePath; +package emu.grasscutter.utils.lang; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -11,12 +7,16 @@ import emu.grasscutter.data.GameData; import emu.grasscutter.data.ResourceLoader; import emu.grasscutter.data.excels.achievement.AchievementData; import emu.grasscutter.game.player.Player; +import emu.grasscutter.utils.JsonUtils; +import emu.grasscutter.utils.Utils; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntSet; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import lombok.EqualsAndHashCode; + import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -28,7 +28,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.IntStream; -import lombok.EqualsAndHashCode; + +import static emu.grasscutter.config.Configuration.FALLBACK_LANGUAGE; +import static emu.grasscutter.utils.FileUtils.getCachePath; +import static emu.grasscutter.utils.FileUtils.getResourcePath; public final class Language { private static final Map cachedLanguages = new ConcurrentHashMap<>(); diff --git a/src/main/java/emu/grasscutter/utils/EventConsumer.java b/src/main/java/emu/grasscutter/utils/objects/EventConsumer.java similarity index 76% rename from src/main/java/emu/grasscutter/utils/EventConsumer.java rename to src/main/java/emu/grasscutter/utils/objects/EventConsumer.java index baa531944..e153c59fb 100644 --- a/src/main/java/emu/grasscutter/utils/EventConsumer.java +++ b/src/main/java/emu/grasscutter/utils/objects/EventConsumer.java @@ -1,4 +1,4 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import emu.grasscutter.server.event.Event; diff --git a/src/main/java/emu/grasscutter/utils/JlineLogbackAppender.java b/src/main/java/emu/grasscutter/utils/objects/JLineLogbackAppender.java similarity index 70% rename from src/main/java/emu/grasscutter/utils/JlineLogbackAppender.java rename to src/main/java/emu/grasscutter/utils/objects/JLineLogbackAppender.java index 39bc2da3b..c56f81e3f 100644 --- a/src/main/java/emu/grasscutter/utils/JlineLogbackAppender.java +++ b/src/main/java/emu/grasscutter/utils/objects/JLineLogbackAppender.java @@ -1,16 +1,15 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.ConsoleAppender; import emu.grasscutter.Grasscutter; import java.util.Arrays; -public class JlineLogbackAppender extends ConsoleAppender { +public final class JLineLogbackAppender extends ConsoleAppender { @Override protected void append(ILoggingEvent eventObject) { - if (!started) { - return; - } + if (!this.started) return; + Arrays.stream(new String(encoder.encode(eventObject)).split("\n\r")) .forEach(Grasscutter.getConsole()::printAbove); } diff --git a/src/main/java/emu/grasscutter/utils/KahnsSort.java b/src/main/java/emu/grasscutter/utils/objects/KahnsSort.java similarity index 98% rename from src/main/java/emu/grasscutter/utils/KahnsSort.java rename to src/main/java/emu/grasscutter/utils/objects/KahnsSort.java index 264cf2fef..299fab0f5 100644 --- a/src/main/java/emu/grasscutter/utils/KahnsSort.java +++ b/src/main/java/emu/grasscutter/utils/objects/KahnsSort.java @@ -1,4 +1,4 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/emu/grasscutter/utils/ServerLogEventAppender.java b/src/main/java/emu/grasscutter/utils/objects/ServerLogEventAppender.java similarity index 86% rename from src/main/java/emu/grasscutter/utils/ServerLogEventAppender.java rename to src/main/java/emu/grasscutter/utils/objects/ServerLogEventAppender.java index 5dc35df8d..05a89f170 100644 --- a/src/main/java/emu/grasscutter/utils/ServerLogEventAppender.java +++ b/src/main/java/emu/grasscutter/utils/objects/ServerLogEventAppender.java @@ -1,4 +1,4 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.AppenderBase; @@ -6,7 +6,7 @@ import ch.qos.logback.core.encoder.Encoder; import emu.grasscutter.server.event.internal.ServerLogEvent; import java.nio.charset.StandardCharsets; -public class ServerLogEventAppender extends AppenderBase { +public final class ServerLogEventAppender extends AppenderBase { protected Encoder encoder; @Override diff --git a/src/main/java/emu/grasscutter/utils/SparseSet.java b/src/main/java/emu/grasscutter/utils/objects/SparseSet.java similarity index 98% rename from src/main/java/emu/grasscutter/utils/SparseSet.java rename to src/main/java/emu/grasscutter/utils/objects/SparseSet.java index 4406845a4..9f116cd73 100644 --- a/src/main/java/emu/grasscutter/utils/SparseSet.java +++ b/src/main/java/emu/grasscutter/utils/objects/SparseSet.java @@ -1,4 +1,4 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/emu/grasscutter/utils/WeightedList.java b/src/main/java/emu/grasscutter/utils/objects/WeightedList.java similarity index 94% rename from src/main/java/emu/grasscutter/utils/WeightedList.java rename to src/main/java/emu/grasscutter/utils/objects/WeightedList.java index 10bb81ad1..f52fa5af0 100644 --- a/src/main/java/emu/grasscutter/utils/WeightedList.java +++ b/src/main/java/emu/grasscutter/utils/objects/WeightedList.java @@ -1,4 +1,4 @@ -package emu.grasscutter.utils; +package emu.grasscutter.utils.objects; import java.util.NavigableMap; import java.util.TreeMap; diff --git a/src/main/java/emu/grasscutter/utils/objects/text/Style.java b/src/main/java/emu/grasscutter/utils/objects/text/Style.java new file mode 100644 index 000000000..62ebc8125 --- /dev/null +++ b/src/main/java/emu/grasscutter/utils/objects/text/Style.java @@ -0,0 +1,235 @@ +package emu.grasscutter.utils.objects.text; + +import lombok.Builder; +import lombok.Data; + +import java.awt.*; +import java.util.HashMap; +import java.util.Map; + +/* Text style container. */ +@Builder +@Data +public final class Style { + private static final Map unity = new HashMap<>(); + private static final Map ansi = new HashMap<>(); + + static { + // Add the Minecraft color codes to the color map. + unity.put('0', "#000000"); // Black + unity.put('1', "#0000AA"); // Dark Blue + unity.put('2', "#00AA00"); // Dark Green + unity.put('3', "#00AAAA"); // Dark Aqua + unity.put('4', "#AA0000"); // Dark Red + unity.put('5', "#AA00AA"); // Dark Purple + unity.put('6', "#FFAA00"); // Gold + unity.put('7', "#AAAAAA"); // Gray + unity.put('8', "#555555"); // Dark Gray + unity.put('9', "#5555FF"); // Blue + unity.put('a', "#55FF55"); // Green + unity.put('b', "#55FFFF"); // Aqua + unity.put('c', "#FF5555"); // Red + unity.put('d', "#FF55FF"); // Light Purple + unity.put('e', "#FFFF55"); // Yellow + unity.put('f', "#FFFFFF"); // White + + ansi.put('0', "\u001B[30m"); // Black + ansi.put('1', "\u001B[34m"); // Dark Blue + ansi.put('2', "\u001B[32m"); // Dark Green + ansi.put('3', "\u001B[36m"); // Dark Aqua + ansi.put('4', "\u001B[31m"); // Dark Red + ansi.put('5', "\u001B[35m"); // Dark Purple + ansi.put('6', "\u001B[33m"); // Gold + ansi.put('7', "\u001B[37m"); // Gray + ansi.put('8', "\u001B[90m"); // Dark Gray + ansi.put('9', "\u001B[94m"); // Blue + ansi.put('a', "\u001B[92m"); // Green + ansi.put('b', "\u001B[96m"); // Aqua + ansi.put('c', "\u001B[91m"); // Red + ansi.put('d', "\u001B[95m"); // Light Purple + ansi.put('e', "\u001B[93m"); // Yellow + ansi.put('f', "\u001B[97m"); // White + } + + @Builder.Default private int size = -1; // Unity only. + @Builder.Default private boolean bold = false; // Unity only. + @Builder.Default private boolean italic = false; // Unity only. + + @Builder.Default private Color color = null; + + /** + * Replaces detected sequences of &color with the specified text. + * + * @param input The input text. + * @return The replaced text. + */ + private String replaceUnity(String input) { + // Thanks ChatGPT! (from ChatGPT) + // Check if the input string is null or empty + if (input == null || input.isEmpty()) { + return ""; + } + + var output = new StringBuilder(); + var i = 0; + while (i < input.length()) { + var c = input.charAt(i); + if (c == '&') { + // Check if the Minecraft color code is valid + if (i + 1 < input.length() && unity.containsKey(input.charAt(i + 1))) { + // Append the Unity color code + output.append(""); + + // Move the index past the Minecraft color code + i += 2; + + // Find the end of the color code span + var end = input.indexOf('&', i); + if (end == -1) { + end = input.length(); + } + + // Append the text within the color code span + output.append(input, i, end); + + // Append the closing tag for the Unity color code + output.append(""); + + // Move the index to the end of the color code span + i = end; + } else { + // Invalid Minecraft color code, treat it as regular text + output.append(c); + i++; + } + } else { + // Append regular text + output.append(c); + i++; + } + } + + return output.toString(); + } + + /** + * Replaces detected sequences of &color with the specified text. + * + * @param input The input text. + * @return The replaced text. + */ + private String replaceTerminal(String input) { + // Check if the input string is null or empty + if (input == null || input.isEmpty()) { + return ""; + } + + var output = new StringBuilder(); + var i = 0; + while (i < input.length()) { + var c = input.charAt(i); + if (c == '&') { + // Check if the Minecraft color code is valid + if (i + 1 < input.length() && ansi.containsKey(input.charAt(i + 1))) { + // Append the ANSI escape code + output.append(ansi.get(input.charAt(i + 1))); + + // Move the index past the Minecraft color code + i += 2; + + // Find the end of the color code span + var end = input.indexOf('&', i); + if (end == -1) { + end = input.length(); + } + + // Append the text within the color code span + output.append(input, i, end); + + // Reset the color back to default + output.append("\u001B[0m"); + + // Move the index to the end of the color code span + i = end; + } else { + // Invalid Minecraft color code, treat it as regular text + output.append(c); + i++; + } + } else { + // Append regular text + output.append(c); + i++; + } + } + + return output.toString(); + } + + /** + * Wraps the text in the style. Formatted for Unity clients. + * + * @param text The text to wrap. + * @return The wrapped text. + */ + public String toUnity(String text) { + var builder = new StringBuilder(); + + // Set the size. + if (this.size != -1) { + builder.append(""); + } + + // Set the color. + if (this.color != null) { + builder + .append(""); + } + + // Set the boldness. + if (this.bold) builder.append(""); + // Set the italicness. + if (this.italic) builder.append(""); + + // Append the text. + builder.append(this.replaceUnity(text)); + + // Close the tags. + if (this.italic) builder.append(""); + if (this.bold) builder.append(""); + if (this.color != null) builder.append(""); + if (this.size != -1) builder.append(""); + + return builder.toString(); + } + + /** + * Wraps the text in the style. Formatted for terminal clients. + * + * @param text The text to wrap. + * @return The wrapped text. + */ + public String toTerminal(String text) { + // Check for color. + if (this.color == null) return this.replaceTerminal(text); + + // Convert the color to an ANSI color. + var ansiColor = + this.color.getRed() > 127 + ? this.color.getGreen() > 127 + ? this.color.getBlue() > 127 ? 15 : 11 + : this.color.getBlue() > 127 ? 13 : 9 + : this.color.getGreen() > 127 + ? this.color.getBlue() > 127 ? 14 : 10 + : this.color.getBlue() > 127 ? 12 : 8; + + // Return the text with the ANSI color. + // Reset the color at the end. + return "\u001B[38;5;" + ansiColor + "m" + this.replaceTerminal(text) + "\u001B[0m"; + } +} diff --git a/src/main/java/emu/grasscutter/utils/objects/text/Text.java b/src/main/java/emu/grasscutter/utils/objects/text/Text.java new file mode 100644 index 000000000..f5e6a75d4 --- /dev/null +++ b/src/main/java/emu/grasscutter/utils/objects/text/Text.java @@ -0,0 +1,103 @@ +package emu.grasscutter.utils.objects.text; + +import lombok.Getter; +import lombok.Setter; + +import java.awt.*; + +/* An instance of text. */ +public final class Text { + /** + * Creates a new rich instance of text. + * + * @param text The text to use. + * @return The new instance of text. + */ + public static Text of(String text) { + return new Text(text, false); + } + + @Getter private final boolean raw; + private final Style.StyleBuilder style = Style.builder(); + + @Setter private String text; + + /** + * Creates a new rich instance of text. + * + * @param text The text to use. + */ + public Text(String text) { + this.raw = false; + this.text = text; + } + + /** + * Creates a new instance of text. + * + * @param text The text to use. + * @param raw Whether the text is raw. + */ + public Text(String text, boolean raw) { + this.raw = raw; + this.text = text; + } + + /** + * Sets the size of the text. + * + * @param size The size of the text. + * @return This object. + */ + public Text size(int size) { + this.style.size(size); + return this; + } + + /** + * Sets the color of the text. + * + * @param color The color of the text. + * @return This object. + */ + public Text color(Color color) { + this.style.color(color); + return this; + } + + /** + * Sets the boldness of the text. + * + * @param bold Whether the text is bold. + * @return This object. + */ + public Text bold(boolean bold) { + this.style.bold(bold); + return this; + } + + /** + * Sets the italicness of the text. + * + * @param italic Whether the text is italic. + * @return This object. + */ + public Text italic(boolean italic) { + this.style.italic(italic); + return this; + } + + /** + * Converts this object to a string. Converts to a console or Unity format. + * + * @param console Whether to convert the text for the console. + * @return The converted string. + */ + public String toString(boolean console) { + // Pull instances of style and text. + var style = this.style.build(); + var text = this.text; + + return console ? style.toTerminal(text) : style.toUnity(text); + } +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index ca6d90ca9..82cf83ca9 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + %d{HH:mm:ss} <%highlight(%level):%gray(%class{0})> %msg%n @@ -18,7 +18,7 @@ - + %d{HH:mm:ss} <%highlight(%level):%gray(%class{0})> %msg%n