From 89321b81800574cfecc49b94ca51292944231b3e Mon Sep 17 00:00:00 2001 From: minglipro Date: Sun, 13 Jul 2025 19:06:05 +0800 Subject: [PATCH] no message --- .gitattributes | 4 - .gitignore | 119 ----------- .idea/.gitignore | 10 + .idea/.name | 1 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/compiler.xml | 17 ++ .idea/gradle.xml | 19 ++ .idea/inspectionProfiles/Project_Default.xml | 24 +++ .idea/jarRepositories.xml | 60 ++++++ .../enchantment_does_not_conflict_1_0_1.xml | 9 + .idea/misc.xml | 10 + .idea/modules.xml | 9 + ...antmentdoesnotconflict-1.21.7-1.0.main.iml | 18 ++ ...antmentdoesnotconflict-1.21.7-1.0.test.iml | 18 ++ .idea/runConfigurations/Minecraft_Client.xml | 12 ++ .idea/runConfigurations/Minecraft_Server.xml | 14 ++ .idea/uiDesigner.xml | 124 +++++++++++ .idea/vcs.xml | 6 + LICENSE | 202 ------------------ build.gradle | 68 ------ gradle.properties | 7 - settings.gradle | 11 - .../minecraft/enchantment/conflict/Mod.java | 13 -- .../conflict/client/ModClient.java | 11 - .../conflict/config/ModConfig.java | 109 ---------- .../enchantment/DamageEnchantment.java | 37 ---- .../conflict/enchantment/Enchantment.java | 25 --- .../enchantment/InfinityEnchantment.java | 37 ---- .../enchantment/PiercingEnchantment.java | 37 ---- .../enchantment/ProtectionEnchantment.java | 42 ---- .../conflict/mixin/EnchantmentMixin.java | 33 --- .../conflict/mixin/PlayerManagerMixin.java | 25 --- .../conflict/network/ConfigPayload.java | 58 ----- .../enchantmentdoesnotconflict.mixins.json | 16 -- src/main/resources/fabric.mod.json | 28 --- 35 files changed, 356 insertions(+), 882 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/enchantment_does_not_conflict_1_0_1.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.main.iml create mode 100644 .idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.test.iml create mode 100644 .idea/runConfigurations/Minecraft_Client.xml create mode 100644 .idea/runConfigurations/Minecraft_Server.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml delete mode 100644 LICENSE delete mode 100644 build.gradle delete mode 100644 gradle.properties delete mode 100644 settings.gradle delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/Mod.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/client/ModClient.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/config/ModConfig.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/DamageEnchantment.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/Enchantment.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/InfinityEnchantment.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/PiercingEnchantment.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/ProtectionEnchantment.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/EnchantmentMixin.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/PlayerManagerMixin.java delete mode 100644 src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/ConfigPayload.java delete mode 100644 src/main/resources/enchantmentdoesnotconflict.mixins.json delete mode 100644 src/main/resources/fabric.mod.json diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 0f4764e..0000000 --- a/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -* text eol=lf -*.bat text eol=crlf -*.jar binary -*.class binary diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d5f737e..0000000 --- a/.gitignore +++ /dev/null @@ -1,119 +0,0 @@ -# User-specific stuff -.idea/ - -*.iml -*.ipr -*.iws - -# IntelliJ -out/ -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -.gradle -build/ - -# Ignore Gradle GUI config -gradle-app.setting - -# Cache of project -.gradletasknamecache - -**/build/ - -# Common working directory -run/ -runs/ - -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7d05e99 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# 依赖于环境的 Maven 主目录路径 +/mavenHomeManager.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..89f3864 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +enchantmentdoesnotconflict-1.21.7-1.0 \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..50fe226 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..cede910 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..eda3aa5 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..6467bd9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/enchantment_does_not_conflict_1_0_1.xml b/.idea/libraries/enchantment_does_not_conflict_1_0_1.xml new file mode 100644 index 0000000..36deb6a --- /dev/null +++ b/.idea/libraries/enchantment_does_not_conflict_1_0_1.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f16dea7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6888375 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.main.iml b/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.main.iml new file mode 100644 index 0000000..0eeab82 --- /dev/null +++ b/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.main.iml @@ -0,0 +1,18 @@ + + + + + + + MIXIN + MCP + FABRIC + + 1 + + + + + + \ No newline at end of file diff --git a/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.test.iml b/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.test.iml new file mode 100644 index 0000000..0eeab82 --- /dev/null +++ b/.idea/modules/enchantmentdoesnotconflict-1.21.7-1.0.test.iml @@ -0,0 +1,18 @@ + + + + + + + MIXIN + MCP + FABRIC + + 1 + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Minecraft_Client.xml b/.idea/runConfigurations/Minecraft_Client.xml new file mode 100644 index 0000000..08b51ac --- /dev/null +++ b/.idea/runConfigurations/Minecraft_Client.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Minecraft_Server.xml b/.idea/runConfigurations/Minecraft_Server.xml new file mode 100644 index 0000000..063da9a --- /dev/null +++ b/.idea/runConfigurations/Minecraft_Server.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7a4a3ea..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 9112094..0000000 --- a/build.gradle +++ /dev/null @@ -1,68 +0,0 @@ -plugins { - id 'fabric-loom' version '1.10.5' - id 'maven-publish' -} - -version = "${project.minecraft_version}-${project.mod_version}" -group = project.maven_group - -base { - archivesName = project.archives_base_name -} - -dependencies { - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.minecraft_version}+${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}+${project.minecraft_version}" -} - -processResources { - inputs.property "version", project.version - inputs.property "minecraft_version", project.minecraft_version - inputs.property "loader_version", project.loader_version - filteringCharset "UTF-8" - - filesMatching("fabric.mod.json") { - expand "version": project.version, - "minecraft_version": project.minecraft_version, - "loader_version": project.loader_version - } -} - -def targetJavaVersion = 21 -tasks.withType(JavaCompile).configureEach { - it.options.encoding = "UTF-8" - if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { - it.options.release.set(targetJavaVersion) - } -} - -java { - def javaVersion = JavaVersion.toVersion(targetJavaVersion) - if (JavaVersion.current() < javaVersion) { - toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) - } - withSourcesJar() -} - -jar { - from("LICENSE") { - rename { "${project.archivesBaseName}_${it}" } - } -} - -publishing { - publications { - create("mavenJava", MavenPublication) { - artifactId = project.archives_base_name - from components.java - } - } - repositories { - maven { - name= "Disk" - url = uri("D:/git/maven-repository-raw") - } - } -} diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 7504133..0000000 --- a/gradle.properties +++ /dev/null @@ -1,7 +0,0 @@ -minecraft_version=1.21.7 -yarn_mappings=build.7 -loader_version=0.16.13 -mod_version=1.0 -maven_group=com.mingliqiye.minecraft.enchantment.conflict -archives_base_name=enchantmentdoesnotconflict -fabric_version=0.128.0 diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index acc644d..0000000 --- a/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -pluginManagement { - repositories { - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' - } - gradlePluginPortal() - } -} - -rootProject.name= "${archives_base_name}-${minecraft_version}-${mod_version}" diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/Mod.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/Mod.java deleted file mode 100644 index 7592211..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/Mod.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict; - -import com.mingliqiye.minecraft.enchantment.conflict.network.ConfigPayload; -import net.fabricmc.api.ModInitializer; - -public class Mod implements ModInitializer { - - public static String MOD_ID = "enchantmentdoesnotconflict"; - @Override - public void onInitialize() { - ConfigPayload.initializeServer(); - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/client/ModClient.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/client/ModClient.java deleted file mode 100644 index 3fd264b..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/client/ModClient.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.client; - -import com.mingliqiye.minecraft.enchantment.conflict.network.ConfigPayload; -import net.fabricmc.api.ClientModInitializer; - -public class ModClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - ConfigPayload.initializeClient(); - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/config/ModConfig.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/config/ModConfig.java deleted file mode 100644 index 4019b0e..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/config/ModConfig.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.config; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.mojang.logging.LogUtils; -import net.fabricmc.loader.api.FabricLoader; -import org.slf4j.Logger; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; - -import static com.mingliqiye.minecraft.enchantment.conflict.Mod.MOD_ID; - -public class ModConfig { - private static final Path CONFIG_PATH = - FabricLoader.getInstance().getConfigDir().resolve(MOD_ID + ".json"); - private static final Gson GSON = - new GsonBuilder().setPrettyPrinting().serializeNulls().create(); - - private static ModConfig instance; - - private boolean allowDamageEnchantment = true; - private boolean allowInfinityEnchantment = true; - private boolean allowPiercingEnchantment = true; - private boolean allowProtectionEnchantment = true; - private static final Logger LOGGER = LogUtils.getLogger(); - - public ModConfig() { - } - - public static ModConfig getInstance() { - return ModConfig.instance; - } - - public static void setInstance(ModConfig instance) { - ModConfig.instance = instance; - } - - public static ModConfig load() { - try { - if (Files.exists(CONFIG_PATH)) { - return GSON.fromJson(Files.newBufferedReader(CONFIG_PATH), - ModConfig.class); - } - } catch (IOException e) { - e.printStackTrace(); - } - ModConfig modConfig = new ModConfig(); - setInstance(modConfig); - save(); - return modConfig; - } - - public static void save() { - try { - Files.writeString(CONFIG_PATH, GSON.toJson(instance)); - } catch (IOException e) { - e.printStackTrace(); - } - } - - static { - setInstance(load()); - } - - public boolean isAllowDamageEnchantment() { - return allowDamageEnchantment; - } - - public void setAllowDamageEnchantment(boolean allowDamageEnchantment) { - this.allowDamageEnchantment = allowDamageEnchantment; - } - - public boolean isAllowInfinityEnchantment() { - return allowInfinityEnchantment; - } - - public void setAllowInfinityEnchantment(boolean allowInfinityEnchantment) { - this.allowInfinityEnchantment = allowInfinityEnchantment; - } - - public boolean isAllowPiercingEnchantment() { - return allowPiercingEnchantment; - } - - public void setAllowPiercingEnchantment(boolean allowPiercingEnchantment) { - this.allowPiercingEnchantment = allowPiercingEnchantment; - } - - - public String toString() { - return this.getClass().getName() + "(" + "allowDamageEnchantment" + - "=" + allowDamageEnchantment + "," + - "allowInfinityEnchantment" + "=" + allowInfinityEnchantment + - "," + "allowPiercingEnchantment" + "=" + - allowPiercingEnchantment + "," + - "allowProtectionEnchantment" + "=" + - allowProtectionEnchantment + ")"; - } - - public boolean isAllowProtectionEnchantment() { - return allowProtectionEnchantment; - } - - public void setAllowProtectionEnchantment(boolean allowProtectionEnchantment) { - this.allowProtectionEnchantment = allowProtectionEnchantment; - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/DamageEnchantment.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/DamageEnchantment.java deleted file mode 100644 index 148888a..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/DamageEnchantment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.enchantment; - -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; - -import java.util.Arrays; -import java.util.List; - -public class DamageEnchantment extends Enchantment { - - private final String id; - - public DamageEnchantment(String id) { - this.id = id; - } - - private final static List enchantmentIds = - Arrays.asList("minecraft:sharpness", "minecraft:smite", "minecraft:bane_of_arthropods", "minecraft:density", - "minecraft:breach"); - - public static DamageEnchantment ofId(String id) { - if (enchantmentIds.contains(id)) { - return new DamageEnchantment(id); - } - return null; - } - - public Boolean canBeCombined(Enchantment enchantment) { - if (enchantment instanceof DamageEnchantment) { - return ModConfig.getInstance().isAllowDamageEnchantment(); - } - return super.canBeCombined(enchantment); - } - - public String getId() { - return id; - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/Enchantment.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/Enchantment.java deleted file mode 100644 index 9669225..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/Enchantment.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.enchantment; - -public abstract class Enchantment { - public Boolean canBeCombined(Enchantment enchantment) { - return null; - } - - abstract String getId(); - - public static Enchantment ofId(String id) { - DamageEnchantment damageEnchantment = DamageEnchantment.ofId(id); - if (damageEnchantment != null) { - return damageEnchantment; - } - InfinityEnchantment infinityEnchantment = InfinityEnchantment.ofId(id); - if (infinityEnchantment != null) { - return infinityEnchantment; - } - PiercingEnchantment piercingEnchantment = PiercingEnchantment.ofId(id); - if (piercingEnchantment != null) { - return piercingEnchantment; - } - return ProtectionEnchantment.ofId(id); - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/InfinityEnchantment.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/InfinityEnchantment.java deleted file mode 100644 index 4e22897..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/InfinityEnchantment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.enchantment; - -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; - -import java.util.Arrays; -import java.util.List; - -public class InfinityEnchantment extends Enchantment { - private final String id; - - private InfinityEnchantment(String id) { - this.id = id; - } - - private static final List enchantmentIds = - Arrays.asList("minecraft:infinity","minecraft:mending"); - - public static InfinityEnchantment ofId(String id) { - if (enchantmentIds.contains(id)) { - return new InfinityEnchantment(id); - } - return null; - } - - @Override - public Boolean canBeCombined(Enchantment enchantment) { - if (enchantment instanceof InfinityEnchantment) { - return ModConfig.getInstance().isAllowInfinityEnchantment(); - } - return super.canBeCombined(enchantment); - } - - @Override - public String getId() { - return id; - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/PiercingEnchantment.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/PiercingEnchantment.java deleted file mode 100644 index 96c93f1..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/PiercingEnchantment.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.enchantment; - -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; - -import java.util.Arrays; -import java.util.List; - -public class PiercingEnchantment extends Enchantment { - private final String id; - - private PiercingEnchantment(String id) { - this.id = id; - } - - private static final List enchantmentIds = - Arrays.asList("minecraft:piercing","minecraft:multishot"); - - public static PiercingEnchantment ofId(String id) { - if (enchantmentIds.contains(id)) { - return new PiercingEnchantment(id); - } - return null; - } - - @Override - public Boolean canBeCombined(Enchantment enchantment) { - if (enchantment instanceof PiercingEnchantment) { - return ModConfig.getInstance().isAllowPiercingEnchantment(); - } - return super.canBeCombined(enchantment); - } - - @Override - public String getId() { - return id; - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/ProtectionEnchantment.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/ProtectionEnchantment.java deleted file mode 100644 index 646cecd..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/enchantment/ProtectionEnchantment.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.enchantment; - -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; - -import java.util.Arrays; -import java.util.List; - -public class ProtectionEnchantment extends Enchantment { - private final String id; - - private ProtectionEnchantment(String id) { - this.id = id; - } - - private static final List enchantmentIds = - Arrays.asList( - "minecraft:protection", - "minecraft:fire_protection", - "minecraft:blast_protection", - "minecraft:projectile_protection" - ); - - public static ProtectionEnchantment ofId(String id) { - if (enchantmentIds.contains(id)) { - return new ProtectionEnchantment(id); - } - return null; - } - - @Override - public Boolean canBeCombined(Enchantment enchantment) { - if (enchantment instanceof ProtectionEnchantment) { - return ModConfig.getInstance().isAllowProtectionEnchantment(); - } - return super.canBeCombined(enchantment); - } - - @Override - public String getId() { - return id; - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/EnchantmentMixin.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/EnchantmentMixin.java deleted file mode 100644 index 9d69cb7..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/EnchantmentMixin.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.mixin; - -import com.mojang.logging.LogUtils; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.registry.entry.RegistryEntry; -import org.slf4j.Logger; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(Enchantment.class) -public abstract class EnchantmentMixin { - @Unique - private static final Logger LOGGER = LogUtils.getLogger(); - - - @Inject(method = "canBeCombined", at = @At("HEAD"), cancellable = true) - private static void canBeCombined( - RegistryEntry first, RegistryEntry second, - CallbackInfoReturnable cir - ) { - com.mingliqiye.minecraft.enchantment.conflict.enchantment.Enchantment firste = - com.mingliqiye.minecraft.enchantment.conflict.enchantment.Enchantment.ofId(first.getIdAsString()); - com.mingliqiye.minecraft.enchantment.conflict.enchantment.Enchantment seconde = - com.mingliqiye.minecraft.enchantment.conflict.enchantment.Enchantment.ofId(second.getIdAsString()); - if (firste == null || seconde == null) { - return; - } - cir.setReturnValue(firste.canBeCombined(seconde)); - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/PlayerManagerMixin.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/PlayerManagerMixin.java deleted file mode 100644 index ba28421..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/mixin/PlayerManagerMixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.mixin; - -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; -import com.mingliqiye.minecraft.enchantment.conflict.network.ConfigPayload; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.ClientConnection; -import net.minecraft.server.PlayerManager; -import net.minecraft.server.network.ConnectedClientData; -import net.minecraft.server.network.ServerPlayerEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(PlayerManager.class) -public abstract class PlayerManagerMixin { - - @Inject(method = "onPlayerConnect", at = @At("RETURN")) - private void onPlayerConnect( - ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, - CallbackInfo ci - ) { - ConfigPayload.sendToPlayer(player); - } -} diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/ConfigPayload.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/ConfigPayload.java deleted file mode 100644 index 857da7b..0000000 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/ConfigPayload.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.mingliqiye.minecraft.enchantment.conflict.network; - -import com.google.gson.Gson; -import com.mingliqiye.minecraft.enchantment.conflict.Mod; -import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; -import com.mojang.logging.LogUtils; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.network.codec.PacketCodec; -import net.minecraft.network.packet.CustomPayload; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.Identifier; -import org.slf4j.Logger; - -import static com.mingliqiye.minecraft.enchantment.conflict.Mod.MOD_ID; - -public record ConfigPayload(ModConfig data) implements CustomPayload { - - private static final Logger LOGGER = LogUtils.getLogger(); - public static final CustomPayload.Id TYPE = - new CustomPayload.Id<>(Identifier.of(Mod.MOD_ID, "config_packet")); - - private static final Gson GSON = new Gson(); - - - public static final PacketCodec CODEC = - PacketCodec.of((payload, buf) -> buf.writeString(GSON.toJson(payload.data())), - buf -> new ConfigPayload(GSON.fromJson(buf.readString(), ModConfig.class))); - - @Override - public Id getId() { - return TYPE; - } - - public static void initializeClient() { - ClientPlayNetworking.registerGlobalReceiver(TYPE, (payload, ctx) -> { - ctx.client().execute(() -> { - ModConfig.setInstance(payload.data()); - LOGGER.info("Load Server {} config {}", MOD_ID, payload.data()); - }); - }); - } - - public static void initializeServer() { - PayloadTypeRegistry.playS2C().register(TYPE, CODEC); - } - - public static void sendToPlayer(ServerPlayerEntity player) { - if (ServerPlayNetworking.canSend(player, TYPE)) { - ServerPlayNetworking.send(player, new ConfigPayload(ModConfig.getInstance())); - LOGGER.info("Send {} config to player({}) ok", Mod.MOD_ID, player.getName().getString()); - } else { - LOGGER.error("Cannot send config to {}: channel not registered", player.getName()); - } - } -} diff --git a/src/main/resources/enchantmentdoesnotconflict.mixins.json b/src/main/resources/enchantmentdoesnotconflict.mixins.json deleted file mode 100644 index 3b3b24a..0000000 --- a/src/main/resources/enchantmentdoesnotconflict.mixins.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "com.mingliqiye.minecraft.enchantment.conflict.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [ - "EnchantmentMixin", - "PlayerManagerMixin" - ], - "injectors": { - "defaultRequire": 1 - }, - "overwrites": { - "requireAnnotations": true - } -} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json deleted file mode 100644 index d23ced1..0000000 --- a/src/main/resources/fabric.mod.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "schemaVersion": 1, - "id": "enchantmentdoesnotconflict", - "version": "${version}", - "name": "enchantmentDoesNotConflict", - "description": "移除一些附魔冲突", - "authors": [], - "contact": {}, - "license": "Apache-2.0", - "icon": "assets/enchantmentdoesnotconflict/icon.png", - "environment": "*", - "entrypoints": { - "client": [ - "com.mingliqiye.minecraft.enchantment.conflict.client.ModClient" - ], - "main": [ - "com.mingliqiye.minecraft.enchantment.conflict.Mod" - ] - }, - "mixins": [ - "enchantmentdoesnotconflict.mixins.json" - ], - "depends": { - "fabricloader": ">=${loader_version}", - "fabric": "*", - "minecraft": "${minecraft_version}" - } -}