Compare commits

..

2 commits

Author SHA1 Message Date
b4997831cc
RL command, rename package 2025-05-20 20:28:21 +02:00
53572b6e84
update template
moved a lot of files and updated build scripts
2025-04-25 06:12:06 +02:00
67 changed files with 508 additions and 233 deletions

View 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
View file

@ -0,0 +1,4 @@
gradlew* linguist-vendored
gradle/wrapper/* linguist-vendored
*.bat text eol=crlf

View file

@ -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

View file

@ -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
View file

@ -1,6 +1,10 @@
.idea/
.vscode/
run/ run/
build/ build/
.gradle/ .gradle/
.envrc
.classpath
.factorypath
.project
.settings
.vscode
bin

View file

@ -1 +0,0 @@
- Distinguishing Escape

View file

@ -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}")
} }
} }

View file

@ -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

Binary file not shown.

View file

@ -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
View file

@ -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
View file

@ -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

View file

@ -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>

View file

@ -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")
} }

View file

@ -1,5 +0,0 @@
package com.github.stachelbeere1248.zombiesutils.game.enums;
public enum Difficulty {
NORMAL, HARD, RIP
}

View file

@ -1,5 +0,0 @@
package com.github.stachelbeere1248.zombiesutils.timer.recorder;
public interface ISplitsData {
String toJSON();
}

View file

@ -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;

View file

@ -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;
}
} }

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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
}
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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 {

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -0,0 +1,5 @@
package xyz.stachel.zombiesutils.game.enums;
public enum Difficulty {
NORMAL, HARD, RIP
}

View file

@ -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;

View file

@ -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 {

View file

@ -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),

View file

@ -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;

View file

@ -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 {

View file

@ -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;
}
} }

View file

@ -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;

View file

@ -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;

View file

@ -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];

View file

@ -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;

View file

@ -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 {

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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();
} }
} }

View file

@ -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) {
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View 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;

View file

@ -0,0 +1,5 @@
package xyz.stachel.zombiesutils.timer.recorder;
public interface ISplitsData {
String toJSON();
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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 {
} }

View file

@ -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;

View file

@ -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() {

View file

@ -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;

View file

@ -0,0 +1,2 @@
public net.minecraft.client.renderer.GlStateManager$Color

View file

@ -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"
]
} }