Lessen limits on enchantments
This commit is contained in:
parent
51b3ce0026
commit
9e74f7ff60
@ -8,6 +8,6 @@ public class YesCheat implements ModInitializer {
|
||||
public static final Logger LOGGER = LogManager.getLogger("yescheat");
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
System.out.println("YesCheat initialized, anticheat yeeted");
|
||||
LOGGER.info("YesCheat initialized, anticheat yeeted");
|
||||
}
|
||||
}
|
||||
|
@ -1,80 +0,0 @@
|
||||
package io.gitlab.jfronny.yescheat;
|
||||
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
|
||||
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
|
||||
public class YesCheatPlugin implements IMixinConfigPlugin {
|
||||
private Properties config;
|
||||
FabricLoader loader = FabricLoader.getInstance();
|
||||
private final File path = loader.getConfigDir().resolve("yescheat.properties").toFile();
|
||||
@Override
|
||||
public void onLoad(String s) {
|
||||
config = new Properties();
|
||||
try (FileInputStream fs = new FileInputStream(path)) {
|
||||
config.load(fs);
|
||||
} catch (IOException e) {
|
||||
System.err.println("[YesCheat] Could not read config, using defaults");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void save() {
|
||||
try (FileOutputStream fs = new FileOutputStream(path)) {
|
||||
config.store(fs, "YesCheat config, you can toggle individual mixins here");
|
||||
} catch (IOException e) {
|
||||
System.err.println("[YesCheat] Could not save config, using defaults");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRefMapperConfig() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
||||
String mixinPath = "io.gitlab.jfronny.yescheat.mixin";
|
||||
if (!mixinClassName.startsWith(mixinPath)) {
|
||||
System.err.println("[YesCheat] found foreign mixin " + mixinClassName + "for" + targetClassName + ", disabling");
|
||||
return false;
|
||||
}
|
||||
String mixin = mixinClassName.substring(mixinPath.length() + 1, mixinClassName.length() - 5);
|
||||
if (!config.containsKey(mixin)) {
|
||||
System.err.println("[YesCheat] Could not load value for " + mixinClassName + ", using default");
|
||||
config.put(mixin, true);
|
||||
save();
|
||||
}
|
||||
return Boolean.parseBoolean((String) config.get(mixin));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void acceptTargets(Set<String> set, Set<String> set1) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getMixins() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void preApply(String s, ClassNode classNode, String s1, IMixinInfo iMixinInfo) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postApply(String s, ClassNode classNode, String s1, IMixinInfo iMixinInfo) {
|
||||
|
||||
}
|
||||
}
|
@ -17,5 +17,4 @@ public class DedicatedServerWatchdogMixin {
|
||||
*/
|
||||
@Overwrite
|
||||
private void shutdown() {}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
package io.gitlab.jfronny.yescheat.mixin;
|
||||
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
|
||||
@Mixin(EnchantmentHelper.class)
|
||||
public class EnchantmentHelperMixin {
|
||||
@ModifyArg(method = "getLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(III)I"), index = 2)
|
||||
private static int injectMaxEnchantmentLevel(int val, int min, int max) {
|
||||
return val;
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package io.gitlab.jfronny.yescheat.mixin;
|
||||
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.InfinityEnchantment;
|
||||
import net.minecraft.enchantment.MendingEnchantment;
|
||||
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.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(InfinityEnchantment.class)
|
||||
public class InfinityEnchantmentMixin {
|
||||
@Inject(method = "canAccept", at = @At("HEAD"), cancellable = true)
|
||||
private void differs(Enchantment other, CallbackInfoReturnable<Boolean> cir) {
|
||||
if(other instanceof MendingEnchantment) cir.setReturnValue(true);
|
||||
}
|
||||
}
|
@ -2,14 +2,15 @@
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "io.gitlab.jfronny.yescheat.mixin",
|
||||
"plugin": "io.gitlab.jfronny.yescheat.YesCheatPlugin",
|
||||
"compatibilityLevel": "JAVA_16",
|
||||
"mixins": [
|
||||
"ChestBlockMixin",
|
||||
"DedicatedServerWatchdogMixin",
|
||||
"EnchantmentHelperMixin",
|
||||
"EulaReaderMixin",
|
||||
"Generic3x3ContainerScreenHandlerMixin",
|
||||
"GenericContainerScreenHandlerMixin",
|
||||
"InfinityEnchantmentMixin",
|
||||
"ServerPlayNetworkHandlerMixin"
|
||||
],
|
||||
"injectors": {
|
||||
|
Loading…
Reference in New Issue
Block a user