Compare commits
2 commits
Author | SHA1 | Date | |
---|---|---|---|
b4997831cc | |||
53572b6e84 |
67 changed files with 508 additions and 233 deletions
38
.forgejo/workflows/build.yaml
Normal file
38
.forgejo/workflows/build.yaml
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: docker
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: make gradle wrapper executable
|
||||||
|
run: chmod +x ./gradlew
|
||||||
|
|
||||||
|
- name: set up jdk
|
||||||
|
run: |
|
||||||
|
INSTALL_DIR="/opt/java"
|
||||||
|
mkdir -p "$INSTALL_DIR"
|
||||||
|
|
||||||
|
JDK8_URL="https://cdn.azul.com/zulu/bin/zulu8.84.0.15-ca-jdk8.0.442-linux_x64.tar.gz"
|
||||||
|
JRE17_URL="https://cdn.azul.com/zulu/bin/zulu17.56.15-ca-jre17.0.14-linux_x64.tar.gz"
|
||||||
|
|
||||||
|
echo "Downloading JDK8 from $JDK8_URL"
|
||||||
|
curl -L "$JDK8_URL" | tar -xz -C "$INSTALL_DIR"
|
||||||
|
|
||||||
|
echo "Downloading JRE17 from $JRE17_URL"
|
||||||
|
curl -L "$JRE17_URL" | tar -xz -C "$INSTALL_DIR"
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
run: JDK8=/opt/java/zulu8.84.0.15-ca-jdk8.0.442-linux_x64 JAVA_HOME=/opt/java/zulu17.56.15-ca-jre17.0.14-linux_x64 ./gradlew build
|
||||||
|
|
||||||
|
- name: capture build artifacts
|
||||||
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: Artifacts
|
||||||
|
path: 'build/libs'
|
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
gradlew* linguist-vendored
|
||||||
|
gradle/wrapper/* linguist-vendored
|
||||||
|
*.bat text eol=crlf
|
||||||
|
|
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
|
@ -1,22 +0,0 @@
|
||||||
name: Run Gradle Build
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
gradle:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout source
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-java@v3
|
|
||||||
name: Setup Java
|
|
||||||
with:
|
|
||||||
distribution: temurin
|
|
||||||
java-version: 17
|
|
||||||
- name: Setup Gradle
|
|
||||||
uses: gradle/gradle-build-action@v2
|
|
||||||
- name: Execute Gradle build
|
|
||||||
run: ./gradlew build
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
name: Upload built mod JAR
|
|
||||||
with:
|
|
||||||
name: latest-autobuild
|
|
||||||
path: build/libs/*.jar
|
|
10
.github/workflows/gradle-wrapper-validation.yml
vendored
10
.github/workflows/gradle-wrapper-validation.yml
vendored
|
@ -1,10 +0,0 @@
|
||||||
name: "Validate Gradle Wrapper"
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
validation:
|
|
||||||
name: "Validation"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
|
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -1,6 +1,10 @@
|
||||||
.idea/
|
|
||||||
.vscode/
|
|
||||||
run/
|
run/
|
||||||
build/
|
build/
|
||||||
.gradle/
|
.gradle/
|
||||||
|
.envrc
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.vscode
|
||||||
|
bin
|
||||||
|
|
1
TODO.md
1
TODO.md
|
@ -1 +0,0 @@
|
||||||
- Distinguishing Escape
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import org.apache.commons.lang3.SystemUtils
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
idea
|
idea
|
||||||
java
|
java
|
||||||
|
@ -8,11 +10,12 @@ plugins {
|
||||||
|
|
||||||
//Constants:
|
//Constants:
|
||||||
|
|
||||||
val baseGroup = "com.github.stachelbeere1248.zombiesutils"
|
val baseGroup: String by project
|
||||||
val mcVersion: String by project
|
val mcVersion: String by project
|
||||||
val version: String by project
|
val version: String by project
|
||||||
val mixinGroup = "$baseGroup.mixin"
|
val mixinGroup = "$baseGroup.mixin"
|
||||||
val modid: String by project
|
val modid: String by project
|
||||||
|
val transformerFile = file("src/main/resources/accesstransformer.cfg")
|
||||||
|
|
||||||
// Toolchains:
|
// Toolchains:
|
||||||
java {
|
java {
|
||||||
|
@ -26,14 +29,26 @@ loom {
|
||||||
"client" {
|
"client" {
|
||||||
// If you don't want mixins, remove these lines
|
// If you don't want mixins, remove these lines
|
||||||
property("mixin.debug", "true")
|
property("mixin.debug", "true")
|
||||||
property("asmhelper.verbose", "true")
|
|
||||||
arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
|
arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
runConfigs {
|
||||||
|
"client" {
|
||||||
|
if (SystemUtils.IS_OS_MAC_OSX) {
|
||||||
|
// This argument causes a crash on macOS
|
||||||
|
vmArgs.remove("-XstartOnFirstThread")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
remove(getByName("server"))
|
||||||
|
}
|
||||||
forge {
|
forge {
|
||||||
pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter())
|
pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter())
|
||||||
// If you don't want mixins, remove this lines
|
// If you don't want mixins, remove this lines
|
||||||
mixinConfig("mixins.$modid.json")
|
mixinConfig("mixins.$modid.json")
|
||||||
|
if (transformerFile.exists()) {
|
||||||
|
println("Installing access transformer")
|
||||||
|
accessTransformer(transformerFile)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// If you don't want mixins, remove these lines
|
// If you don't want mixins, remove these lines
|
||||||
mixin {
|
mixin {
|
||||||
|
@ -50,8 +65,6 @@ sourceSets.main {
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven("https://repo.spongepowered.org/maven/")
|
maven("https://repo.spongepowered.org/maven/")
|
||||||
// If you don't want to log in with your real minecraft account, remove this line
|
|
||||||
maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val shadowImpl: Configuration by configurations.creating {
|
val shadowImpl: Configuration by configurations.creating {
|
||||||
|
@ -68,10 +81,6 @@ dependencies {
|
||||||
isTransitive = false
|
isTransitive = false
|
||||||
}
|
}
|
||||||
annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT")
|
annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT")
|
||||||
|
|
||||||
// If you don't want to log in with your real minecraft account, remove this line
|
|
||||||
runtimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.2")
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tasks:
|
// Tasks:
|
||||||
|
@ -80,7 +89,7 @@ tasks.withType(JavaCompile::class) {
|
||||||
options.encoding = "UTF-8"
|
options.encoding = "UTF-8"
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(Jar::class) {
|
tasks.withType(org.gradle.jvm.tasks.Jar::class) {
|
||||||
archiveBaseName.set(modid)
|
archiveBaseName.set(modid)
|
||||||
manifest.attributes.run {
|
manifest.attributes.run {
|
||||||
this["FMLCorePluginContainsFMLMod"] = "true"
|
this["FMLCorePluginContainsFMLMod"] = "true"
|
||||||
|
@ -89,6 +98,8 @@ tasks.withType(Jar::class) {
|
||||||
// If you don't want mixins, remove these lines
|
// If you don't want mixins, remove these lines
|
||||||
this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker"
|
this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker"
|
||||||
this["MixinConfigs"] = "mixins.$modid.json"
|
this["MixinConfigs"] = "mixins.$modid.json"
|
||||||
|
if (transformerFile.exists())
|
||||||
|
this["FMLAT"] = "${modid}_at.cfg"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,13 +107,13 @@ tasks.processResources {
|
||||||
inputs.property("version", project.version)
|
inputs.property("version", project.version)
|
||||||
inputs.property("mcversion", mcVersion)
|
inputs.property("mcversion", mcVersion)
|
||||||
inputs.property("modid", modid)
|
inputs.property("modid", modid)
|
||||||
inputs.property("mixinGroup", mixinGroup)
|
inputs.property("basePackage", baseGroup)
|
||||||
|
|
||||||
filesMatching(listOf("mcmod.info", "mixins.$modid.json")) {
|
filesMatching(listOf("mcmod.info", "mixins.$modid.json")) {
|
||||||
expand(inputs.properties)
|
expand(inputs.properties)
|
||||||
}
|
}
|
||||||
|
|
||||||
rename("(.+_at.cfg)", "META-INF/$1")
|
rename("accesstransformer.cfg", "META-INF/${modid}_at.cfg")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,16 +125,16 @@ val remapJar by tasks.named<net.fabricmc.loom.task.RemapJarTask>("remapJar") {
|
||||||
|
|
||||||
tasks.jar {
|
tasks.jar {
|
||||||
archiveClassifier.set("without-deps")
|
archiveClassifier.set("without-deps")
|
||||||
destinationDirectory.set(layout.buildDirectory.dir("badjars"))
|
destinationDirectory.set(layout.buildDirectory.dir("intermediates"))
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.shadowJar {
|
tasks.shadowJar {
|
||||||
destinationDirectory.set(layout.buildDirectory.dir("badjars"))
|
destinationDirectory.set(layout.buildDirectory.dir("intermediates"))
|
||||||
archiveClassifier.set("all-dev")
|
archiveClassifier.set("non-obfuscated-with-deps")
|
||||||
configurations = listOf(shadowImpl)
|
configurations = listOf(shadowImpl)
|
||||||
doLast {
|
doLast {
|
||||||
configurations.forEach {
|
configurations.forEach {
|
||||||
println("Copying jars into mod: ${it.files}")
|
println("Copying dependencies into mod: ${it.files}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
loom.platform=forge
|
loom.platform=forge
|
||||||
org.gradle.jvmargs=-Xmx2g
|
org.gradle.jvmargs=-Xmx2g
|
||||||
baseGroup=com.github.stachelbeere1248.zombiesutils
|
baseGroup = xyz.stachel.zombiesutils
|
||||||
mcVersion=1.8.9
|
mcVersion = 1.8.9
|
||||||
modid=zombiesutils
|
modid = zombiesutils
|
||||||
version=1.3.7
|
version = 1.4.0
|
||||||
|
org.gradle.java.installations.fromEnv=JDK8,JRE17
|
||||||
|
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
19
gradlew
vendored
19
gradlew
vendored
|
@ -55,7 +55,7 @@
|
||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (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
|
# 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.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
@ -83,7 +83,8 @@ done
|
||||||
# This is normally unused
|
# This is normally unused
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
APP_BASE_NAME=${0##*/}
|
APP_BASE_NAME=${0##*/}
|
||||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
|
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD=maximum
|
MAX_FD=maximum
|
||||||
|
@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
case $MAX_FD in #(
|
case $MAX_FD in #(
|
||||||
max*)
|
max*)
|
||||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||||
# shellcheck disable=SC3045
|
# shellcheck disable=SC2039,SC3045
|
||||||
MAX_FD=$( ulimit -H -n ) ||
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
warn "Could not query maximum file descriptor limit"
|
warn "Could not query maximum file descriptor limit"
|
||||||
esac
|
esac
|
||||||
|
@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
'' | soft) :;; #(
|
'' | soft) :;; #(
|
||||||
*)
|
*)
|
||||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||||
# shellcheck disable=SC3045
|
# shellcheck disable=SC2039,SC3045
|
||||||
ulimit -n "$MAX_FD" ||
|
ulimit -n "$MAX_FD" ||
|
||||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
esac
|
esac
|
||||||
|
@ -201,11 +202,11 @@ fi
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
# 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"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Collect all arguments for the java command;
|
# Collect all arguments for the java command:
|
||||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
# shell script including quotes and variable substitutions, so put them in
|
# and any embedded shellness will be escaped.
|
||||||
# double quotes to make sure that they get re-expanded; and
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
# * put everything else in single quotes, so that it's not re-expanded.
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
|
20
gradlew.bat
vendored
20
gradlew.bat
vendored
|
@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
echo.
|
echo. 1>&2
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation.
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Configuration status="WARN">
|
<Configuration status="WARN">
|
||||||
<!-- Filter out Hypixel scoreboard and sound errors -->
|
<!-- Filter out Hypixel scoreboard and sound errors -->
|
||||||
<RegexFilter regex="Error executing task.*|Unable to play unknown soundEvent.*" onMatch="DENY"
|
<RegexFilter regex="Error executing task.*|Unable to play unknown soundEvent.*" onMatch="DENY" onMismatch="NEUTRAL"/>
|
||||||
onMismatch="NEUTRAL"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
|
@ -7,7 +7,7 @@ pluginManagement {
|
||||||
maven("https://maven.fabricmc.net")
|
maven("https://maven.fabricmc.net")
|
||||||
maven("https://maven.minecraftforge.net/")
|
maven("https://maven.minecraftforge.net/")
|
||||||
maven("https://repo.spongepowered.org/maven/")
|
maven("https://repo.spongepowered.org/maven/")
|
||||||
maven("https://repo.sk1er.club/repository/maven-releases/")
|
maven("https://repo.essential.gg/repository/maven-releases/")
|
||||||
}
|
}
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
eachPlugin {
|
eachPlugin {
|
||||||
|
@ -19,7 +19,7 @@ pluginManagement {
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version ("0.6.0")
|
id("org.gradle.toolchains.foojay-resolver-convention") version("0.6.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.enums;
|
|
||||||
|
|
||||||
public enum Difficulty {
|
|
||||||
NORMAL, HARD, RIP
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
|
||||||
|
|
||||||
public interface ISplitsData {
|
|
||||||
String toJSON();
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils;
|
package xyz.stachel.zombiesutils;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
|
@ -1,11 +1,12 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils;
|
package xyz.stachel.zombiesutils;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.commands.CommandRegistry;
|
import xyz.stachel.zombiesutils.commands.CommandRegistry;
|
||||||
import com.github.stachelbeere1248.zombiesutils.config.Hotkeys;
|
import xyz.stachel.zombiesutils.config.Hotkeys;
|
||||||
import com.github.stachelbeere1248.zombiesutils.config.ZombiesUtilsConfig;
|
import xyz.stachel.zombiesutils.config.ZombiesUtilsConfig;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameData;
|
import xyz.stachel.zombiesutils.game.GameData;
|
||||||
import com.github.stachelbeere1248.zombiesutils.handlers.Handlers;
|
import xyz.stachel.zombiesutils.game.waves.WaveTiming;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.GameManager;
|
import xyz.stachel.zombiesutils.handlers.Handlers;
|
||||||
|
import xyz.stachel.zombiesutils.timer.GameManager;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
@ -14,7 +15,7 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@Mod(modid = "zombiesutils", useMetadata = true, clientSideOnly = true, guiFactory = "com.github.stachelbeere1248.zombiesutils.config.GuiFactory")
|
@Mod(modid = "zombiesutils", useMetadata = true, clientSideOnly = true, guiFactory = "xyz.stachel.zombiesutils.config.GuiFactory")
|
||||||
public class ZombiesUtils {
|
public class ZombiesUtils {
|
||||||
private static ZombiesUtils instance;
|
private static ZombiesUtils instance;
|
||||||
private final Hotkeys hotkeys;
|
private final Hotkeys hotkeys;
|
||||||
|
@ -23,6 +24,7 @@ public class ZombiesUtils {
|
||||||
private Handlers handlers;
|
private Handlers handlers;
|
||||||
private Logger logger;
|
private Logger logger;
|
||||||
private GameData gameData;
|
private GameData gameData;
|
||||||
|
private WaveTiming waveTiming; // yeah fuck it im putting this here
|
||||||
|
|
||||||
public ZombiesUtils() {
|
public ZombiesUtils() {
|
||||||
hotkeys = new Hotkeys();
|
hotkeys = new Hotkeys();
|
||||||
|
@ -55,6 +57,7 @@ public class ZombiesUtils {
|
||||||
CommandRegistry.registerAll();
|
CommandRegistry.registerAll();
|
||||||
hotkeys.registerAll();
|
hotkeys.registerAll();
|
||||||
gameData = new GameData();
|
gameData = new GameData();
|
||||||
|
waveTiming = new WaveTiming();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Logger getLogger() {
|
public Logger getLogger() {
|
||||||
|
@ -80,4 +83,8 @@ public class ZombiesUtils {
|
||||||
public GameData getGameData() {
|
public GameData getGameData() {
|
||||||
return gameData;
|
return gameData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WaveTiming getWaveTiming() {
|
||||||
|
return waveTiming;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.commands;
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
import xyz.stachel.zombiesutils.timer.recorder.Category;
|
||||||
import net.minecraft.command.CommandException;
|
import net.minecraft.command.CommandException;
|
||||||
import net.minecraft.command.ICommand;
|
import net.minecraft.command.ICommand;
|
||||||
import net.minecraft.command.ICommandSender;
|
import net.minecraft.command.ICommandSender;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.commands;
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
import net.minecraftforge.client.ClientCommandHandler;
|
import net.minecraftforge.client.ClientCommandHandler;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.commands;
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.command.CommandBase;
|
import net.minecraft.command.CommandBase;
|
|
@ -0,0 +1,48 @@
|
||||||
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.command.CommandException;
|
||||||
|
import net.minecraft.command.ICommand;
|
||||||
|
import net.minecraft.command.ICommandSender;
|
||||||
|
import net.minecraft.command.WrongUsageException;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
|
|
||||||
|
class RocketLauncherCommand implements ICommand {
|
||||||
|
@Override
|
||||||
|
public String getCommandUsage(ICommandSender sender) {
|
||||||
|
return "/rl <ticks>";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return "rl";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isUsernameIndex(String[] args, int index) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
|
||||||
|
if (args.length == 1) return List.of("-28");
|
||||||
|
else return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canCommandSenderUseCommand(ICommandSender sender) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
|
||||||
|
if (args.length == 0) throw new WrongUsageException("[Missing argument] argument: <ticks>", args);
|
||||||
|
else try {
|
||||||
|
int ticks = Integer.parseInt(args[0]);
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.commands;
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.sla.QuickSLA;
|
import xyz.stachel.zombiesutils.game.sla.QuickSLA;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.windows.SLA;
|
import xyz.stachel.zombiesutils.game.windows.SLA;
|
||||||
import net.minecraft.command.*;
|
import net.minecraft.command.*;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
|
@ -1,9 +1,9 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.commands;
|
package xyz.stachel.zombiesutils.commands;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.InvalidMapException;
|
import xyz.stachel.zombiesutils.utils.InvalidMapException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.ScoardboardException;
|
import xyz.stachel.zombiesutils.utils.ScoardboardException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.command.*;
|
import net.minecraft.command.*;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.config;
|
package xyz.stachel.zombiesutils.config;
|
||||||
|
|
||||||
import net.minecraftforge.common.config.ConfigCategory;
|
import net.minecraftforge.common.config.ConfigCategory;
|
||||||
import net.minecraftforge.common.config.ConfigElement;
|
import net.minecraftforge.common.config.ConfigElement;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.config;
|
package xyz.stachel.zombiesutils.config;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
|
||||||
public class GuiConfig extends net.minecraftforge.fml.client.config.GuiConfig {
|
public class GuiConfig extends net.minecraftforge.fml.client.config.GuiConfig {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.config;
|
package xyz.stachel.zombiesutils.config;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.config;
|
package xyz.stachel.zombiesutils.config;
|
||||||
|
|
||||||
import net.minecraft.client.settings.KeyBinding;
|
import net.minecraft.client.settings.KeyBinding;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.config;
|
package xyz.stachel.zombiesutils.config;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.LanguageSupport;
|
import xyz.stachel.zombiesutils.utils.LanguageSupport;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.common.config.Property;
|
import net.minecraftforge.common.config.Property;
|
||||||
import net.minecraftforge.fml.client.config.DummyConfigElement;
|
import net.minecraftforge.fml.client.config.DummyConfigElement;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game;
|
package xyz.stachel.zombiesutils.game;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ResourceLoader;
|
import xyz.stachel.zombiesutils.ResourceLoader;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.waves.Round;
|
import xyz.stachel.zombiesutils.game.waves.Round;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game;
|
package xyz.stachel.zombiesutils.game;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Difficulty;
|
import xyz.stachel.zombiesutils.game.enums.Difficulty;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package xyz.stachel.zombiesutils.game.enums;
|
||||||
|
|
||||||
|
public enum Difficulty {
|
||||||
|
NORMAL, HARD, RIP
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.enums;
|
package xyz.stachel.zombiesutils.game.enums;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.sla;
|
package xyz.stachel.zombiesutils.game.sla;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.windows.SLA;
|
import xyz.stachel.zombiesutils.game.windows.SLA;
|
||||||
|
|
||||||
@SuppressWarnings("SpellCheckingInspection")
|
@SuppressWarnings("SpellCheckingInspection")
|
||||||
public class QuickSLA {
|
public class QuickSLA {
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.waves;
|
package xyz.stachel.zombiesutils.game.waves;
|
||||||
|
|
||||||
public enum Prefix {
|
public enum Prefix {
|
||||||
BOSS(0xCC5555, "B", 0x7A3333),
|
BOSS(0xCC5555, "B", 0x7A3333),
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.waves;
|
package xyz.stachel.zombiesutils.game.waves;
|
||||||
|
|
||||||
public class Round {
|
public class Round {
|
||||||
private final Wave[] waves;
|
private final Wave[] waves;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.waves;
|
package xyz.stachel.zombiesutils.game.waves;
|
||||||
|
|
||||||
@SuppressWarnings("DuplicatedCode")
|
@SuppressWarnings("DuplicatedCode")
|
||||||
public class Wave {
|
public class Wave {
|
|
@ -1,15 +1,20 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.waves;
|
package xyz.stachel.zombiesutils.game.waves;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class WaveTiming {
|
public class WaveTiming {
|
||||||
public static int rl = 0;
|
private int rlSetting;
|
||||||
|
public int rl = 0;
|
||||||
|
|
||||||
public static void onTick() {
|
public WaveTiming() {
|
||||||
|
this.rlSetting = ZombiesUtils.getInstance().getConfig().getOffset();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onTick() {
|
||||||
if (Scoreboard.isNotZombies()) return;
|
if (Scoreboard.isNotZombies()) return;
|
||||||
ZombiesUtils.getInstance().getGameManager().getGame().ifPresent(
|
ZombiesUtils.getInstance().getGameManager().getGame().ifPresent(
|
||||||
game -> {
|
game -> {
|
||||||
|
@ -27,8 +32,12 @@ public class WaveTiming {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void toggleRL() {
|
public void toggleRL() {
|
||||||
if (rl == 0) rl = ZombiesUtils.getInstance().getConfig().getOffset();
|
if (rl == 0) rl = rlSetting;
|
||||||
else rl = 0;
|
else rl = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setRlTemp(final int ticks) {
|
||||||
|
this.rlSetting = ticks;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.windows;
|
package xyz.stachel.zombiesutils.game.windows;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.windows;
|
package xyz.stachel.zombiesutils.game.windows;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.entity.EntityPlayerSP;
|
import net.minecraft.client.entity.EntityPlayerSP;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.game.windows;
|
package xyz.stachel.zombiesutils.game.windows;
|
||||||
|
|
||||||
public class Window {
|
public class Window {
|
||||||
private final short[] xyz = new short[3];
|
private final short[] xyz = new short[3];
|
|
@ -1,8 +1,8 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Difficulty;
|
import xyz.stachel.zombiesutils.game.enums.Difficulty;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.LanguageSupport;
|
import xyz.stachel.zombiesutils.utils.LanguageSupport;
|
||||||
import net.minecraftforge.client.event.ClientChatReceivedEvent;
|
import net.minecraftforge.client.event.ClientChatReceivedEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
|
||||||
public class Handlers {
|
public class Handlers {
|
|
@ -1,8 +1,8 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.config.Hotkeys;
|
import xyz.stachel.zombiesutils.config.Hotkeys;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.waves.WaveTiming;
|
import xyz.stachel.zombiesutils.game.waves.WaveTiming;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.gameevent.InputEvent;
|
import net.minecraftforge.fml.common.gameevent.InputEvent;
|
|
@ -1,12 +1,12 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.waves.Prefix;
|
import xyz.stachel.zombiesutils.game.waves.Prefix;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.waves.Wave;
|
import xyz.stachel.zombiesutils.game.waves.Wave;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.windows.Room;
|
import xyz.stachel.zombiesutils.game.windows.Room;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.windows.SLA;
|
import xyz.stachel.zombiesutils.game.windows.SLA;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Game;
|
import xyz.stachel.zombiesutils.timer.Game;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.client.gui.ScaledResolution;
|
import net.minecraft.client.gui.ScaledResolution;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.Timer;
|
import xyz.stachel.zombiesutils.timer.Timer;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.entity.monster.EntityZombie;
|
import net.minecraft.entity.monster.EntityZombie;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
|
@ -1,8 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.handlers;
|
package xyz.stachel.zombiesutils.handlers;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.waves.WaveTiming;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -12,7 +11,7 @@ public class TickHandler {
|
||||||
public void onTick(TickEvent.@NotNull ClientTickEvent event) {
|
public void onTick(TickEvent.@NotNull ClientTickEvent event) {
|
||||||
if (event.phase == TickEvent.Phase.START) return;
|
if (event.phase == TickEvent.Phase.START) return;
|
||||||
Scoreboard.refresh();
|
Scoreboard.refresh();
|
||||||
WaveTiming.onTick();
|
ZombiesUtils.getInstance().getWaveTiming().onTick();
|
||||||
ZombiesUtils.getInstance().getHandlers().getRenderer().tick();
|
ZombiesUtils.getInstance().getHandlers().getRenderer().tick();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,188 @@
|
||||||
|
package xyz.stachel.zombiesutils.init;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.lib.tree.ClassNode;
|
||||||
|
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
|
||||||
|
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipInputStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A mixin plugin to automatically discover all mixins in the current JAR.
|
||||||
|
* <p>
|
||||||
|
* This mixin plugin automatically scans your entire JAR (or class directory, in case of an in-IDE launch) for classes inside of your
|
||||||
|
* mixin package and registers those. It does this recursively for sub packages of the mixin package as well. This means you will need
|
||||||
|
* to only have mixin classes inside of your mixin package, which is good style anyway.
|
||||||
|
*
|
||||||
|
* @author Linnea Gräf
|
||||||
|
*/
|
||||||
|
public class AutoDiscoveryMixinPlugin implements IMixinConfigPlugin {
|
||||||
|
private static final List<AutoDiscoveryMixinPlugin> mixinPlugins = new ArrayList<>();
|
||||||
|
|
||||||
|
public static List<AutoDiscoveryMixinPlugin> getMixinPlugins() {
|
||||||
|
return mixinPlugins;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String mixinPackage;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoad(String mixinPackage) {
|
||||||
|
this.mixinPackage = mixinPackage;
|
||||||
|
mixinPlugins.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves the base class root for a given class URL. This resolves either the JAR root, or the class file root.
|
||||||
|
* In either case the return value of this + the class name will resolve back to the original class url, or to other
|
||||||
|
* class urls for other classes.
|
||||||
|
*/
|
||||||
|
public URL getBaseUrlForClassUrl(URL classUrl) {
|
||||||
|
String string = classUrl.toString();
|
||||||
|
if (classUrl.getProtocol().equals("jar")) {
|
||||||
|
try {
|
||||||
|
return new URL(string.substring(4).split("!")[0]);
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (string.endsWith(".class")) {
|
||||||
|
try {
|
||||||
|
return new URL(string.replace("\\", "/")
|
||||||
|
.replace(getClass().getCanonicalName()
|
||||||
|
.replace(".", "/") + ".class", ""));
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return classUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the package that contains all the mixins. This value is set by mixin itself using {@link #onLoad}.
|
||||||
|
*/
|
||||||
|
public String getMixinPackage() {
|
||||||
|
return mixinPackage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the path inside the class root to the mixin package
|
||||||
|
*/
|
||||||
|
public String getMixinBaseDir() {
|
||||||
|
return mixinPackage.replace(".", "/");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A list of all discovered mixins.
|
||||||
|
*/
|
||||||
|
private List<String> mixins = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try to add mixin class ot the mixins based on the filepath inside of the class root.
|
||||||
|
* Removes the {@code .class} file suffix, as well as the base mixin package.
|
||||||
|
* <p><b>This method cannot be called after mixin initialization.</p>
|
||||||
|
*
|
||||||
|
* @param className the name or path of a class to be registered as a mixin.
|
||||||
|
*/
|
||||||
|
public void tryAddMixinClass(String className) {
|
||||||
|
String norm = (className.endsWith(".class") ? className.substring(0, className.length() - ".class".length()) : className)
|
||||||
|
.replace("\\", "/")
|
||||||
|
.replace("/", ".");
|
||||||
|
if (norm.startsWith(getMixinPackage() + ".") && !norm.endsWith(".")) {
|
||||||
|
mixins.add(norm.substring(getMixinPackage().length() + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search through the JAR or class directory to find mixins contained in {@link #getMixinPackage()}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<String> getMixins() {
|
||||||
|
if (mixins != null) return mixins;
|
||||||
|
System.out.println("Trying to discover mixins");
|
||||||
|
mixins = new ArrayList<>();
|
||||||
|
URL classUrl = getClass().getProtectionDomain().getCodeSource().getLocation();
|
||||||
|
System.out.println("Found classes at " + classUrl);
|
||||||
|
Path file;
|
||||||
|
try {
|
||||||
|
file = Paths.get(getBaseUrlForClassUrl(classUrl).toURI());
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
System.out.println("Base directory found at " + file);
|
||||||
|
if (Files.isDirectory(file)) {
|
||||||
|
walkDir(file);
|
||||||
|
} else {
|
||||||
|
walkJar(file);
|
||||||
|
}
|
||||||
|
System.out.println("Found mixins: " + mixins);
|
||||||
|
|
||||||
|
return mixins;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search through directory for mixin classes based on {@link #getMixinBaseDir}.
|
||||||
|
*
|
||||||
|
* @param classRoot The root directory in which classes are stored for the default package.
|
||||||
|
*/
|
||||||
|
private void walkDir(Path classRoot) {
|
||||||
|
System.out.println("Trying to find mixins from directory");
|
||||||
|
try (Stream<Path> classes = Files.walk(classRoot.resolve(getMixinBaseDir()))) {
|
||||||
|
classes.map(it -> classRoot.relativize(it).toString())
|
||||||
|
.forEach(this::tryAddMixinClass);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read through a JAR file, trying to find all mixins inside.
|
||||||
|
*/
|
||||||
|
private void walkJar(Path file) {
|
||||||
|
System.out.println("Trying to find mixins from jar file");
|
||||||
|
try (ZipInputStream zis = new ZipInputStream(Files.newInputStream(file))) {
|
||||||
|
ZipEntry next;
|
||||||
|
while ((next = zis.getNextEntry()) != null) {
|
||||||
|
tryAddMixinClass(next.getName());
|
||||||
|
zis.closeEntry();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRefMapperConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.mixin;
|
package xyz.stachel.zombiesutils.mixin;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.InvalidMapException;
|
import xyz.stachel.zombiesutils.utils.InvalidMapException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.LanguageSupport;
|
import xyz.stachel.zombiesutils.utils.LanguageSupport;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.ScoardboardException;
|
import xyz.stachel.zombiesutils.utils.ScoardboardException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.network.NetHandlerPlayClient;
|
import net.minecraft.client.network.NetHandlerPlayClient;
|
||||||
import net.minecraft.network.play.server.S29PacketSoundEffect;
|
import net.minecraft.network.play.server.S29PacketSoundEffect;
|
|
@ -1,14 +1,14 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer;
|
package xyz.stachel.zombiesutils.timer;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import xyz.stachel.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Difficulty;
|
import xyz.stachel.zombiesutils.game.enums.Difficulty;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.windows.SLA;
|
import xyz.stachel.zombiesutils.game.windows.SLA;
|
||||||
import com.github.stachelbeere1248.zombiesutils.handlers.Round1Correction;
|
import xyz.stachel.zombiesutils.handlers.Round1Correction;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.Category;
|
import xyz.stachel.zombiesutils.timer.recorder.Category;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.files.CategoryFile;
|
import xyz.stachel.zombiesutils.timer.recorder.files.CategoryFile;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.files.GameFile;
|
import xyz.stachel.zombiesutils.timer.recorder.files.GameFile;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer;
|
package xyz.stachel.zombiesutils.timer;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Difficulty;
|
import xyz.stachel.zombiesutils.game.enums.Difficulty;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.InvalidMapException;
|
import xyz.stachel.zombiesutils.utils.InvalidMapException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.ScoardboardException;
|
import xyz.stachel.zombiesutils.utils.ScoardboardException;
|
||||||
import com.github.stachelbeere1248.zombiesutils.utils.Scoreboard;
|
import xyz.stachel.zombiesutils.utils.Scoreboard;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer;
|
package xyz.stachel.zombiesutils.timer;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.event.ClickEvent;
|
import net.minecraft.event.ClickEvent;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer;
|
package xyz.stachel.zombiesutils.timer;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
package xyz.stachel.zombiesutils.timer.recorder;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import xyz.stachel.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.files.CategoryFile;
|
import xyz.stachel.zombiesutils.timer.recorder.files.CategoryFile;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
|
package xyz.stachel.zombiesutils.timer.recorder;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.data.CategoryData;
|
import xyz.stachel.zombiesutils.timer.recorder.data.CategoryData;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.files.CategoryFile;
|
import xyz.stachel.zombiesutils.timer.recorder.files.CategoryFile;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.JsonSyntaxException;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
|
@ -0,0 +1,5 @@
|
||||||
|
package xyz.stachel.zombiesutils.timer.recorder;
|
||||||
|
|
||||||
|
public interface ISplitsData {
|
||||||
|
String toJSON();
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder.data;
|
package xyz.stachel.zombiesutils.timer.recorder.data;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.ISplitsData;
|
import xyz.stachel.zombiesutils.timer.recorder.ISplitsData;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder.data;
|
package xyz.stachel.zombiesutils.timer.recorder.data;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.ISplitsData;
|
import xyz.stachel.zombiesutils.timer.recorder.ISplitsData;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder.files;
|
package xyz.stachel.zombiesutils.timer.recorder.files;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.GameMode;
|
import xyz.stachel.zombiesutils.game.GameMode;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.FileManager;
|
import xyz.stachel.zombiesutils.timer.recorder.FileManager;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.data.CategoryData;
|
import xyz.stachel.zombiesutils.timer.recorder.data.CategoryData;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
|
@ -1,10 +1,10 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.timer.recorder.files;
|
package xyz.stachel.zombiesutils.timer.recorder.files;
|
||||||
|
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.github.stachelbeere1248.zombiesutils.game.enums.Map;
|
import xyz.stachel.zombiesutils.game.enums.Map;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.FileManager;
|
import xyz.stachel.zombiesutils.timer.recorder.FileManager;
|
||||||
import com.github.stachelbeere1248.zombiesutils.timer.recorder.data.GameData;
|
import xyz.stachel.zombiesutils.timer.recorder.data.GameData;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.util.ChatComponentText;
|
import net.minecraft.util.ChatComponentText;
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.utils;
|
package xyz.stachel.zombiesutils.utils;
|
||||||
|
|
||||||
public class InvalidMapException extends Exception {
|
public class InvalidMapException extends Exception {
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.utils;
|
package xyz.stachel.zombiesutils.utils;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.utils;
|
package xyz.stachel.zombiesutils.utils;
|
||||||
|
|
||||||
public class ScoardboardException extends Exception {
|
public class ScoardboardException extends Exception {
|
||||||
public ScoardboardException() {
|
public ScoardboardException() {
|
|
@ -1,6 +1,6 @@
|
||||||
package com.github.stachelbeere1248.zombiesutils.utils;
|
package xyz.stachel.zombiesutils.utils;
|
||||||
|
|
||||||
import com.github.stachelbeere1248.zombiesutils.ZombiesUtils;
|
import xyz.stachel.zombiesutils.ZombiesUtils;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
2
src/main/resources/accesstransformer.cfg
Normal file
2
src/main/resources/accesstransformer.cfg
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
public net.minecraft.client.renderer.GlStateManager$Color
|
|
@ -1,11 +1,8 @@
|
||||||
{
|
{
|
||||||
"package": "com.github.stachelbeere1248.zombiesutils.mixin",
|
"package": "${basePackage}.mixin",
|
||||||
|
"plugin": "${basePackage}.init.AutoDiscoveryMixinPlugin",
|
||||||
"refmap": "mixins.${modid}.refmap.json",
|
"refmap": "mixins.${modid}.refmap.json",
|
||||||
"minVersion": "0.7",
|
"minVersion": "0.7",
|
||||||
"compatibilityLevel": "JAVA_8",
|
"compatibilityLevel": "JAVA_8",
|
||||||
"mixins": [
|
"__comment": "You do not need to manually register mixins in this template. Check the auto discovery mixin plugin for more info."
|
||||||
],
|
|
||||||
"client": [
|
|
||||||
"MixinNetHandlerPlayClient"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue