Each block represents a slate.
Rain
Drop a water bucket in the center to activate.
[Water ] [Water ] [Water ]
[Air ] [Air ] [Air ]
[Distorted] [Distorted] [Distorted]
[Water ] [Water ] [Water ]
| import net.minecraftforge.fml.common.FMLLog; | |
| import net.minecraftforge.fml.relauncher.ReflectionHelper; | |
| import org.apache.logging.log4j.Logger; | |
| import java.lang.reflect.Field; | |
| public class Nope { | |
| /** | |
| * Make forge not spew "dangerous alternative prefix" messages in this block. | |
| */ |
| @file:Suppress("PropertyName") | |
| import net.minecraftforge.gradle.user.UserBaseExtension | |
| import org.gradle.jvm.tasks.Jar | |
| val mod_name: String by extra | |
| val mod_version: String by extra | |
| val mc_version: String by extra | |
| val forge_version: String by extra | |
| val mappings_version: String by extra |
| #!/bin/bash | |
| query_abort() { | |
| printf "==> %s [Y/n] " "$1" | |
| read -n 1 response | |
| case "$response" in | |
| 'Y'|'y'|'') | |
| ;; | |
| *) | |
| printf "\n%s\n" "Aborting." |
Each block represents a slate.
Rain
Drop a water bucket in the center to activate.
[Water ] [Water ] [Water ]
[Air ] [Air ] [Air ]
[Distorted] [Distorted] [Distorted]
[Water ] [Water ] [Water ]
| - Craft a tuning fork. It is used to change the resonance strength and natures of a crystal. | |
| - Hold the tuning fork in your hand to make it pick up the resonance in the environment. Eventually it will start resonating too. | |
| - Find a crystal in the world and stand right next to it with the tuning fork. The crystal and tuning fork will now slowly balance out their resonance and natures. | |
| - After it has balanced out enough, you can right click the crystal to pick it up. Breaking it with a pickaxe will instead drop dusts of the natures the crystal had. These will also come in useful, so it's a good idea to break a few crystals. | |
| - Create a few slates and place them in a 3x3 pattern on the ground. | |
| - Place some dust on the slates so that it forms a correct recipe (see below) | |
| - Click the center slate with your tuning fork to create a seal. This can be placed anywhere on a flat surface, as long as there is enough space for it (most seals are 3x3 in size) | |
| - To make the seal do something, you must supply it with energy. Y |
| # library | |
| # sanitizes paths and interprets them as relative to / (adds / at the beginning, removes it at the end, deduplicates multiple /, removes .. and .) | |
| SED_DIRSANIT='s`(^|$)`/`g;s`/+`/`g;:b;s`/\./`/`;tb;:a;s`(^|/[^/]*?)/\.\./`/`g;ta;s`^(.+)/$`\1`g' | |
| # escapes strings for use in a sed command | |
| SED_ESCAPE='s/[]\/$*.^[]/\\&/g' | |
| die() { # vararg errmsg | |
| (tput bold |
Put the publish.gradle.kts file next to your build.gradle.
Edit the RepoURL and RepoBranch properties. (each time you change these, make sure to delete the build/maven folder!)
Add apply from: 'publish.gradle.kts' (Groovy) or apply { from("publish.gradle.kts") } (Kotlin) to your build.gradle.
Test if everything works by executing the updateLocalRepo task, there should now be a git repository in build/maven.
| import org.jetbrains.kotlin.gradle.tasks.KotlinCompile | |
| import net.minecraftforge.gradle.kotlin.* | |
| val kotlin_version: String by extra | |
| val mappings_version: String by extra | |
| val mc_version: String by extra | |
| val mod_version: String by extra | |
| val forge_version: String by extra | |
| val jei_version: String by extra |
| import java.util.ArrayList; | |
| import java.util.List; | |
| public class StrParse { | |
| public static List<String> qsplit(String s) { | |
| List<String> list = new ArrayList<>(); | |
| int quote = 0; | |
| boolean esc = false; |
| package cuchaz.enigma.gui.util; | |
| import java.awt.Component; | |
| import java.awt.event.MouseEvent; | |
| import javax.swing.*; | |
| import javax.swing.border.Border; | |
| public abstract class AbstractListCellRenderer<E> extends JPanel implements ListCellRenderer<E> { |