From 3606e49d47031a39e385866b9700fffaa572f200 Mon Sep 17 00:00:00 2001 From: pomchom Date: Sun, 30 Jun 2024 18:36:45 -0400 Subject: [PATCH 1/2] the big unfinished commit --- .gitignore | 8 +- build.gradle.kts | 221 +---------------- buildSrc/build.gradle.kts | 11 + buildSrc/settings.gradle.kts | 7 + .../recode.kotlin-conventions.gradle.kts | 3 + gradle.properties | 9 +- gradle/libs.versions.toml | 23 ++ mod/build.gradle.kts | 229 ++++++++++++++++++ .../homchom/recode/CodeInitializer.java | 0 .../io/github/homchom/recode/CommonGlobals.kt | 0 .../java/io/github/homchom/recode/Logging.kt | 0 .../io/github/homchom/recode/ModConstants.kt | 0 .../java/io/github/homchom/recode/Power.kt | 0 .../java/io/github/homchom/recode/Recode.kt | 0 .../github/homchom/recode/RecodeDispatcher.kt | 0 .../io/github/homchom/recode/config/Config.kt | 0 .../homchom/recode/event/BufferedEvent.kt | 0 .../recode/event/EventTransformations.kt | 0 .../github/homchom/recode/event/EventTypes.kt | 0 .../homchom/recode/event/EventWrapper.kt | 0 .../github/homchom/recode/event/FlowEvents.kt | 0 .../github/homchom/recode/event/Validation.kt | 0 .../recode/event/trial/DetectorImpl.kt | 0 .../homchom/recode/event/trial/Trial.kt | 0 .../homchom/recode/event/trial/TrialScope.kt | 0 .../github/homchom/recode/feature/Feature.kt | 0 .../recode/feature/automation/AutoCommands.kt | 0 .../homchom/recode/feature/meta/DebugMode.kt | 0 .../recode/feature/social/DiscordActivity.kt | 0 .../homchom/recode/feature/social/SideChat.kt | 0 .../feature/visual/BuiltInResourcePacks.kt | 0 .../recode/feature/visual/CodeSearch.kt | 0 .../visual/EditBoxExpressionFormatter.kt | 0 .../feature/visual/ExpressionHighlighting.kt | 0 .../recode/feature/visual/LagSlayerHUD.kt | 0 .../recode/feature/visual/MessageStacking.kt | 0 .../feature/visual/SignRenderDistance.kt | 0 .../github/homchom/recode/game/GameEvents.kt | 0 .../io/github/homchom/recode/game/GameTime.kt | 0 .../homchom/recode/game/ItemExtensions.kt | 0 .../homchom/recode/game/NBTExtensions.kt | 0 .../homchom/recode/game/SlotConversions.kt | 0 .../recode/hypercube/BukkitFunctions.kt | 0 .../recode/hypercube/CommandSenders.kt | 0 .../homchom/recode/hypercube/DFMiniMessage.kt | 0 .../homchom/recode/hypercube/DFValueMeta.kt | 0 .../recode/hypercube/HypercubeAliases.kt | 0 .../recode/hypercube/HypercubeConstants.kt | 0 .../recode/hypercube/HypercubeEvents.kt | 0 .../recode/hypercube/message/CodeMessages.kt | 0 .../recode/hypercube/message/MessageParser.kt | 0 .../recode/hypercube/message/ShopMessages.kt | 0 .../recode/hypercube/message/StateMessages.kt | 0 .../homchom/recode/hypercube/state/DFState.kt | 0 .../hypercube/state/DFStateDetectors.kt | 0 .../recode/hypercube/state/Permissions.kt | 0 .../homchom/recode/hypercube/state/Ranks.kt | 0 .../io/github/homchom/recode/io/NativeIO.kt | 0 .../homchom/recode/io/OperatingSystem.kt | 0 .../homchom/recode/mixin/ConditionalMixins.kt | 0 .../homchom/recode/mixin/MMinecraft.java | 0 .../homchom/recode/mixin/MixinConfig.kt | 0 .../recode/mixin/game/ItemStackAccessor.java | 0 .../mixin/multiplayer/MChatListener.java | 0 .../multiplayer/MClientPacketListener.java | 0 .../recode/mixin/multiplayer/MConnection.java | 0 .../multiplayer/MJoinMultiplayerScreen.java | 0 .../optional/sodium/MSodiumWorldRenderer.java | 0 .../render/MBlockEntityRenderDispatcher.java | 0 .../homchom/recode/mixin/render/MGui.java | 0 .../recode/mixin/render/MLevelRenderer.java | 0 .../homchom/recode/mixin/render/MWindow.java | 0 .../mixin/render/chat/MChatComponent.java | 0 .../recode/mixin/render/chat/MChatScreen.java | 0 .../render/chat/MCommandSuggestions.java | 0 .../homchom/recode/mixin/ui/FontInvoker.java | 0 .../homchom/recode/mod/commands/Command.java | 0 .../recode/mod/commands/CommandHandler.java | 0 .../homchom/recode/mod/commands/IManager.java | 0 .../mod/commands/arguments/ArgBuilder.java | 0 .../mod/commands/arguments/StringReaders.java | 0 .../arguments/types/ChoiceArgumentType.java | 0 .../arguments/types/PathArgumentType.java | 0 .../arguments/types/PlayerArgumentType.java | 0 .../impl/image/AbstractImageCommand.java | 0 .../impl/image/ImageHologramCommand.java | 0 .../impl/image/ImageParticleCommand.java | 0 .../commands/impl/item/BreakableCommand.java | 0 .../commands/impl/item/CodeVaultCommand.java | 0 .../commands/impl/item/EditItemCommand.java | 0 .../mod/commands/impl/item/GiveCommand.java | 0 .../commands/impl/item/ImportFileCommand.java | 0 .../commands/impl/item/ItemdataCommand.java | 0 .../commands/impl/item/TemplatesCommand.java | 0 .../mod/commands/impl/item/UnpackCommand.java | 0 .../template/AbstractTemplateCommand.java | 0 .../item/template/SendTemplateCommand.java | 0 .../impl/item/template/WebviewCommand.java | 0 .../mod/commands/impl/other/CalcCommand.java | 0 .../mod/commands/impl/other/NBSCommand.java | 0 .../commands/impl/other/NBSSearchCommand.java | 0 .../mod/commands/impl/other/NodeCommand.java | 0 .../mod/commands/impl/other/PJoinCommand.java | 0 .../mod/commands/impl/other/PingCommand.java | 0 .../mod/commands/impl/other/QueueCommand.java | 0 .../commands/impl/other/RecodeCommand.java | 0 .../commands/impl/other/SearchCommand.java | 0 .../commands/impl/text/ActionbarCommand.java | 0 .../mod/commands/impl/text/ColorsCommand.java | 0 .../commands/impl/text/CopyTextCommand.java | 0 .../mod/commands/impl/text/NameCommand.java | 0 .../commands/impl/text/SubTitleCommand.java | 0 .../mod/commands/impl/text/TitleCommand.java | 0 .../mod/commands/impl/text/UuidCommand.java | 0 .../recode/mod/config/ConfigSounds.java | 0 .../recode/mod/config/LegacyConfig.java | 0 .../recode/mod/config/ModMenuIntegration.java | 0 .../mod/config/impl/AutomationGroup.java | 0 .../recode/mod/config/impl/CommandsGroup.java | 0 .../mod/config/impl/DiscordRPCGroup.java | 0 .../recode/mod/config/impl/HidingGroup.java | 0 .../mod/config/impl/HighlightGroup.java | 0 .../recode/mod/config/impl/KeybindsGroup.java | 0 .../mod/config/impl/MiscellaneousGroup.java | 0 .../recode/mod/config/impl/ScreenGroup.java | 0 .../mod/config/impl/SidedChatGroup.java | 0 .../mod/config/impl/StreamerModeGroup.java | 0 .../mod/config/internal/ConfigFile.java | 0 .../config/internal/ConfigInstruction.java | 0 .../config/internal/DestroyItemResetType.java | 0 .../mod/config/internal/ITranslatable.java | 0 .../internal/gson/ConfigSerializer.java | 0 .../gson/types/BooleanSerializer.java | 0 .../internal/gson/types/DoubleSerializer.java | 0 .../gson/types/DynamicStringSerializer.java | 0 .../internal/gson/types/EnumSerializer.java | 0 .../internal/gson/types/FloatSerializer.java | 0 .../gson/types/IntegerSerializer.java | 0 .../internal/gson/types/LongSerializer.java | 0 .../internal/gson/types/SoundSerializer.java | 0 .../internal/gson/types/StringSerializer.java | 0 .../gson/types/list/StringListSerializer.java | 0 .../recode/mod/config/menu/ConfigScreen.java | 0 .../mod/config/structure/ConfigGroup.java | 0 .../mod/config/structure/ConfigManager.java | 0 .../mod/config/structure/ConfigSetting.java | 0 .../mod/config/structure/ConfigSubGroup.java | 0 .../config/structure/IAdvancedSetting.java | 0 .../recode/mod/config/structure/IRawKey.java | 0 .../mod/config/structure/IRawTranslation.java | 0 .../mod/config/types/BooleanSetting.java | 0 .../mod/config/types/DoubleSetting.java | 0 .../mod/config/types/DropdownSetting.java | 0 .../config/types/DynamicStringSetting.java | 0 .../recode/mod/config/types/EnumSetting.java | 0 .../recode/mod/config/types/FloatSetting.java | 0 .../mod/config/types/IConfigDropdownEnum.java | 0 .../recode/mod/config/types/IConfigEnum.java | 0 .../mod/config/types/IntegerSetting.java | 0 .../recode/mod/config/types/LongSetting.java | 0 .../recode/mod/config/types/SoundSetting.java | 0 .../mod/config/types/StringSetting.java | 0 .../mod/config/types/TextDescription.java | 0 .../recode/mod/config/types/hud/HudData.java | 0 .../mod/config/types/hud/PositionSetting.java | 0 .../mod/config/types/list/ListSetting.java | 0 .../config/types/list/StringListSetting.java | 0 .../recode/mod/events/LegacyEventHandler.java | 0 .../impl/LegacyAfterScreenInitEvent.java | 0 .../events/impl/LegacyChangeStateEvent.java | 0 .../mod/events/impl/LegacyJoinEvent.java | 0 .../impl/LegacyReceiveChatMessageEvent.java | 0 .../events/impl/LegacyReceiveSoundEvent.java | 0 .../mod/features/StateOverlayHandler.java | 0 .../recode/mod/features/TemplatePeeker.java | 0 .../mod/features/commands/CodeSearcher.java | 0 .../mod/features/commands/CodeVaultMenu.java | 0 .../mod/features/commands/ColorsMenu.java | 0 .../mod/features/commands/ItemEditorMenu.java | 0 .../mod/features/commands/NbsSearchMenu.java | 0 .../features/commands/TemplateSearchMenu.java | 0 .../mod/features/commands/TemplatesMenu.java | 0 .../commands/image/ImageToHologram.java | 0 .../commands/image/ImageToParticle.java | 0 .../commands/image/ParticleImage.java | 0 .../mod/features/commands/nbs/NBSDecoder.java | 0 .../features/commands/nbs/NBSToTemplate.java | 0 .../mod/features/commands/nbs/SongData.java | 0 .../nbs/exceptions/OutdatedNBSException.java | 0 .../features/commands/queue/QueueEntry.java | 0 .../features/commands/recode/Contributor.java | 0 .../commands/recode/ContributorsUI.java | 0 .../features/commands/recode/FeatureList.java | 0 .../features/commands/recode/FeaturesUI.java | 0 .../commands/recode/LegacyFeature.java | 0 .../features/commands/recode/RecodeUI.java | 0 .../features/keybinds/FlightSpeedToggle.java | 0 .../mod/features/keybinds/Keybinds.java | 0 .../social/chat/ConversationTimer.java | 0 .../social/chat/message/LegacyMessage.java | 0 .../chat/message/LegacyMessageType.java | 0 .../social/chat/message/MessageCheck.java | 0 .../social/chat/message/MessageFinalizer.java | 0 .../chat/message/checks/AdminCheck.java | 0 .../message/checks/BuycraftXUpdateCheck.java | 0 .../message/checks/DirectMessageCheck.java | 0 .../message/checks/IncomingReportCheck.java | 0 .../chat/message/checks/JoinFailCheck.java | 0 .../chat/message/checks/ModerationCheck.java | 0 .../chat/message/checks/PlotAdCheck.java | 0 .../chat/message/checks/PlotBoostCheck.java | 0 .../chat/message/checks/ScanningCheck.java | 0 .../message/checks/SilentPunishmentCheck.java | 0 .../chat/message/checks/SpiesCheck.java | 0 .../checks/StreamerModeRegexCheck.java | 0 .../message/checks/SupportAnswerCheck.java | 0 .../chat/message/checks/SupportCheck.java | 0 .../message/checks/SupportQuestionCheck.java | 0 .../chat/message/checks/TeleportCheck.java | 0 .../message/finalizers/DebugFinalizer.java | 0 .../finalizers/MessageGrabberFinalizer.java | 0 .../finalizers/StreamerModeFinalizer.java | 0 .../streamer/StreamerModeHandler.java | 0 .../streamer/StreamerModeMessageCheck.java | 0 .../mod/mixin/game/MMinecraftClient.java | 0 .../mod/mixin/inventory/MHeldItemTooltip.java | 0 .../mod/mixin/inventory/MItemCreative.java | 0 .../mod/mixin/inventory/MItemInsert.java | 0 .../mod/mixin/inventory/MItemStack.java | 0 .../mod/mixin/message/MMessageListener.java | 0 .../mod/mixin/message/MPlayerSendMessage.java | 0 .../mod/mixin/message/MReceivedSound.java | 0 .../render/MAbstractContainerScreen.java | 0 .../recode/mod/mixin/render/MChatScreen.java | 0 .../recode/mod/mixin/render/MChestBlock.java | 0 .../mod/mixin/render/MChestRenderer.java | 0 .../mod/mixin/render/MContainerScreen.java | 0 .../recode/mod/mixin/render/MInGameHUD.java | 0 .../mod/mixin/render/MMouseHandler.java | 0 .../recode/mod/mixin/render/MScreen.java | 0 .../recode/mod/mixin/render/MStitcher.java | 0 .../recode/mod/mixin/render/MWindow.java | 0 .../screen/MCreativeInventoryScreen.java | 0 .../mixin/render/screen/MOptionsScreen.java | 0 .../recode/multiplayer/CommandQueue.kt | 0 .../recode/multiplayer/MultiplayerEvents.kt | 0 .../recode/multiplayer/MultiplayerRegex.kt | 0 .../recode/multiplayer/PlayerExtensions.kt | 0 .../homchom/recode/multiplayer/Senders.kt | 0 .../recode/render/Blaze3DExtensions.kt | 0 .../io/github/homchom/recode/render/Color.kt | 0 .../homchom/recode/render/RenderDucks.kt | 0 .../homchom/recode/render/RenderEvents.kt | 0 .../homchom/recode/render/ScreenEvents.kt | 0 .../homchom/recode/render/StaticSkinRender.kt | 0 .../text/FormattedCharSequenceBuilder.kt | 0 .../text/FormattedCharSequenceExtensions.kt | 0 .../text/FormattedCharSequenceManipulation.kt | 0 .../homchom/recode/sys/file/ExternalFile.java | 0 .../recode/sys/file/ExternalFileBuilder.java | 0 .../homchom/recode/sys/file/FileUtil.java | 0 .../homchom/recode/sys/file/ILoader.java | 0 .../github/homchom/recode/sys/file/ISave.java | 0 .../homchom/recode/sys/file/WeakStorage.java | 0 .../sys/hypercube/codeaction/Action.java | 0 .../sys/hypercube/codeaction/ActionDump.java | 0 .../sys/hypercube/codeaction/Argument.java | 0 .../sys/hypercube/codeaction/CodeBlock.java | 0 .../sys/hypercube/codeaction/DisplayItem.java | 0 .../recode/sys/hypercube/codeaction/Tag.java | 0 .../sys/hypercube/codeaction/TagOption.java | 0 .../sys/hypercube/codeaction/Types.java | 0 .../hypercube/templates/CompressionUtil.java | 0 .../sys/hypercube/templates/TemplateItem.java | 0 .../templates/TemplateStorageHandler.java | 0 .../sys/hypercube/templates/TemplateUtil.java | 0 .../sys/hypercube/templates/Templates.java | 0 .../recode/sys/networking/WebUtil.java | 0 .../networking/websocket/SocketHandler.java | 0 .../networking/websocket/client/Clients.java | 0 .../websocket/client/SocketClient.java | 0 .../websocket/client/WebsocketServer.java | 0 .../client/type/AbstractTemplateItem.java | 0 .../websocket/client/type/NbtItem.java | 0 .../client/type/RawTemplateItem.java | 0 .../websocket/client/type/SocketItem.java | 0 .../websocket/client/type/TemplateItem.java | 0 .../homchom/recode/sys/player/DFInfo.java | 0 .../recode/sys/player/chat/ChatType.java | 0 .../recode/sys/player/chat/ChatUtil.java | 0 .../sys/player/chat/MessageGrabber.java | 0 .../sys/player/chat/MessageGrabberTask.java | 0 .../sys/player/chat/color/ColorUtil.java | 0 .../sys/player/chat/color/HSBColor.java | 0 .../sys/player/chat/color/HSLColor.java | 0 .../player/chat/color/MinecraftColors.java | 0 .../homchom/recode/sys/renderer/IMenu.java | 0 .../recode/sys/renderer/RenderUtil.java | 0 .../recode/sys/renderer/ToasterUtil.java | 0 .../recode/sys/renderer/widgets/CButton.java | 0 .../sys/renderer/widgets/CColorPicker.java | 0 .../sys/renderer/widgets/CColorPreset.java | 0 .../renderer/widgets/CColoredRectangle.java | 0 .../recode/sys/renderer/widgets/CItem.java | 0 .../recode/sys/renderer/widgets/CText.java | 0 .../sys/renderer/widgets/CTextField.java | 0 .../recode/sys/renderer/widgets/ChestHud.java | 0 .../renderer/widgets/ClickableGiveItem.java | 0 .../sys/renderer/widgets/ItemGridPanel.java | 0 .../renderer/widgets/ItemScrollablePanel.java | 0 .../recode/sys/sidedchat/ChatPattern.java | 0 .../recode/sys/sidedchat/ChatPredicates.java | 0 .../recode/sys/sidedchat/ChatRule.java | 0 .../recode/sys/sidedchat/ChatShortcut.java | 0 .../homchom/recode/sys/util/ItemUtil.java | 0 .../homchom/recode/sys/util/SoundUtil.java | 0 .../homchom/recode/sys/util/StringUtil.java | 0 .../recode/sys/util/TemplateConstants.java | 0 .../homchom/recode/sys/util/TextUtil.java | 0 .../homchom/recode/sys/util/TimerUtil.java | 0 .../github/homchom/recode/ui/MessageTags.kt | 0 .../io/github/homchom/recode/ui/Messaging.kt | 0 .../homchom/recode/ui/screen/DummyScreen.kt | 0 .../homchom/recode/ui/text/LineWrapping.kt | 0 .../recode/ui/text/MiniMessageFunctions.kt | 0 .../recode/ui/text/MiniMessageHighlighter.kt | 0 .../homchom/recode/ui/text/StyleWrapper.kt | 0 .../homchom/recode/ui/text/StyledString.kt | 0 .../ui/text/StyledStringManipulation.kt | 0 .../homchom/recode/ui/text/TextBuilders.kt | 0 .../homchom/recode/ui/text/TextExtensions.kt | 0 .../homchom/recode/ui/text/TextInterop.kt | 0 .../github/homchom/recode/util/Computation.kt | 0 .../homchom/recode/util/GenericWrappers.kt | 0 .../io/github/homchom/recode/util/Matcher.kt | 0 .../homchom/recode/util/TraitInterfaces.kt | 0 .../github/homchom/recode/util/WordCases.kt | 0 .../recode/util/coroutines/Continuations.kt | 0 .../util/coroutines/CoroutinesFunctions.kt | 0 .../recode/util/coroutines/RateLimiter.kt | 0 .../homchom/recode/util/math/Arithmetic.kt | 0 .../homchom/recode/util/math/Measurements.kt | 0 .../homchom/recode/util/math/MixedInt.kt | 0 .../homchom/recode/util/regex/DynamicRegex.kt | 0 .../recode/util/regex/RegexBuilderElements.kt | 0 .../recode/util/regex/RegexFunctions.kt | 0 .../recode/util/regex/RegexModifiers.kt | 0 .../recode/util/regex/RegexPatternBuilder.kt | 0 .../recode/util/std/CollectionsFunctions.kt | 0 .../homchom/recode/util/std/HeteroMap.kt | 0 .../recode/util/std/StdlibFunctions.kt | 0 .../assets/minecraft/font/default.json | 0 .../resources/assets/recode/lang/en_us.json | 0 .../assets/recode/textures/font/puaa_8x8.png | Bin .../assets/recode/textures/gui/recode.png | Bin .../recode/textures/gui/sprites/icon/df.png | Bin .../resources/fabric_mod_json_template.txt | 0 .../recode/textures/gui/sprites/icon/df.png | Bin .../src}/main/resources/recode.mixins.json | 0 .../main/resources/recodeLegacy.mixins.json | 0 .../assets/minecraft/font/default.json | 0 .../minecraft/textures/font/bu_arrows.png | Bin .../minecraft/textures/font/bu_chess.png | Bin .../textures/font/bu_page5_12x12.png | Bin .../minecraft/textures/font/bu_page5_9x12.png | Bin .../textures/font/bu_page7_12x12.png | Bin .../minecraft/textures/font/bu_page7_9x12.png | Bin .../minecraft/textures/font/bu_planetary.png | Bin .../minecraft/textures/font/bu_zodiac.png | Bin .../resourcepacks/better_unicode/pack.mcmeta | 0 .../resourcepacks/better_unicode/pack.png | Bin settings.gradle.kts | 6 + 372 files changed, 289 insertions(+), 228 deletions(-) create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/settings.gradle.kts create mode 100644 buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts create mode 100644 gradle/libs.versions.toml create mode 100644 mod/build.gradle.kts rename {src => mod/src}/main/java/io/github/homchom/recode/CodeInitializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/CommonGlobals.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/Logging.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ModConstants.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/Power.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/Recode.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/RecodeDispatcher.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/config/Config.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/BufferedEvent.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/EventTransformations.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/EventTypes.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/EventWrapper.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/FlowEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/Validation.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/trial/DetectorImpl.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/trial/Trial.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/event/trial/TrialScope.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/Feature.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/automation/AutoCommands.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/meta/DebugMode.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/social/DiscordActivity.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/social/SideChat.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/BuiltInResourcePacks.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/CodeSearch.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/EditBoxExpressionFormatter.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/ExpressionHighlighting.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/LagSlayerHUD.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/MessageStacking.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/feature/visual/SignRenderDistance.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/game/GameEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/game/GameTime.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/game/ItemExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/game/NBTExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/game/SlotConversions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/BukkitFunctions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/CommandSenders.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/DFMiniMessage.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/DFValueMeta.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/HypercubeAliases.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/HypercubeConstants.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/HypercubeEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/message/CodeMessages.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/message/MessageParser.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/message/ShopMessages.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/message/StateMessages.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/state/DFState.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/state/DFStateDetectors.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/state/Permissions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/hypercube/state/Ranks.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/io/NativeIO.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/io/OperatingSystem.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/ConditionalMixins.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/MMinecraft.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/MixinConfig.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/game/ItemStackAccessor.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/multiplayer/MChatListener.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/multiplayer/MClientPacketListener.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/multiplayer/MConnection.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/multiplayer/MJoinMultiplayerScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/optional/sodium/MSodiumWorldRenderer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/MBlockEntityRenderDispatcher.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/MGui.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/MLevelRenderer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/MWindow.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/chat/MChatComponent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/chat/MChatScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/render/chat/MCommandSuggestions.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mixin/ui/FontInvoker.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/Command.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/CommandHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/IManager.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/arguments/ArgBuilder.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/arguments/StringReaders.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/arguments/types/ChoiceArgumentType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/arguments/types/PathArgumentType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/arguments/types/PlayerArgumentType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/image/AbstractImageCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageHologramCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageParticleCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/BreakableCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/CodeVaultCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/EditItemCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/GiveCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/ImportFileCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/ItemdataCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/TemplatesCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/UnpackCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/template/AbstractTemplateCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/template/SendTemplateCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/item/template/WebviewCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/CalcCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSSearchCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/NodeCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/PJoinCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/PingCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/QueueCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/RecodeCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/other/SearchCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/ActionbarCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/ColorsCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/CopyTextCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/NameCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/SubTitleCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/TitleCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/commands/impl/text/UuidCommand.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/ConfigSounds.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/LegacyConfig.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/ModMenuIntegration.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/AutomationGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/CommandsGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/DiscordRPCGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/HidingGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/HighlightGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/KeybindsGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/MiscellaneousGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/ScreenGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/SidedChatGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/impl/StreamerModeGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/ConfigFile.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/ConfigInstruction.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/DestroyItemResetType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/ITranslatable.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/ConfigSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/BooleanSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DoubleSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DynamicStringSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/EnumSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/FloatSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/IntegerSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/LongSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/SoundSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/StringSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/internal/gson/types/list/StringListSerializer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/menu/ConfigScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/ConfigGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/ConfigManager.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/ConfigSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/ConfigSubGroup.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/IAdvancedSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/IRawKey.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/structure/IRawTranslation.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/BooleanSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/DoubleSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/DropdownSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/DynamicStringSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/EnumSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/FloatSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/IConfigDropdownEnum.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/IConfigEnum.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/IntegerSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/LongSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/SoundSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/StringSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/TextDescription.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/hud/HudData.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/hud/PositionSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/list/ListSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/config/types/list/StringListSetting.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/LegacyEventHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/impl/LegacyAfterScreenInitEvent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/impl/LegacyChangeStateEvent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/impl/LegacyJoinEvent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveChatMessageEvent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveSoundEvent.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/StateOverlayHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/TemplatePeeker.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/CodeSearcher.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/CodeVaultMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/ColorsMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/ItemEditorMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/NbsSearchMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/TemplateSearchMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/TemplatesMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToHologram.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToParticle.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/image/ParticleImage.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSDecoder.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSToTemplate.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/nbs/SongData.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/nbs/exceptions/OutdatedNBSException.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/queue/QueueEntry.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/Contributor.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/ContributorsUI.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/FeatureList.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/FeaturesUI.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/LegacyFeature.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/commands/recode/RecodeUI.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/keybinds/FlightSpeedToggle.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/ConversationTimer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessage.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessageType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageFinalizer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/AdminCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/BuycraftXUpdateCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/DirectMessageCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/IncomingReportCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/JoinFailCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ModerationCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotAdCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotBoostCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ScanningCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SilentPunishmentCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SpiesCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/StreamerModeRegexCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportAnswerCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportQuestionCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/TeleportCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/DebugFinalizer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/MessageGrabberFinalizer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/StreamerModeFinalizer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeMessageCheck.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/game/MMinecraftClient.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/inventory/MHeldItemTooltip.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemCreative.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemInsert.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/message/MMessageListener.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/message/MPlayerSendMessage.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/message/MReceivedSound.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MAbstractContainerScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MChatScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MChestBlock.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MChestRenderer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MContainerScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MInGameHUD.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MMouseHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MStitcher.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/MWindow.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/screen/MCreativeInventoryScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/mod/mixin/render/screen/MOptionsScreen.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/multiplayer/CommandQueue.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/multiplayer/MultiplayerEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/multiplayer/MultiplayerRegex.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/multiplayer/PlayerExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/multiplayer/Senders.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/Blaze3DExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/Color.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/RenderDucks.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/RenderEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/ScreenEvents.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/StaticSkinRender.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceBuilder.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceManipulation.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/ExternalFile.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/ExternalFileBuilder.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/FileUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/ILoader.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/ISave.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/file/WeakStorage.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Action.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/ActionDump.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Argument.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/CodeBlock.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/DisplayItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Tag.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/TagOption.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Types.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/templates/CompressionUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateStorageHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/hypercube/templates/Templates.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/WebUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/SocketHandler.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/Clients.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/SocketClient.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/WebsocketServer.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/AbstractTemplateItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/NbtItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/RawTemplateItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/SocketItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/TemplateItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/DFInfo.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/ChatType.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/ChatUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabber.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabberTask.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/color/ColorUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/color/HSBColor.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/color/HSLColor.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/player/chat/color/MinecraftColors.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/IMenu.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/RenderUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/ToasterUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CButton.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPicker.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPreset.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CColoredRectangle.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CText.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/CTextField.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/ChestHud.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/ClickableGiveItem.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemGridPanel.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemScrollablePanel.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/sidedchat/ChatPattern.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/sidedchat/ChatPredicates.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/sidedchat/ChatRule.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/sidedchat/ChatShortcut.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/ItemUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/SoundUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/StringUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/TemplateConstants.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/TextUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/sys/util/TimerUtil.java (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/MessageTags.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/Messaging.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/screen/DummyScreen.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/LineWrapping.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/MiniMessageFunctions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/MiniMessageHighlighter.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/StyleWrapper.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/StyledString.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/StyledStringManipulation.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/TextBuilders.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/TextExtensions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/ui/text/TextInterop.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/Computation.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/GenericWrappers.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/Matcher.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/TraitInterfaces.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/WordCases.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/coroutines/Continuations.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/coroutines/CoroutinesFunctions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/coroutines/RateLimiter.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/math/Arithmetic.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/math/Measurements.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/math/MixedInt.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/regex/DynamicRegex.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/regex/RegexBuilderElements.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/regex/RegexFunctions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/regex/RegexModifiers.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/regex/RegexPatternBuilder.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/std/CollectionsFunctions.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/std/HeteroMap.kt (100%) rename {src => mod/src}/main/java/io/github/homchom/recode/util/std/StdlibFunctions.kt (100%) rename {src => mod/src}/main/resources/assets/minecraft/font/default.json (100%) rename {src => mod/src}/main/resources/assets/recode/lang/en_us.json (100%) rename {src => mod/src}/main/resources/assets/recode/textures/font/puaa_8x8.png (100%) rename {src => mod/src}/main/resources/assets/recode/textures/gui/recode.png (100%) rename {src => mod/src}/main/resources/assets/recode/textures/gui/sprites/icon/df.png (100%) rename {src => mod/src}/main/resources/fabric_mod_json_template.txt (100%) rename {src => mod/src}/main/resources/high_contrast/assets/recode/textures/gui/sprites/icon/df.png (100%) rename {src => mod/src}/main/resources/recode.mixins.json (100%) rename {src => mod/src}/main/resources/recodeLegacy.mixins.json (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/font/default.json (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_arrows.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_chess.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_12x12.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_9x12.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_12x12.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_9x12.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_planetary.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_zodiac.png (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/pack.mcmeta (100%) rename {src => mod/src}/main/resources/resourcepacks/better_unicode/pack.png (100%) diff --git a/.gitignore b/.gitignore index bf81bae13..2630f27ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,24 @@ -#Gradle +# Gradle .gradle/ build/ out/ classes/ gradle/wrapper/gradle-wrapper.properties -#IDEA +# IDEA .idea/ *.iml *.ipr *.iws -#vscode +# VSCode .settings/ .vscode/ bin/ .classpath .project -#fabric +# Fabric run/ logs/ *.launch diff --git a/build.gradle.kts b/build.gradle.kts index 65bafa9f4..5bed3539f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,225 +1,8 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { - kotlin("jvm") version "2.0.0" - id("fabric-loom") version "1.5-SNAPSHOT" - id("com.modrinth.minotaur") version "2.+" - id("com.github.johnrengelman.shadow") version "8.1.1" -} - -val modName: String by project -val modVersion: String by project -val minecraftVersion: String by project -val modVersionWithMeta get() = "$modVersion+$minecraftVersion" -version = "$modVersionWithMeta-LATEST" - -val mavenGroup: String by project -group = mavenGroup - -val fabricVersion: String by project -val loaderVersion: String by project -val flkVersion: String by project - -val requiredDependencyMods = dependencyModsOfType("required") -val optionalDependencyMods = dependencyModsOfType("optional") - -base { - archivesName.set(modName) + // removing this causes issues, but we need to remove it to free up the kotlin plugin on the buildscript + //alias(libs.plugins.fabric.loom) apply false } repositories { - exclusiveContent { - forRepository { - maven { - name = "Modrinth" - url = uri("https://api.modrinth.com/maven") - } - } - filter { includeGroup("maven.modrinth") } - } - - maven { - name = "CottonMC" - url = uri("https://server.bbkr.space/artifactory/libs-release") - } - maven { - url = uri("https://maven.shedaniel.me/") - } - maven { - url = uri("https://maven.terraformersmc.com/") - } - maven { - url = uri("https://jitpack.io") - } mavenCentral() -} - -val shade: Configuration by configurations.creating { - isCanBeResolved = true - // exclude slf4j because it is already provided by Minecraft TODO: can this workaround be removed now? - exclude(group = "org.slf4j") -} - -dependencies { - // minecraft - minecraft("com.mojang:minecraft:$minecraftVersion") - mappings(loom.officialMojangMappings()) - - // fabric - modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricVersion") - modImplementation("net.fabricmc:fabric-loader:$loaderVersion") - - // kotlin - modImplementation("net.fabricmc:fabric-language-kotlin:$flkVersion") - - // mod dependencies listed in gradle.properties - for (mod in requiredDependencyMods) { - include(modImplementation("${mod.artifact}:${mod.version}")!!) - } - for (mod in optionalDependencyMods) { - modCompileOnly("${mod.artifact}:${mod.version}") - } - - // Websocket TODO: clean this up - shade(implementation("org.java-websocket:Java-WebSocket:1.5.3")!!) - include(implementation("javax.websocket:javax.websocket-api:1.1")!!) -} - -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. If you remove this line, sources will not be generated. - withSourcesJar() -} - -tasks { - withType { - options.encoding = "UTF-8" - } - - withType { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_17) - freeCompilerArgs.set(listOf( - "-Xjvm-default=all", - )) - } - } - - processResources { - // these properties can be used in fabric_mod_json_template.txt in Groovy template syntax - val exposedProperties = arrayOf( - "modName" to modName, - "version" to modVersion, - "minecraftVersion" to minecraftVersion, - "loaderVersion" to loaderVersion, - "fabricVersion" to fabricVersion, - "flkVersion" to flkVersion - ) - - inputs.properties(*exposedProperties) - inputs.properties(project.properties.filterKeys { it.startsWith("required.") }) - - // evaluate fabric_mod_json_template.txt as a Groovy template - filesMatching("fabric_mod_json_template.txt") { - val metadataRegex = Regex("""\+.+$""") - expand( - *exposedProperties, - "metadataRegex" to metadataRegex.toPattern(), - "dependencyMods" to requiredDependencyMods.joinToString(", ") { mod -> - val version = mod.version.replace(metadataRegex, "") - "\"${mod.id}\": \"${mod.versionSpec}$version\"" - } - ) - } - rename("fabric_mod_json_template.txt", "fabric.mod.json") - } - - jar { - // disable jar (in favor of shadowJar) - enabled = false - } - - shadowJar { - configurations = listOf(shade) - from("LICENSE") - - // output shaded jar in the correct destination to be used by remapJar - destinationDirectory.set(file("build/devlibs")) - archiveClassifier.set("dev") - - // relocate - isEnableRelocation = true - relocationPrefix = "$mavenGroup.$modName.shaded" - } - - remapJar { - // use the shaded jar with remapJar - inputFile.value(shadowJar.get().archiveFile) - } -} - -tasks.modrinth.get().dependsOn(tasks.modrinthSyncBody) - -modrinth { - // DO NOT PUT THIS IN RECODE'S GRADLE.PROPERTIES. Your modrinth token should remain private to everyone. - token.set(findProperty("privateModrinthToken")?.toString() ?: "") - - projectId.set("recode") - versionNumber.set(modVersionWithMeta) - - val match = Regex("""-(?beta|alpha)\.""").find(modVersion) - if (match == null) { - versionName.set(modVersion) - versionType.set("release") - } else { - val phase = match.groups["phase"]!!.value - versionName.set(modVersion.replaceRange(match.range, " $phase ")) - versionType.set(phase) - } - - // remove "LATEST" classifiers when uploading to modrinth - uploadFile.set(tasks.remapJar.map { task -> - val jarFile = task.archiveFile.get().asFile - val newPath = jarFile.path.replace("-LATEST", "") - jarFile.renameTo(File(newPath)) - newPath - }) - - gameVersions.addAll(minecraftVersion) - dependencies { - required.version("fabric-api", fabricVersion) - } - - // TODO: use something other than readText? - syncBodyFrom.set(file("README.md").readText()) - changelog.set(file("CHANGELOG.md").readText()) -} - -data class DependencyMod( - val id: String, - val artifact: String, - val version: String, - val versionSpec: String -) { - constructor(id: String, artifact: Any?, version: Any?, versionSpec: Any?) : - this(id, artifact.toString(), version.toString(), versionSpec.toString()) -} - -/** - * @return The list of [DependencyMod] values matching [type] in gradle.properties. - */ -fun dependencyModsOfType(type: String): List { - val regex = Regex("""$type\.([^\.]+)\.artifact""") - return properties.mapNotNull { (key, value) -> - regex.matchEntire(key)?.let { match -> - val id = match.groupValues[1] - val version = project.properties["$type.$id.version"] - val versionSpec = project.properties.getOrDefault("$type.$id.versionSpec", "^") - DependencyMod(id, value, version, versionSpec) - } - } } \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 000000000..ea1cac2df --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,11 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() +} + +dependencies { + //implementation(libs.kotlin.gradlePlugin) +} \ No newline at end of file diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 000000000..fa8bc7492 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts new file mode 100644 index 000000000..85173404e --- /dev/null +++ b/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts @@ -0,0 +1,3 @@ +plugins { + //kotlin("jvm") +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 016b69edd..5bb48783a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,9 @@ org.gradle.jvmargs = -Xmx1G # https://fabricmc.net/develop/ +modName = recode +mavenGroup = io.github.homchom + # the mod version, without metadata modVersion = 0.1.0-beta.10 @@ -34,8 +37,4 @@ optional.modmenu.artifact = com.terraformersmc:modmenu optional.modmenu.version = 9.0.0 optional.sodium.artifact = maven.modrinth:sodium -optional.sodium.version = mc1.20.4-0.5.8 - -# mod properties -modName = recode -mavenGroup = io.github.homchom \ No newline at end of file +optional.sodium.version = mc1.20.4-0.5.8 \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..4f07543dd --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,23 @@ +[libraries] + +# required; change versions every minecraft update +minecraft = { module = "com.mojang:minecraft", version = "1.20.4" } +fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version = "0.96.1+1.20.4" } + +adventure-platform-fabric = { module = "net.kyori:adventure-platform-fabric", version = "5.12.0" } +libgui = { module = "io.github.cottonmc:LibGui", version = "9.2.2+1.20.2" } +cloth-config = { module = "me.shedaniel.cloth:cloth-config-fabric", version = "13.0.121" } + +# optional; change versions every minecraft update +modmenu = { module = "com.terraformersmc:modmenu", version = "9.0.0" } +sodium = { module = "maven.modrinth:sodium", version = "mc1.20.4-0.5.8" } + +# change versions as needed +fabric-loader = { module = "net.fabricmc:fabric-loader", version = "0.15.2" } + +kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version = "2.0.0" } +fabric-language-kotlin = { module = "net.fabricmc:fabric-language-kotlin", version = "1.11.0+kotlin.2.0.0" } + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.0.0" } +fabric-loom = { id = "fabric-loom", version = "1.5-SNAPSHOT" } \ No newline at end of file diff --git a/mod/build.gradle.kts b/mod/build.gradle.kts new file mode 100644 index 000000000..c12580b12 --- /dev/null +++ b/mod/build.gradle.kts @@ -0,0 +1,229 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + // unresolved issue: gson resolves incorrectly if this is uncommented and the line after is commented + //id("recode.kotlin-conventions") + kotlin("jvm") version "2.0.0" + + alias(libs.plugins.fabric.loom) + + id("com.modrinth.minotaur") version "2.+" + id("com.github.johnrengelman.shadow") version "8.1.1" +} + +val modName: String by project +val modVersion: String by project +val minecraftVersion: String by project +val modVersionWithMeta get() = "$modVersion+$minecraftVersion" +version = "$modVersionWithMeta-LATEST" + +val mavenGroup: String by project +group = mavenGroup + +val fabricVersion: String by project +val loaderVersion: String by project +val flkVersion: String by project + +val requiredDependencyMods = dependencyModsOfType("required") +val optionalDependencyMods = dependencyModsOfType("optional") + +/*base { + archivesName.set(modName) +}*/ + +repositories { + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = uri("https://api.modrinth.com/maven") + } + } + filter { includeGroup("maven.modrinth") } + } + + maven { + name = "CottonMC" + url = uri("https://server.bbkr.space/artifactory/libs-release") + } + maven { + url = uri("https://maven.shedaniel.me/") + } + maven { + url = uri("https://maven.terraformersmc.com/") + } + maven { + url = uri("https://jitpack.io") + } + mavenCentral() +} + +val shade: Configuration by configurations.creating { + isCanBeResolved = true + // exclude slf4j because it is already provided by Minecraft TODO: can this workaround be removed now? + exclude(group = "org.slf4j") +} + +dependencies { + // minecraft + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + + // fabric + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricVersion") + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + + // kotlin + modImplementation("net.fabricmc:fabric-language-kotlin:$flkVersion") + + // mod dependencies listed in gradle.properties + for (mod in requiredDependencyMods) { + include(modImplementation("${mod.artifact}:${mod.version}")!!) + } + for (mod in optionalDependencyMods) { + modCompileOnly("${mod.artifact}:${mod.version}") + } + + // Websocket TODO: clean this up + shade(implementation("org.java-websocket:Java-WebSocket:1.5.3")!!) + include(implementation("javax.websocket:javax.websocket-api:1.1")!!) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. If you remove this line, sources will not be generated. + withSourcesJar() +} + +tasks { + withType { + options.encoding = "UTF-8" + } + + withType { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + freeCompilerArgs.set(listOf( + "-Xjvm-default=all", + )) + } + } + + processResources { + // these properties can be used in fabric_mod_json_template.txt in Groovy template syntax + val exposedProperties = arrayOf( + "modName" to modName, + "version" to modVersion, + "minecraftVersion" to minecraftVersion, + "loaderVersion" to loaderVersion, + "fabricVersion" to fabricVersion, + "flkVersion" to flkVersion + ) + + inputs.properties(*exposedProperties) + inputs.properties(project.properties.filterKeys { it.startsWith("required.") }) + + // evaluate fabric_mod_json_template.txt as a Groovy template + filesMatching("fabric_mod_json_template.txt") { + val metadataRegex = Regex("""\+.+$""") + expand( + *exposedProperties, + "metadataRegex" to metadataRegex.toPattern(), + "dependencyMods" to requiredDependencyMods.joinToString(", ") { mod -> + val version = mod.version.replace(metadataRegex, "") + "\"${mod.id}\": \"${mod.versionSpec}$version\"" + } + ) + } + rename("fabric_mod_json_template.txt", "fabric.mod.json") + } + + jar { + // disable jar (in favor of shadowJar) + enabled = false + } + + shadowJar { + configurations = listOf(shade) + from("LICENSE") + + // output shaded jar in the correct destination to be used by remapJar + destinationDirectory.set(file("build/devlibs")) + archiveClassifier.set("dev") + + // relocate + isEnableRelocation = true + relocationPrefix = "$mavenGroup.$modName.shaded" + } + + remapJar { + // use the shaded jar with remapJar + inputFile.value(shadowJar.get().archiveFile) + } +} + +tasks.modrinth.get().dependsOn(tasks.modrinthSyncBody) + +modrinth { + // DO NOT PUT THIS IN RECODE'S GRADLE.PROPERTIES. Your modrinth token should remain private to everyone. + token.set(findProperty("privateModrinthToken")?.toString() ?: "") + + projectId.set("recode") + versionNumber.set(modVersionWithMeta) + + val match = Regex("""-(?beta|alpha)\.""").find(modVersion) + if (match == null) { + versionName.set(modVersion) + versionType.set("release") + } else { + val phase = match.groups["phase"]!!.value + versionName.set(modVersion.replaceRange(match.range, " $phase ")) + versionType.set(phase) + } + + // remove "LATEST" classifiers when uploading to modrinth + uploadFile.set(tasks.remapJar.map { task -> + val jarFile = task.archiveFile.get().asFile + val newPath = jarFile.path.replace("-LATEST", "") + jarFile.renameTo(File(newPath)) + newPath + }) + + gameVersions.addAll(minecraftVersion) + dependencies { + required.version("fabric-api", fabricVersion) + } + + // TODO: use something other than readText? + //syncBodyFrom.set(file("README.md").readText()) + //changelog.set(file("CHANGELOG.md").readText()) +} + +data class DependencyMod( + val id: String, + val artifact: String, + val version: String, + val versionSpec: String +) { + constructor(id: String, artifact: Any?, version: Any?, versionSpec: Any?) : + this(id, artifact.toString(), version.toString(), versionSpec.toString()) +} + +/** + * @return The list of [DependencyMod] values matching [type] in gradle.properties. + */ +fun dependencyModsOfType(type: String): List { + val regex = Regex("""$type\.([^\.]+)\.artifact""") + return properties.mapNotNull { (key, value) -> + regex.matchEntire(key)?.let { match -> + val id = match.groupValues[1] + val version = project.properties["$type.$id.version"] + val versionSpec = project.properties.getOrDefault("$type.$id.versionSpec", "^") + DependencyMod(id, value, version, versionSpec) + } + } +} \ No newline at end of file diff --git a/src/main/java/io/github/homchom/recode/CodeInitializer.java b/mod/src/main/java/io/github/homchom/recode/CodeInitializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/CodeInitializer.java rename to mod/src/main/java/io/github/homchom/recode/CodeInitializer.java diff --git a/src/main/java/io/github/homchom/recode/CommonGlobals.kt b/mod/src/main/java/io/github/homchom/recode/CommonGlobals.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/CommonGlobals.kt rename to mod/src/main/java/io/github/homchom/recode/CommonGlobals.kt diff --git a/src/main/java/io/github/homchom/recode/Logging.kt b/mod/src/main/java/io/github/homchom/recode/Logging.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/Logging.kt rename to mod/src/main/java/io/github/homchom/recode/Logging.kt diff --git a/src/main/java/io/github/homchom/recode/ModConstants.kt b/mod/src/main/java/io/github/homchom/recode/ModConstants.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ModConstants.kt rename to mod/src/main/java/io/github/homchom/recode/ModConstants.kt diff --git a/src/main/java/io/github/homchom/recode/Power.kt b/mod/src/main/java/io/github/homchom/recode/Power.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/Power.kt rename to mod/src/main/java/io/github/homchom/recode/Power.kt diff --git a/src/main/java/io/github/homchom/recode/Recode.kt b/mod/src/main/java/io/github/homchom/recode/Recode.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/Recode.kt rename to mod/src/main/java/io/github/homchom/recode/Recode.kt diff --git a/src/main/java/io/github/homchom/recode/RecodeDispatcher.kt b/mod/src/main/java/io/github/homchom/recode/RecodeDispatcher.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/RecodeDispatcher.kt rename to mod/src/main/java/io/github/homchom/recode/RecodeDispatcher.kt diff --git a/src/main/java/io/github/homchom/recode/config/Config.kt b/mod/src/main/java/io/github/homchom/recode/config/Config.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/config/Config.kt rename to mod/src/main/java/io/github/homchom/recode/config/Config.kt diff --git a/src/main/java/io/github/homchom/recode/event/BufferedEvent.kt b/mod/src/main/java/io/github/homchom/recode/event/BufferedEvent.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/BufferedEvent.kt rename to mod/src/main/java/io/github/homchom/recode/event/BufferedEvent.kt diff --git a/src/main/java/io/github/homchom/recode/event/EventTransformations.kt b/mod/src/main/java/io/github/homchom/recode/event/EventTransformations.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/EventTransformations.kt rename to mod/src/main/java/io/github/homchom/recode/event/EventTransformations.kt diff --git a/src/main/java/io/github/homchom/recode/event/EventTypes.kt b/mod/src/main/java/io/github/homchom/recode/event/EventTypes.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/EventTypes.kt rename to mod/src/main/java/io/github/homchom/recode/event/EventTypes.kt diff --git a/src/main/java/io/github/homchom/recode/event/EventWrapper.kt b/mod/src/main/java/io/github/homchom/recode/event/EventWrapper.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/EventWrapper.kt rename to mod/src/main/java/io/github/homchom/recode/event/EventWrapper.kt diff --git a/src/main/java/io/github/homchom/recode/event/FlowEvents.kt b/mod/src/main/java/io/github/homchom/recode/event/FlowEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/FlowEvents.kt rename to mod/src/main/java/io/github/homchom/recode/event/FlowEvents.kt diff --git a/src/main/java/io/github/homchom/recode/event/Validation.kt b/mod/src/main/java/io/github/homchom/recode/event/Validation.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/Validation.kt rename to mod/src/main/java/io/github/homchom/recode/event/Validation.kt diff --git a/src/main/java/io/github/homchom/recode/event/trial/DetectorImpl.kt b/mod/src/main/java/io/github/homchom/recode/event/trial/DetectorImpl.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/trial/DetectorImpl.kt rename to mod/src/main/java/io/github/homchom/recode/event/trial/DetectorImpl.kt diff --git a/src/main/java/io/github/homchom/recode/event/trial/Trial.kt b/mod/src/main/java/io/github/homchom/recode/event/trial/Trial.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/trial/Trial.kt rename to mod/src/main/java/io/github/homchom/recode/event/trial/Trial.kt diff --git a/src/main/java/io/github/homchom/recode/event/trial/TrialScope.kt b/mod/src/main/java/io/github/homchom/recode/event/trial/TrialScope.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/event/trial/TrialScope.kt rename to mod/src/main/java/io/github/homchom/recode/event/trial/TrialScope.kt diff --git a/src/main/java/io/github/homchom/recode/feature/Feature.kt b/mod/src/main/java/io/github/homchom/recode/feature/Feature.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/Feature.kt rename to mod/src/main/java/io/github/homchom/recode/feature/Feature.kt diff --git a/src/main/java/io/github/homchom/recode/feature/automation/AutoCommands.kt b/mod/src/main/java/io/github/homchom/recode/feature/automation/AutoCommands.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/automation/AutoCommands.kt rename to mod/src/main/java/io/github/homchom/recode/feature/automation/AutoCommands.kt diff --git a/src/main/java/io/github/homchom/recode/feature/meta/DebugMode.kt b/mod/src/main/java/io/github/homchom/recode/feature/meta/DebugMode.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/meta/DebugMode.kt rename to mod/src/main/java/io/github/homchom/recode/feature/meta/DebugMode.kt diff --git a/src/main/java/io/github/homchom/recode/feature/social/DiscordActivity.kt b/mod/src/main/java/io/github/homchom/recode/feature/social/DiscordActivity.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/social/DiscordActivity.kt rename to mod/src/main/java/io/github/homchom/recode/feature/social/DiscordActivity.kt diff --git a/src/main/java/io/github/homchom/recode/feature/social/SideChat.kt b/mod/src/main/java/io/github/homchom/recode/feature/social/SideChat.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/social/SideChat.kt rename to mod/src/main/java/io/github/homchom/recode/feature/social/SideChat.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/BuiltInResourcePacks.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/BuiltInResourcePacks.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/BuiltInResourcePacks.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/BuiltInResourcePacks.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/CodeSearch.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/CodeSearch.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/CodeSearch.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/CodeSearch.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/EditBoxExpressionFormatter.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/EditBoxExpressionFormatter.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/EditBoxExpressionFormatter.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/EditBoxExpressionFormatter.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/ExpressionHighlighting.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/ExpressionHighlighting.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/ExpressionHighlighting.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/ExpressionHighlighting.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/LagSlayerHUD.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/LagSlayerHUD.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/LagSlayerHUD.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/LagSlayerHUD.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/MessageStacking.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/MessageStacking.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/MessageStacking.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/MessageStacking.kt diff --git a/src/main/java/io/github/homchom/recode/feature/visual/SignRenderDistance.kt b/mod/src/main/java/io/github/homchom/recode/feature/visual/SignRenderDistance.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/feature/visual/SignRenderDistance.kt rename to mod/src/main/java/io/github/homchom/recode/feature/visual/SignRenderDistance.kt diff --git a/src/main/java/io/github/homchom/recode/game/GameEvents.kt b/mod/src/main/java/io/github/homchom/recode/game/GameEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/game/GameEvents.kt rename to mod/src/main/java/io/github/homchom/recode/game/GameEvents.kt diff --git a/src/main/java/io/github/homchom/recode/game/GameTime.kt b/mod/src/main/java/io/github/homchom/recode/game/GameTime.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/game/GameTime.kt rename to mod/src/main/java/io/github/homchom/recode/game/GameTime.kt diff --git a/src/main/java/io/github/homchom/recode/game/ItemExtensions.kt b/mod/src/main/java/io/github/homchom/recode/game/ItemExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/game/ItemExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/game/ItemExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/game/NBTExtensions.kt b/mod/src/main/java/io/github/homchom/recode/game/NBTExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/game/NBTExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/game/NBTExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/game/SlotConversions.kt b/mod/src/main/java/io/github/homchom/recode/game/SlotConversions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/game/SlotConversions.kt rename to mod/src/main/java/io/github/homchom/recode/game/SlotConversions.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/BukkitFunctions.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/BukkitFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/BukkitFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/BukkitFunctions.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/CommandSenders.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/CommandSenders.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/CommandSenders.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/CommandSenders.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/DFMiniMessage.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/DFMiniMessage.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/DFMiniMessage.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/DFMiniMessage.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/DFValueMeta.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/DFValueMeta.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/DFValueMeta.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/DFValueMeta.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/HypercubeAliases.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeAliases.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/HypercubeAliases.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeAliases.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/HypercubeConstants.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeConstants.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/HypercubeConstants.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeConstants.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/HypercubeEvents.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/HypercubeEvents.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/HypercubeEvents.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/message/CodeMessages.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/message/CodeMessages.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/message/CodeMessages.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/message/CodeMessages.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/message/MessageParser.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/message/MessageParser.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/message/MessageParser.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/message/MessageParser.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/message/ShopMessages.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/message/ShopMessages.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/message/ShopMessages.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/message/ShopMessages.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/message/StateMessages.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/message/StateMessages.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/message/StateMessages.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/message/StateMessages.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/state/DFState.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/state/DFState.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/state/DFState.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/state/DFState.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/state/DFStateDetectors.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/state/DFStateDetectors.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/state/DFStateDetectors.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/state/DFStateDetectors.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/state/Permissions.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/state/Permissions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/state/Permissions.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/state/Permissions.kt diff --git a/src/main/java/io/github/homchom/recode/hypercube/state/Ranks.kt b/mod/src/main/java/io/github/homchom/recode/hypercube/state/Ranks.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/hypercube/state/Ranks.kt rename to mod/src/main/java/io/github/homchom/recode/hypercube/state/Ranks.kt diff --git a/src/main/java/io/github/homchom/recode/io/NativeIO.kt b/mod/src/main/java/io/github/homchom/recode/io/NativeIO.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/io/NativeIO.kt rename to mod/src/main/java/io/github/homchom/recode/io/NativeIO.kt diff --git a/src/main/java/io/github/homchom/recode/io/OperatingSystem.kt b/mod/src/main/java/io/github/homchom/recode/io/OperatingSystem.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/io/OperatingSystem.kt rename to mod/src/main/java/io/github/homchom/recode/io/OperatingSystem.kt diff --git a/src/main/java/io/github/homchom/recode/mixin/ConditionalMixins.kt b/mod/src/main/java/io/github/homchom/recode/mixin/ConditionalMixins.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/ConditionalMixins.kt rename to mod/src/main/java/io/github/homchom/recode/mixin/ConditionalMixins.kt diff --git a/src/main/java/io/github/homchom/recode/mixin/MMinecraft.java b/mod/src/main/java/io/github/homchom/recode/mixin/MMinecraft.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/MMinecraft.java rename to mod/src/main/java/io/github/homchom/recode/mixin/MMinecraft.java diff --git a/src/main/java/io/github/homchom/recode/mixin/MixinConfig.kt b/mod/src/main/java/io/github/homchom/recode/mixin/MixinConfig.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/MixinConfig.kt rename to mod/src/main/java/io/github/homchom/recode/mixin/MixinConfig.kt diff --git a/src/main/java/io/github/homchom/recode/mixin/game/ItemStackAccessor.java b/mod/src/main/java/io/github/homchom/recode/mixin/game/ItemStackAccessor.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/game/ItemStackAccessor.java rename to mod/src/main/java/io/github/homchom/recode/mixin/game/ItemStackAccessor.java diff --git a/src/main/java/io/github/homchom/recode/mixin/multiplayer/MChatListener.java b/mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MChatListener.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/multiplayer/MChatListener.java rename to mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MChatListener.java diff --git a/src/main/java/io/github/homchom/recode/mixin/multiplayer/MClientPacketListener.java b/mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MClientPacketListener.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/multiplayer/MClientPacketListener.java rename to mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MClientPacketListener.java diff --git a/src/main/java/io/github/homchom/recode/mixin/multiplayer/MConnection.java b/mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MConnection.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/multiplayer/MConnection.java rename to mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MConnection.java diff --git a/src/main/java/io/github/homchom/recode/mixin/multiplayer/MJoinMultiplayerScreen.java b/mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MJoinMultiplayerScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/multiplayer/MJoinMultiplayerScreen.java rename to mod/src/main/java/io/github/homchom/recode/mixin/multiplayer/MJoinMultiplayerScreen.java diff --git a/src/main/java/io/github/homchom/recode/mixin/optional/sodium/MSodiumWorldRenderer.java b/mod/src/main/java/io/github/homchom/recode/mixin/optional/sodium/MSodiumWorldRenderer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/optional/sodium/MSodiumWorldRenderer.java rename to mod/src/main/java/io/github/homchom/recode/mixin/optional/sodium/MSodiumWorldRenderer.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/MBlockEntityRenderDispatcher.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/MBlockEntityRenderDispatcher.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/MBlockEntityRenderDispatcher.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/MBlockEntityRenderDispatcher.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/MGui.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/MGui.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/MGui.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/MGui.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/MLevelRenderer.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/MLevelRenderer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/MLevelRenderer.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/MLevelRenderer.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/MWindow.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/MWindow.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/MWindow.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/MWindow.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatComponent.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatComponent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/chat/MChatComponent.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatComponent.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatScreen.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/chat/MChatScreen.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MChatScreen.java diff --git a/src/main/java/io/github/homchom/recode/mixin/render/chat/MCommandSuggestions.java b/mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MCommandSuggestions.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/render/chat/MCommandSuggestions.java rename to mod/src/main/java/io/github/homchom/recode/mixin/render/chat/MCommandSuggestions.java diff --git a/src/main/java/io/github/homchom/recode/mixin/ui/FontInvoker.java b/mod/src/main/java/io/github/homchom/recode/mixin/ui/FontInvoker.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mixin/ui/FontInvoker.java rename to mod/src/main/java/io/github/homchom/recode/mixin/ui/FontInvoker.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/Command.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/Command.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/Command.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/Command.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/CommandHandler.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/CommandHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/CommandHandler.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/CommandHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/IManager.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/IManager.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/IManager.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/IManager.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/arguments/ArgBuilder.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/ArgBuilder.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/arguments/ArgBuilder.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/ArgBuilder.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/arguments/StringReaders.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/StringReaders.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/arguments/StringReaders.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/StringReaders.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/ChoiceArgumentType.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/ChoiceArgumentType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/arguments/types/ChoiceArgumentType.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/ChoiceArgumentType.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PathArgumentType.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PathArgumentType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PathArgumentType.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PathArgumentType.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PlayerArgumentType.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PlayerArgumentType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PlayerArgumentType.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/arguments/types/PlayerArgumentType.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/image/AbstractImageCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/AbstractImageCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/image/AbstractImageCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/AbstractImageCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageHologramCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageHologramCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageHologramCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageHologramCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageParticleCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageParticleCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageParticleCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/image/ImageParticleCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/BreakableCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/BreakableCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/BreakableCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/BreakableCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/CodeVaultCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/CodeVaultCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/CodeVaultCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/CodeVaultCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/EditItemCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/EditItemCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/EditItemCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/EditItemCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/GiveCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/GiveCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/GiveCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/GiveCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ImportFileCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ImportFileCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/ImportFileCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ImportFileCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ItemdataCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ItemdataCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/ItemdataCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/ItemdataCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/TemplatesCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/TemplatesCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/TemplatesCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/TemplatesCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/UnpackCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/UnpackCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/UnpackCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/UnpackCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/AbstractTemplateCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/AbstractTemplateCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/AbstractTemplateCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/AbstractTemplateCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/SendTemplateCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/SendTemplateCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/SendTemplateCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/SendTemplateCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/WebviewCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/WebviewCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/WebviewCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/item/template/WebviewCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/CalcCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/CalcCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/CalcCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/CalcCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSSearchCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSSearchCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSSearchCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NBSSearchCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NodeCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NodeCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/NodeCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/NodeCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PJoinCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PJoinCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/PJoinCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PJoinCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PingCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PingCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/PingCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/PingCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/QueueCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/QueueCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/QueueCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/QueueCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/RecodeCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/RecodeCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/RecodeCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/RecodeCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/other/SearchCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/SearchCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/other/SearchCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/other/SearchCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ActionbarCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ActionbarCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/ActionbarCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ActionbarCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ColorsCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ColorsCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/ColorsCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/ColorsCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/CopyTextCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/CopyTextCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/CopyTextCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/CopyTextCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/NameCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/NameCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/NameCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/NameCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/SubTitleCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/SubTitleCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/SubTitleCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/SubTitleCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/TitleCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/TitleCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/TitleCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/TitleCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/commands/impl/text/UuidCommand.java b/mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/UuidCommand.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/commands/impl/text/UuidCommand.java rename to mod/src/main/java/io/github/homchom/recode/mod/commands/impl/text/UuidCommand.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/ConfigSounds.java b/mod/src/main/java/io/github/homchom/recode/mod/config/ConfigSounds.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/ConfigSounds.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/ConfigSounds.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/LegacyConfig.java b/mod/src/main/java/io/github/homchom/recode/mod/config/LegacyConfig.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/LegacyConfig.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/LegacyConfig.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/ModMenuIntegration.java b/mod/src/main/java/io/github/homchom/recode/mod/config/ModMenuIntegration.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/ModMenuIntegration.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/ModMenuIntegration.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/AutomationGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/AutomationGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/AutomationGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/AutomationGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/CommandsGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/CommandsGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/CommandsGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/CommandsGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/DiscordRPCGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/DiscordRPCGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/DiscordRPCGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/DiscordRPCGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/HidingGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/HidingGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/HidingGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/HidingGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/HighlightGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/HighlightGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/HighlightGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/HighlightGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/KeybindsGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/KeybindsGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/KeybindsGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/KeybindsGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/MiscellaneousGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/MiscellaneousGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/MiscellaneousGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/MiscellaneousGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/ScreenGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/ScreenGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/ScreenGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/ScreenGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/SidedChatGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/SidedChatGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/SidedChatGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/SidedChatGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/impl/StreamerModeGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/impl/StreamerModeGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/impl/StreamerModeGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/impl/StreamerModeGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigFile.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigFile.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/ConfigFile.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigFile.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigInstruction.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigInstruction.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/ConfigInstruction.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/ConfigInstruction.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/DestroyItemResetType.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/DestroyItemResetType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/DestroyItemResetType.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/DestroyItemResetType.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/ITranslatable.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/ITranslatable.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/ITranslatable.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/ITranslatable.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/ConfigSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/ConfigSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/ConfigSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/ConfigSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/BooleanSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/BooleanSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/BooleanSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/BooleanSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DoubleSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DoubleSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DoubleSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DoubleSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DynamicStringSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DynamicStringSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DynamicStringSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/DynamicStringSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/EnumSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/EnumSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/EnumSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/EnumSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/FloatSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/FloatSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/FloatSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/FloatSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/IntegerSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/IntegerSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/IntegerSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/IntegerSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/LongSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/LongSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/LongSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/LongSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/SoundSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/SoundSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/SoundSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/SoundSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/StringSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/StringSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/StringSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/StringSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/list/StringListSerializer.java b/mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/list/StringListSerializer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/list/StringListSerializer.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/internal/gson/types/list/StringListSerializer.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/menu/ConfigScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/config/menu/ConfigScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/menu/ConfigScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/menu/ConfigScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/ConfigGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigManager.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigManager.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/ConfigManager.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigManager.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSubGroup.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSubGroup.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSubGroup.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/ConfigSubGroup.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/IAdvancedSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/IAdvancedSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/IAdvancedSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/IAdvancedSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/IRawKey.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/IRawKey.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/IRawKey.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/IRawKey.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/structure/IRawTranslation.java b/mod/src/main/java/io/github/homchom/recode/mod/config/structure/IRawTranslation.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/structure/IRawTranslation.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/structure/IRawTranslation.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/BooleanSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/BooleanSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/BooleanSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/BooleanSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/DoubleSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/DoubleSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/DoubleSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/DoubleSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/DropdownSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/DropdownSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/DropdownSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/DropdownSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/DynamicStringSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/DynamicStringSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/DynamicStringSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/DynamicStringSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/EnumSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/EnumSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/EnumSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/EnumSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/FloatSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/FloatSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/FloatSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/FloatSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/IConfigDropdownEnum.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/IConfigDropdownEnum.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/IConfigDropdownEnum.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/IConfigDropdownEnum.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/IConfigEnum.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/IConfigEnum.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/IConfigEnum.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/IConfigEnum.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/IntegerSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/IntegerSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/IntegerSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/IntegerSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/LongSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/LongSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/LongSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/LongSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/SoundSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/SoundSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/SoundSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/SoundSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/StringSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/StringSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/StringSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/StringSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/TextDescription.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/TextDescription.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/TextDescription.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/TextDescription.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/hud/HudData.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/hud/HudData.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/hud/HudData.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/hud/HudData.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/hud/PositionSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/hud/PositionSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/hud/PositionSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/hud/PositionSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/list/ListSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/list/ListSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/list/ListSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/list/ListSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/config/types/list/StringListSetting.java b/mod/src/main/java/io/github/homchom/recode/mod/config/types/list/StringListSetting.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/config/types/list/StringListSetting.java rename to mod/src/main/java/io/github/homchom/recode/mod/config/types/list/StringListSetting.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/LegacyEventHandler.java b/mod/src/main/java/io/github/homchom/recode/mod/events/LegacyEventHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/LegacyEventHandler.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/LegacyEventHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyAfterScreenInitEvent.java b/mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyAfterScreenInitEvent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/impl/LegacyAfterScreenInitEvent.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyAfterScreenInitEvent.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyChangeStateEvent.java b/mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyChangeStateEvent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/impl/LegacyChangeStateEvent.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyChangeStateEvent.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyJoinEvent.java b/mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyJoinEvent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/impl/LegacyJoinEvent.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyJoinEvent.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveChatMessageEvent.java b/mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveChatMessageEvent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveChatMessageEvent.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveChatMessageEvent.java diff --git a/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveSoundEvent.java b/mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveSoundEvent.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveSoundEvent.java rename to mod/src/main/java/io/github/homchom/recode/mod/events/impl/LegacyReceiveSoundEvent.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/StateOverlayHandler.java b/mod/src/main/java/io/github/homchom/recode/mod/features/StateOverlayHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/StateOverlayHandler.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/StateOverlayHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/TemplatePeeker.java b/mod/src/main/java/io/github/homchom/recode/mod/features/TemplatePeeker.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/TemplatePeeker.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/TemplatePeeker.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/CodeSearcher.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/CodeSearcher.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/CodeSearcher.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/CodeSearcher.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/CodeVaultMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/CodeVaultMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/CodeVaultMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/CodeVaultMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/ColorsMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/ColorsMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/ColorsMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/ColorsMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/ItemEditorMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/ItemEditorMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/ItemEditorMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/ItemEditorMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/NbsSearchMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/NbsSearchMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/NbsSearchMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/NbsSearchMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/TemplateSearchMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/TemplateSearchMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/TemplateSearchMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/TemplateSearchMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/TemplatesMenu.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/TemplatesMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/TemplatesMenu.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/TemplatesMenu.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToHologram.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToHologram.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToHologram.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToHologram.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToParticle.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToParticle.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToParticle.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ImageToParticle.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/image/ParticleImage.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ParticleImage.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/image/ParticleImage.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/image/ParticleImage.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSDecoder.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSDecoder.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSDecoder.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSDecoder.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSToTemplate.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSToTemplate.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSToTemplate.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/NBSToTemplate.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/SongData.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/SongData.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/nbs/SongData.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/SongData.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/exceptions/OutdatedNBSException.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/exceptions/OutdatedNBSException.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/nbs/exceptions/OutdatedNBSException.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/nbs/exceptions/OutdatedNBSException.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/queue/QueueEntry.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/queue/QueueEntry.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/queue/QueueEntry.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/queue/QueueEntry.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/Contributor.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/Contributor.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/Contributor.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/Contributor.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/ContributorsUI.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/ContributorsUI.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/ContributorsUI.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/ContributorsUI.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeatureList.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeatureList.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeatureList.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeatureList.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeaturesUI.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeaturesUI.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeaturesUI.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/FeaturesUI.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/LegacyFeature.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/LegacyFeature.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/LegacyFeature.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/LegacyFeature.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/commands/recode/RecodeUI.java b/mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/RecodeUI.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/commands/recode/RecodeUI.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/commands/recode/RecodeUI.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/keybinds/FlightSpeedToggle.java b/mod/src/main/java/io/github/homchom/recode/mod/features/keybinds/FlightSpeedToggle.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/keybinds/FlightSpeedToggle.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/keybinds/FlightSpeedToggle.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java b/mod/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/keybinds/Keybinds.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/ConversationTimer.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/ConversationTimer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/ConversationTimer.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/ConversationTimer.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessage.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessage.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessage.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessage.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessageType.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessageType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessageType.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/LegacyMessageType.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageFinalizer.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageFinalizer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageFinalizer.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/MessageFinalizer.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/AdminCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/AdminCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/AdminCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/AdminCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/BuycraftXUpdateCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/BuycraftXUpdateCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/BuycraftXUpdateCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/BuycraftXUpdateCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/DirectMessageCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/DirectMessageCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/DirectMessageCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/DirectMessageCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/IncomingReportCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/IncomingReportCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/IncomingReportCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/IncomingReportCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/JoinFailCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/JoinFailCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/JoinFailCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/JoinFailCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ModerationCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ModerationCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ModerationCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ModerationCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotAdCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotAdCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotAdCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotAdCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotBoostCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotBoostCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotBoostCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/PlotBoostCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ScanningCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ScanningCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ScanningCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/ScanningCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SilentPunishmentCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SilentPunishmentCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SilentPunishmentCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SilentPunishmentCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SpiesCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SpiesCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SpiesCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SpiesCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/StreamerModeRegexCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/StreamerModeRegexCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/StreamerModeRegexCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/StreamerModeRegexCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportAnswerCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportAnswerCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportAnswerCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportAnswerCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportQuestionCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportQuestionCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportQuestionCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/SupportQuestionCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/TeleportCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/TeleportCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/TeleportCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/checks/TeleportCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/DebugFinalizer.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/DebugFinalizer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/DebugFinalizer.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/DebugFinalizer.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/MessageGrabberFinalizer.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/MessageGrabberFinalizer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/MessageGrabberFinalizer.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/MessageGrabberFinalizer.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/StreamerModeFinalizer.java b/mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/StreamerModeFinalizer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/StreamerModeFinalizer.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/social/chat/message/finalizers/StreamerModeFinalizer.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeHandler.java b/mod/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeHandler.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeMessageCheck.java b/mod/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeMessageCheck.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeMessageCheck.java rename to mod/src/main/java/io/github/homchom/recode/mod/features/streamer/StreamerModeMessageCheck.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/game/MMinecraftClient.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/game/MMinecraftClient.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/game/MMinecraftClient.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/game/MMinecraftClient.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MHeldItemTooltip.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MHeldItemTooltip.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/inventory/MHeldItemTooltip.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MHeldItemTooltip.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemCreative.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemCreative.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemCreative.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemCreative.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemInsert.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemInsert.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemInsert.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemInsert.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/inventory/MItemStack.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/message/MMessageListener.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MMessageListener.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/message/MMessageListener.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MMessageListener.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/message/MPlayerSendMessage.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MPlayerSendMessage.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/message/MPlayerSendMessage.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MPlayerSendMessage.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/message/MReceivedSound.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MReceivedSound.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/message/MReceivedSound.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/message/MReceivedSound.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MAbstractContainerScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MAbstractContainerScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MAbstractContainerScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MAbstractContainerScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MChatScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChatScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MChatScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChatScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestBlock.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestBlock.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MChestBlock.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestBlock.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestRenderer.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestRenderer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MChestRenderer.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MChestRenderer.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MContainerScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MContainerScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MContainerScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MContainerScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MInGameHUD.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MInGameHUD.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MInGameHUD.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MInGameHUD.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MMouseHandler.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MMouseHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MMouseHandler.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MMouseHandler.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MStitcher.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MStitcher.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MStitcher.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MStitcher.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/MWindow.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MWindow.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/MWindow.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/MWindow.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MCreativeInventoryScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MCreativeInventoryScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MCreativeInventoryScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MCreativeInventoryScreen.java diff --git a/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MOptionsScreen.java b/mod/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MOptionsScreen.java similarity index 100% rename from src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MOptionsScreen.java rename to mod/src/main/java/io/github/homchom/recode/mod/mixin/render/screen/MOptionsScreen.java diff --git a/src/main/java/io/github/homchom/recode/multiplayer/CommandQueue.kt b/mod/src/main/java/io/github/homchom/recode/multiplayer/CommandQueue.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/multiplayer/CommandQueue.kt rename to mod/src/main/java/io/github/homchom/recode/multiplayer/CommandQueue.kt diff --git a/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerEvents.kt b/mod/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/multiplayer/MultiplayerEvents.kt rename to mod/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerEvents.kt diff --git a/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerRegex.kt b/mod/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerRegex.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/multiplayer/MultiplayerRegex.kt rename to mod/src/main/java/io/github/homchom/recode/multiplayer/MultiplayerRegex.kt diff --git a/src/main/java/io/github/homchom/recode/multiplayer/PlayerExtensions.kt b/mod/src/main/java/io/github/homchom/recode/multiplayer/PlayerExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/multiplayer/PlayerExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/multiplayer/PlayerExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/multiplayer/Senders.kt b/mod/src/main/java/io/github/homchom/recode/multiplayer/Senders.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/multiplayer/Senders.kt rename to mod/src/main/java/io/github/homchom/recode/multiplayer/Senders.kt diff --git a/src/main/java/io/github/homchom/recode/render/Blaze3DExtensions.kt b/mod/src/main/java/io/github/homchom/recode/render/Blaze3DExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/Blaze3DExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/render/Blaze3DExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/render/Color.kt b/mod/src/main/java/io/github/homchom/recode/render/Color.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/Color.kt rename to mod/src/main/java/io/github/homchom/recode/render/Color.kt diff --git a/src/main/java/io/github/homchom/recode/render/RenderDucks.kt b/mod/src/main/java/io/github/homchom/recode/render/RenderDucks.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/RenderDucks.kt rename to mod/src/main/java/io/github/homchom/recode/render/RenderDucks.kt diff --git a/src/main/java/io/github/homchom/recode/render/RenderEvents.kt b/mod/src/main/java/io/github/homchom/recode/render/RenderEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/RenderEvents.kt rename to mod/src/main/java/io/github/homchom/recode/render/RenderEvents.kt diff --git a/src/main/java/io/github/homchom/recode/render/ScreenEvents.kt b/mod/src/main/java/io/github/homchom/recode/render/ScreenEvents.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/ScreenEvents.kt rename to mod/src/main/java/io/github/homchom/recode/render/ScreenEvents.kt diff --git a/src/main/java/io/github/homchom/recode/render/StaticSkinRender.kt b/mod/src/main/java/io/github/homchom/recode/render/StaticSkinRender.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/StaticSkinRender.kt rename to mod/src/main/java/io/github/homchom/recode/render/StaticSkinRender.kt diff --git a/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceBuilder.kt b/mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceBuilder.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceBuilder.kt rename to mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceBuilder.kt diff --git a/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceExtensions.kt b/mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceManipulation.kt b/mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceManipulation.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceManipulation.kt rename to mod/src/main/java/io/github/homchom/recode/render/text/FormattedCharSequenceManipulation.kt diff --git a/src/main/java/io/github/homchom/recode/sys/file/ExternalFile.java b/mod/src/main/java/io/github/homchom/recode/sys/file/ExternalFile.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/ExternalFile.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/ExternalFile.java diff --git a/src/main/java/io/github/homchom/recode/sys/file/ExternalFileBuilder.java b/mod/src/main/java/io/github/homchom/recode/sys/file/ExternalFileBuilder.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/ExternalFileBuilder.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/ExternalFileBuilder.java diff --git a/src/main/java/io/github/homchom/recode/sys/file/FileUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/file/FileUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/FileUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/FileUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/file/ILoader.java b/mod/src/main/java/io/github/homchom/recode/sys/file/ILoader.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/ILoader.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/ILoader.java diff --git a/src/main/java/io/github/homchom/recode/sys/file/ISave.java b/mod/src/main/java/io/github/homchom/recode/sys/file/ISave.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/ISave.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/ISave.java diff --git a/src/main/java/io/github/homchom/recode/sys/file/WeakStorage.java b/mod/src/main/java/io/github/homchom/recode/sys/file/WeakStorage.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/file/WeakStorage.java rename to mod/src/main/java/io/github/homchom/recode/sys/file/WeakStorage.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Action.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Action.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Action.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Action.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/ActionDump.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/ActionDump.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/ActionDump.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/ActionDump.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Argument.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Argument.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Argument.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Argument.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/CodeBlock.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/CodeBlock.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/CodeBlock.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/CodeBlock.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/DisplayItem.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/DisplayItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/DisplayItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/DisplayItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Tag.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Tag.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Tag.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Tag.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/TagOption.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/TagOption.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/TagOption.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/TagOption.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Types.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Types.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Types.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/codeaction/Types.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/templates/CompressionUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/CompressionUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/templates/CompressionUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/CompressionUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateItem.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateStorageHandler.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateStorageHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateStorageHandler.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateStorageHandler.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/TemplateUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/hypercube/templates/Templates.java b/mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/Templates.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/hypercube/templates/Templates.java rename to mod/src/main/java/io/github/homchom/recode/sys/hypercube/templates/Templates.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/WebUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/WebUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/WebUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/WebUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/SocketHandler.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/SocketHandler.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/SocketHandler.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/SocketHandler.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/Clients.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/Clients.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/Clients.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/Clients.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/SocketClient.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/SocketClient.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/SocketClient.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/SocketClient.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/WebsocketServer.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/WebsocketServer.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/WebsocketServer.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/WebsocketServer.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/AbstractTemplateItem.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/AbstractTemplateItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/AbstractTemplateItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/AbstractTemplateItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/NbtItem.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/NbtItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/NbtItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/NbtItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/RawTemplateItem.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/RawTemplateItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/RawTemplateItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/RawTemplateItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/SocketItem.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/SocketItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/SocketItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/SocketItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/TemplateItem.java b/mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/TemplateItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/TemplateItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/networking/websocket/client/type/TemplateItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/DFInfo.java b/mod/src/main/java/io/github/homchom/recode/sys/player/DFInfo.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/DFInfo.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/DFInfo.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/ChatType.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/ChatType.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/ChatType.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/ChatType.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/ChatUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/ChatUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/ChatUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/ChatUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabber.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabber.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabber.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabber.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabberTask.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabberTask.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabberTask.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/MessageGrabberTask.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/color/ColorUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/ColorUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/color/ColorUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/ColorUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSBColor.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSBColor.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/color/HSBColor.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSBColor.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSLColor.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSLColor.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/color/HSLColor.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/HSLColor.java diff --git a/src/main/java/io/github/homchom/recode/sys/player/chat/color/MinecraftColors.java b/mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/MinecraftColors.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/player/chat/color/MinecraftColors.java rename to mod/src/main/java/io/github/homchom/recode/sys/player/chat/color/MinecraftColors.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/IMenu.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/IMenu.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/IMenu.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/IMenu.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/RenderUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/RenderUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/RenderUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/RenderUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/ToasterUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/ToasterUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/ToasterUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/ToasterUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CButton.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CButton.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CButton.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CButton.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPicker.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPicker.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPicker.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPicker.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPreset.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPreset.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPreset.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColorPreset.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColoredRectangle.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColoredRectangle.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColoredRectangle.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CColoredRectangle.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CItem.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CText.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CText.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CText.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CText.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CTextField.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CTextField.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/CTextField.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/CTextField.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ChestHud.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ChestHud.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/ChestHud.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ChestHud.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ClickableGiveItem.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ClickableGiveItem.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/ClickableGiveItem.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ClickableGiveItem.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemGridPanel.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemGridPanel.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemGridPanel.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemGridPanel.java diff --git a/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemScrollablePanel.java b/mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemScrollablePanel.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemScrollablePanel.java rename to mod/src/main/java/io/github/homchom/recode/sys/renderer/widgets/ItemScrollablePanel.java diff --git a/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPattern.java b/mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPattern.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPattern.java rename to mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPattern.java diff --git a/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPredicates.java b/mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPredicates.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPredicates.java rename to mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatPredicates.java diff --git a/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatRule.java b/mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatRule.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/sidedchat/ChatRule.java rename to mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatRule.java diff --git a/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatShortcut.java b/mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatShortcut.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/sidedchat/ChatShortcut.java rename to mod/src/main/java/io/github/homchom/recode/sys/sidedchat/ChatShortcut.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/ItemUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/util/ItemUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/ItemUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/ItemUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/SoundUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/util/SoundUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/SoundUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/SoundUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/StringUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/util/StringUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/StringUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/StringUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/TemplateConstants.java b/mod/src/main/java/io/github/homchom/recode/sys/util/TemplateConstants.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/TemplateConstants.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/TemplateConstants.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/TextUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/util/TextUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/TextUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/TextUtil.java diff --git a/src/main/java/io/github/homchom/recode/sys/util/TimerUtil.java b/mod/src/main/java/io/github/homchom/recode/sys/util/TimerUtil.java similarity index 100% rename from src/main/java/io/github/homchom/recode/sys/util/TimerUtil.java rename to mod/src/main/java/io/github/homchom/recode/sys/util/TimerUtil.java diff --git a/src/main/java/io/github/homchom/recode/ui/MessageTags.kt b/mod/src/main/java/io/github/homchom/recode/ui/MessageTags.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/MessageTags.kt rename to mod/src/main/java/io/github/homchom/recode/ui/MessageTags.kt diff --git a/src/main/java/io/github/homchom/recode/ui/Messaging.kt b/mod/src/main/java/io/github/homchom/recode/ui/Messaging.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/Messaging.kt rename to mod/src/main/java/io/github/homchom/recode/ui/Messaging.kt diff --git a/src/main/java/io/github/homchom/recode/ui/screen/DummyScreen.kt b/mod/src/main/java/io/github/homchom/recode/ui/screen/DummyScreen.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/screen/DummyScreen.kt rename to mod/src/main/java/io/github/homchom/recode/ui/screen/DummyScreen.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/LineWrapping.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/LineWrapping.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/LineWrapping.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/LineWrapping.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/MiniMessageFunctions.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/MiniMessageFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/MiniMessageFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/MiniMessageFunctions.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/MiniMessageHighlighter.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/MiniMessageHighlighter.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/MiniMessageHighlighter.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/MiniMessageHighlighter.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/StyleWrapper.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/StyleWrapper.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/StyleWrapper.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/StyleWrapper.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/StyledString.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/StyledString.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/StyledString.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/StyledString.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/StyledStringManipulation.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/StyledStringManipulation.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/StyledStringManipulation.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/StyledStringManipulation.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/TextBuilders.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/TextBuilders.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/TextBuilders.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/TextBuilders.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/TextExtensions.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/TextExtensions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/TextExtensions.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/TextExtensions.kt diff --git a/src/main/java/io/github/homchom/recode/ui/text/TextInterop.kt b/mod/src/main/java/io/github/homchom/recode/ui/text/TextInterop.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/ui/text/TextInterop.kt rename to mod/src/main/java/io/github/homchom/recode/ui/text/TextInterop.kt diff --git a/src/main/java/io/github/homchom/recode/util/Computation.kt b/mod/src/main/java/io/github/homchom/recode/util/Computation.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/Computation.kt rename to mod/src/main/java/io/github/homchom/recode/util/Computation.kt diff --git a/src/main/java/io/github/homchom/recode/util/GenericWrappers.kt b/mod/src/main/java/io/github/homchom/recode/util/GenericWrappers.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/GenericWrappers.kt rename to mod/src/main/java/io/github/homchom/recode/util/GenericWrappers.kt diff --git a/src/main/java/io/github/homchom/recode/util/Matcher.kt b/mod/src/main/java/io/github/homchom/recode/util/Matcher.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/Matcher.kt rename to mod/src/main/java/io/github/homchom/recode/util/Matcher.kt diff --git a/src/main/java/io/github/homchom/recode/util/TraitInterfaces.kt b/mod/src/main/java/io/github/homchom/recode/util/TraitInterfaces.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/TraitInterfaces.kt rename to mod/src/main/java/io/github/homchom/recode/util/TraitInterfaces.kt diff --git a/src/main/java/io/github/homchom/recode/util/WordCases.kt b/mod/src/main/java/io/github/homchom/recode/util/WordCases.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/WordCases.kt rename to mod/src/main/java/io/github/homchom/recode/util/WordCases.kt diff --git a/src/main/java/io/github/homchom/recode/util/coroutines/Continuations.kt b/mod/src/main/java/io/github/homchom/recode/util/coroutines/Continuations.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/coroutines/Continuations.kt rename to mod/src/main/java/io/github/homchom/recode/util/coroutines/Continuations.kt diff --git a/src/main/java/io/github/homchom/recode/util/coroutines/CoroutinesFunctions.kt b/mod/src/main/java/io/github/homchom/recode/util/coroutines/CoroutinesFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/coroutines/CoroutinesFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/util/coroutines/CoroutinesFunctions.kt diff --git a/src/main/java/io/github/homchom/recode/util/coroutines/RateLimiter.kt b/mod/src/main/java/io/github/homchom/recode/util/coroutines/RateLimiter.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/coroutines/RateLimiter.kt rename to mod/src/main/java/io/github/homchom/recode/util/coroutines/RateLimiter.kt diff --git a/src/main/java/io/github/homchom/recode/util/math/Arithmetic.kt b/mod/src/main/java/io/github/homchom/recode/util/math/Arithmetic.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/math/Arithmetic.kt rename to mod/src/main/java/io/github/homchom/recode/util/math/Arithmetic.kt diff --git a/src/main/java/io/github/homchom/recode/util/math/Measurements.kt b/mod/src/main/java/io/github/homchom/recode/util/math/Measurements.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/math/Measurements.kt rename to mod/src/main/java/io/github/homchom/recode/util/math/Measurements.kt diff --git a/src/main/java/io/github/homchom/recode/util/math/MixedInt.kt b/mod/src/main/java/io/github/homchom/recode/util/math/MixedInt.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/math/MixedInt.kt rename to mod/src/main/java/io/github/homchom/recode/util/math/MixedInt.kt diff --git a/src/main/java/io/github/homchom/recode/util/regex/DynamicRegex.kt b/mod/src/main/java/io/github/homchom/recode/util/regex/DynamicRegex.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/regex/DynamicRegex.kt rename to mod/src/main/java/io/github/homchom/recode/util/regex/DynamicRegex.kt diff --git a/src/main/java/io/github/homchom/recode/util/regex/RegexBuilderElements.kt b/mod/src/main/java/io/github/homchom/recode/util/regex/RegexBuilderElements.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/regex/RegexBuilderElements.kt rename to mod/src/main/java/io/github/homchom/recode/util/regex/RegexBuilderElements.kt diff --git a/src/main/java/io/github/homchom/recode/util/regex/RegexFunctions.kt b/mod/src/main/java/io/github/homchom/recode/util/regex/RegexFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/regex/RegexFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/util/regex/RegexFunctions.kt diff --git a/src/main/java/io/github/homchom/recode/util/regex/RegexModifiers.kt b/mod/src/main/java/io/github/homchom/recode/util/regex/RegexModifiers.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/regex/RegexModifiers.kt rename to mod/src/main/java/io/github/homchom/recode/util/regex/RegexModifiers.kt diff --git a/src/main/java/io/github/homchom/recode/util/regex/RegexPatternBuilder.kt b/mod/src/main/java/io/github/homchom/recode/util/regex/RegexPatternBuilder.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/regex/RegexPatternBuilder.kt rename to mod/src/main/java/io/github/homchom/recode/util/regex/RegexPatternBuilder.kt diff --git a/src/main/java/io/github/homchom/recode/util/std/CollectionsFunctions.kt b/mod/src/main/java/io/github/homchom/recode/util/std/CollectionsFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/std/CollectionsFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/util/std/CollectionsFunctions.kt diff --git a/src/main/java/io/github/homchom/recode/util/std/HeteroMap.kt b/mod/src/main/java/io/github/homchom/recode/util/std/HeteroMap.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/std/HeteroMap.kt rename to mod/src/main/java/io/github/homchom/recode/util/std/HeteroMap.kt diff --git a/src/main/java/io/github/homchom/recode/util/std/StdlibFunctions.kt b/mod/src/main/java/io/github/homchom/recode/util/std/StdlibFunctions.kt similarity index 100% rename from src/main/java/io/github/homchom/recode/util/std/StdlibFunctions.kt rename to mod/src/main/java/io/github/homchom/recode/util/std/StdlibFunctions.kt diff --git a/src/main/resources/assets/minecraft/font/default.json b/mod/src/main/resources/assets/minecraft/font/default.json similarity index 100% rename from src/main/resources/assets/minecraft/font/default.json rename to mod/src/main/resources/assets/minecraft/font/default.json diff --git a/src/main/resources/assets/recode/lang/en_us.json b/mod/src/main/resources/assets/recode/lang/en_us.json similarity index 100% rename from src/main/resources/assets/recode/lang/en_us.json rename to mod/src/main/resources/assets/recode/lang/en_us.json diff --git a/src/main/resources/assets/recode/textures/font/puaa_8x8.png b/mod/src/main/resources/assets/recode/textures/font/puaa_8x8.png similarity index 100% rename from src/main/resources/assets/recode/textures/font/puaa_8x8.png rename to mod/src/main/resources/assets/recode/textures/font/puaa_8x8.png diff --git a/src/main/resources/assets/recode/textures/gui/recode.png b/mod/src/main/resources/assets/recode/textures/gui/recode.png similarity index 100% rename from src/main/resources/assets/recode/textures/gui/recode.png rename to mod/src/main/resources/assets/recode/textures/gui/recode.png diff --git a/src/main/resources/assets/recode/textures/gui/sprites/icon/df.png b/mod/src/main/resources/assets/recode/textures/gui/sprites/icon/df.png similarity index 100% rename from src/main/resources/assets/recode/textures/gui/sprites/icon/df.png rename to mod/src/main/resources/assets/recode/textures/gui/sprites/icon/df.png diff --git a/src/main/resources/fabric_mod_json_template.txt b/mod/src/main/resources/fabric_mod_json_template.txt similarity index 100% rename from src/main/resources/fabric_mod_json_template.txt rename to mod/src/main/resources/fabric_mod_json_template.txt diff --git a/src/main/resources/high_contrast/assets/recode/textures/gui/sprites/icon/df.png b/mod/src/main/resources/high_contrast/assets/recode/textures/gui/sprites/icon/df.png similarity index 100% rename from src/main/resources/high_contrast/assets/recode/textures/gui/sprites/icon/df.png rename to mod/src/main/resources/high_contrast/assets/recode/textures/gui/sprites/icon/df.png diff --git a/src/main/resources/recode.mixins.json b/mod/src/main/resources/recode.mixins.json similarity index 100% rename from src/main/resources/recode.mixins.json rename to mod/src/main/resources/recode.mixins.json diff --git a/src/main/resources/recodeLegacy.mixins.json b/mod/src/main/resources/recodeLegacy.mixins.json similarity index 100% rename from src/main/resources/recodeLegacy.mixins.json rename to mod/src/main/resources/recodeLegacy.mixins.json diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/font/default.json b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/font/default.json similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/font/default.json rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/font/default.json diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_arrows.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_arrows.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_arrows.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_arrows.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_chess.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_chess.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_chess.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_chess.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_12x12.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_12x12.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_12x12.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_12x12.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_9x12.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_9x12.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_9x12.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page5_9x12.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_12x12.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_12x12.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_12x12.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_12x12.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_9x12.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_9x12.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_9x12.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_page7_9x12.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_planetary.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_planetary.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_planetary.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_planetary.png diff --git a/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_zodiac.png b/mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_zodiac.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_zodiac.png rename to mod/src/main/resources/resourcepacks/better_unicode/assets/minecraft/textures/font/bu_zodiac.png diff --git a/src/main/resources/resourcepacks/better_unicode/pack.mcmeta b/mod/src/main/resources/resourcepacks/better_unicode/pack.mcmeta similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/pack.mcmeta rename to mod/src/main/resources/resourcepacks/better_unicode/pack.mcmeta diff --git a/src/main/resources/resourcepacks/better_unicode/pack.png b/mod/src/main/resources/resourcepacks/better_unicode/pack.png similarity index 100% rename from src/main/resources/resourcepacks/better_unicode/pack.png rename to mod/src/main/resources/resourcepacks/better_unicode/pack.png diff --git a/settings.gradle.kts b/settings.gradle.kts index a89b08417..3d79fdfe3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,9 @@ +val modName: String by settings + +rootProject.name = modName + +include("mod") + pluginManagement { repositories { mavenCentral() From 6b35579650e6897444b33c8f581c8a3b81780a69 Mon Sep 17 00:00:00 2001 From: pomchom Date: Sun, 25 Aug 2024 19:59:35 -0400 Subject: [PATCH 2/2] escape from gradle hell --- build.gradle.kts | 8 - buildSrc/build.gradle.kts | 19 +- .../recode.fabric-conventions.gradle.kts | 8 + .../recode.kotlin-conventions.gradle.kts | 29 ++- gradle/libs.versions.toml | 6 +- mod/build.gradle.kts | 171 ++++++++---------- settings.gradle.kts | 15 +- 7 files changed, 139 insertions(+), 117 deletions(-) delete mode 100644 build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/recode.fabric-conventions.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 5bed3539f..000000000 --- a/build.gradle.kts +++ /dev/null @@ -1,8 +0,0 @@ -plugins { - // removing this causes issues, but we need to remove it to free up the kotlin plugin on the buildscript - //alias(libs.plugins.fabric.loom) apply false -} - -repositories { - mavenCentral() -} \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index ea1cac2df..0fe6f63e6 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -4,8 +4,25 @@ plugins { repositories { mavenCentral() + maven { + name = "Fabric" + url = uri("https://maven.fabricmc.net/") + } } dependencies { - //implementation(libs.kotlin.gradlePlugin) + fun pluginImplementation(plugin: Provider) { + val dep = plugin.get() + implementation(group = dep.pluginId, name = "${dep.pluginId}.gradle.plugin") { + version { + strictly(dep.version.strictVersion) + require(dep.version.requiredVersion) + prefer(dep.version.preferredVersion) + for (version in dep.version.rejectedVersions) reject(version) + } + } + } + + pluginImplementation(libs.plugins.kotlin.jvm) + pluginImplementation(libs.plugins.fabric.loom) } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/recode.fabric-conventions.gradle.kts b/buildSrc/src/main/kotlin/recode.fabric-conventions.gradle.kts new file mode 100644 index 000000000..cca642e96 --- /dev/null +++ b/buildSrc/src/main/kotlin/recode.fabric-conventions.gradle.kts @@ -0,0 +1,8 @@ +plugins { + id("recode.kotlin-conventions") + id("fabric-loom") +} + +java { + withSourcesJar() +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts index 85173404e..6bbb7762d 100644 --- a/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/recode.kotlin-conventions.gradle.kts @@ -1,3 +1,30 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + plugins { - //kotlin("jvm") + kotlin("jvm") +} + +object JvmVersions { + val java get() = JavaVersion.VERSION_17 + val kotlin get() = JvmTarget.JVM_17 +} + +java { + sourceCompatibility = JvmVersions.java + targetCompatibility = JvmVersions.java +} + +tasks.withType().configureEach { + options.release = JvmVersions.java.majorVersion.toInt() + options.encoding = "UTF-8" +} + +tasks.withType().configureEach { + compilerOptions { + jvmTarget = JvmVersions.kotlin + freeCompilerArgs = listOf( + "-Xjvm-default=all" + ) + } } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f07543dd..f208a8449 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version = "0.96.1+ adventure-platform-fabric = { module = "net.kyori:adventure-platform-fabric", version = "5.12.0" } libgui = { module = "io.github.cottonmc:LibGui", version = "9.2.2+1.20.2" } -cloth-config = { module = "me.shedaniel.cloth:cloth-config-fabric", version = "13.0.121" } +clothConfig = { module = "me.shedaniel.cloth:cloth-config-fabric", version = "13.0.121" } # optional; change versions every minecraft update modmenu = { module = "com.terraformersmc:modmenu", version = "9.0.0" } @@ -14,10 +14,8 @@ sodium = { module = "maven.modrinth:sodium", version = "mc1.20.4-0.5.8" } # change versions as needed fabric-loader = { module = "net.fabricmc:fabric-loader", version = "0.15.2" } - -kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version = "2.0.0" } fabric-language-kotlin = { module = "net.fabricmc:fabric-language-kotlin", version = "1.11.0+kotlin.2.0.0" } [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.0.0" } -fabric-loom = { id = "fabric-loom", version = "1.5-SNAPSHOT" } \ No newline at end of file +fabric-loom = { id = "fabric-loom", version = "1.7-SNAPSHOT" } \ No newline at end of file diff --git a/mod/build.gradle.kts b/mod/build.gradle.kts index c12580b12..6859f4feb 100644 --- a/mod/build.gradle.kts +++ b/mod/build.gradle.kts @@ -1,12 +1,5 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { - // unresolved issue: gson resolves incorrectly if this is uncommented and the line after is commented - //id("recode.kotlin-conventions") - kotlin("jvm") version "2.0.0" - - alias(libs.plugins.fabric.loom) + id("recode.fabric-conventions") id("com.modrinth.minotaur") version "2.+" id("com.github.johnrengelman.shadow") version "8.1.1" @@ -28,9 +21,9 @@ val flkVersion: String by project val requiredDependencyMods = dependencyModsOfType("required") val optionalDependencyMods = dependencyModsOfType("optional") -/*base { - archivesName.set(modName) -}*/ +base { + archivesName = modName +} repositories { exclusiveContent { @@ -66,123 +59,103 @@ val shade: Configuration by configurations.creating { } dependencies { + fun includeModImplementation(mod: Provider) { + modImplementation(mod) + include(mod) + } + // minecraft - minecraft("com.mojang:minecraft:$minecraftVersion") + minecraft(libs.minecraft) mappings(loom.officialMojangMappings()) // fabric - modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricVersion") - modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation(libs.fabric.api) + modImplementation(libs.fabric.loader) + modImplementation(libs.fabric.language.kotlin) - // kotlin - modImplementation("net.fabricmc:fabric-language-kotlin:$flkVersion") + // other required mods + includeModImplementation(libs.adventure.platform.fabric) + includeModImplementation(libs.libgui) + includeModImplementation(libs.clothConfig) - // mod dependencies listed in gradle.properties - for (mod in requiredDependencyMods) { - include(modImplementation("${mod.artifact}:${mod.version}")!!) - } - for (mod in optionalDependencyMods) { - modCompileOnly("${mod.artifact}:${mod.version}") - } + // optional mods + modCompileOnly(libs.modmenu) + modCompileOnly(libs.sodium) // Websocket TODO: clean this up shade(implementation("org.java-websocket:Java-WebSocket:1.5.3")!!) include(implementation("javax.websocket:javax.websocket-api:1.1")!!) } -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. If you remove this line, sources will not be generated. - withSourcesJar() -} - -tasks { - withType { - options.encoding = "UTF-8" - } - - withType { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_17) - freeCompilerArgs.set(listOf( - "-Xjvm-default=all", - )) - } - } - - processResources { - // these properties can be used in fabric_mod_json_template.txt in Groovy template syntax - val exposedProperties = arrayOf( - "modName" to modName, - "version" to modVersion, - "minecraftVersion" to minecraftVersion, - "loaderVersion" to loaderVersion, - "fabricVersion" to fabricVersion, - "flkVersion" to flkVersion +tasks.processResources { + // these properties can be used in fabric_mod_json_template.txt in Groovy template syntax + val exposedProperties = arrayOf( + "modName" to modName, + "version" to modVersion, + "minecraftVersion" to minecraftVersion, + "loaderVersion" to loaderVersion, + "fabricVersion" to fabricVersion, + "flkVersion" to flkVersion + ) + + inputs.properties(*exposedProperties) + inputs.properties(project.properties.filterKeys { it.startsWith("required.") }) + + // evaluate fabric_mod_json_template.txt as a Groovy template + filesMatching("fabric_mod_json_template.txt") { + val metadataRegex = Regex("""\+.+$""") + expand( + *exposedProperties, + "metadataRegex" to metadataRegex.toPattern(), + "dependencyMods" to requiredDependencyMods.joinToString(", ") { mod -> + val version = mod.version.replace(metadataRegex, "") + "\"${mod.id}\": \"${mod.versionSpec}$version\"" + } ) - - inputs.properties(*exposedProperties) - inputs.properties(project.properties.filterKeys { it.startsWith("required.") }) - - // evaluate fabric_mod_json_template.txt as a Groovy template - filesMatching("fabric_mod_json_template.txt") { - val metadataRegex = Regex("""\+.+$""") - expand( - *exposedProperties, - "metadataRegex" to metadataRegex.toPattern(), - "dependencyMods" to requiredDependencyMods.joinToString(", ") { mod -> - val version = mod.version.replace(metadataRegex, "") - "\"${mod.id}\": \"${mod.versionSpec}$version\"" - } - ) - } - rename("fabric_mod_json_template.txt", "fabric.mod.json") } + rename("fabric_mod_json_template.txt", "fabric.mod.json") +} - jar { - // disable jar (in favor of shadowJar) - enabled = false - } +tasks.jar { + // disable jar (in favor of shadowJar) + enabled = false +} - shadowJar { - configurations = listOf(shade) - from("LICENSE") +tasks.shadowJar { + configurations = listOf(shade) + from("LICENSE") - // output shaded jar in the correct destination to be used by remapJar - destinationDirectory.set(file("build/devlibs")) - archiveClassifier.set("dev") + // output shaded jar in the correct destination to be used by remapJar + destinationDirectory = file("build/devlibs") + archiveClassifier = "dev" - // relocate - isEnableRelocation = true - relocationPrefix = "$mavenGroup.$modName.shaded" - } + // relocate + isEnableRelocation = true + relocationPrefix = "$mavenGroup.$modName.shaded" +} - remapJar { - // use the shaded jar with remapJar - inputFile.value(shadowJar.get().archiveFile) - } +tasks.remapJar { + // use the shaded jar with remapJar + inputFile.value(tasks.shadowJar.get().archiveFile) } tasks.modrinth.get().dependsOn(tasks.modrinthSyncBody) modrinth { // DO NOT PUT THIS IN RECODE'S GRADLE.PROPERTIES. Your modrinth token should remain private to everyone. - token.set(findProperty("privateModrinthToken")?.toString() ?: "") + token = findProperty("privateModrinthToken")?.toString() ?: "" - projectId.set("recode") - versionNumber.set(modVersionWithMeta) + projectId = "recode" + versionNumber = modVersionWithMeta val match = Regex("""-(?beta|alpha)\.""").find(modVersion) if (match == null) { - versionName.set(modVersion) - versionType.set("release") + versionName = modVersion + versionType = "release" } else { val phase = match.groups["phase"]!!.value - versionName.set(modVersion.replaceRange(match.range, " $phase ")) - versionType.set(phase) + versionName = modVersion.replaceRange(match.range, " $phase ") + versionType = phase } // remove "LATEST" classifiers when uploading to modrinth @@ -199,8 +172,8 @@ modrinth { } // TODO: use something other than readText? - //syncBodyFrom.set(file("README.md").readText()) - //changelog.set(file("CHANGELOG.md").readText()) + syncBodyFrom = file("../README.md").readText() + changelog = file("../CHANGELOG.md").readText() } data class DependencyMod( diff --git a/settings.gradle.kts b/settings.gradle.kts index 3d79fdfe3..1ecba2947 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -7,10 +7,17 @@ include("mod") pluginManagement { repositories { mavenCentral() - maven { - name = "Fabric" - url = uri("https://maven.fabricmc.net/") - } gradlePluginPortal() } +} + +// https://github.com/FabricMC/fabric-loom/issues/1122 and https://github.com/gradle/gradle/issues/1370 +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath("com.google.code.gson:gson:2.10.1") + } } \ No newline at end of file