From 17887868504c3f7b1688ac5a502d73eb8390e76e Mon Sep 17 00:00:00 2001 From: apricityx Date: Wed, 25 Sep 2024 23:00:37 +0800 Subject: [PATCH] Port to 1.21.1,but most function won't work well :( --- LICENSE | 121 +++++++++ README.md | 51 ++++ README_CN.md | 49 ++++ build.gradle | 106 ++++++++ gradle.properties | 16 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 252 ++++++++++++++++++ gradlew.bat | 94 +++++++ java/tech/mctown/cma/CMAEntry.java | 11 + java/tech/mctown/cma/CMAExtension.java | 30 +++ java/tech/mctown/cma/CMASettings.java | 45 ++++ .../cma/commands/DumpEntityCommand.java | 31 +++ .../editableSign/SignBlockEntityMixin.java | 25 ++ .../PlayerCommandMixin.java | 28 ++ .../FlintAndSteelItemMixin.java | 36 +++ .../SignBlockEntityMixin.java | 37 +++ resources/assets/cma/icon.jpeg | Bin 0 -> 17363 bytes resources/assets/cma/icon.png | Bin 0 -> 68581 bytes resources/cma.accesswidener | 3 + resources/cma.mixins.json | 16 ++ resources/fabric.mod.json | 37 +++ settings.gradle | 10 + src/main/java/tech/mctown/cma/CMAEntry.java | 13 + .../java/tech/mctown/cma/CMAExtension.java | 35 +++ .../java/tech/mctown/cma/CMASettings.java | 33 +++ .../java/tech/mctown/cma/CMATranslations.java | 35 +++ .../cma/commands/DumpEntityCommand.java | 32 +++ .../PlayerCommandMixin.java | 28 ++ .../FlintAndSteelItemMixin.java | 44 +++ .../SignBlockEntityMixin.java | 37 +++ src/main/resources/assets/cma/icon.jpeg | Bin 0 -> 17363 bytes src/main/resources/assets/cma/icon.png | Bin 0 -> 68581 bytes src/main/resources/assets/cma/lang/en_us.json | 7 + src/main/resources/cma.accesswidener | 3 + src/main/resources/cma.mixins.json | 15 ++ src/main/resources/fabric.mod.json | 37 +++ 37 files changed, 1324 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README_CN.md create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 java/tech/mctown/cma/CMAEntry.java create mode 100644 java/tech/mctown/cma/CMAExtension.java create mode 100644 java/tech/mctown/cma/CMASettings.java create mode 100644 java/tech/mctown/cma/commands/DumpEntityCommand.java create mode 100644 java/tech/mctown/cma/mixins/editableSign/SignBlockEntityMixin.java create mode 100644 java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java create mode 100644 java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java create mode 100644 java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java create mode 100644 resources/assets/cma/icon.jpeg create mode 100644 resources/assets/cma/icon.png create mode 100644 resources/cma.accesswidener create mode 100644 resources/cma.mixins.json create mode 100644 resources/fabric.mod.json create mode 100644 settings.gradle create mode 100644 src/main/java/tech/mctown/cma/CMAEntry.java create mode 100644 src/main/java/tech/mctown/cma/CMAExtension.java create mode 100644 src/main/java/tech/mctown/cma/CMASettings.java create mode 100644 src/main/java/tech/mctown/cma/CMATranslations.java create mode 100644 src/main/java/tech/mctown/cma/commands/DumpEntityCommand.java create mode 100644 src/main/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java create mode 100644 src/main/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java create mode 100644 src/main/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java create mode 100644 src/main/resources/assets/cma/icon.jpeg create mode 100644 src/main/resources/assets/cma/icon.png create mode 100644 src/main/resources/assets/cma/lang/en_us.json create mode 100644 src/main/resources/cma.accesswidener create mode 100644 src/main/resources/cma.mixins.json create mode 100644 src/main/resources/fabric.mod.json diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1625c17 --- /dev/null +++ b/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..33736e8 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Carpet-MCT-Addition + + + +**English** | [中文](README_CN.md) + +A carpet extension powering [MCTown](https://www.mctown.tech/) server. + +The default configuration will not change any vanilla game behavior. + +## Table of Contents + + + +- [Carpet-MCT-Addition](#carpet-mct-addition) + - [Table of Contents](#table-of-contents) + - [Rules](#rules) + - [runCommandOnSign](#runcommandonsign) + - [editableSign](#editablesign) + - [flintAndSteelActivatesObserver](#flintandsteelactivatesobserver) + + + +## Rules + +### runCommandOnSign + +Execute the command on the sign if it's right-clicked by player who is not sneaking nor holding anything in the main hand. Texts must start with '/'. + +- Type: `boolean` +- Default: `false` +- Suggested options: `false`, `true` +- Categories: `CMA`, `SURVIVAL` + +### editableSign + +Player can edit the sign when it's right-clicked if the player is sneaking and not holding anything in the main hand. + +- Type: `boolean` +- Default: `false` +- Suggested options: `false`, `true` +- Categories: `CMA`, `SURVIVAL` + +### flintAndSteelActivatesObserver + +Observer will be activied when player uses Flint and Steel on it. Sneak to light fire on observers. + +- Type: `boolean` +- Default: `false` +- Suggested options: `false`, `true` +- Categories: `CMA`, `CREATIVE` diff --git a/README_CN.md b/README_CN.md new file mode 100644 index 0000000..ba3063d --- /dev/null +++ b/README_CN.md @@ -0,0 +1,49 @@ +# Carpet-MCT-Addition + +[English](README.md) | **中文** + +这是一个Carpet的附属模组,正在为[MCTown服务器](http://www.mctown.tech/)提供支持。 + +默认的设定不会更改任何游戏特性。 + +## 索引 + + + +- [Carpet-MCT-Addition](#carpet-mct-addition) + - [索引](#%E7%B4%A2%E5%BC%95) + - [规则](#%E8%A7%84%E5%88%99) + - [右键告示牌运行指令 runCommandOnSign](#%E5%8F%B3%E9%94%AE%E5%91%8A%E7%A4%BA%E7%89%8C%E8%BF%90%E8%A1%8C%E6%8C%87%E4%BB%A4-runcommandonsign) + - [右键告示牌编辑文字 editableSign](#%E5%8F%B3%E9%94%AE%E5%91%8A%E7%A4%BA%E7%89%8C%E7%BC%96%E8%BE%91%E6%96%87%E5%AD%97-editablesign) + - [打火石激活观察者 flintAndSteelActivatesObserver](#%E6%89%93%E7%81%AB%E7%9F%B3%E6%BF%80%E6%B4%BB%E8%A7%82%E5%AF%9F%E8%80%85-flintandsteelactivatesobserver) + + + +## 规则 + +### 右键告示牌运行指令 (runCommandOnSign) + +当玩家不潜行并在主手没有物品的情况下右键点击告示牌且告示牌的文字内容以'/'开头时,将会执行告示牌上的指令。 + +- 类型: `boolean` +- 默认值: `false` +- 参考选项: `false`, `true` +- 分类: `CMA`, `SURVIVAL` + +### 右键告示牌编辑文字 (editableSign) + +玩家可以在主手没有物品的情况下通过潜行并右键告示牌来编辑其中的内容。 + +- 类型: `boolean` +- 默认值: `false` +- 参考选项: `false`, `true` +- 分类: `CMA`, `SURVIVAL` + +### 打火石激活观察者 (flintAndSteelActivatesObserver) + +打火石右键观察者的任意方向可以激活该观察者,潜行以在观察者上点火。 + +- 类型: `boolean` +- 默认值: `false` +- 参考选项: `false`, `true` +- 分类: `CMA`, `CREATIVE` diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..ad9166c --- /dev/null +++ b/build.gradle @@ -0,0 +1,106 @@ +plugins { + id 'fabric-loom' version '1.7-SNAPSHOT' + id 'maven-publish' +} + +version = project.mod_version +group = project.maven_group + +base { + archivesName = project.archives_base_name +} + +repositories { + // Add repositories to retrieve artifacts from in here. + maven { + url 'https://masa.dy.fi/maven' + } +// maven { +// url = "https://maven.fabricmc.net/" +// } +// maven { +// url = "https://maven.curseforge.com/" +// } +// maven { +// url = "https://maven.modrinth.com/" +// } +// maven { url 'https://jitpack.io' } +// mavenCentral() +} + +loom { + splitEnvironmentSourceSets() + + mods { + "modid" { + sourceSet sourceSets.main + sourceSet sourceSets.client + } + } +} + +dependencies { + // To change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" +// modImplementation "carpet:fabric-carpet:${project.minecraft_version}-${project.carpet_core_version}" + modImplementation "carpet:fabric-carpet:1.21-${project.carpet_core_version}" + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +// duplicatesStrategy = DuplicatesStrategy.EXCLUDE // 或者使用 DuplicatesStrategy.INCLUDE 来保留重复项 +// from(sourceSets.main.resources.srcDirs) { +// include '**/*.json' +// } + +// // 确保语言文件也被处理 +// filesMatching("assets/cma/lang/en_us.json") { +// expand "version": project.version +// } +} + +tasks.withType(JavaCompile).configureEach { + it.options.release = 21 +} + +java { + // 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() + + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 +} + +jar { + from("LICENSE") { + rename { "${it}_${project.base.archivesName.get()}" } + } +} + +// configure the maven publication +publishing { + publications { + create("mavenJava", MavenPublication) { + artifactId = project.archives_base_name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..edf5c28 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,16 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx6G +# Fabric Properties +# check these on https://fabricmc.net/use or https://modmuss50.me/fabric.html +minecraft_version=1.21.1 +yarn_mappings=1.21.1+build.3 +loader_version=0.16.5 +# check available versions on maven for the given minecraft version you are using +carpet_core_version=1.4.147+v240613 +# Mod Properties +mod_version=0.1.1 +maven_group=tech.mctown.cma +archives_base_name=carpet-mct-addition +# Dependencies +# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric +fabric_version=0.104.0+1.21.1 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..9355b41 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..f5feea6 --- /dev/null +++ b/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# https://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. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/java/tech/mctown/cma/CMAEntry.java b/java/tech/mctown/cma/CMAEntry.java new file mode 100644 index 0000000..11d8a5a --- /dev/null +++ b/java/tech/mctown/cma/CMAEntry.java @@ -0,0 +1,11 @@ +package tech.mctown.cma; + +import carpet.CarpetServer; +import net.fabricmc.api.ModInitializer; + +public class CMAEntry implements ModInitializer { + @Override + public void onInitialize() { + CarpetServer.manageExtension(CMAExtension.INSTANCE); + } +} diff --git a/java/tech/mctown/cma/CMAExtension.java b/java/tech/mctown/cma/CMAExtension.java new file mode 100644 index 0000000..4a58f33 --- /dev/null +++ b/java/tech/mctown/cma/CMAExtension.java @@ -0,0 +1,30 @@ +package tech.mctown.cma; + +import carpet.CarpetExtension; +import carpet.CarpetServer; +import com.mojang.brigadier.CommandDispatcher; +import net.minecraft.server.command.ServerCommandSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import tech.mctown.cma.commands.DumpEntityCommand; + +public class CMAExtension implements CarpetExtension { + public static final CMAExtension INSTANCE = new CMAExtension(); + public static final String MODID = "CMA"; + public static final Logger LOGGER = LoggerFactory.getLogger(MODID); + + @Override + public String version() { + return MODID; + } + + @Override + public void onGameStarted() { + CarpetServer.settingsManager.parseSettingsClass(CMASettings.class); + } + + @Override + public void registerCommands(CommandDispatcher dispatcher) { + DumpEntityCommand.registerCommand(dispatcher); + } +} diff --git a/java/tech/mctown/cma/CMASettings.java b/java/tech/mctown/cma/CMASettings.java new file mode 100644 index 0000000..03ace2e --- /dev/null +++ b/java/tech/mctown/cma/CMASettings.java @@ -0,0 +1,45 @@ +package tech.mctown.cma; + +import carpet.settings.Rule; + +import java.lang.annotation.Target; + +import static carpet.settings.RuleCategory.*; + +public class CMASettings { + static final String CMA = CMAExtension.MODID; + + @Rule( + desc = "Execute the command on the sign if it's right-clicked by player who is not sneaking nor holding " + + "anything in the main hand.", + extra = {"Texts must start with '/'."}, + category = {CMA, SURVIVAL} + ) + public static boolean runCommandOnSign = false; + + @Rule( + desc = "Player can edit the sign when it's right-clicked if the player is sneaking and not holding anything " + + "in the main hand.", + category = {CMA, SURVIVAL} + ) + public static boolean editableSign = false; + + @Rule( + desc = "Observer will be activied when player uses Flint and Steel on it.", + extra = {"Sneak to light fire on observers."}, + category = {CMA, CREATIVE} + ) + public static boolean flintAndSteelActivatesObserver = false; + + @Rule( + desc = "Enable the usage of /dumpentity", + category = {CMA, CREATIVE, COMMAND} + ) + public static String commandDumpEntity = "true"; + + @Rule( + desc = "Op players can spawn bots in different gamemodes.", + category = {CMA, SURVIVAL} + ) + public static boolean fakePlayerGamemode = true; +} diff --git a/java/tech/mctown/cma/commands/DumpEntityCommand.java b/java/tech/mctown/cma/commands/DumpEntityCommand.java new file mode 100644 index 0000000..4d5ca2e --- /dev/null +++ b/java/tech/mctown/cma/commands/DumpEntityCommand.java @@ -0,0 +1,31 @@ +package tech.mctown.cma.commands; + +import carpet.settings.SettingsManager; +import carpet.utils.Messenger; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.entity.Entity; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.text.Text; +import tech.mctown.cma.CMASettings; + +import static net.minecraft.server.command.CommandManager.literal; + +public class DumpEntityCommand { + public static void registerCommand(CommandDispatcher dispatcher) { + dispatcher.register( + literal("dumpentity").requires(src -> SettingsManager.canUseCommand(src, CMASettings.commandDumpEntity)) + .executes(DumpEntityCommand::dumpEntity) + ); + } + + public static int dumpEntity(CommandContext ctx) { + ServerCommandSource src = ctx.getSource(); + ServerWorld world = src.getWorld(); + for (Entity e : world.iterateEntities()) { + Messenger.m(src, Text.of(e.toString())); + } + return 0; + } +} diff --git a/java/tech/mctown/cma/mixins/editableSign/SignBlockEntityMixin.java b/java/tech/mctown/cma/mixins/editableSign/SignBlockEntityMixin.java new file mode 100644 index 0000000..6d5d7ec --- /dev/null +++ b/java/tech/mctown/cma/mixins/editableSign/SignBlockEntityMixin.java @@ -0,0 +1,25 @@ +package tech.mctown.cma.mixins.editableSign; + +import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.item.Items; +import net.minecraft.server.network.ServerPlayerEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import tech.mctown.cma.CMASettings; + +@Mixin(SignBlockEntity.class) +public abstract class SignBlockEntityMixin { + @Shadow + abstract public void setEditable(boolean editable); + + @Inject(method = "onActivate", at = @At("HEAD")) + public void editSign(ServerPlayerEntity player, CallbackInfoReturnable ci) { + if (CMASettings.editableSign && player.getAbilities().allowModifyWorld && player.getMainHandStack().isOf(Items.AIR) && player.isSneaking()) { + this.setEditable(true); + player.openEditSignScreen((SignBlockEntity) (Object) this); + } + } +} diff --git a/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java b/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java new file mode 100644 index 0000000..bb630a3 --- /dev/null +++ b/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java @@ -0,0 +1,28 @@ +package tech.mctown.cma.mixins.fakePlayerGamemode; + +import carpet.commands.PlayerCommand; +import carpet.utils.Messenger; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.server.command.ServerCommandSource; +import tech.mctown.cma.CMASettings; + +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.CallbackInfoReturnable; + +@Mixin(PlayerCommand.class) +public abstract class PlayerCommandMixin { + @Inject(method = "cantSpawn", at = @At("HEAD"), remap = false) + static private void checkGamemode(CommandContext context, CallbackInfoReturnable ci) { + try { + StringArgumentType.getString(context, "gamemode"); + } catch (IllegalArgumentException e) { + return; + } + if (!CMASettings.fakePlayerGamemode) { + ci.setReturnValue(true); + } + } +} diff --git a/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java b/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java new file mode 100644 index 0000000..98363e6 --- /dev/null +++ b/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java @@ -0,0 +1,36 @@ +package tech.mctown.cma.mixins.flintAndSteelActivatesObserver; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ObserverBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.FlintAndSteelItem; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.ActionResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +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.CallbackInfoReturnable; +import tech.mctown.cma.CMASettings; + +@Mixin(FlintAndSteelItem.class) +public abstract class FlintAndSteelItemMixin { + @Inject(method = "useOnBlock", at = @At("HEAD"), cancellable = true) + void activatesObserver(ItemUsageContext context, CallbackInfoReturnable ci) { + if (CMASettings.flintAndSteelActivatesObserver) { + PlayerEntity playerEntity = context.getPlayer(); + if (playerEntity == null) return; + World world = context.getWorld(); + BlockPos blockPos = context.getBlockPos(); + BlockState blockState = world.getBlockState(blockPos); + + if (blockState.isOf(Blocks.OBSERVER) && !playerEntity.isSneaking()) { + ObserverBlock observer = (ObserverBlock) blockState.getBlock(); + observer.scheduleTick(world, blockPos); + ci.setReturnValue(ActionResult.success(world.isClient())); + } + } + } +} diff --git a/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java b/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java new file mode 100644 index 0000000..e418133 --- /dev/null +++ b/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java @@ -0,0 +1,37 @@ +package tech.mctown.cma.mixins.runCommandOnSign; + +import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.item.Items; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import tech.mctown.cma.CMASettings; + +@Mixin(SignBlockEntity.class) +public abstract class SignBlockEntityMixin { + @Shadow + protected abstract Text[] getTexts(boolean filtered); + + @Inject(method = "onActivate", at = @At("HEAD")) + public void runCommandOnActivated(ServerPlayerEntity player, CallbackInfoReturnable ci) { + if (CMASettings.runCommandOnSign) { + Text[] texts = this.getTexts(player.shouldFilterText()); + StringBuilder rawText = new StringBuilder(); + for (Text t : texts) { + rawText.append(t.getString()); + } + String text = rawText.toString(); + if (text.startsWith("/") && player.getMainHandStack().isOf(Items.AIR) && !player.isSneaking()) { + String actualCommand = text.substring(1); + // No cheating! + ServerCommandSource commandSource = player.getCommandSource(); + commandSource.getServer().getCommandManager().execute(commandSource, actualCommand); + } + } + } +} diff --git a/resources/assets/cma/icon.jpeg b/resources/assets/cma/icon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7982a755dba2de421140c484f6145c6914ac2cea GIT binary patch literal 17363 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 VYmJ%C|B&QA+V}r6g?O3!KL91%!-W6< literal 0 HcmV?d00001 diff --git a/resources/assets/cma/icon.png b/resources/assets/cma/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..aaccdd566ae011c13b9d5713d9fb2c5f4c231edb GIT binary patch literal 68581 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 aT6z8V7kG7WGJ+StDaxwI{FHth^uGXu>oMQ} literal 0 HcmV?d00001 diff --git a/resources/cma.accesswidener b/resources/cma.accesswidener new file mode 100644 index 0000000..7da2d2f --- /dev/null +++ b/resources/cma.accesswidener @@ -0,0 +1,3 @@ +accessWidener v1 named + +accessible method net/minecraft/block/ObserverBlock scheduleTick (Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;)V diff --git a/resources/cma.mixins.json b/resources/cma.mixins.json new file mode 100644 index 0000000..f30e5d3 --- /dev/null +++ b/resources/cma.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "package": "tech.mctown.cma.mixins", + "compatibilityLevel": "JAVA_21", + "mixins": [ + "editableSign.SignBlockEntityMixin", + "flintAndSteelActivatesObserver.FlintAndSteelItemMixin", + "runCommandOnSign.SignBlockEntityMixin", + "fakePlayerGamemode.PlayerCommandMixin" + ], + "server": [], + "client": [], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/resources/fabric.mod.json b/resources/fabric.mod.json new file mode 100644 index 0000000..d33b346 --- /dev/null +++ b/resources/fabric.mod.json @@ -0,0 +1,37 @@ +{ + "schemaVersion": 1, + "id": "cma", + "version": "${version}", + "name": "Carpet MCT Addition", + "description": "Random Minecraft features.", + "authors": [ + "xiaoyu2006", + "Apricityx_" + ], + "contact": { + "homepage": "https://www.mctown.tech/", + "sources": "https://github.com/MCTown/carpet-mct-addition" + }, + "license": "MIT", + "icon": "assets/cma/icon.jpeg", + "environment": "*", + "entrypoints": { + "main": [ + "tech.mctown.cma.CMAEntry" + ] + }, + "mixins": [ + "cma.mixins.json" + ], + "accessWidener": "cma.accesswidener", + "depends": { + "minecraft": "1.21.x", + "fabricloader": ">=0.13", + "carpet": "*" + }, + "custom": { + "modmanager": { + "modrinth": "pY40IXqI" + } + } +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..55e39a6 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + gradlePluginPortal() + mavenCentral() + } +} diff --git a/src/main/java/tech/mctown/cma/CMAEntry.java b/src/main/java/tech/mctown/cma/CMAEntry.java new file mode 100644 index 0000000..b74f0ec --- /dev/null +++ b/src/main/java/tech/mctown/cma/CMAEntry.java @@ -0,0 +1,13 @@ +package tech.mctown.cma; + +import carpet.CarpetServer; +import carpet.api.settings.SettingsManager; +import net.fabricmc.api.ModInitializer; +import net.minecraft.util.Language; + +public class CMAEntry implements ModInitializer { + @Override + public void onInitialize() { + CarpetServer.manageExtension(CMAExtension.INSTANCE); + } +} diff --git a/src/main/java/tech/mctown/cma/CMAExtension.java b/src/main/java/tech/mctown/cma/CMAExtension.java new file mode 100644 index 0000000..2ed552c --- /dev/null +++ b/src/main/java/tech/mctown/cma/CMAExtension.java @@ -0,0 +1,35 @@ +package tech.mctown.cma; + +import carpet.CarpetExtension; +import carpet.CarpetServer; +import com.mojang.brigadier.CommandDispatcher; +import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.server.command.CommandManager; +import net.minecraft.server.command.ServerCommandSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import tech.mctown.cma.commands.DumpEntityCommand; + +import java.util.Map; + +public class CMAExtension implements CarpetExtension { + public static final CMAExtension INSTANCE = new CMAExtension(); + public static final String MODID = "CMA"; + public static final Logger LOGGER = LoggerFactory.getLogger(MODID); + + @Override + public void onGameStarted() { + CarpetServer.settingsManager.parseSettingsClass(CMASettings.class); + } + + @Override + public void registerCommands(CommandDispatcher dispatcher, CommandRegistryAccess commandBuildContext) { + DumpEntityCommand.registerCommand(dispatcher); + } + + // 覆写 canHasTranslations 方法,用于加载翻译文件 + @Override + public Map canHasTranslations(String lang) { + return CMATranslations.getTranslationFromResourcePath(lang); + } +} diff --git a/src/main/java/tech/mctown/cma/CMASettings.java b/src/main/java/tech/mctown/cma/CMASettings.java new file mode 100644 index 0000000..c7d1019 --- /dev/null +++ b/src/main/java/tech/mctown/cma/CMASettings.java @@ -0,0 +1,33 @@ +package tech.mctown.cma; + +import carpet.api.settings.Rule; +import carpet.api.settings.CarpetRule; +import static carpet.api.settings.RuleCategory.*; + +public class CMASettings { + static final String CMA = CMAExtension.MODID; + @Rule( +// extra = {"Texts must start with '/'."}, + categories = {CMA, SURVIVAL} + ) + public static boolean runCommandOnSign = false; + + @Rule( +// desc = "Observer will be activied when player uses Flint and Steel on it.", +// extra = {"Sneak to light fire on observers."}, + categories = {CMA, CREATIVE} + ) + public static boolean flintAndSteelActivatesObserver = false; + + @Rule( +// desc = "Enable the usage of /dumpentity", + categories = {CMA, CREATIVE, COMMAND} + ) + public static String commandDumpEntity = "true"; + + @Rule( +// desc = "Op players can spawn bots in different gamemodes.", + categories = {CMA, SURVIVAL} + ) + public static boolean fakePlayerGamemode = true; +} diff --git a/src/main/java/tech/mctown/cma/CMATranslations.java b/src/main/java/tech/mctown/cma/CMATranslations.java new file mode 100644 index 0000000..55350a3 --- /dev/null +++ b/src/main/java/tech/mctown/cma/CMATranslations.java @@ -0,0 +1,35 @@ +package tech.mctown.cma; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.io.IOUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.Map; + +// Code part from carpet extra mod + +public class CMATranslations { + public static Map getTranslationFromResourcePath(String lang) { + InputStream langFile = CMATranslations.class.getClassLoader().getResourceAsStream("assets/cma/lang/%s.json".formatted(lang)); + if (langFile == null) { + langFile = CMATranslations.class.getClassLoader().getResourceAsStream("assets/cma/lang/en_us.json"); + if (langFile == null) { + throw new IllegalStateException("Could not find default translation file"); + } + } + String jsonData; + try { + jsonData = IOUtils.toString(langFile, StandardCharsets.UTF_8); + } catch (IOException e) { + return Collections.emptyMap(); + } + Gson gson = new GsonBuilder().setLenient().create(); // lenient allows for comments + return gson.fromJson(jsonData, new TypeToken>() { + }.getType()); + } +} diff --git a/src/main/java/tech/mctown/cma/commands/DumpEntityCommand.java b/src/main/java/tech/mctown/cma/commands/DumpEntityCommand.java new file mode 100644 index 0000000..2803b56 --- /dev/null +++ b/src/main/java/tech/mctown/cma/commands/DumpEntityCommand.java @@ -0,0 +1,32 @@ +package tech.mctown.cma.commands; + +import carpet.utils.CommandHelper; +import carpet.utils.Messenger; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.entity.Entity; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.text.Text; +import tech.mctown.cma.CMASettings; + +import static net.minecraft.server.command.CommandManager.literal; + +public class DumpEntityCommand { + public static void registerCommand(CommandDispatcher dispatcher) { + dispatcher.register( + literal("dumpentity"). // 指定指令名称 + requires(src -> CommandHelper.canUseCommand(src, CMASettings.commandDumpEntity)) + .executes(DumpEntityCommand::dumpEntity) + ); + } + + public static int dumpEntity(CommandContext ctx) { + ServerCommandSource src = ctx.getSource(); + ServerWorld world = src.getWorld(); + for (Entity e : world.iterateEntities()) { + Messenger.m(src, Text.of(e.toString())); + } + return 0; + } +} diff --git a/src/main/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java b/src/main/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java new file mode 100644 index 0000000..bb630a3 --- /dev/null +++ b/src/main/java/tech/mctown/cma/mixins/fakePlayerGamemode/PlayerCommandMixin.java @@ -0,0 +1,28 @@ +package tech.mctown.cma.mixins.fakePlayerGamemode; + +import carpet.commands.PlayerCommand; +import carpet.utils.Messenger; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.server.command.ServerCommandSource; +import tech.mctown.cma.CMASettings; + +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.CallbackInfoReturnable; + +@Mixin(PlayerCommand.class) +public abstract class PlayerCommandMixin { + @Inject(method = "cantSpawn", at = @At("HEAD"), remap = false) + static private void checkGamemode(CommandContext context, CallbackInfoReturnable ci) { + try { + StringArgumentType.getString(context, "gamemode"); + } catch (IllegalArgumentException e) { + return; + } + if (!CMASettings.fakePlayerGamemode) { + ci.setReturnValue(true); + } + } +} diff --git a/src/main/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java b/src/main/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java new file mode 100644 index 0000000..cb04201 --- /dev/null +++ b/src/main/java/tech/mctown/cma/mixins/flintAndSteelActivatesObserver/FlintAndSteelItemMixin.java @@ -0,0 +1,44 @@ +package tech.mctown.cma.mixins.flintAndSteelActivatesObserver; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ObserverBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.FlintAndSteelItem; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.ActionResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +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.CallbackInfoReturnable; +import tech.mctown.cma.CMASettings; + +import java.lang.reflect.Method; + +@Mixin(FlintAndSteelItem.class) +public abstract class FlintAndSteelItemMixin { + @Inject(method = "useOnBlock", at = @At("HEAD"), cancellable = true) + void activatesObserver(ItemUsageContext context, CallbackInfoReturnable ci) { + if (CMASettings.flintAndSteelActivatesObserver) { + PlayerEntity playerEntity = context.getPlayer(); + if (playerEntity == null) return; + World world = context.getWorld(); + BlockPos blockPos = context.getBlockPos(); + BlockState blockState = world.getBlockState(blockPos); + + if (blockState.isOf(Blocks.OBSERVER) && !playerEntity.isSneaking()) { + ObserverBlock observer = (ObserverBlock) blockState.getBlock(); + try { + Method scheduleTickMethod = ObserverBlock.class.getDeclaredMethod("scheduleTick", World.class, BlockPos.class); + scheduleTickMethod.setAccessible(true); // 设置为可访问 + scheduleTickMethod.invoke(observer, world, blockPos); + } catch (Exception e) { + e.printStackTrace(); // 处理异常,打印堆栈 + } + ci.setReturnValue(ActionResult.success(world.isClient())); + } + } + } +} diff --git a/src/main/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java b/src/main/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java new file mode 100644 index 0000000..a62b10c --- /dev/null +++ b/src/main/java/tech/mctown/cma/mixins/runCommandOnSign/SignBlockEntityMixin.java @@ -0,0 +1,37 @@ +package tech.mctown.cma.mixins.runCommandOnSign; + +import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.item.Items; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import tech.mctown.cma.CMASettings; + +@Mixin(SignBlockEntity.class) +public abstract class SignBlockEntityMixin { +// @Shadow +// protected abstract Text[] getTexts(boolean filtered); +// +// @Inject(method = "onActivate", at = @At("HEAD")) +// public void runCommandOnActivated(ServerPlayerEntity player, CallbackInfoReturnable ci) { +// if (CMASettings.runCommandOnSign) { +// Text[] texts = this.getTexts(player.shouldFilterText()); +// StringBuilder rawText = new StringBuilder(); +// for (Text t : texts) { +// rawText.append(t.getString()); +// } +// String text = rawText.toString(); +// if (text.startsWith("/") && player.getMainHandStack().isOf(Items.AIR) && !player.isSneaking()) { +// String actualCommand = text.substring(1); +// // No cheating! +// ServerCommandSource commandSource = player.getCommandSource(); +// commandSource.getServer().getCommandManager().execute(commandSource, actualCommand); +// } +// } +// } +} diff --git a/src/main/resources/assets/cma/icon.jpeg b/src/main/resources/assets/cma/icon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7982a755dba2de421140c484f6145c6914ac2cea GIT binary patch literal 17363 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 VYmJ%C|B&QA+V}r6g?O3!KL91%!-W6< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/cma/icon.png b/src/main/resources/assets/cma/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..aaccdd566ae011c13b9d5713d9fb2c5f4c231edb GIT binary patch literal 68581 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 aT6z8V7kG7WGJ+StDaxwI{FHth^uGXu>oMQ} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/cma/lang/en_us.json b/src/main/resources/assets/cma/lang/en_us.json new file mode 100644 index 0000000..60aa0f6 --- /dev/null +++ b/src/main/resources/assets/cma/lang/en_us.json @@ -0,0 +1,7 @@ +{ + "carpet.rule.runCommandOnSign.desc": "Execute the command on the sign if it's right-clicked by player who is not sneaking nor holding anything in the main hand.", + "carpet.rule.runCommandOnSign.extra": "Texts must start with '/'.", + "carpet.rule.flintAndSteelActivatesObserver.desc": "Observer will be activated when player uses Flint and Steel on it.", + "carpet.rule.commandDumpEntity.desc": "Enable the usage of /dumpentity command.", + "carpet.rule.fakePlayerGamemode.desc": "Op players can spawn bots in different gamemodes." +} \ No newline at end of file diff --git a/src/main/resources/cma.accesswidener b/src/main/resources/cma.accesswidener new file mode 100644 index 0000000..7da2d2f --- /dev/null +++ b/src/main/resources/cma.accesswidener @@ -0,0 +1,3 @@ +accessWidener v1 named + +accessible method net/minecraft/block/ObserverBlock scheduleTick (Lnet/minecraft/world/WorldAccess;Lnet/minecraft/util/math/BlockPos;)V diff --git a/src/main/resources/cma.mixins.json b/src/main/resources/cma.mixins.json new file mode 100644 index 0000000..a093ae5 --- /dev/null +++ b/src/main/resources/cma.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "tech.mctown.cma.mixins", + "compatibilityLevel": "JAVA_21", + "mixins": [ + "flintAndSteelActivatesObserver.FlintAndSteelItemMixin", + "runCommandOnSign.SignBlockEntityMixin", + "fakePlayerGamemode.PlayerCommandMixin" + ], + "server": [], + "client": [], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..0865a32 --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,37 @@ +{ + "schemaVersion": 1, + "id": "cma", + "version": "${version}", + "name": "Carpet MCT Addition", + "description": "Random Minecraft features.", + "authors": [ + "xiaoyu2006", + "Apricityx_" + ], + "contact": { + "homepage": "https://www.mctown.tech/", + "sources": "https://github.com/MCTown/carpet-mct-addition" + }, + "license": "MIT", + "icon": "assets/cma/icon.jpeg", + "environment": "*", + "entrypoints": { + "main": [ + "tech.mctown.cma.CMAEntry" + ] + }, + "mixins": [ + "cma.mixins.json" + ], + "accessWidener": "cma.accesswidener", + "depends": { + "minecraft": "1.21.x", + "fabricloader": ">=0.14.10", + "carpet": "*" + }, + "custom": { + "modmanager": { + "modrinth": "pY40IXqI" + } + } +}