Initial commit
This commit is contained in:
		
						commit
						541c6a9f05
					
				
					 16 changed files with 681 additions and 0 deletions
				
			
		
							
								
								
									
										41
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,41 @@ | ||||||
|  | # 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: [ | ||||||
|  |           1.8,  # Minimum supported by Minecraft | ||||||
|  |           11,   # Current Java LTS | ||||||
|  |           15    # Latest version | ||||||
|  |         ] | ||||||
|  |         # and run on both Linux and Windows | ||||||
|  |         os: [ubuntu-20.04, windows-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |       - name: checkout repository | ||||||
|  |         uses: actions/checkout@v2 | ||||||
|  |       - name: validate gradle wrapper | ||||||
|  |         uses: gradle/wrapper-validation-action@v1 | ||||||
|  |       - name: setup jdk ${{ matrix.java }} | ||||||
|  |         uses: actions/setup-java@v1 | ||||||
|  |         with: | ||||||
|  |           java-version: ${{ matrix.java }} | ||||||
|  |       - 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 == '11' }} # Only upload artifacts built from LTS java on one OS | ||||||
|  |         uses: actions/upload-artifact@v2 | ||||||
|  |         with: | ||||||
|  |           name: Artifacts | ||||||
|  |           path: build/libs/ | ||||||
							
								
								
									
										33
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | # gradle | ||||||
|  | 
 | ||||||
|  | .gradle/ | ||||||
|  | build/ | ||||||
|  | out/ | ||||||
|  | classes/ | ||||||
|  | 
 | ||||||
|  | # eclipse | ||||||
|  | 
 | ||||||
|  | *.launch | ||||||
|  | 
 | ||||||
|  | # idea | ||||||
|  | 
 | ||||||
|  | .idea/ | ||||||
|  | *.iml | ||||||
|  | *.ipr | ||||||
|  | *.iws | ||||||
|  | 
 | ||||||
|  | # vscode | ||||||
|  | 
 | ||||||
|  | .settings/ | ||||||
|  | .vscode/ | ||||||
|  | bin/ | ||||||
|  | .classpath | ||||||
|  | .project | ||||||
|  | 
 | ||||||
|  | # macos | ||||||
|  | 
 | ||||||
|  | *.DS_Store | ||||||
|  | 
 | ||||||
|  | # fabric | ||||||
|  | 
 | ||||||
|  | run/ | ||||||
							
								
								
									
										121
									
								
								LICENSE
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								LICENSE
									
										
									
									
									
										Normal file
									
								
							|  | @ -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. | ||||||
							
								
								
									
										9
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -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. | ||||||
							
								
								
									
										92
									
								
								build.gradle
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								build.gradle
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,92 @@ | ||||||
|  | plugins { | ||||||
|  | 	id 'fabric-loom' version '0.5-SNAPSHOT' | ||||||
|  | 	id 'maven-publish' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | sourceCompatibility = JavaVersion.VERSION_1_8 | ||||||
|  | targetCompatibility = JavaVersion.VERSION_1_8 | ||||||
|  | 
 | ||||||
|  | archivesBaseName = project.archives_base_name | ||||||
|  | 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}" | ||||||
|  | 
 | ||||||
|  | 	// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. | ||||||
|  | 	// You may need to force-disable transitiveness on them. | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | processResources { | ||||||
|  | 	inputs.property "version", project.version | ||||||
|  | 
 | ||||||
|  | 	filesMatching("fabric.mod.json") { | ||||||
|  | 		expand "version": project.version | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | tasks.withType(JavaCompile).configureEach { | ||||||
|  | 	// ensure that the encoding is set to UTF-8, no matter what the system default is | ||||||
|  | 	// this fixes some edge cases with special characters not displaying correctly | ||||||
|  | 	// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html | ||||||
|  | 	// If Javadoc is generated, this must be specified in that task too. | ||||||
|  | 	it.options.encoding = "UTF-8" | ||||||
|  | 
 | ||||||
|  | 	// The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too | ||||||
|  | 	// JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used. | ||||||
|  | 	// We'll use that if it's available, but otherwise we'll use the older option. | ||||||
|  | 	def targetVersion = 8 | ||||||
|  | 	if (JavaVersion.current().isJava9Compatible()) { | ||||||
|  | 		 it.options.release = targetVersion | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 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() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | jar { | ||||||
|  | 	from("LICENSE") { | ||||||
|  | 		rename { "${it}_${project.archivesBaseName}"} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // configure the maven publication | ||||||
|  | publishing { | ||||||
|  | 	publications { | ||||||
|  | 		mavenJava(MavenPublication) { | ||||||
|  | 			// add all the jars that should be included when publishing to maven | ||||||
|  | 			artifact(remapJar) { | ||||||
|  | 				builtBy remapJar | ||||||
|  | 			} | ||||||
|  | 			artifact(sourcesJar) { | ||||||
|  | 				builtBy remapSourcesJar | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |      | ||||||
|  |     // 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. | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										17
									
								
								gradle.properties
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								gradle.properties
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | # Done to increase the memory available to gradle. | ||||||
|  | org.gradle.jvmargs=-Xmx1G | ||||||
|  | 
 | ||||||
|  | # Fabric Properties | ||||||
|  | 	# check these on https://fabricmc.net/use | ||||||
|  | 	minecraft_version=1.16.5 | ||||||
|  | 	yarn_mappings=1.16.5+build.1 | ||||||
|  | 	loader_version=0.11.0 | ||||||
|  | 
 | ||||||
|  | # Mod Properties | ||||||
|  | 	mod_version = 1.0.0 | ||||||
|  | 	maven_group = com.example | ||||||
|  | 	archives_base_name = fabric-example-mod | ||||||
|  | 
 | ||||||
|  | # Dependencies | ||||||
|  | 	# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api | ||||||
|  | 	fabric_version=0.29.3+1.16 | ||||||
							
								
								
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								gradle/wrapper/gradle-wrapper.properties
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								gradle/wrapper/gradle-wrapper.properties
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | distributionBase=GRADLE_USER_HOME | ||||||
|  | distributionPath=wrapper/dists | ||||||
|  | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip | ||||||
|  | zipStoreBase=GRADLE_USER_HOME | ||||||
|  | zipStorePath=wrapper/dists | ||||||
							
								
								
									
										185
									
								
								gradlew
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										185
									
								
								gradlew
									
										
									
									
										vendored
									
									
										Executable file
									
								
							|  | @ -0,0 +1,185 @@ | ||||||
|  | #!/usr/bin/env sh | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Copyright 2015 the original author or 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 UN*X | ||||||
|  | ## | ||||||
|  | ############################################################################## | ||||||
|  | 
 | ||||||
|  | # Attempt to set APP_HOME | ||||||
|  | # Resolve links: $0 may be a link | ||||||
|  | PRG="$0" | ||||||
|  | # Need this for relative symlinks. | ||||||
|  | while [ -h "$PRG" ] ; do | ||||||
|  |     ls=`ls -ld "$PRG"` | ||||||
|  |     link=`expr "$ls" : '.*-> \(.*\)$'` | ||||||
|  |     if expr "$link" : '/.*' > /dev/null; then | ||||||
|  |         PRG="$link" | ||||||
|  |     else | ||||||
|  |         PRG=`dirname "$PRG"`"/$link" | ||||||
|  |     fi | ||||||
|  | done | ||||||
|  | SAVED="`pwd`" | ||||||
|  | cd "`dirname \"$PRG\"`/" >/dev/null | ||||||
|  | APP_HOME="`pwd -P`" | ||||||
|  | cd "$SAVED" >/dev/null | ||||||
|  | 
 | ||||||
|  | APP_NAME="Gradle" | ||||||
|  | APP_BASE_NAME=`basename "$0"` | ||||||
|  | 
 | ||||||
|  | # 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 "$*" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | die () { | ||||||
|  |     echo | ||||||
|  |     echo "$*" | ||||||
|  |     echo | ||||||
|  |     exit 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # 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 | ||||||
|  |     ;; | ||||||
|  |   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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then | ||||||
|  |     MAX_FD_LIMIT=`ulimit -H -n` | ||||||
|  |     if [ $? -eq 0 ] ; then | ||||||
|  |         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | ||||||
|  |             MAX_FD="$MAX_FD_LIMIT" | ||||||
|  |         fi | ||||||
|  |         ulimit -n $MAX_FD | ||||||
|  |         if [ $? -ne 0 ] ; then | ||||||
|  |             warn "Could not set maximum file descriptor limit: $MAX_FD" | ||||||
|  |         fi | ||||||
|  |     else | ||||||
|  |         warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | ||||||
|  |     fi | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # For Darwin, add options to specify how the application appears in the dock | ||||||
|  | if $darwin; then | ||||||
|  |     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # For Cygwin or MSYS, switch paths to Windows format before running java | ||||||
|  | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then | ||||||
|  |     APP_HOME=`cygpath --path --mixed "$APP_HOME"` | ||||||
|  |     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | ||||||
|  | 
 | ||||||
|  |     JAVACMD=`cygpath --unix "$JAVACMD"` | ||||||
|  | 
 | ||||||
|  |     # We build the pattern for arguments to be converted via cygpath | ||||||
|  |     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | ||||||
|  |     SEP="" | ||||||
|  |     for dir in $ROOTDIRSRAW ; do | ||||||
|  |         ROOTDIRS="$ROOTDIRS$SEP$dir" | ||||||
|  |         SEP="|" | ||||||
|  |     done | ||||||
|  |     OURCYGPATTERN="(^($ROOTDIRS))" | ||||||
|  |     # Add a user-defined pattern to the cygpath arguments | ||||||
|  |     if [ "$GRADLE_CYGPATTERN" != "" ] ; then | ||||||
|  |         OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | ||||||
|  |     fi | ||||||
|  |     # Now convert the arguments - kludge to limit ourselves to /bin/sh | ||||||
|  |     i=0 | ||||||
|  |     for arg in "$@" ; do | ||||||
|  |         CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | ||||||
|  |         CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option | ||||||
|  | 
 | ||||||
|  |         if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition | ||||||
|  |             eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | ||||||
|  |         else | ||||||
|  |             eval `echo args$i`="\"$arg\"" | ||||||
|  |         fi | ||||||
|  |         i=`expr $i + 1` | ||||||
|  |     done | ||||||
|  |     case $i in | ||||||
|  |         0) set -- ;; | ||||||
|  |         1) set -- "$args0" ;; | ||||||
|  |         2) set -- "$args0" "$args1" ;; | ||||||
|  |         3) set -- "$args0" "$args1" "$args2" ;; | ||||||
|  |         4) set -- "$args0" "$args1" "$args2" "$args3" ;; | ||||||
|  |         5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | ||||||
|  |         6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | ||||||
|  |         7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | ||||||
|  |         8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | ||||||
|  |         9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | ||||||
|  |     esac | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | # Escape application args | ||||||
|  | save () { | ||||||
|  |     for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done | ||||||
|  |     echo " " | ||||||
|  | } | ||||||
|  | APP_ARGS=`save "$@"` | ||||||
|  | 
 | ||||||
|  | # Collect all arguments for the java command, following the shell quoting and substitution rules | ||||||
|  | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" | ||||||
|  | 
 | ||||||
|  | exec "$JAVACMD" "$@" | ||||||
							
								
								
									
										89
									
								
								gradlew.bat
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								gradlew.bat
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,89 @@ | ||||||
|  | @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=. | ||||||
|  | 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%" == "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%"=="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! | ||||||
|  | if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | ||||||
|  | exit /b 1 | ||||||
|  | 
 | ||||||
|  | :mainEnd | ||||||
|  | if "%OS%"=="Windows_NT" endlocal | ||||||
|  | 
 | ||||||
|  | :omega | ||||||
							
								
								
									
										9
									
								
								settings.gradle
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								settings.gradle
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | pluginManagement { | ||||||
|  |     repositories { | ||||||
|  |         maven { | ||||||
|  |             name = 'Fabric' | ||||||
|  |             url = 'https://maven.fabricmc.net/' | ||||||
|  |         } | ||||||
|  |         gradlePluginPortal() | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/main/java/net/fabricmc/example/ExampleMod.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main/java/net/fabricmc/example/ExampleMod.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | package net.fabricmc.example; | ||||||
|  | 
 | ||||||
|  | import net.fabricmc.api.ModInitializer; | ||||||
|  | 
 | ||||||
|  | public class ExampleMod implements ModInitializer { | ||||||
|  | 	@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. | ||||||
|  | 
 | ||||||
|  | 		System.out.println("Hello Fabric world!"); | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								src/main/java/net/fabricmc/example/mixin/ExampleMixin.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/main/java/net/fabricmc/example/mixin/ExampleMixin.java
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | package net.fabricmc.example.mixin; | ||||||
|  | 
 | ||||||
|  | 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) { | ||||||
|  | 		System.out.println("This line is printed by an example mod mixin!"); | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								src/main/resources/assets/modid/icon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/main/resources/assets/modid/icon.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 453 B | 
							
								
								
									
										37
									
								
								src/main/resources/fabric.mod.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/main/resources/fabric.mod.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | ||||||
|  | { | ||||||
|  |   "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.7.4", | ||||||
|  |     "fabric": "*", | ||||||
|  |     "minecraft": "1.16.x" | ||||||
|  |   }, | ||||||
|  |   "suggests": { | ||||||
|  |     "another-mod": "*" | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/main/resources/modid.mixins.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main/resources/modid.mixins.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | { | ||||||
|  |   "required": true, | ||||||
|  |   "minVersion": "0.8", | ||||||
|  |   "package": "net.fabricmc.example.mixin", | ||||||
|  |   "compatibilityLevel": "JAVA_8", | ||||||
|  |   "mixins": [ | ||||||
|  |   ], | ||||||
|  |   "client": [ | ||||||
|  |     "ExampleMixin" | ||||||
|  |   ], | ||||||
|  |   "injectors": { | ||||||
|  |     "defaultRequire": 1 | ||||||
|  |   } | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue