summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeuin <[email protected]>2020-12-28 22:53:31 +0800
committerKeuin <[email protected]>2020-12-28 22:53:31 +0800
commit4dad5fc27145593c14425b3e673b924155903585 (patch)
tree3573b6ddb9170126d47f75a10b91c140c6fd9e98 /src
parentf287ea9dbb54b96c15f441b7f72e7d6527704ded (diff)
Version 1.3.0: add switches for all disable features. Fixed the vanilla bug that the entity trackers sometimes spam in the console.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/DummyLogger.java1883
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/OhMyVanillaMinecraft.java24
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/ReflectionUtils.java59
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/mixin/DisableEntityTrackerEntrySpamming.java19
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/mixin/DisablePhantomSpawning.java22
-rw-r--r--src/main/java/com/keuin/ohmyvanillamc/mixin/DisableWanderingTraderSpawning.java15
-rw-r--r--src/main/resources/ohmyvanillamc.mixins.json2
7 files changed, 2018 insertions, 6 deletions
diff --git a/src/main/java/com/keuin/ohmyvanillamc/DummyLogger.java b/src/main/java/com/keuin/ohmyvanillamc/DummyLogger.java
new file mode 100644
index 0000000..a64df0b
--- /dev/null
+++ b/src/main/java/com/keuin/ohmyvanillamc/DummyLogger.java
@@ -0,0 +1,1883 @@
+package com.keuin.ohmyvanillamc;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.message.EntryMessage;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.message.MessageFactory;
+import org.apache.logging.log4j.util.MessageSupplier;
+import org.apache.logging.log4j.util.Supplier;
+
+public class DummyLogger implements Logger {
+
+ @Override
+ public void catching(Level level, Throwable t) {
+
+ }
+
+ @Override
+ public void catching(Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Message msg) {
+
+ }
+
+ @Override
+ public void debug(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void debug(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(CharSequence message) {
+
+ }
+
+ @Override
+ public void debug(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Object message) {
+
+ }
+
+ @Override
+ public void debug(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(String message) {
+
+ }
+
+ @Override
+ public void debug(String message, Object... params) {
+
+ }
+
+ @Override
+ public void debug(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void debug(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void debug(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void entry() {
+
+ }
+
+ @Override
+ public void entry(Object... params) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void error(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void error(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void error(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Message msg) {
+
+ }
+
+ @Override
+ public void error(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void error(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void error(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void error(CharSequence message) {
+
+ }
+
+ @Override
+ public void error(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Object message) {
+
+ }
+
+ @Override
+ public void error(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(String message) {
+
+ }
+
+ @Override
+ public void error(String message, Object... params) {
+
+ }
+
+ @Override
+ public void error(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void error(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void error(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void exit() {
+
+ }
+
+ @Override
+ public <R> R exit(R result) {
+ return null;
+ }
+
+ @Override
+ public void fatal(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Message msg) {
+
+ }
+
+ @Override
+ public void fatal(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void fatal(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(CharSequence message) {
+
+ }
+
+ @Override
+ public void fatal(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Object message) {
+
+ }
+
+ @Override
+ public void fatal(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(String message) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object... params) {
+
+ }
+
+ @Override
+ public void fatal(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void fatal(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void fatal(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public Level getLevel() {
+ return null;
+ }
+
+ @Override
+ public <MF extends MessageFactory> MF getMessageFactory() {
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return null;
+ }
+
+ @Override
+ public void info(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void info(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void info(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void info(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void info(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void info(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Message msg) {
+
+ }
+
+ @Override
+ public void info(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void info(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void info(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void info(CharSequence message) {
+
+ }
+
+ @Override
+ public void info(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Object message) {
+
+ }
+
+ @Override
+ public void info(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(String message) {
+
+ }
+
+ @Override
+ public void info(String message, Object... params) {
+
+ }
+
+ @Override
+ public void info(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void info(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void info(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isDebugEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isEnabled(Level level) {
+ return false;
+ }
+
+ @Override
+ public boolean isEnabled(Level level, Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isErrorEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isFatalEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isFatalEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isInfoEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isTraceEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isTraceEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isWarnEnabled(Marker marker) {
+ return false;
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Message msg) {
+
+ }
+
+ @Override
+ public void log(Level level, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void log(Level level, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, CharSequence message) {
+
+ }
+
+ @Override
+ public void log(Level level, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Object message) {
+
+ }
+
+ @Override
+ public void log(Level level, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, String message) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object... params) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void log(Level level, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void printf(Level level, Marker marker, String format, Object... params) {
+
+ }
+
+ @Override
+ public void printf(Level level, String format, Object... params) {
+
+ }
+
+ @Override
+ public <T extends Throwable> T throwing(Level level, T t) {
+ return null;
+ }
+
+ @Override
+ public <T extends Throwable> T throwing(T t) {
+ return null;
+ }
+
+ @Override
+ public void trace(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Message msg) {
+
+ }
+
+ @Override
+ public void trace(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void trace(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(CharSequence message) {
+
+ }
+
+ @Override
+ public void trace(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Object message) {
+
+ }
+
+ @Override
+ public void trace(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(String message) {
+
+ }
+
+ @Override
+ public void trace(String message, Object... params) {
+
+ }
+
+ @Override
+ public void trace(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void trace(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void trace(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public EntryMessage traceEntry() {
+ return null;
+ }
+
+ @Override
+ public EntryMessage traceEntry(String format, Object... params) {
+ return null;
+ }
+
+ @Override
+ public EntryMessage traceEntry(Supplier<?>... paramSuppliers) {
+ return null;
+ }
+
+ @Override
+ public EntryMessage traceEntry(String format, Supplier<?>... paramSuppliers) {
+ return null;
+ }
+
+ @Override
+ public EntryMessage traceEntry(Message message) {
+ return null;
+ }
+
+ @Override
+ public void traceExit() {
+
+ }
+
+ @Override
+ public <R> R traceExit(R result) {
+ return null;
+ }
+
+ @Override
+ public <R> R traceExit(String format, R result) {
+ return null;
+ }
+
+ @Override
+ public void traceExit(EntryMessage message) {
+
+ }
+
+ @Override
+ public <R> R traceExit(EntryMessage message, R result) {
+ return null;
+ }
+
+ @Override
+ public <R> R traceExit(Message message, R result) {
+ return null;
+ }
+
+ @Override
+ public void warn(Marker marker, Message msg) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, CharSequence message) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, Object message) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object... params) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Message msg) {
+
+ }
+
+ @Override
+ public void warn(Message msg, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(MessageSupplier msgSupplier) {
+
+ }
+
+ @Override
+ public void warn(MessageSupplier msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(CharSequence message) {
+
+ }
+
+ @Override
+ public void warn(CharSequence message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Object message) {
+
+ }
+
+ @Override
+ public void warn(Object message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(String message) {
+
+ }
+
+ @Override
+ public void warn(String message, Object... params) {
+
+ }
+
+ @Override
+ public void warn(String message, Supplier<?>... paramSuppliers) {
+
+ }
+
+ @Override
+ public void warn(String message, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Supplier<?> msgSupplier) {
+
+ }
+
+ @Override
+ public void warn(Supplier<?> msgSupplier, Throwable t) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) {
+
+ }
+
+ @Override
+ public void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) {
+
+ }
+}
diff --git a/src/main/java/com/keuin/ohmyvanillamc/OhMyVanillaMinecraft.java b/src/main/java/com/keuin/ohmyvanillamc/OhMyVanillaMinecraft.java
index c1dc4af..a3d5c90 100644
--- a/src/main/java/com/keuin/ohmyvanillamc/OhMyVanillaMinecraft.java
+++ b/src/main/java/com/keuin/ohmyvanillamc/OhMyVanillaMinecraft.java
@@ -1,10 +1,33 @@
package com.keuin.ohmyvanillamc;
import net.fabricmc.api.ModInitializer;
+import net.minecraft.server.network.EntityTrackerEntry;
+
+import java.lang.reflect.Field;
public class OhMyVanillaMinecraft implements ModInitializer {
public static boolean disableFishSchooling = true;
+ public static boolean disablePhantomSpawning = false;
+ public static boolean disableWanderingTraderSpawning = false;
+
+ private static void disableEntityTrackerEntrySpamming() {
+ try {
+ //获取该类的字节码对象
+ Class<EntityTrackerEntry> clazz = EntityTrackerEntry.class;
+
+ //获取其私有成员
+ Field name = clazz.getDeclaredField("LOGGER");
+
+ //暴力反射
+ name.setAccessible(true);
+
+ //重新赋值 参数一:实力 参数二:值
+// name.set(EntityTrackerEntry, "小鸭鸭");
+ } catch (NoSuchFieldException ignored) {
+ // never mind
+ }
+ }
@Override
public void onInitialize() {
@@ -13,5 +36,6 @@ public class OhMyVanillaMinecraft implements ModInitializer {
// Proceed with mild caution.
System.out.println("OhMyVanillaMinecraft is loading...");
+
}
}
diff --git a/src/main/java/com/keuin/ohmyvanillamc/ReflectionUtils.java b/src/main/java/com/keuin/ohmyvanillamc/ReflectionUtils.java
new file mode 100644
index 0000000..253c89d
--- /dev/null
+++ b/src/main/java/com/keuin/ohmyvanillamc/ReflectionUtils.java
@@ -0,0 +1,59 @@
+package com.keuin.ohmyvanillamc;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * @Author 落叶飞翔的蜗牛
+ * @Date 2018/3/10
+ * @Description 常用反射函数
+ */
+public final class ReflectionUtils {
+
+ /**
+ * 获取私有成员变量的值
+ *
+ * @param instance
+ * @param filedName
+ * @return
+ */
+ public static Object getPrivateField(Object instance, String filedName) throws NoSuchFieldException, IllegalAccessException {
+ Field field = instance.getClass().getDeclaredField(filedName);
+ field.setAccessible(true);
+ return field.get(instance);
+ }
+
+ /**
+ * 设置私有成员的值
+ *
+ * @param instance
+ * @param fieldName
+ * @param value
+ * @throws NoSuchFieldException
+ * @throws IllegalAccessException
+ */
+ public static void setPrivateField(Object instance, String fieldName, Object value) throws NoSuchFieldException, IllegalAccessException {
+ Field field = instance.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ field.set(instance, value);
+ }
+
+ /**
+ * 访问私有方法
+ *
+ * @param instance
+ * @param methodName
+ * @param classes
+ * @param args
+ * @return
+ * @throws NoSuchMethodException
+ * @throws InvocationTargetException
+ * @throws IllegalAccessException
+ */
+ public static Object invokePrivateMethod(Object instance, String methodName, Class[] classes, Object... args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ Method method = instance.getClass().getDeclaredMethod(methodName, classes);
+ method.setAccessible(true);
+ return method.invoke(instance, args);
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableEntityTrackerEntrySpamming.java b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableEntityTrackerEntrySpamming.java
new file mode 100644
index 0000000..523aeed
--- /dev/null
+++ b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableEntityTrackerEntrySpamming.java
@@ -0,0 +1,19 @@
+package com.keuin.ohmyvanillamc.mixin;
+
+import com.keuin.ohmyvanillamc.DummyLogger;
+import net.minecraft.server.network.EntityTrackerEntry;
+import org.apache.logging.log4j.Logger;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Accessor;
+
+@Mixin(EntityTrackerEntry.class)
+public class DisableEntityTrackerEntrySpamming {
+
+ private static final Logger DUMMY_LOGGER = new DummyLogger();
+
+ @Accessor("LOGGER")
+ private static Logger LOGGER() {
+ return DUMMY_LOGGER;
+ }
+
+}
diff --git a/src/main/java/com/keuin/ohmyvanillamc/mixin/DisablePhantomSpawning.java b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisablePhantomSpawning.java
new file mode 100644
index 0000000..d5788c7
--- /dev/null
+++ b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisablePhantomSpawning.java
@@ -0,0 +1,22 @@
+package com.keuin.ohmyvanillamc.mixin;
+
+import com.keuin.ohmyvanillamc.OhMyVanillaMinecraft;
+import net.minecraft.server.world.ServerWorld;
+import net.minecraft.world.gen.PhantomSpawner;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(PhantomSpawner.class)
+public class DisablePhantomSpawning {
+ /**
+ * Disable phantom spawning
+ * @author trueKeuin
+ */
+ @Inject(method = "spawn", at = @At("HEAD"), cancellable = true)
+ public void spawn(ServerWorld serverWorld, boolean spawnMonsters, boolean spawnAnimals, CallbackInfo ci) {
+ if (OhMyVanillaMinecraft.disablePhantomSpawning)
+ ci.cancel();
+ }
+}
diff --git a/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableWanderingTraderSpawning.java b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableWanderingTraderSpawning.java
index c7049d8..040c352 100644
--- a/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableWanderingTraderSpawning.java
+++ b/src/main/java/com/keuin/ohmyvanillamc/mixin/DisableWanderingTraderSpawning.java
@@ -1,18 +1,21 @@
package com.keuin.ohmyvanillamc.mixin;
+import com.keuin.ohmyvanillamc.OhMyVanillaMinecraft;
import net.minecraft.world.WanderingTraderManager;
import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Overwrite;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(WanderingTraderManager.class)
public class DisableWanderingTraderSpawning {
-
/**
- * @reason disable ticking
+ * Disable ticking
* @author trueKeuin
*/
- @Overwrite
- public void tick() {
+ @Inject(method = "tick", at = @At("HEAD"), cancellable = true)
+ public void tick(CallbackInfo ci) {
+ if (OhMyVanillaMinecraft.disableWanderingTraderSpawning)
+ ci.cancel();
}
-
}
diff --git a/src/main/resources/ohmyvanillamc.mixins.json b/src/main/resources/ohmyvanillamc.mixins.json
index c58fff9..39f20a3 100644
--- a/src/main/resources/ohmyvanillamc.mixins.json
+++ b/src/main/resources/ohmyvanillamc.mixins.json
@@ -4,7 +4,9 @@
"package": "com.keuin.ohmyvanillamc.mixin",
"compatibilityLevel": "JAVA_8",
"mixins": [
+ "DisableEntityTrackerEntrySpamming",
"DisableFishSchooling",
+ "DisablePhantomSpawning",
"DisableWanderingTraderSpawning"
],
"injectors": {