Skip to content

Instantly share code, notes, and snippets.

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.
*/
@2xsaiko
2xsaiko / build.gradle.kts
Last active November 21, 2023 09:15
ForgeGradle buildscript w/ Gradle Kotlin DSL
@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
@2xsaiko
2xsaiko / setup-vulkan-wine.sh
Last active November 7, 2018 12:45
Vulkan on Wine setup script
#!/bin/bash
query_abort() {
printf "==> %s [Y/n] " "$1"
read -n 1 response
case "$response" in
'Y'|'y'|'')
;;
*)
printf "\n%s\n" "Aborting."
@2xsaiko
2xsaiko / recipes.md
Last active June 10, 2018 14:16
Crystals - Seal recipes

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
@2xsaiko
2xsaiko / libmbu.sh
Created April 20, 2018 18:24
my backup system
# 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
@2xsaiko
2xsaiko / instructions.md
Last active May 13, 2018 17:01
Gradle Publish to Maven repository hosted on Git

Instructions

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
@2xsaiko
2xsaiko / StrParse.java
Last active August 13, 2018 18:52
string splitter
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> {