From ed627ca2f681a408624ef7bf537cf9d1b94cf0f7 Mon Sep 17 00:00:00 2001 From: MeexReay <127148610+MeexReay@users.noreply.github.com> Date: Fri, 21 Apr 2023 17:01:13 +0300 Subject: [PATCH] Initial commit --- .github/workflows/build.yml | 40 +++ .gitignore | 40 +++ LICENSE | 121 +++++++++ README.md | 9 + build.gradle | 80 ++++++ gradle.properties | 17 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 244 ++++++++++++++++++ gradlew.bat | 92 +++++++ settings.gradle | 10 + .../java/net/fabricmc/example/ExampleMod.java | 21 ++ .../fabricmc/example/mixin/ExampleMixin.java | 16 ++ src/main/resources/assets/modid/icon.png | Bin 0 -> 453 bytes src/main/resources/fabric.mod.json | 38 +++ src/main/resources/modid.mixins.json | 14 + 16 files changed, 748 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.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 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle create mode 100644 src/main/java/net/fabricmc/example/ExampleMod.java create mode 100644 src/main/java/net/fabricmc/example/mixin/ExampleMixin.java create mode 100644 src/main/resources/assets/modid/icon.png create mode 100644 src/main/resources/fabric.mod.json create mode 100644 src/main/resources/modid.mixins.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..e2fa68a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,40 @@ +# Automatically build the project and run any configured tests for every push +# and submitted pull request. This can help catch issues that only occur on +# certain platforms or Java versions, and provides a first line of defence +# against bad commits. + +name: build +on: [pull_request, push] + +jobs: + build: + strategy: + matrix: + # Use these Java versions + java: [ + 17, # Current Java LTS & minimum supported by Minecraft + ] + # and run on both Linux and Windows + os: [ubuntu-22.04, windows-2022] + runs-on: ${{ matrix.os }} + steps: + - name: checkout repository + uses: actions/checkout@v3 + - name: validate gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: setup jdk ${{ matrix.java }} + uses: actions/setup-java@v3 + with: + java-version: ${{ matrix.java }} + distribution: 'microsoft' + - name: make gradle wrapper executable + if: ${{ runner.os != 'Windows' }} + run: chmod +x ./gradlew + - name: build + run: ./gradlew build + - name: capture build artifacts + if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS + uses: actions/upload-artifact@v3 + with: + name: Artifacts + path: build/libs/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c476faf --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# gradle + +.gradle/ +build/ +out/ +classes/ + +# eclipse + +*.launch + +# idea + +.idea/ +*.iml +*.ipr +*.iws + +# vscode + +.settings/ +.vscode/ +bin/ +.classpath +.project + +# macos + +*.DS_Store + +# fabric + +run/ + +# java + +hs_err_*.log +replay_*.log +*.hprof +*.jfr diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0e259d4 --- /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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd96346 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Fabric Example Mod + +## Setup + +For setup instructions please see the [fabric wiki page](https://fabricmc.net/wiki/tutorial:setup) that relates to the IDE that you are using. + +## License + +This template is available under the CC0 license. Feel free to learn from it and incorporate it in your own projects. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..5af2ddd --- /dev/null +++ b/build.gradle @@ -0,0 +1,80 @@ +plugins { + id 'fabric-loom' version '1.1-SNAPSHOT' + id 'maven-publish' +} + +version = project.mod_version +group = project.maven_group + +repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. +} + +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}" + + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + // Uncomment the following line to enable the deprecated Fabric API modules. + // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. + + // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}" +} + +base { + archivesName = project.archives_base_name +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +tasks.withType(JavaCompile).configureEach { + // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. + it.options.release = 17 +} + +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_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +jar { + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}"} + } +} + +// configure the maven publication +publishing { + publications { + mavenJava(MavenPublication) { + 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. + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..710b01f --- /dev/null +++ b/gradle.properties @@ -0,0 +1,17 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx1G +org.gradle.parallel=true + +# Fabric Properties + # check these on https://fabricmc.net/develop + minecraft_version=1.19.4 + yarn_mappings=1.19.4+build.1 + loader_version=0.14.17 + +# Mod Properties + mod_version = 1.0.0 + maven_group = com.example + archives_base_name = fabric-example-mod + +# Dependencies + fabric_version=0.75.3+1.19.4 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..ccebba7710deaf9f98673a68957ea02138b60d0a GIT binary patch literal 61608 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..fc10b60 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..79a61d4 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/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. +# + +############################################################################## +# +# 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/subprojects/plugins/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##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# 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"' + +# 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 + which java >/dev/null 2>&1 || 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 + +# 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=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=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 + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +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..6689b85 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@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 + +@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. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +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/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b02216b --- /dev/null +++ b/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + mavenCentral() + gradlePluginPortal() + } +} diff --git a/src/main/java/net/fabricmc/example/ExampleMod.java b/src/main/java/net/fabricmc/example/ExampleMod.java new file mode 100644 index 0000000..a964189 --- /dev/null +++ b/src/main/java/net/fabricmc/example/ExampleMod.java @@ -0,0 +1,21 @@ +package net.fabricmc.example; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ExampleMod implements ModInitializer { + // This logger is used to write text to the console and the log file. + // It is considered best practice to use your mod id as the logger's name. + // That way, it's clear which mod wrote info, warnings, and errors. + public static final Logger LOGGER = LoggerFactory.getLogger("modid"); + + @Override + public void onInitialize() { + // This code runs as soon as Minecraft is in a mod-load-ready state. + // However, some things (like resources) may still be uninitialized. + // Proceed with mild caution. + + LOGGER.info("Hello Fabric world!"); + } +} diff --git a/src/main/java/net/fabricmc/example/mixin/ExampleMixin.java b/src/main/java/net/fabricmc/example/mixin/ExampleMixin.java new file mode 100644 index 0000000..356cb38 --- /dev/null +++ b/src/main/java/net/fabricmc/example/mixin/ExampleMixin.java @@ -0,0 +1,16 @@ +package net.fabricmc.example.mixin; + +import net.fabricmc.example.ExampleMod; +import net.minecraft.client.gui.screen.TitleScreen; +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(TitleScreen.class) +public class ExampleMixin { + @Inject(at = @At("HEAD"), method = "init()V") + private void init(CallbackInfo info) { + ExampleMod.LOGGER.info("This line is printed by an example mod mixin!"); + } +} diff --git a/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/modid/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..047b91f2347de5cf95f23284476fddbe21ba23fe GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0y~yU}ykgMrH;EhMylkcQ7z8um$*pxH2#>{Qv)d>CO3f z85kI=JY5_^JdR(zyfHV%kcTaSi%Ti|TJ8eTpj}+~BK-x@9*$y@%`bB3L~{I!eX+NC zlHNB-j&%mwkF+BM{`*I?$?=)ih{~Me5!39upp((GtLc_m^NimC=^Eh|csG&)*Qrd==Y&n7UmRi%(N^JM_;TeSC#QK=Zw9+^jOG>IE8SNYJSk~k z5Y{~5u4B_KzVpl#mXe%1nZx7v{xLh$%INe`pm#$_heN5*Wsb9+XN1@{9Ex1z(lBBD zfu+n0IR}_qbms6I2yJTN%V+rDUK=z&u7V-ReL3?h|HUpQ3^T2mq-JhoG}|zP;mL%$ z02u{`Lo>b};n%wGII;gbLmq2&gV6#PbAj{<#d(dv5emOqPjS5xTT#|n#+=r;uYW?G zg5HF1jT-(wi;N%QEGzc2Uws>3-(cqWm+OF@xgGO=#y@{$DjL3dZ1~U27a%9M#WB_~ ze1i4@=WpBrGaNhA7u@UT+|V$WVdeG@FLI@{%+7spEU!B``w&Z{=X?eR1_n=8KbLh* G2~7YM=(B48 literal 0 HcmV?d00001 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..021d9e7 --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,38 @@ +{ + "schemaVersion": 1, + "id": "modid", + "version": "${version}", + + "name": "Example Mod", + "description": "This is an example description! Tell everyone what your mod is about!", + "authors": [ + "Me!" + ], + "contact": { + "homepage": "https://fabricmc.net/", + "sources": "https://github.com/FabricMC/fabric-example-mod" + }, + + "license": "CC0-1.0", + "icon": "assets/modid/icon.png", + + "environment": "*", + "entrypoints": { + "main": [ + "net.fabricmc.example.ExampleMod" + ] + }, + "mixins": [ + "modid.mixins.json" + ], + + "depends": { + "fabricloader": ">=0.14.17", + "fabric-api": "*", + "minecraft": "~1.19.4", + "java": ">=17" + }, + "suggests": { + "another-mod": "*" + } +} diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json new file mode 100644 index 0000000..7c42cb4 --- /dev/null +++ b/src/main/resources/modid.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.fabricmc.example.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + "ExampleMixin" + ], + "injectors": { + "defaultRequire": 1 + } +}