diff --git a/src/main/java/me/melontini/andromeda/base/Bootstrap.java b/src/main/java/me/melontini/andromeda/base/Bootstrap.java index dc64cd71..c3713b2f 100644 --- a/src/main/java/me/melontini/andromeda/base/Bootstrap.java +++ b/src/main/java/me/melontini/andromeda/base/Bootstrap.java @@ -1,11 +1,11 @@ package me.melontini.andromeda.base; -import com.google.common.reflect.ClassPath; import lombok.CustomLog; import me.melontini.andromeda.base.config.Config; import me.melontini.andromeda.common.Andromeda; import me.melontini.andromeda.common.client.AndromedaClient; import me.melontini.andromeda.util.AndromedaLog; +import me.melontini.andromeda.util.ClassPath; import me.melontini.andromeda.util.CommonValues; import me.melontini.andromeda.util.exceptions.AndromedaException; import me.melontini.dark_matter.api.base.util.EntrypointRunner; @@ -23,12 +23,11 @@ import java.util.Arrays; import java.util.List; import java.util.ServiceLoader; -@SuppressWarnings("UnstableApiUsage") @CustomLog public class Bootstrap { static ModuleManager INSTANCE; - private static final ClassPath CLASS_PATH = Utilities.supplyUnchecked(() -> ClassPath.from(MixinProcessor.class.getClassLoader())); + private static final ClassPath CLASS_PATH = Utilities.supplyUnchecked(ClassPath::from); @Environment(EnvType.CLIENT) public static void onClient() { @@ -90,13 +89,15 @@ public class Bootstrap { throw new AndromedaException("Failed to initialize ModuleManager!!!", t); } m.print(); + //Scan for mixins. + m.loaded().forEach(module -> getModuleClassPath().addUrl(module.getClass().getProtectionDomain().getCodeSource().getLocation())); MixinProcessor.addMixins(m); FabricLoader.getInstance().getObjectShare().put("andromeda:module_manager", m); for (Module module : m.loaded()) { module.onPreLaunch(); } } - public static ClassPath getKnotClassPath() { + public static ClassPath getModuleClassPath() { return CLASS_PATH; } } diff --git a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java index 2c64fd47..ee7fc9f4 100644 --- a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java +++ b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java @@ -1,6 +1,5 @@ package me.melontini.andromeda.base; -import com.google.common.reflect.ClassPath; import com.google.gson.JsonObject; import lombok.CustomLog; import me.melontini.andromeda.base.annotations.MixinEnvironment; @@ -150,11 +149,9 @@ public class MixinProcessor { } protected void getMixins(List mixins) { - Bootstrap.getKnotClassPath().getTopLevelClassesRecursive(this.mixinPackage).stream() - .map(ClassPath.ClassInfo::asByteSource) - .map(byteSource -> Utilities.supplyUnchecked(byteSource::read)) - .map(bytes -> { - ClassReader reader = new ClassReader(bytes); + Bootstrap.getModuleClassPath().getTopLevelRecursive(this.mixinPackage).stream() + .map(info -> { + ClassReader reader = new ClassReader(Utilities.supplyUnchecked(info::readAllBytes)); ClassNode node = new ClassNode(); reader.accept(node,ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); return node; diff --git a/src/main/java/me/melontini/andromeda/modules/ModuleDiscovery.java b/src/main/java/me/melontini/andromeda/modules/ModuleDiscovery.java index dfb51a46..0f72ba18 100644 --- a/src/main/java/me/melontini/andromeda/modules/ModuleDiscovery.java +++ b/src/main/java/me/melontini/andromeda/modules/ModuleDiscovery.java @@ -1,6 +1,5 @@ package me.melontini.andromeda.modules; -import com.google.common.reflect.ClassPath; import me.melontini.andromeda.base.Bootstrap; import me.melontini.andromeda.base.Module; import me.melontini.andromeda.base.ModuleManager; @@ -13,13 +12,13 @@ import org.spongepowered.asm.util.Annotations; import java.util.List; -@SuppressWarnings("UnstableApiUsage") public class ModuleDiscovery implements ModuleManager.ModuleSupplier { @Override public List> get() { - return Bootstrap.getKnotClassPath().getTopLevelClassesRecursive("me.melontini.andromeda.modules") - .stream().filter(ci -> !ci.getPackageName().endsWith("mixin") && !ci.getPackageName().endsWith("client")) - .map(ClassPath.ResourceInfo::asByteSource).map(bs -> Utilities.supplyUnchecked(bs::read)) + Bootstrap.getModuleClassPath().addUrl(ModuleDiscovery.class.getProtectionDomain().getCodeSource().getLocation()); + return Bootstrap.getModuleClassPath().getTopLevelRecursive("me.melontini.andromeda.modules") + .stream().filter(ci -> !ci.packageName().endsWith("mixin") && !ci.packageName().endsWith("client")) + .map(bs -> Utilities.supplyUnchecked(bs::readAllBytes)) .map(bytes -> { ClassReader reader = new ClassReader(bytes); ClassNode node = new ClassNode(); diff --git a/src/main/java/me/melontini/andromeda/util/ClassPath.java b/src/main/java/me/melontini/andromeda/util/ClassPath.java new file mode 100644 index 00000000..40a7c0a8 --- /dev/null +++ b/src/main/java/me/melontini/andromeda/util/ClassPath.java @@ -0,0 +1,122 @@ +package me.melontini.andromeda.util; + +import lombok.Getter; +import lombok.SneakyThrows; +import me.melontini.dark_matter.api.base.util.Utilities; + +import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.file.*; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.*; + +public final class ClassPath { + + Set scanned = new HashSet<>(); + Set infos = new TreeSet<>(Comparator.comparing(info -> info.name)); + + private ClassPath() { + + } + + public static ClassPath from(URL... urls) { + ClassPath classPath = new ClassPath(); + for (URL url : urls) { + classPath.addUrl(url); + } + return classPath; + } + + public static ClassPath from(ClassLoader cl) { + ClassPath classPath = new ClassPath(); + classPath.scanClassLoader(cl); + return classPath; + } + + public void scanClassLoader(ClassLoader cl) { + if (cl.getParent() != null) scanClassLoader(cl.getParent()); + + if (cl instanceof URLClassLoader ucl) { + for (URL url : ucl.getURLs()) { + this.addUrl(url); + } + } + } + + public Set getTopLevelRecursive(String pckg) { + String s = pckg.replace('/', '.'); + Set set = new TreeSet<>(Comparator.comparing(info -> info.name)); + + for (Info info : infos) { + if (info.getName().startsWith(s)) set.add(info); + } + + return Collections.unmodifiableSet(set); + } + + public void addUrl(URL url) { + if (url == null) return; + + Path path = Utilities.supplyUnchecked(() -> Path.of(url.toURI())); + + if (scanned.contains(path)) return; + + if (Files.isDirectory(path)) { + scan(path); + } else { + scanJar(path); + } + } + + @SneakyThrows + private void scanJar(Path path) { + FileSystem fs = Utilities.supplyUnchecked(() -> { + try { + return FileSystems.getFileSystem(path.toUri()); + } catch (Exception e) { + return FileSystems.newFileSystem(path, Collections.emptyMap()); + } + }); + + scan(fs.getRootDirectories().iterator().next()); + + fs.close(); + } + + @SneakyThrows + private void scan(Path path) { + Files.walkFileTree(path, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + String name = path.relativize(file).toString(); + if (name.endsWith(".class")) { + String clsName = name.substring(0, name.length() - ".class".length()).replace('\\', '.').replace('/', '.'); + ClassPath.this.infos.add(new Info(file, clsName)); + } + return FileVisitResult.CONTINUE; + } + }); + } + + @Getter + public static class Info { + + private final Path path; + private final String name; + + Info(Path path, String name) { + this.path = path; + this.name = name; + } + + public byte[] readAllBytes() throws IOException { + return Files.readAllBytes(path); + } + + public String packageName() { + int c = name.lastIndexOf('.'); + return c < 0 ? "" : name.substring(0, c); + } + } +} \ No newline at end of file -- 2.51.2 From c0614336e148a9e8393bb13c4e7fcfe0cfad37f3 Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 19:38:56 +0700 Subject: [PATCH 02/11] Add lockpick sounds and fix some issues. --- .../LootableContainerBlockEntityMixin.java | 17 +++++++--------- .../modules/items/lockpick/LockpickItem.java | 20 ++++++++++++++++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java index ffa67e42..514d5ccb 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java @@ -20,19 +20,17 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.util.Formatting; +import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.world.event.GameEvent; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import java.util.List; @Mixin(LootableContainerBlockEntity.class) abstract class LootableContainerBlockEntityMixin extends LockableContainerBlockEntity { - @Unique - private static final GuardedLoot am$guard = ModuleManager.quick(GuardedLoot.class); protected LootableContainerBlockEntityMixin(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { super(blockEntityType, blockPos, blockState); @@ -40,17 +38,16 @@ abstract class LootableContainerBlockEntityMixin extends LockableContainerBlockE @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;isSpectator()Z"), method = "checkUnlocked") private boolean lockedIfMonstersNearby(boolean locked, @Local PlayerEntity player) { - if (am$guard.config().enabled) { - List monster = player.world.getEntitiesByClass(LivingEntity.class, new Box(this.getPos()).expand(am$guard.config().range), Entity::isAlive).stream().filter(livingEntity -> livingEntity instanceof Monster) + GuardedLoot module = ModuleManager.quick(GuardedLoot.class); + if (module.config().enabled) { + List monster = player.world.getEntitiesByClass(LivingEntity.class, new Box(this.getPos()).expand(module.config().range), Entity::isAlive).stream().filter(livingEntity -> livingEntity instanceof Monster) .toList(); if (!monster.isEmpty()) { boolean lockpicking = ModuleManager.get().getModule(Lockpick.class).map(m -> { - if (am$guard.config().allowLockPicking) { - if (player.getMainHandStack().isOf(Content.LOCKPICK.get()) && m.rollLockpick()) { - if (!player.getAbilities().creativeMode && m.config().breakAfterUse) - player.getMainHandStack().decrement(1); - return true; + if (module.config().allowLockPicking) { + if (player.getMainHandStack().isOf(Content.LOCKPICK.orThrow())) { + return Content.LOCKPICK.orThrow().tryUse(m, player.getMainHandStack(), player, Hand.MAIN_HAND); } } return false; diff --git a/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java b/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java index 5a40b1e8..6b19cb36 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java +++ b/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java @@ -2,6 +2,7 @@ package me.melontini.andromeda.modules.items.lockpick; import me.melontini.andromeda.base.ModuleManager; import me.melontini.dark_matter.api.minecraft.util.TextUtil; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.passive.MerchantEntity; import net.minecraft.entity.player.PlayerEntity; @@ -17,15 +18,28 @@ public class LockpickItem extends Item { super(settings); } + public boolean tryUse(Lockpick module, ItemStack stack, LivingEntity user, Hand hand) { + if (module.config().enabled) { + + if (!user.world.isClient()) + user.sendEquipmentBreakStatus(hand == Hand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); + + if (!(user instanceof PlayerEntity p && p.getAbilities().creativeMode) && module.config().breakAfterUse) + stack.decrement(1); + + return module.rollLockpick(); + } + return false; + } + @Override public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { Lockpick module = ModuleManager.quick(Lockpick.class); - if (module.config().enabled && module.rollLockpick()) { - if (entity instanceof MerchantEntity merchant && module.config().villagerInventory) { + if (entity instanceof MerchantEntity merchant && module.config().villagerInventory) { + if (tryUse(module, stack, user, hand)) { if (user.world.isClient()) return ActionResult.SUCCESS; user.openHandledScreen(new SimpleNamedScreenHandlerFactory((syncId, inv, player) -> new MerchantInventoryScreenHandler(syncId, inv, merchant.getInventory()), TextUtil.translatable("gui.andromeda.merchant"))); - if (!user.getAbilities().creativeMode && module.config().breakAfterUse) stack.decrement(1); return ActionResult.SUCCESS; } } -- 2.51.2 From 8d93569903a36774f6b514ca322152dc41e0bc04 Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 19:59:32 +0700 Subject: [PATCH 03/11] Append origin info. --- .../andromeda/base/annotations/Origin.java | 11 +++++++++ .../client/config/AutoConfigScreen.java | 12 ++++++++++ .../world/auto_planting/AutoPlanting.java | 2 ++ .../assets/andromeda/lang/en_us.json | 23 ++++++++++--------- 4 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 src/main/java/me/melontini/andromeda/base/annotations/Origin.java diff --git a/src/main/java/me/melontini/andromeda/base/annotations/Origin.java b/src/main/java/me/melontini/andromeda/base/annotations/Origin.java new file mode 100644 index 00000000..8eb08f20 --- /dev/null +++ b/src/main/java/me/melontini/andromeda/base/annotations/Origin.java @@ -0,0 +1,11 @@ +package me.melontini.andromeda.base.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Origin { + String mod(); + + String author(); +} diff --git a/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java b/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java index 45af5047..ea981275 100644 --- a/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java +++ b/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java @@ -5,6 +5,7 @@ import me.melontini.andromeda.base.Module; import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.Origin; import me.melontini.andromeda.base.config.AndromedaConfig; import me.melontini.andromeda.base.config.Config; import me.melontini.andromeda.common.client.OrderedTextUtil; @@ -72,6 +73,7 @@ public class AutoConfigScreen { setModuleTooltip(e, module); appendEnvInfo(e, module.meta().environment()); } + appendOrigin(e, module); wrapTooltip(e); wrapSaveCallback(e, () -> module.manager().save()); category.addEntry(e); @@ -92,6 +94,7 @@ public class AutoConfigScreen { var e = eb.startSubCategory(TextUtil.translatable("config.andromeda.%s".formatted(module.meta().dotted())), Utilities.cast(list)); var built = e.build(); setModuleTooltip(built, module); + appendOrigin(built, module); appendEnvInfo(built, module.meta().environment()); wrapTooltip(built); category.addEntry(built); @@ -154,6 +157,15 @@ public class AutoConfigScreen { return true; } + private static void appendOrigin(AbstractConfigListEntry e, Module module) { + if (module.getClass().isAnnotationPresent(Origin.class)) { + Origin origin = module.getClass().getAnnotation(Origin.class); + if (e instanceof TooltipListEntry t) { + appendText(t, TextUtil.translatable("andromeda.config.tooltip.origin", origin.mod(), origin.author()).formatted(Formatting.DARK_AQUA)); + } + } + } + private static void appendEnvInfo(AbstractConfigListEntry e, Environment env) { if (e instanceof TooltipListEntry t) { Text text = TextUtil.translatable("andromeda.config.tooltip.environment." + env.toString().toLowerCase()).formatted(Formatting.YELLOW); diff --git a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/AutoPlanting.java b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/AutoPlanting.java index 41b6e185..b6210f0e 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/AutoPlanting.java +++ b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/AutoPlanting.java @@ -5,11 +5,13 @@ import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.Origin; import me.melontini.andromeda.base.config.BasicConfig; import me.shedaniel.autoconfig.annotation.ConfigEntry; import java.util.List; +@Origin(mod = "TinyTweaks", author = "HephaestusDev") @ModuleTooltip(2) @ModuleInfo(name = "auto_planting", category = "world", environment = Environment.SERVER) public class AutoPlanting extends Module { diff --git a/src/main/resources/assets/andromeda/lang/en_us.json b/src/main/resources/assets/andromeda/lang/en_us.json index fd62da65..a41f50fd 100644 --- a/src/main/resources/assets/andromeda/lang/en_us.json +++ b/src/main/resources/assets/andromeda/lang/en_us.json @@ -16,16 +16,6 @@ "death.attack.andromeda_bricked": "%1$s was bricked by %2$s", "andromeda.container.guarded": "Can't open! The container is guarded!", - "andromeda.disconnected.module_mismatch": "Andromeda module mismatch!\nDisable: %s\n Enable: %s\nTo join this server!", - - "andromeda.config.option_manager.reason.andromeda.module_conflict": "Conflicting module enabled!", - "andromeda.config.option_manager.reason.andromeda.iceberg": "Conflicts with Iceberg versions <1.1.13.", - "andromeda.config.option_manager.reason.andromeda.side_only_enabled": "Module disabled in side-only mode!", - - "andromeda.config.tooltip.environment.client": "Client-only feature", - "andromeda.config.tooltip.environment.server": "Server-only feature.", - "andromeda.config.tooltip.environment.both": "Required on both Client and Server.", - "commands.andromeda.damage.invulnerable": "Target is invulnerable to the given damage type", "commands.andromeda.damage.success": "Applied %s damage to %s", @@ -104,13 +94,24 @@ "config.andromeda.title": "Andromeda (%s)", "config.andromeda.option.enabled": "Enabled", + "andromeda.disconnected.module_mismatch": "Andromeda module mismatch!\nDisable: %s\n Enable: %s\nTo join this server!", + + "andromeda.config.option_manager.reason.andromeda.module_conflict": "Conflicting module enabled!", + "andromeda.config.option_manager.reason.andromeda.iceberg": "Conflicts with Iceberg versions <1.1.13.", + "andromeda.config.option_manager.reason.andromeda.side_only_enabled": "Module disabled in side-only mode!", + + "andromeda.config.tooltip.environment.client": "Client-only feature", + "andromeda.config.tooltip.environment.server": "Server-only feature.", + "andromeda.config.tooltip.environment.both": "Required on both Client and Server.", + "andromeda.config.tooltip.origin": "Taken from or based on %s by %s", + "config.andromeda.blocks.campfire_effects.option.Effect": "Effect", "config.andromeda.blocks.campfire_effects.option.Effect.identifier": "Identifier", "config.andromeda.blocks.campfire_effects.option.Effect.amplifier": "Amplifier", "config.andromeda.category.world": "World", "config.andromeda.world.auto_planting": "Self Planting Crops", - "config.andromeda.world.auto_planting.@Tooltip": "If possible, crops will plant themselves after some time. \nTaken from TinyTweaks by HephaestusDev", + "config.andromeda.world.auto_planting.@Tooltip": "If possible, crops will plant themselves after some time.", "config.andromeda.world.auto_planting.option.blacklistMode": "Blacklist Mode", "config.andromeda.world.auto_planting.option.blacklistMode.@Tooltip": "Should the list below act as blacklist", "config.andromeda.world.auto_planting.option.idList": "Item List", -- 2.51.2 From 5a0fdd4ad51b8ee8824bf98aaddf374ed09e8eff Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 20:08:30 +0700 Subject: [PATCH 04/11] Add brick sounds. --- .../data/DefaultBehaviors.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/data/DefaultBehaviors.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/data/DefaultBehaviors.java index c6a7f6f8..f13c6579 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/data/DefaultBehaviors.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/data/DefaultBehaviors.java @@ -47,7 +47,7 @@ public class DefaultBehaviors implements Runnable { @Override public void run() { - ItemBehaviorManager.addBehavior(Items.BONE_MEAL, (stack, flyingItemEntity, world, user, hitResult) -> { + ItemBehaviorManager.addBehavior(Items.BONE_MEAL, (stack, fie, world, user, hitResult) -> { if (hitResult.getType() == HitResult.Type.BLOCK) { BlockHitResult result = (BlockHitResult) hitResult; @@ -58,15 +58,15 @@ public class DefaultBehaviors implements Runnable { } }); - ItemBehaviorManager.addBehavior(Items.INK_SAC, (stack, flyingItemEntity, world, user, hitResult) -> + ItemBehaviorManager.addBehavior(Items.INK_SAC, (stack, fie, world, user, hitResult) -> addEffects(hitResult, user, new StatusEffectInstance(StatusEffects.BLINDNESS, 100, 0))); - ItemBehaviorManager.addBehavior(Items.GLOW_INK_SAC, (stack, flyingItemEntity, world, user, hitResult) -> + ItemBehaviorManager.addBehavior(Items.GLOW_INK_SAC, (stack, fie, world, user, hitResult) -> addEffects(hitResult, user, new StatusEffectInstance(StatusEffects.BLINDNESS, 100, 0), new StatusEffectInstance(StatusEffects.GLOWING, 100, 0))); for (Item item : DYE_ITEMS) { - ItemBehaviorManager.addBehavior(item, (stack, flyingItemEntity, world, user, hitResult) -> { + ItemBehaviorManager.addBehavior(item, (stack, fie, world, user, hitResult) -> { PacketByteBuf buf = PacketByteBufs.create(); buf.writeItemStack(stack); @@ -86,7 +86,7 @@ public class DefaultBehaviors implements Runnable { }); } - ItemBehaviorManager.addBehaviors((stack, flyingItemEntity, world, user, hitResult) -> { + ItemBehaviorManager.addBehaviors((stack, fie, world, user, hitResult) -> { if (hitResult.getType() == HitResult.Type.ENTITY) { Entity entity = ((EntityHitResult) hitResult).getEntity(); entity.damage(Content.bricked(user), 2); @@ -97,10 +97,11 @@ public class DefaultBehaviors implements Runnable { angerable.setTarget(livingEntity); } } - world.spawnEntity(new ItemEntity(world, flyingItemEntity.getX(), flyingItemEntity.getY(), flyingItemEntity.getZ(), stack)); + world.playSound(null, fie.getX(), fie.getY(), fie.getZ(), SoundEvents.BLOCK_STONE_FALL, SoundCategory.AMBIENT, (float) (fie.getVelocity().normalize().length() * 1.5), 1, world.getRandom().nextLong()); + world.spawnEntity(new ItemEntity(world, fie.getX(), fie.getY(), fie.getZ(), stack)); }, Items.BRICK, Items.NETHER_BRICK); - ItemBehaviorManager.addBehavior(Items.FIRE_CHARGE, (stack, flyingItemEntity, world, user, hitResult) -> { + ItemBehaviorManager.addBehavior(Items.FIRE_CHARGE, (stack, fie, world, user, hitResult) -> { if (hitResult.getType() == HitResult.Type.BLOCK) { BlockHitResult result = (BlockHitResult) hitResult; BlockPos blockPos = result.getBlockPos(); @@ -118,19 +119,19 @@ public class DefaultBehaviors implements Runnable { } Random random = world.getRandom(); - world.playSound(null, flyingItemEntity.getBlockPos(), SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F); + world.playSound(null, fie.getBlockPos(), SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F); } else if (hitResult.getType() == HitResult.Type.ENTITY) { EntityHitResult result = (EntityHitResult) hitResult; Entity entity = result.getEntity(); if (entity instanceof LivingEntity livingEntity) - livingEntity.takeKnockback(0.4, -flyingItemEntity.getVelocity().getX(), -flyingItemEntity.getVelocity().getZ()); + livingEntity.takeKnockback(0.4, -fie.getVelocity().getX(), -fie.getVelocity().getZ()); entity.setOnFireFor(8); Random random = world.getRandom(); - world.playSound(null, flyingItemEntity.getBlockPos(), SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F); + world.playSound(null, fie.getBlockPos(), SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 1.0F, (random.nextFloat() - random.nextFloat()) * 0.2F + 1.0F); } }); - ItemBehaviorManager.addBehavior(Items.GUNPOWDER, (stack, flyingItemEntity, world, user, hitResult) -> world.createExplosion(user, flyingItemEntity.getX(), flyingItemEntity.getY(), flyingItemEntity.getZ(), 1, Explosion.DestructionType.BREAK)); + ItemBehaviorManager.addBehavior(Items.GUNPOWDER, (stack, fie, world, user, hitResult) -> world.createExplosion(user, fie.getX(), fie.getY(), fie.getZ(), 1, Explosion.DestructionType.BREAK)); } public static void addEffects(HitResult hitResult, Entity user, StatusEffectInstance... instances) { -- 2.51.2 From 7a1a23798ca1106e7da7958ac47bef4b9749a1da Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 20:17:40 +0700 Subject: [PATCH 05/11] Merge environment annotations --- .../melontini/andromeda/base/MixinProcessor.java | 15 ++++++++++----- .../base/annotations/MixinEnvironment.java | 15 --------------- ...reEnvironment.java => SpecialEnvironment.java} | 3 +-- .../common/client/config/AutoConfigScreen.java | 6 +++--- .../modules/blocks/incubator/Incubator.java | 4 ++-- .../AlignedRecipeAlternatives.java | 4 ++-- .../andromeda/modules/entities/boats/Boats.java | 10 +++++----- .../modules/entities/minecarts/Minecarts.java | 10 +++++----- .../balanced_mending/mixin/AnvilScreenMixin.java | 6 +++--- .../mechanics/throwable_items/ThrowableItems.java | 8 ++++---- .../mixin/nice_level/LevelLoadingScreenMixin.java | 6 +++--- .../unknown/mixin/useless_info/DebugHudMixin.java | 6 +++--- .../mixin/useless_info/TitleScreenMixin.java | 6 +++--- 13 files changed, 44 insertions(+), 55 deletions(-) delete mode 100644 src/main/java/me/melontini/andromeda/base/annotations/MixinEnvironment.java rename src/main/java/me/melontini/andromeda/base/annotations/{FeatureEnvironment.java => SpecialEnvironment.java} (87%) diff --git a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java index ee7fc9f4..6ff8bb2e 100644 --- a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java +++ b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java @@ -2,7 +2,7 @@ package me.melontini.andromeda.base; import com.google.gson.JsonObject; import lombok.CustomLog; -import me.melontini.andromeda.base.annotations.MixinEnvironment; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.util.CommonValues; import me.melontini.andromeda.util.exceptions.MixinVerifyError; import me.melontini.dark_matter.api.base.reflect.wrappers.GenericField; @@ -36,11 +36,16 @@ public class MixinProcessor { public static boolean checkNode(ClassNode n) { boolean load = true; - AnnotationNode envNode = Annotations.getVisible(n, MixinEnvironment.class); + AnnotationNode envNode = Annotations.getVisible(n, SpecialEnvironment.class); if (envNode != null) { - EnvType value = AsmUtil.getAnnotationValue(envNode, "value", null); + Environment value = AsmUtil.getAnnotationValue(envNode, "value", Environment.BOTH); if (value != null) { - if (value != CommonValues.environment()) return false; + return switch (value) { + case SERVER -> CommonValues.environment().equals(EnvType.SERVER); + case CLIENT -> CommonValues.environment().equals(EnvType.CLIENT); + case ANY -> true; + default -> throw new IllegalStateException(value.toString()); + }; } } @@ -135,7 +140,7 @@ public class MixinProcessor { @SuppressWarnings("UnstableApiUsage") public static class Plugin extends ExtendablePlugin { - private static final String MIXIN_ENVIRONMENT_ANNOTATION = "L" + MixinEnvironment.class.getName().replace(".", "/") + ";"; + private static final String MIXIN_ENVIRONMENT_ANNOTATION = "L" + SpecialEnvironment.class.getName().replace(".", "/") + ";"; private String mixinPackage; diff --git a/src/main/java/me/melontini/andromeda/base/annotations/MixinEnvironment.java b/src/main/java/me/melontini/andromeda/base/annotations/MixinEnvironment.java deleted file mode 100644 index 115fa008..00000000 --- a/src/main/java/me/melontini/andromeda/base/annotations/MixinEnvironment.java +++ /dev/null @@ -1,15 +0,0 @@ -package me.melontini.andromeda.base.annotations; - -import net.fabricmc.api.EnvType; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -//shouldApply is called before getMixins -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface MixinEnvironment { - EnvType value(); -} diff --git a/src/main/java/me/melontini/andromeda/base/annotations/FeatureEnvironment.java b/src/main/java/me/melontini/andromeda/base/annotations/SpecialEnvironment.java similarity index 87% rename from src/main/java/me/melontini/andromeda/base/annotations/FeatureEnvironment.java rename to src/main/java/me/melontini/andromeda/base/annotations/SpecialEnvironment.java index 66cef3e5..526e822f 100644 --- a/src/main/java/me/melontini/andromeda/base/annotations/FeatureEnvironment.java +++ b/src/main/java/me/melontini/andromeda/base/annotations/SpecialEnvironment.java @@ -6,7 +6,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) -public @interface FeatureEnvironment { - +public @interface SpecialEnvironment { Environment value() default Environment.BOTH; } diff --git a/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java b/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java index ea981275..26892adb 100644 --- a/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java +++ b/src/main/java/me/melontini/andromeda/common/client/config/AutoConfigScreen.java @@ -3,9 +3,9 @@ package me.melontini.andromeda.common.client.config; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleTooltip; import me.melontini.andromeda.base.annotations.Origin; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.base.config.AndromedaConfig; import me.melontini.andromeda.base.config.Config; import me.melontini.andromeda.common.client.OrderedTextUtil; @@ -174,8 +174,8 @@ public class AutoConfigScreen { } private static void appendEnvInfo(AbstractConfigListEntry e, Field f) { - if (f.isAnnotationPresent(FeatureEnvironment.class) && e instanceof TooltipListEntry t) { - FeatureEnvironment env = f.getAnnotation(FeatureEnvironment.class); + if (f.isAnnotationPresent(SpecialEnvironment.class) && e instanceof TooltipListEntry t) { + SpecialEnvironment env = f.getAnnotation(SpecialEnvironment.class); Text text = TextUtil.translatable("andromeda.config.tooltip.environment." + env.value().toString().toLowerCase()).formatted(Formatting.YELLOW); appendText(t, text); } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Incubator.java b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Incubator.java index 8d280efe..ab2d949a 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Incubator.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Incubator.java @@ -2,9 +2,9 @@ package me.melontini.andromeda.modules.blocks.incubator; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.base.config.BasicConfig; import me.melontini.andromeda.common.registries.Common; import me.melontini.andromeda.modules.blocks.incubator.data.EggProcessingData; @@ -27,7 +27,7 @@ public class Incubator extends Module { public static class Config extends BasicConfig { @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.SERVER) + @SpecialEnvironment(Environment.SERVER) public boolean randomness = true; } } diff --git a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/AlignedRecipeAlternatives.java b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/AlignedRecipeAlternatives.java index 677a800e..332227b7 100644 --- a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/AlignedRecipeAlternatives.java +++ b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/AlignedRecipeAlternatives.java @@ -2,12 +2,12 @@ package me.melontini.andromeda.modules.bugfixes.aligned_alternatives; import me.melontini.andromeda.base.BasicModule; import me.melontini.andromeda.base.Environment; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; @ModuleTooltip -@FeatureEnvironment(Environment.CLIENT) +@SpecialEnvironment(Environment.CLIENT) @ModuleInfo(name = "aligned_alternatives", category = "bugfixes", environment = Environment.CLIENT) public class AlignedRecipeAlternatives extends BasicModule { diff --git a/src/main/java/me/melontini/andromeda/modules/entities/boats/Boats.java b/src/main/java/me/melontini/andromeda/modules/entities/boats/Boats.java index 015689c9..0035eb95 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/boats/Boats.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/boats/Boats.java @@ -2,9 +2,9 @@ package me.melontini.andromeda.modules.entities.boats; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.base.config.BasicConfig; import me.melontini.andromeda.common.registries.Common; import me.shedaniel.autoconfig.annotation.ConfigEntry; @@ -26,19 +26,19 @@ public class Boats extends Module { public static class Config extends BasicConfig { @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isFurnaceBoatOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isTNTBoatOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isJukeboxBoatOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isHopperBoatOn = false; } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/minecarts/Minecarts.java b/src/main/java/me/melontini/andromeda/modules/entities/minecarts/Minecarts.java index 989f843e..7c884d87 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/minecarts/Minecarts.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/minecarts/Minecarts.java @@ -2,9 +2,9 @@ package me.melontini.andromeda.modules.entities.minecarts; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.base.config.BasicConfig; import me.melontini.andromeda.common.registries.Common; import me.shedaniel.autoconfig.annotation.ConfigEntry; @@ -26,19 +26,19 @@ public class Minecarts extends Module { public static class Config extends BasicConfig { @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isAnvilMinecartOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isNoteBlockMinecartOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isJukeboxMinecartOn = false; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean isSpawnerMinecartOn = false; } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java index 1b7166da..ea229679 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java @@ -1,10 +1,10 @@ package me.melontini.andromeda.modules.items.balanced_mending.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.base.annotations.MixinEnvironment; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.modules.items.balanced_mending.BalancedMending; -import net.fabricmc.api.EnvType; import net.minecraft.client.gui.screen.ingame.AnvilScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.enchantment.EnchantmentHelper; @@ -17,7 +17,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; -@MixinEnvironment(EnvType.CLIENT) +@SpecialEnvironment(Environment.CLIENT) @Mixin(AnvilScreen.class) abstract class AnvilScreenMixin extends HandledScreen { @Unique diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/ThrowableItems.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/ThrowableItems.java index 2ff793af..df3706f3 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/ThrowableItems.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/ThrowableItems.java @@ -2,9 +2,9 @@ package me.melontini.andromeda.modules.mechanics.throwable_items; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.Module; -import me.melontini.andromeda.base.annotations.FeatureEnvironment; import me.melontini.andromeda.base.annotations.ModuleInfo; import me.melontini.andromeda.base.annotations.ModuleTooltip; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.base.config.BasicConfig; import me.melontini.andromeda.common.registries.Common; import me.melontini.andromeda.modules.mechanics.throwable_items.data.ItemBehaviorData; @@ -27,14 +27,14 @@ public class ThrowableItems extends Module { public static class Config extends BasicConfig { @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.SERVER) + @SpecialEnvironment(Environment.SERVER) public boolean canZombiesThrowItems = true; @ConfigEntry.Gui.Tooltip - @FeatureEnvironment(Environment.SERVER) + @SpecialEnvironment(Environment.SERVER) public int zombieThrowInterval = 40; - @FeatureEnvironment(Environment.BOTH) + @SpecialEnvironment(Environment.BOTH) public boolean tooltip = true; } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java index 033a1239..14fd4fff 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java @@ -1,10 +1,10 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.nice_level; import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.base.annotations.MixinEnvironment; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.modules.misc.unknown.Unknown; -import net.fabricmc.api.EnvType; import net.minecraft.client.gui.screen.LevelLoadingScreen; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.At; import java.util.Objects; -@MixinEnvironment(EnvType.CLIENT) +@SpecialEnvironment(Environment.CLIENT) @Mixin(LevelLoadingScreen.class) class LevelLoadingScreenMixin { @Unique diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java index 0b035b5e..2baa148d 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java @@ -1,10 +1,10 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.useless_info; import com.llamalad7.mixinextras.sugar.Local; +import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.base.annotations.MixinEnvironment; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.modules.misc.unknown.Unknown; -import net.fabricmc.api.EnvType; import net.minecraft.client.gui.hud.DebugHud; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import java.util.List; -@MixinEnvironment(EnvType.CLIENT) +@SpecialEnvironment(Environment.CLIENT) @Mixin(DebugHud.class) class DebugHudMixin { @Unique diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/TitleScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/TitleScreenMixin.java index fd0e86c1..28ed94fe 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/TitleScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/TitleScreenMixin.java @@ -1,8 +1,8 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.useless_info; -import me.melontini.andromeda.base.annotations.MixinEnvironment; +import me.melontini.andromeda.base.Environment; +import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.modules.misc.unknown.Unknown; -import net.fabricmc.api.EnvType; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.text.Text; @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@MixinEnvironment(EnvType.CLIENT) +@SpecialEnvironment(Environment.CLIENT) @Mixin(TitleScreen.class) class TitleScreenMixin extends Screen { protected TitleScreenMixin(Text title) { -- 2.51.2 From 237bf394f348bf3b728852735b3f8abedf75a7d8 Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 20:20:33 +0700 Subject: [PATCH 06/11] Set cooldown before decrementing --- .../mechanics/throwable_items/mixin/ItemStackMixin.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java index 89a9b904..0cd86341 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java @@ -24,8 +24,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ItemStack.class) abstract class ItemStackMixin { - @Unique - private static final ThrowableItems am$thritm = ModuleManager.quick(ThrowableItems.class); @Shadow public abstract Item getItem(); @Shadow public abstract void decrement(int amount); @@ -51,7 +49,7 @@ abstract class ItemStackMixin { @Unique private boolean andromeda$runBehaviors(World world, PlayerEntity user) { - if (!am$thritm.config().enabled) return false; + if (!ModuleManager.quick(ThrowableItems.class).config().enabled) return false; world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.random.nextFloat() * 0.4F + 0.8F)); if (!world.isClient) { @@ -61,12 +59,12 @@ abstract class ItemStackMixin { world.spawnEntity(entity); } + user.getItemCooldownManager().set(getItem(), ItemBehaviorManager.getCooldown(getItem())); user.incrementStat(Stats.USED.getOrCreateStat(getItem())); + if (!user.getAbilities().creativeMode) { this.decrement(1); } - - user.getItemCooldownManager().set(getItem(), ItemBehaviorManager.getCooldown(getItem())); return true; } } -- 2.51.2 From b4f181baaafdee7c842934c17cb8b06deb5b9a1a Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 20:23:41 +0700 Subject: [PATCH 07/11] Move `testModVersion` to Bootstrap --- .../melontini/andromeda/base/Bootstrap.java | 21 +++++++++++++++---- .../ItemFrameTooltips.java | 2 +- .../gui/name_tooltips/NameTooltips.java | 2 +- .../me/melontini/andromeda/util/MiscUtil.java | 19 ----------------- 4 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/base/Bootstrap.java b/src/main/java/me/melontini/andromeda/base/Bootstrap.java index c3713b2f..d171fee0 100644 --- a/src/main/java/me/melontini/andromeda/base/Bootstrap.java +++ b/src/main/java/me/melontini/andromeda/base/Bootstrap.java @@ -13,15 +13,15 @@ import me.melontini.dark_matter.api.base.util.Utilities; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.ModContainer; +import net.fabricmc.loader.api.VersionParsingException; +import net.fabricmc.loader.api.metadata.version.VersionPredicate; import org.spongepowered.asm.mixin.Mixins; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.ServiceLoader; +import java.util.*; @CustomLog public class Bootstrap { @@ -100,4 +100,17 @@ public class Bootstrap { public static ClassPath getModuleClassPath() { return CLASS_PATH; } + + public static boolean testModVersion(String modId, String predicate) { + Optional mod = FabricLoader.getInstance().getModContainer(modId); + if (mod.isPresent()) { + try { + VersionPredicate version = VersionPredicate.parse(predicate); + return version.test(mod.get().getMetadata().getVersion()); + } catch (VersionParsingException e) { + return false; + } + } + return false; + } } diff --git a/src/main/java/me/melontini/andromeda/modules/gui/item_frame_tooltips/ItemFrameTooltips.java b/src/main/java/me/melontini/andromeda/modules/gui/item_frame_tooltips/ItemFrameTooltips.java index d51400d0..cc56f77c 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/item_frame_tooltips/ItemFrameTooltips.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/item_frame_tooltips/ItemFrameTooltips.java @@ -10,7 +10,7 @@ import me.melontini.dark_matter.api.config.ConfigBuilder; import java.util.Map; -import static me.melontini.andromeda.util.MiscUtil.testModVersion; +import static me.melontini.andromeda.base.Bootstrap.testModVersion; @SuppressWarnings("UnstableApiUsage") @ModuleTooltip diff --git a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/NameTooltips.java b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/NameTooltips.java index c31ec31e..f167aa14 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/NameTooltips.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/NameTooltips.java @@ -10,7 +10,7 @@ import me.melontini.dark_matter.api.config.ConfigBuilder; import java.util.Map; -import static me.melontini.andromeda.util.MiscUtil.testModVersion; +import static me.melontini.andromeda.base.Bootstrap.testModVersion; @SuppressWarnings("UnstableApiUsage") @ModuleTooltip diff --git a/src/main/java/me/melontini/andromeda/util/MiscUtil.java b/src/main/java/me/melontini/andromeda/util/MiscUtil.java index b149b589..a555bb42 100644 --- a/src/main/java/me/melontini/andromeda/util/MiscUtil.java +++ b/src/main/java/me/melontini/andromeda/util/MiscUtil.java @@ -1,29 +1,10 @@ package me.melontini.andromeda.util; -import net.fabricmc.loader.api.FabricLoader; -import net.fabricmc.loader.api.ModContainer; -import net.fabricmc.loader.api.VersionParsingException; -import net.fabricmc.loader.api.metadata.version.VersionPredicate; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; -import java.util.Optional; - public class MiscUtil { - public static boolean testModVersion(String modId, String predicate) { - Optional mod = FabricLoader.getInstance().getModContainer(modId); - if (mod.isPresent()) { - try { - VersionPredicate version = VersionPredicate.parse(predicate); - return version.test(mod.get().getMetadata().getVersion()); - } catch (VersionParsingException e) { - return false; - } - } - return false; - } - public static double horizontalDistanceTo(Vec3d owner, Vec3d target) { double d = target.x - owner.x; double f = target.z - owner.z; -- 2.51.2 From dc0594214991398da76e23148f6a785eaea1123f Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 22:28:41 +0700 Subject: [PATCH 08/11] Implement some debug stuff. About time lol --- .../me/melontini/andromeda/base/Debug.java | 57 +++++++++++++++++++ .../andromeda/base/MixinProcessor.java | 3 +- .../andromeda/base/ModuleManager.java | 5 +- .../base/config/AndromedaConfig.java | 3 - .../melontini/andromeda/common/Andromeda.java | 3 + .../andromeda/common/DebugTracker.java | 47 +++++++++++++++ .../client/config/ModMenuIntegration.java | 18 +++++- .../andromeda/util/AndromedaLog.java | 8 +-- .../andromeda/util/mixin/ErrorHandler.java | 3 + 9 files changed, 135 insertions(+), 12 deletions(-) create mode 100644 src/main/java/me/melontini/andromeda/base/Debug.java create mode 100644 src/main/java/me/melontini/andromeda/common/DebugTracker.java diff --git a/src/main/java/me/melontini/andromeda/base/Debug.java b/src/main/java/me/melontini/andromeda/base/Debug.java new file mode 100644 index 00000000..8a2ee7dc --- /dev/null +++ b/src/main/java/me/melontini/andromeda/base/Debug.java @@ -0,0 +1,57 @@ +package me.melontini.andromeda.base; + +import lombok.CustomLog; +import me.melontini.andromeda.util.CommonValues; +import me.melontini.dark_matter.api.config.ConfigBuilder; +import me.melontini.dark_matter.api.config.ConfigManager; +import net.fabricmc.loader.api.FabricLoader; +import org.intellij.lang.annotations.MagicConstant; + +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; + +@CustomLog +@SuppressWarnings("UnstableApiUsage") +public class Debug { + + private static final ConfigManager MANAGER = ConfigBuilder + .create(Holder.class, CommonValues.mod(), "andromeda/debug") + .constructor(Holder::new) + .postSave(manager -> { + if (manager.getConfig().keys.contains(Keys.PRINT_DEBUG_KEYS)) { + LOGGER.info(Arrays.toString(manager.getConfig().keys.toArray())); + } + }) + .build(); + + public static boolean hasKey(@MagicConstant(valuesFromClass = Keys.class) String key) { + return MANAGER.getConfig().keys.contains(key); + } + + public static void load() { + MANAGER.load(); + } + + private static class Holder { + Set keys = new LinkedHashSet<>(); + + Holder() { + if (FabricLoader.getInstance().isDevelopmentEnvironment()) { + this.keys.add(Keys.PRINT_DEBUG_MESSAGES); + this.keys.add(Keys.VERIFY_MIXINS); + this.keys.add(Keys.DISPLAY_TRACKED_VALUES); + } + } + } + + public static class Keys { + public static final String PRINT_DEBUG_KEYS = "printDebugKeys"; + public static final String VERIFY_MIXINS = "verifyMixins"; + public static final String PRINT_DEBUG_MESSAGES = "printDebugMessages"; + public static final String SKIP_MIXIN_ERROR_HANDLER = "skipMixinErrorHandler"; + public static final String SKIP_SERVER_MODULE_CHECK = "skipServerModuleCheck"; + public static final String DISPLAY_TRACKED_VALUES = "displayTrackedValues"; + public static final String ENABLE_ALL_MODULES = "enableAllModules"; + } +} diff --git a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java index 6ff8bb2e..1d4a17fa 100644 --- a/src/main/java/me/melontini/andromeda/base/MixinProcessor.java +++ b/src/main/java/me/melontini/andromeda/base/MixinProcessor.java @@ -12,7 +12,6 @@ import me.melontini.dark_matter.api.base.util.mixin.AsmUtil; import me.melontini.dark_matter.api.base.util.mixin.ExtendablePlugin; import me.melontini.dark_matter.api.base.util.mixin.IPluginPlugin; import net.fabricmc.api.EnvType; -import net.fabricmc.loader.api.FabricLoader; import org.objectweb.asm.ClassReader; import org.objectweb.asm.tree.AnnotationNode; import org.objectweb.asm.tree.ClassNode; @@ -49,7 +48,7 @@ public class MixinProcessor { } } - if (FabricLoader.getInstance().isDevelopmentEnvironment()) verifyMixin(n, n.name); + if (Debug.hasKey(Debug.Keys.VERIFY_MIXINS)) verifyMixin(n, n.name); return load; } diff --git a/src/main/java/me/melontini/andromeda/base/ModuleManager.java b/src/main/java/me/melontini/andromeda/base/ModuleManager.java index f775ffcb..25de50e9 100644 --- a/src/main/java/me/melontini/andromeda/base/ModuleManager.java +++ b/src/main/java/me/melontini/andromeda/base/ModuleManager.java @@ -67,9 +67,9 @@ public class ModuleManager { sorted.forEach(module -> module.manager().save()); this.modules = ImmutableMap.copyOf(Utilities.consume(new LinkedHashMap<>(), map -> - sorted.forEach(module -> {if (module.enabled()) map.put(module.getClass(), module);}))); + sorted.forEach(module -> {if (module.enabled() || Debug.hasKey(Debug.Keys.ENABLE_ALL_MODULES)) map.put(module.getClass(), module);}))); this.moduleNames = ImmutableMap.copyOf(Utilities.consume(new HashMap<>(), map -> - sorted.forEach(module -> {if (module.enabled()) map.put(module.meta().id(), module);}))); + sorted.forEach(module -> {if (module.enabled() || Debug.hasKey(Debug.Keys.ENABLE_ALL_MODULES)) map.put(module.meta().id(), module);}))); cleanConfigs(); } @@ -103,6 +103,7 @@ public class ModuleManager { private void cleanConfigs() { Set paths = new HashSet<>(); paths.add(FabricLoader.getInstance().getConfigDir().resolve("andromeda/mod.json")); + paths.add(FabricLoader.getInstance().getConfigDir().resolve("andromeda/debug.json")); configs.values().forEach(m -> paths.add(m.get().getSerializer().getPath())); Utilities.runUnchecked(() -> Files.walkFileTree(FabricLoader.getInstance().getConfigDir().resolve("andromeda"), new SimpleFileVisitor<>() { @Override diff --git a/src/main/java/me/melontini/andromeda/base/config/AndromedaConfig.java b/src/main/java/me/melontini/andromeda/base/config/AndromedaConfig.java index 079b5bc9..7db17128 100644 --- a/src/main/java/me/melontini/andromeda/base/config/AndromedaConfig.java +++ b/src/main/java/me/melontini/andromeda/base/config/AndromedaConfig.java @@ -10,7 +10,4 @@ public class AndromedaConfig { @ConfigEntry.Gui.Tooltip public boolean sendCrashReports = true; - - @ConfigEntry.Gui.Tooltip - public boolean debugMessages = false; } diff --git a/src/main/java/me/melontini/andromeda/common/Andromeda.java b/src/main/java/me/melontini/andromeda/common/Andromeda.java index cad520ff..6c179571 100644 --- a/src/main/java/me/melontini/andromeda/common/Andromeda.java +++ b/src/main/java/me/melontini/andromeda/common/Andromeda.java @@ -1,5 +1,6 @@ package me.melontini.andromeda.common;//common between modules, not environments. +import me.melontini.andromeda.base.Debug; import me.melontini.andromeda.base.Environment; import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.base.config.Config; @@ -35,6 +36,8 @@ public class Andromeda { if (!Config.get().sideOnlyMode) { ServerLoginNetworking.registerGlobalReceiver(AndromedaPackets.VERIFY_MODULES, (server, handler, understood, buf, synchronizer, responseSender) -> { + if (Debug.hasKey(Debug.Keys.SKIP_SERVER_MODULE_CHECK)) return; + Set modules = ModuleManager.get().loaded().stream().filter(m -> m.meta().environment() == Environment.BOTH).map(m -> m.meta().id()).collect(Collectors.toSet()); if (!understood) { if (!modules.isEmpty()) diff --git a/src/main/java/me/melontini/andromeda/common/DebugTracker.java b/src/main/java/me/melontini/andromeda/common/DebugTracker.java new file mode 100644 index 00000000..a549f170 --- /dev/null +++ b/src/main/java/me/melontini/andromeda/common/DebugTracker.java @@ -0,0 +1,47 @@ +package me.melontini.andromeda.common; + +import me.melontini.andromeda.base.Debug; +import me.melontini.dark_matter.api.minecraft.debug.ValueTracker; +import org.jetbrains.annotations.NotNull; + +import java.lang.reflect.Field; +import java.time.Duration; +import java.util.function.Supplier; + +@SuppressWarnings("UnstableApiUsage") +public class DebugTracker { + + public static void addTracker(@NotNull String s, @NotNull Supplier supplier) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, supplier); + } + + public static void addTracker(@NotNull String s, @NotNull Supplier supplier, @NotNull Duration duration) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, supplier, duration); + } + + public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Object o) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, f, o); + } + + public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Object o, @NotNull Duration duration) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, f, o, duration); + } + + public static void addTracker(@NotNull String s, @NotNull Field f) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, f); + } + + public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Duration duration) { + if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) + ValueTracker.addTracker(s, f, duration); + } + + public static void removeTracker(@NotNull String s) { + ValueTracker.removeTracker(s); + } +} diff --git a/src/main/java/me/melontini/andromeda/common/client/config/ModMenuIntegration.java b/src/main/java/me/melontini/andromeda/common/client/config/ModMenuIntegration.java index f79d5cf9..9efd23ae 100644 --- a/src/main/java/me/melontini/andromeda/common/client/config/ModMenuIntegration.java +++ b/src/main/java/me/melontini/andromeda/common/client/config/ModMenuIntegration.java @@ -2,6 +2,10 @@ package me.melontini.andromeda.common.client.config; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; +import me.melontini.andromeda.base.Debug; +import me.melontini.andromeda.util.AndromedaLog; +import me.melontini.dark_matter.api.base.util.Support; +import me.melontini.dark_matter.api.glitter.ScreenParticleHelper; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; @@ -10,6 +14,8 @@ import net.minecraft.client.gui.Element; import net.minecraft.client.gui.Selectable; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.TexturedButtonWidget; +import net.minecraft.client.util.InputUtil; +import net.minecraft.particle.ParticleTypes; import net.minecraft.text.ClickEvent; import net.minecraft.text.Style; import net.minecraft.util.Identifier; @@ -27,7 +33,17 @@ public class ModMenuIntegration implements ModMenuApi { return parent -> AutoConfigScreen.get(parent).map(screen1 -> { ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> { if (screen == screen1) { - addDrawableChild(screen, new TexturedButtonWidget(screen.width - 40, 13, 20, 20, 0, 0, 20, WIKI_BUTTON_TEXTURE, 32, 64, button -> screen.handleTextClick(WIKI_LINK))); + addDrawableChild(screen, new TexturedButtonWidget(screen.width - 40, 13, 20, 20, 0, 0, 20, WIKI_BUTTON_TEXTURE, 32, 64, button -> { + if (InputUtil.isKeyPressed(client.getWindow().getHandle(), InputUtil.GLFW_KEY_LEFT_SHIFT)) { + Debug.load(); + Support.runWeak(EnvType.CLIENT, () -> () -> ScreenParticleHelper.addScreenParticles( + ParticleTypes.ANGRY_VILLAGER, screen.width - 30, 23, 0.5, 0.5, 0.5, 1 + )); + AndromedaLog.info("Reloaded Debug Keys!"); + } else { + screen.handleTextClick(WIKI_LINK); + } + })); } }); return screen1; diff --git a/src/main/java/me/melontini/andromeda/util/AndromedaLog.java b/src/main/java/me/melontini/andromeda/util/AndromedaLog.java index 12fd2ffb..02ec3b81 100644 --- a/src/main/java/me/melontini/andromeda/util/AndromedaLog.java +++ b/src/main/java/me/melontini/andromeda/util/AndromedaLog.java @@ -1,6 +1,6 @@ package me.melontini.andromeda.util; -import me.melontini.andromeda.base.config.Config; +import me.melontini.andromeda.base.Debug; import me.melontini.dark_matter.api.base.util.PrependingLogger; import me.melontini.dark_matter.api.base.util.Utilities; @@ -28,17 +28,17 @@ public class AndromedaLog { } public static void devInfo(String msg) { - if (Config.get().debugMessages) { + if (Debug.hasKey(Debug.Keys.PRINT_DEBUG_MESSAGES)) { LOGGER.info(msg); } } public static void devInfo(Object object) { - if (Config.get().debugMessages) { + if (Debug.hasKey(Debug.Keys.PRINT_DEBUG_MESSAGES)) { LOGGER.info(object); } } public static void devInfo(String msg, Object... params) { - if (Config.get().debugMessages) { + if (Debug.hasKey(Debug.Keys.PRINT_DEBUG_MESSAGES)) { LOGGER.info(msg, params); } } diff --git a/src/main/java/me/melontini/andromeda/util/mixin/ErrorHandler.java b/src/main/java/me/melontini/andromeda/util/mixin/ErrorHandler.java index a03562e0..a35669a9 100644 --- a/src/main/java/me/melontini/andromeda/util/mixin/ErrorHandler.java +++ b/src/main/java/me/melontini/andromeda/util/mixin/ErrorHandler.java @@ -1,6 +1,7 @@ package me.melontini.andromeda.util.mixin; import lombok.CustomLog; +import me.melontini.andromeda.base.Debug; import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.util.AndromedaLog; import me.melontini.andromeda.util.CrashHandler; @@ -24,6 +25,8 @@ public class ErrorHandler implements IMixinErrorHandler { } private static ErrorAction handleMixinError(String phase, Throwable th, IMixinInfo mixin, ErrorAction action) { + if (Debug.hasKey(Debug.Keys.SKIP_MIXIN_ERROR_HANDLER)) return action; + if (action == ErrorAction.ERROR) { if (mixin.getClassName().startsWith("me.melontini.andromeda") && !(th instanceof MixinVerifyError)) CrashHandler.handleCrash(true, th, "Failed to " + phase + " " + mixin.getClassName(), FabricLoader.getInstance().getEnvironmentType()); -- 2.51.2 From 9618a7a80b062b72e8d409eac84dd5fca80bc985 Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 22:37:42 +0700 Subject: [PATCH 09/11] Skip what might be inner classes --- src/main/java/me/melontini/andromeda/util/ClassPath.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/melontini/andromeda/util/ClassPath.java b/src/main/java/me/melontini/andromeda/util/ClassPath.java index 40a7c0a8..afd62d98 100644 --- a/src/main/java/me/melontini/andromeda/util/ClassPath.java +++ b/src/main/java/me/melontini/andromeda/util/ClassPath.java @@ -90,7 +90,7 @@ public final class ClassPath { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { String name = path.relativize(file).toString(); - if (name.endsWith(".class")) { + if (name.endsWith(".class") && !name.contains("$")) { String clsName = name.substring(0, name.length() - ".class".length()).replace('\\', '.').replace('/', '.'); ClassPath.this.infos.add(new Info(file, clsName)); } -- 2.51.2 From 4d900ed52d571a5339e5a4a6e39bfc2f3b64020e Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 22:59:55 +0700 Subject: [PATCH 10/11] Fix some stuff and mark `enabled` as internal --- .../melontini/andromeda/base/ModuleManager.java | 10 ++++++++-- .../andromeda/base/config/BasicConfig.java | 2 ++ .../melontini/andromeda/common/DebugTracker.java | 16 +++++++++------- .../common/registries/AndromedaItemGroup.java | 6 +++++- .../blocks/bed/power/mixin/BedBlockMixin.java | 2 +- .../blocks/bed/safe/mixin/BedBlockMixin.java | 2 +- .../blocks/bed/unsafe/mixin/BedBlockMixin.java | 2 +- .../blocks/better_fletching_table/Content.java | 2 +- .../mixin/BowItemMixin.java | 2 +- .../mixin/FletchingTableBlockMixin.java | 2 +- .../better_fletching_table/mixin/ItemMixin.java | 2 +- .../mixin/AbstractBlockMixin.java | 2 +- .../mixin/CactusBlockMixin.java | 2 +- .../mixin/CampfireBlockEntityMixin.java | 2 +- .../mixin/PropaguleBlockMixin.java | 2 +- .../mixin/LootableContainerBlockEntityMixin.java | 2 +- .../modules/blocks/incubator/Content.java | 2 +- .../modules/blocks/incubator/IncubatorBlock.java | 2 +- .../blocks/leaf_slowdown/mixin/EntityMixin.java | 2 +- .../mixin/AdvancementTabMixin.java | 4 ++-- .../mixin/RecipeAlternativesWidgetMixin.java | 6 +++--- .../mixin/BeeEntityMixin.java | 4 ++-- .../mixin/BoneMealItemMixin.java | 4 ++-- .../mixin/FurnaceMinecartIntakeMixin.java | 2 +- .../mixin/FurnaceMinecartMixin.java | 6 +++--- .../mixin/VillagerEntityMixin.java | 2 +- .../all_pick_up/mixin/ZombieEntityMixin.java | 2 +- .../clean_pickup/mixin/ZombieEntityMixin.java | 2 +- .../gui/name_tooltips/mixin/InGameHudMixin.java | 2 +- .../mixin/GameModeSelectionMixin.java | 2 +- .../mixin/GameModeSelectionScreenMixin.java | 4 ++-- .../mixin/AnvilScreenHandlerMixin.java | 2 +- .../balanced_mending/mixin/AnvilScreenMixin.java | 2 +- .../mixin/ExperienceOrbMixin.java | 2 +- .../balanced_mending/mixin/ItemStackMixin.java | 2 +- .../items/better_names/mixin/ItemStackMixin.java | 2 +- .../modules/items/infinite_totem/Content.java | 4 ++-- .../infinite_totem/mixin/ItemEntityMixin.java | 2 +- .../infinite_totem/mixin/LivingEntityMixin.java | 2 +- .../modules/items/lockpick/Content.java | 2 +- .../modules/items/lockpick/LockpickItem.java | 2 +- .../andromeda/modules/items/magnet/Content.java | 2 +- .../mixin/MinecartItemMixin.java | 2 +- .../dragon_fight/mixin/EndCrystalMixin.java | 2 +- .../dragon_fight/mixin/EnderDragonMixin.java | 2 +- .../dragon_fight/mixin/SpikeCacheMixin.java | 4 ++-- .../mechanics/throwable_items/Content.java | 2 +- .../throwable_items/mixin/ItemStackMixin.java | 4 ---- .../throwable_items/mixin/ZombieEntityMixin.java | 4 ++-- .../trading_goat_horn/mixin/GoatHornMixin.java | 2 +- .../mixin/VillagerEntityMixin.java | 2 +- .../mixin/PlayerEntityMixin.java | 2 +- .../mixin/PlayerManagerMixin.java | 2 +- .../translations/mixin/MinecraftClientMixin.java | 2 +- .../ReloadableResourceManagerImplMixin.java | 2 +- .../andromeda/modules/misc/unknown/Content.java | 2 +- .../nice_level/LevelLoadingScreenMixin.java | 2 +- .../mixin/rose_of_the_valley/ItemMixin.java | 2 +- .../mixin/useless_info/DebugHudMixin.java | 2 +- .../unknown/mixin/wakeup/PlayerEntityMixin.java | 2 +- .../auto_planting/mixin/ItemEntityMixin.java | 2 +- .../crop_temperature/mixin/ServerWorldMixin.java | 2 +- .../mixin/BeehiveBlockEntityMixin.java | 2 +- .../mixin/FallingBlockMixin.java | 2 +- .../mixin/PersistentProjectileEntityMixin.java | 2 +- .../quick_fire/mixin/AbstractFireBlockMixin.java | 6 +++--- 66 files changed, 98 insertions(+), 88 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/base/ModuleManager.java b/src/main/java/me/melontini/andromeda/base/ModuleManager.java index 25de50e9..1f8a8504 100644 --- a/src/main/java/me/melontini/andromeda/base/ModuleManager.java +++ b/src/main/java/me/melontini/andromeda/base/ModuleManager.java @@ -64,12 +64,14 @@ public class ModuleManager { this.configs = ImmutableMap.copyOf(setUpConfigs(sorted)); sorted.forEach(Module::postConfig); + if (Debug.hasKey(Debug.Keys.ENABLE_ALL_MODULES)) + sorted.forEach(module -> module.config().enabled = true); sorted.forEach(module -> module.manager().save()); this.modules = ImmutableMap.copyOf(Utilities.consume(new LinkedHashMap<>(), map -> - sorted.forEach(module -> {if (module.enabled() || Debug.hasKey(Debug.Keys.ENABLE_ALL_MODULES)) map.put(module.getClass(), module);}))); + sorted.forEach(module -> {if (module.enabled()) map.put(module.getClass(), module);}))); this.moduleNames = ImmutableMap.copyOf(Utilities.consume(new HashMap<>(), map -> - sorted.forEach(module -> {if (module.enabled() || Debug.hasKey(Debug.Keys.ENABLE_ALL_MODULES)) map.put(module.meta().id(), module);}))); + sorted.forEach(module -> {if (module.enabled()) map.put(module.meta().id(), module);}))); cleanConfigs(); } @@ -121,6 +123,10 @@ public class ModuleManager { return MakeSure.notNull(configs.get(cls)).get(); } + public > boolean isPresent(Class cls) { + return getModule(cls).isPresent(); + } + @SuppressWarnings("unchecked") public > Optional getModule(Class cls) { return (Optional) Optional.ofNullable(modules.get(cls)); diff --git a/src/main/java/me/melontini/andromeda/base/config/BasicConfig.java b/src/main/java/me/melontini/andromeda/base/config/BasicConfig.java index 73ba754f..bedd22f7 100644 --- a/src/main/java/me/melontini/andromeda/base/config/BasicConfig.java +++ b/src/main/java/me/melontini/andromeda/base/config/BasicConfig.java @@ -3,10 +3,12 @@ package me.melontini.andromeda.base.config; import lombok.Getter; import lombok.Setter; import me.shedaniel.autoconfig.annotation.ConfigEntry; +import org.jetbrains.annotations.ApiStatus; @Getter @Setter public class BasicConfig { + @ApiStatus.Internal @ConfigEntry.Gui.RequiresRestart public boolean enabled = false; } diff --git a/src/main/java/me/melontini/andromeda/common/DebugTracker.java b/src/main/java/me/melontini/andromeda/common/DebugTracker.java index a549f170..3ec6a600 100644 --- a/src/main/java/me/melontini/andromeda/common/DebugTracker.java +++ b/src/main/java/me/melontini/andromeda/common/DebugTracker.java @@ -1,7 +1,9 @@ package me.melontini.andromeda.common; import me.melontini.andromeda.base.Debug; +import me.melontini.dark_matter.api.base.util.Support; import me.melontini.dark_matter.api.minecraft.debug.ValueTracker; +import net.fabricmc.api.EnvType; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Field; @@ -13,35 +15,35 @@ public class DebugTracker { public static void addTracker(@NotNull String s, @NotNull Supplier supplier) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, supplier); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, supplier)); } public static void addTracker(@NotNull String s, @NotNull Supplier supplier, @NotNull Duration duration) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, supplier, duration); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, supplier, duration)); } public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Object o) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, f, o); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, f, o)); } public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Object o, @NotNull Duration duration) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, f, o, duration); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, f, o, duration)); } public static void addTracker(@NotNull String s, @NotNull Field f) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, f); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, f)); } public static void addTracker(@NotNull String s, @NotNull Field f, @NotNull Duration duration) { if (Debug.hasKey(Debug.Keys.DISPLAY_TRACKED_VALUES)) - ValueTracker.addTracker(s, f, duration); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.addTracker(s, f, duration)); } public static void removeTracker(@NotNull String s) { - ValueTracker.removeTracker(s); + Support.run(EnvType.CLIENT, () -> () -> ValueTracker.removeTracker(s)); } } diff --git a/src/main/java/me/melontini/andromeda/common/registries/AndromedaItemGroup.java b/src/main/java/me/melontini/andromeda/common/registries/AndromedaItemGroup.java index 07d259be..3bc10684 100644 --- a/src/main/java/me/melontini/andromeda/common/registries/AndromedaItemGroup.java +++ b/src/main/java/me/melontini/andromeda/common/registries/AndromedaItemGroup.java @@ -26,7 +26,11 @@ public class AndromedaItemGroup { public static final Keeper GROUP = start(() -> ContentBuilder.ItemGroupBuilder.create(id("group")) .entries(entries -> { Map, List> stackMap = new LinkedHashMap<>(); - Acceptor acceptor = (module, stack) -> stackMap.computeIfAbsent(module, module1 -> new ArrayList<>()).add(stack); + Acceptor acceptor = (module, stack) -> { + if (!stack.isEmpty()) { + stackMap.computeIfAbsent(module, module1 -> new ArrayList<>()).add(stack); + } + }; ACCEPTORS.forEach(consumer -> consumer.accept(acceptor)); Map, List> small = new LinkedHashMap<>(); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java index 136f2801..5cdde6c1 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java @@ -20,6 +20,6 @@ abstract class BedBlockMixin extends Block { @ModifyExpressionValue(at = @At(value = "CONSTANT", args = "floatValue=5.0F"), method = "onUse") public float andromeda$explosionRedirect(float power) { - return am$pow.config().enabled ? am$pow.config().power : power; + return am$pow.enabled() ? am$pow.config().power : power; } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java index 6ad65a73..7e162c43 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java @@ -32,7 +32,7 @@ abstract class BedBlockMixin extends Block { @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) public void andromeda$onUse(BlockState state, @NotNull World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (world.isClient || !am$safe.config().enabled) return; + if (world.isClient || !am$safe.enabled()) return; if (!isBedWorking(world)) { player.sendMessage(AndromedaTexts.SAFE_BEDS, true); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java index b7ada111..5314e6d5 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java @@ -15,6 +15,6 @@ class BedBlockMixin { @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BedBlock;isBedWorking(Lnet/minecraft/world/World;)Z"), method = "onUse") private boolean andromeda$explode(boolean original) { - return !am$un.config().enabled; + return !am$un.enabled(); } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/Content.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/Content.java index d9c7da78..d0dcf491 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/Content.java @@ -10,6 +10,6 @@ import static me.melontini.andromeda.common.registries.Common.id; public class Content { public static final Keeper> FLETCHING = Keeper.of(() -> () -> - RegistryUtil.createScreenHandler(() -> ModuleManager.quick(BetterFletchingTable.class).config().enabled, + RegistryUtil.createScreenHandler(() -> ModuleManager.get().isPresent(BetterFletchingTable.class), id("fletching"), () -> FletchingScreenHandler::new)); } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java index 9125ce0d..cb068598 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java @@ -30,7 +30,7 @@ abstract class BowItemMixin extends RangedWeaponItem { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/PersistentProjectileEntity;setVelocity(Lnet/minecraft/entity/Entity;FFFFF)V", shift = At.Shift.AFTER), method = "onStoppedUsing", locals = LocalCapture.CAPTURE_FAILEXCEPTION) public void andromeda$setVelocity(ItemStack stack, World world, LivingEntity user, int remainingUseTicks, CallbackInfo ci, PlayerEntity playerEntity, boolean bl, ItemStack itemStack, int i, float f, boolean bl2, ArrowItem arrowItem, PersistentProjectileEntity persistentProjectileEntity) { - if (!am$bft.config().enabled) return; + if (!am$bft.enabled()) return; NbtCompound stackNbt = stack.getNbt(); int a = NbtUtil.getInt(stackNbt, "AM-Tightened", 0); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java index d7453b26..9117e5a9 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java @@ -33,7 +33,7 @@ class FletchingTableBlockMixin extends CraftingTableBlock { @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) private void andromeda$onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (!am$bft.config().enabled) return; + if (!am$bft.enabled()) return; if (state.isOf(Blocks.FLETCHING_TABLE)) { if (player.world.isClient) { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java index 7525f8a4..68feeff0 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java @@ -27,7 +27,7 @@ class ItemMixin { @Inject(at = @At("HEAD"), method = "appendTooltip") public void andromeda$tooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context, CallbackInfo ci) { - if (!am$bft.config().enabled) return; + if (!am$bft.enabled()) return; if (stack.getItem() instanceof BowItem) { int a = NbtUtil.getInt(stack.getNbt(), "AM-Tightened", 0); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java index bd81818f..67a38e02 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java @@ -34,7 +34,7 @@ class AbstractBlockMixin { @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) private void andromeda$onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (!am$cbf.config().enabled) return; + if (!am$cbf.enabled()) return; if (state.getBlock() instanceof CactusBlock) { ItemStack stack = player.getStackInHand(hand); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java index 5a3eabb7..1ce4aefb 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java @@ -20,6 +20,6 @@ class CactusBlockMixin { @Inject(at = @At("TAIL"), method = "appendProperties") private void andromeda$appendProperties(StateManager.Builder builder, CallbackInfo ci) { - if (am$cbf.config().enabled) builder.add(BlockUtil.WATER_LEVEL_3); + if (am$cbf.enabled()) builder.add(BlockUtil.WATER_LEVEL_3); } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java index 7d29457d..a6a69ff9 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java @@ -30,7 +30,7 @@ class CampfireBlockEntityMixin { @Inject(at = @At("HEAD"), method = "litServerTick") private static void andromeda$litServerTick(World world, BlockPos pos, BlockState state, CampfireBlockEntity campfire, CallbackInfo ci) { - if (!am$ceff.config().enabled) return; + if (!am$ceff.enabled()) return; if (world.getTime() % 180 == 0) { if (state.get(CampfireBlock.LIT)) { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java index 7bfc4546..f98ad9d2 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java @@ -28,7 +28,7 @@ abstract class PropaguleBlockMixin { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/PropaguleBlock;isFullyGrown(Lnet/minecraft/block/BlockState;)Z", shift = At.Shift.BEFORE), method = "randomTick") private void andromeda$randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci) { - if (!am$fp.config().enabled) return; + if (!am$fp.enabled()) return; if (isFullyGrown(state) && random.nextInt(40) == 0) { FallingBlockEntity fallingBlock = new FallingBlockEntity( diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java index 514d5ccb..dedb36a1 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java @@ -39,7 +39,7 @@ abstract class LootableContainerBlockEntityMixin extends LockableContainerBlockE @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;isSpectator()Z"), method = "checkUnlocked") private boolean lockedIfMonstersNearby(boolean locked, @Local PlayerEntity player) { GuardedLoot module = ModuleManager.quick(GuardedLoot.class); - if (module.config().enabled) { + if (module.enabled()) { List monster = player.world.getEntitiesByClass(LivingEntity.class, new Box(this.getPos()).expand(module.config().range), Entity::isAlive).stream().filter(livingEntity -> livingEntity instanceof Monster) .toList(); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Content.java b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Content.java index 84cf38ea..9c66d261 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/Content.java @@ -22,7 +22,7 @@ public class Content { public static final Keeper INCUBATOR_BLOCK = start(() -> ContentBuilder.BlockBuilder.create(id("incubator"), () -> new IncubatorBlock(FabricBlockSettings.of(Material.WOOD).strength(2.0F, 3.0F).sounds(BlockSoundGroup.WOOD))) .item((block, id) -> ContentBuilder.ItemBuilder.create(id, () -> new BlockItem(block, new FabricItemSettings())).itemGroup(ItemGroup.REDSTONE)) .blockEntity((block, id) -> ContentBuilder.BlockEntityBuilder.create(id, IncubatorBlockEntity::new, block)) - .register(() -> ModuleManager.quick(Incubator.class).config().enabled)) + .register(() -> ModuleManager.get().isPresent(Incubator.class))) .afterInit(item -> AndromedaItemGroup.accept(acceptor -> acceptor.item(ModuleManager.quick(Incubator.class), item))); public static final Keeper INCUBATOR = Keeper.of(() -> () -> asItem(INCUBATOR_BLOCK.get())); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/IncubatorBlock.java b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/IncubatorBlock.java index 0877fa9f..8cf7c480 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/incubator/IncubatorBlock.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/incubator/IncubatorBlock.java @@ -42,7 +42,7 @@ public class IncubatorBlock extends BlockWithEntity { @Override public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return checkType(type, Content.INCUBATOR_BLOCK_ENTITY.get(), IncubatorBlockEntity::tick); + return checkType(type, Content.INCUBATOR_BLOCK_ENTITY.orThrow(), IncubatorBlockEntity::tick); } @Override diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java index 77e1d2bd..e3ef2e2c 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java @@ -35,7 +35,7 @@ abstract class EntityMixin extends Entity { @Inject(at = @At("HEAD"), method = "baseTick") public void andromeda$tick(CallbackInfo ci) { - if (!am$leaf.config().enabled) return; + if (!am$leaf.enabled()) return; EntityAttributeInstance attributeInstance = this.getAttributeInstance(EntityAttributes.GENERIC_MOVEMENT_SPEED); if (!this.world.isClient) { diff --git a/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java b/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java index 82bab157..1796e530 100644 --- a/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java @@ -21,11 +21,11 @@ class AdvancementTabMixin { @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 0), index = 0, method = "drawWidgetTooltip") private float andromeda$draw(float value) { - return am$fias.config().enabled ? this.alpha + (0.04F * client.getLastFrameDuration()) : value; + return am$fias.enabled() ? this.alpha + (0.04F * client.getLastFrameDuration()) : value; } @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 1), index = 0, method = "drawWidgetTooltip") private float andromeda$draw1(float value) { - return am$fias.config().enabled ? this.alpha - (0.06F * client.getLastFrameDuration()) : value; + return am$fias.enabled() ? this.alpha - (0.06F * client.getLastFrameDuration()) : value; } } diff --git a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java index 483bd5c5..ff606feb 100644 --- a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java @@ -20,16 +20,16 @@ class RecipeAlternativesWidgetMixin { @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;renderGrid(Lnet/minecraft/client/util/math/MatrixStack;IIIIII)V"), index = 3, method = "render") private int andromeda$prepareGrid(int i) { - return am$para.config().enabled ? 25 : i; + return am$para.enabled() ? 25 : i; } @Redirect(at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;buttonX:I"), method = "renderGrid") private int andromeda$renderGridX(RecipeAlternativesWidget instance) { - return am$para.config().enabled ? this.buttonX - 2 : this.buttonX; + return am$para.enabled() ? this.buttonX - 2 : this.buttonX; } @Redirect(at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;buttonY:I"), method = "renderGrid") private int andromeda$renderGridY(RecipeAlternativesWidget instance) { - return am$para.config().enabled ? this.buttonY - 1 : this.buttonY; + return am$para.enabled() ? this.buttonY - 1 : this.buttonY; } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java index 4ed5beab..87af8418 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java @@ -36,7 +36,7 @@ abstract class BeeEntityMixin extends AnimalEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/AnimalEntity;tick()V", shift = At.Shift.AFTER), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$bfd.config().enabled) return; + if (!am$bfd.enabled()) return; if (this.andromeda$plantingCoolDown > 0) this.andromeda$plantingCoolDown--; @@ -79,7 +79,7 @@ abstract class BeeEntityMixin extends AnimalEntity { } } } - } else if (flowerState.getBlock() instanceof TallFlowerBlock flowerBlock && am$bfd.config().enabled) { + } else if (flowerState.getBlock() instanceof TallFlowerBlock flowerBlock && am$bfd.enabled()) { andromeda$plantingCoolDown = world.random.nextBetween(3600, 8000); for (int i = -1; i <= 1; i++) { for (int b = -2; b <= 2; b++) { diff --git a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java index 1b5fc60c..20e8fa25 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java @@ -24,12 +24,12 @@ class BoneMealItemMixin { @Inject(at = @At("HEAD"), method = "useOnFertilizable", cancellable = true) private static void andromeda$useOnFertilizable(ItemStack stack, World world, BlockPos pos, CallbackInfoReturnable cir) { - if (!am$bfd.config().enabled || !am$bfd.config().tallFlowers) return; + if (!am$bfd.enabled() || !am$bfd.config().tallFlowers) return; BlockState blockState = world.getBlockState(pos); if (blockState.getBlock() instanceof TallFlowerBlock) { if (!world.isClient) { - if (ModuleManager.get().getModule("misc.unknown").map(m->m.config().enabled).orElse(false) && world.random.nextInt(100) == 0) { + if (ModuleManager.get().getModule("misc.unknown").map(m->m.enabled()).orElse(false) && world.random.nextInt(100) == 0) { world.createExplosion(null, DamageSource.explosion((LivingEntity) null), null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3.0F, false, Explosion.DestructionType.DESTROY); diff --git a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java index b0142907..792bcf9e 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java @@ -33,7 +33,7 @@ abstract class FurnaceMinecartIntakeMixin extends AbstractMinecartEntity { @Inject(at = @At("HEAD"), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$bfm.config().enabled || !am$bfm.config().takeFuelWhenLow) return; + if (!am$bfm.enabled() || !am$bfm.config().takeFuelWhenLow) return; if (!this.world.isClient() && this.fuel < 100) { if (world.getTime() % 20 == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java index 6408478d..fad1e877 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java @@ -31,7 +31,7 @@ class FurnaceMinecartMixin { @Inject(at = @At("HEAD"), method = "interact", cancellable = true) public void andromeda$interact(PlayerEntity player, Hand hand, CallbackInfoReturnable cir) { - if (!am$bfm.config().enabled) return; + if (!am$bfm.enabled()) return; ItemStack stack = player.getStackInHand(hand); Item item = stack.getItem(); @@ -60,12 +60,12 @@ class FurnaceMinecartMixin { @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/nbt/NbtCompound;putShort(Ljava/lang/String;S)V"), method = "writeCustomDataToNbt") private void andromeda$fuelIntToNbt(NbtCompound nbt, String key, /* short */ short value, Operation operation) { - if (am$bfm.config().enabled) nbt.putInt(key, this.fuel); + if (am$bfm.enabled()) nbt.putInt(key, this.fuel); else operation.call(nbt, key, value); } @Inject(at = @At(value = "TAIL"), method = "readCustomDataFromNbt") public void andromeda$fuelIntFromNbt(NbtCompound nbt, CallbackInfo ci) { - if (am$bfm.config().enabled) this.fuel = nbt.getInt("Fuel"); + if (am$bfm.enabled()) this.fuel = nbt.getInt("Fuel"); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java index f65d9fd0..019b4eff 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java @@ -26,7 +26,7 @@ abstract class VillagerEntityMixin extends MerchantEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/VillagerEntity;setVillagerData(Lnet/minecraft/village/VillagerData;)V", shift = At.Shift.AFTER), method = "(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;Lnet/minecraft/village/VillagerType;)V") private void andromeda$init(EntityType entityType, World world, VillagerType type, CallbackInfo ci) { - if (am$vfeb.config().enabled) + if (am$vfeb.enabled()) this.goalSelector.add(6, new VillagerTemptGoal((VillagerEntity) (Object) this, 0.5, Ingredient.fromTag(VillagerTemptGoal.TEMPTING), false)); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java index 38cd0756..3ddee399 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java @@ -28,6 +28,6 @@ abstract class ZombieEntityMixin extends HostileEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/mob/ZombieEntity;setCanPickUpLoot(Z)V", shift = At.Shift.AFTER), method = "initialize") private void andromeda$initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, NbtCompound entityNbt, CallbackInfoReturnable cir) { - if (am$azcbi.config().enabled) this.setCanPickUpLoot(true); + if (am$azcbi.enabled()) this.setCanPickUpLoot(true); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java index 11b7e04d..a073d7d2 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java @@ -26,7 +26,7 @@ abstract class ZombieEntityMixin extends HostileEntity { @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/mob/HostileEntity;canPickupItem(Lnet/minecraft/item/ItemStack;)Z"), method = "canPickupItem") public boolean andromeda$canPickupItem(boolean original, ItemStack stack) { - if (am$zpui.config().enabled) + if (am$zpui.enabled()) return original && (stack.isIn(PickupTag.ZOMBIES_PICKUP) || ModuleManager.get().getModule(ThrowableItems.class) .map(m -> handleThrowableItems(m, stack)) .orElse(false)); diff --git a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java index 4d54fd39..8e9cd854 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java @@ -36,7 +36,7 @@ abstract class InGameHudMixin { @Inject(at = @At("HEAD"), method = "renderHeldItemTooltip", cancellable = true) private void andromeda$renderTooltip(MatrixStack matrices, CallbackInfo ci) { - if (!am$tnotn.config().enabled) return; + if (!am$tnotn.enabled()) return; this.client.getProfiler().push("selectedItemName"); diff --git a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java index cf8ad9e7..b77712ce 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java @@ -14,6 +14,6 @@ class GameModeSelectionMixin { private static final NoMoreAdventure am$noma = ModuleManager.quick(NoMoreAdventure.class); @ModifyExpressionValue(method = "next", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;ADVENTURE:Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;")) private GameModeSelectionScreen.GameModeSelection andromeda$next(GameModeSelectionScreen.GameModeSelection original) { - return !am$noma.config().enabled ? original : GameModeSelectionScreen.GameModeSelection.SPECTATOR; + return !am$noma.enabled() ? original : GameModeSelectionScreen.GameModeSelection.SPECTATOR; } } diff --git a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java index 79f9d370..4625813e 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java @@ -24,11 +24,11 @@ abstract class GameModeSelectionScreenMixin extends Screen { @ModifyExpressionValue(method = "init", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;VALUES:[Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;")) private GameModeSelectionScreen.GameModeSelection[] andromeda$modValues(GameModeSelectionScreen.GameModeSelection[] original) { - return !am$noma.config().enabled ? original : andromeda$gameModeSelections; + return !am$noma.enabled() ? original : andromeda$gameModeSelections; } @ModifyExpressionValue(method = "init", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen;UI_WIDTH:I")) private int andromeda$modValues(int original) { - return !am$noma.config().enabled ? original : andromeda$gameModeSelections.length * 31 - 5; + return !am$noma.enabled() ? original : andromeda$gameModeSelections.length * 31 - 5; } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java index 417da927..6fd75541 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java @@ -26,7 +26,7 @@ abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler { @ModifyExpressionValue(method = "updateResult", at = @At(value = "CONSTANT", args = "intValue=40")) private int andromeda$setRepairLimit(int constant) { - if (am$balmend.config().enabled) + if (am$balmend.enabled()) if (!this.getSlot(1).getStack().isOf(Items.ENCHANTED_BOOK)) if (EnchantmentHelper.get(this.getSlot(0).getStack()).containsKey(Enchantments.MENDING)) { return Integer.MAX_VALUE; diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java index ea229679..5bb616bb 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java @@ -28,7 +28,7 @@ abstract class AnvilScreenMixin extends HandledScreen { @ModifyExpressionValue(method = "drawForeground", at = @At(value = "CONSTANT", args = "intValue=40")) private int andromeda$setRepairLimit(int constant) { - if (am$balmend.config().enabled) + if (am$balmend.enabled()) if (!this.handler.getSlot(1).getStack().isOf(Items.ENCHANTED_BOOK)) if (EnchantmentHelper.get(this.handler.getSlot(0).getStack()).containsKey(Enchantments.MENDING)) { return Integer.MAX_VALUE; diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java index b402b3c7..bf42df67 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java @@ -16,6 +16,6 @@ class ExperienceOrbMixin { private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); @Inject(at = @At("HEAD"), method = "repairPlayerGears", cancellable = true) private void andromeda$repair(PlayerEntity player, int amount, CallbackInfoReturnable cir) { - if (am$balmend.config().enabled) cir.setReturnValue(amount); + if (am$balmend.enabled()) cir.setReturnValue(amount); } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java index bbaed222..c6f1526d 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java @@ -16,7 +16,7 @@ abstract class ItemStackMixin { private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); @ModifyReturnValue(method = "getRepairCost", at = @At("RETURN")) private int andromeda$getRepairCost(int original) { - if (am$balmend.config().enabled && original >= 52 && EnchantmentHelper.get((ItemStack) (Object) this).containsKey(Enchantments.MENDING)) { + if (am$balmend.enabled() && original >= 52 && EnchantmentHelper.get((ItemStack) (Object) this).containsKey(Enchantments.MENDING)) { return 52; } return original; diff --git a/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java index 57445360..215ea701 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java @@ -33,7 +33,7 @@ abstract class ItemStackMixin { @Inject(at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", ordinal = 0, shift = At.Shift.BEFORE), method = "getTooltip", locals = LocalCapture.CAPTURE_FAILSOFT) private void andromeda$getTooltip(@Nullable PlayerEntity player, TooltipContext context, CallbackInfoReturnable> cir, List list, MutableText mutableText) { - if (!am$sbin.config().enabled) return; + if (!am$sbin.enabled()) return; if (!this.getItem().isDamageable()) { if (this.getCount() > 1) diff --git a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/Content.java b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/Content.java index e6c22eae..6e070543 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/Content.java @@ -20,10 +20,10 @@ public class Content { public static final Keeper INFINITE_TOTEM = start(() -> ContentBuilder.ItemBuilder .create(id("infinite_totem"), () -> new Item(new FabricItemSettings().maxCount(1).rarity(Rarity.EPIC))) .itemGroup(ItemGroup.COMBAT) - .register(() -> ModuleManager.quick(InfiniteTotem.class).config().enabled)) + .register(() -> ModuleManager.get().isPresent(InfiniteTotem.class))) .afterInit(item -> AndromedaItemGroup.accept(acceptor -> acceptor.item(ModuleManager.quick(InfiniteTotem.class), item))); public static Keeper KNOCKOFF_TOTEM_PARTICLE = Keeper.of(() -> () -> - RegistryUtil.create(() -> ModuleManager.quick(InfiniteTotem.class).config().enabled, + RegistryUtil.create(() -> ModuleManager.get().isPresent(InfiniteTotem.class), id("knockoff_totem_particles"), "particle_type", FabricParticleTypes::simple)); } diff --git a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java index dbec86c2..d6623752 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java @@ -72,7 +72,7 @@ abstract class ItemEntityMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;tick()V", shift = At.Shift.BEFORE), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$itou.config().enableAscension || !am$itou.config().enabled) + if (!am$itou.config().enableAscension || !am$itou.enabled()) return; if (!this.dataTracker.get(STACK).isOf(Items.TOTEM_OF_UNDYING)) return; diff --git a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java index 5496b0e8..050259ee 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java @@ -53,7 +53,7 @@ abstract class LivingEntityMixin extends Entity { @SuppressWarnings("InvalidInjectorMethodSignature") @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;sendEntityStatus(Lnet/minecraft/entity/Entity;B)V", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "tryUseTotem", cancellable = true) private void andromeda$useInfiniteTotem(DamageSource source, CallbackInfoReturnable cir, ItemStack itemStack) { - if (am$itou.config().enabled) { + if (am$itou.enabled()) { if (itemStack.isOf(Content.INFINITE_TOTEM.orThrow())) { if (!world.isClient()) { PacketByteBuf buf = PacketByteBufs.create() diff --git a/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java b/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java index 791dcc34..a76400d3 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java @@ -17,7 +17,7 @@ public class Content { public static final Keeper LOCKPICK = start(() -> ContentBuilder.ItemBuilder .create(id("lockpick"), () -> new LockpickItem(new FabricItemSettings().maxCount(16))) .itemGroup(ItemGroup.TOOLS) - .register(() -> ModuleManager.quick(Lockpick.class).config().enabled)) + .register(() -> ModuleManager.quick(Lockpick.class).enabled())) .afterInit(item -> AndromedaItemGroup.accept(acceptor -> acceptor.item(ModuleManager.quick(Lockpick.class), item))); public static final Keeper> MERCHANT_INVENTORY = Keeper.of(() -> () -> diff --git a/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java b/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java index 6b19cb36..08b37152 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java +++ b/src/main/java/me/melontini/andromeda/modules/items/lockpick/LockpickItem.java @@ -19,7 +19,7 @@ public class LockpickItem extends Item { } public boolean tryUse(Lockpick module, ItemStack stack, LivingEntity user, Hand hand) { - if (module.config().enabled) { + if (module.enabled()) { if (!user.world.isClient()) user.sendEquipmentBreakStatus(hand == Hand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); diff --git a/src/main/java/me/melontini/andromeda/modules/items/magnet/Content.java b/src/main/java/me/melontini/andromeda/modules/items/magnet/Content.java index b017dddb..dbe8e83f 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/magnet/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/items/magnet/Content.java @@ -16,7 +16,7 @@ public class Content { public static final Keeper MAGNET = Common.start(() -> ContentBuilder.ItemBuilder .create(id("magnet"), () -> new MagnetItem(new FabricItemSettings().maxCount(1))) .itemGroup(ItemGroup.TOOLS) - .register(() -> ModuleManager.quick(Magnet.class).enabled())) + .register(() -> ModuleManager.get().isPresent(Magnet.class))) .afterInit(m -> AndromedaItemGroup.accept(a -> a.item(ModuleManager.quick(Magnet.class), m))); } diff --git a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java index d0f21e9c..85c270ae 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java @@ -116,7 +116,7 @@ abstract class MinecartItemMixin extends Item { } } - if (am$mbp.config().enabled && player.isSneaking()) { + if (am$mbp.enabled() && player.isSneaking()) { if (stack.getItem() != Items.MINECART) return; if (state.isOf(Blocks.CHEST)) { diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java index 95723d29..49f0d0de 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java @@ -31,7 +31,7 @@ abstract class EndCrystalMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/decoration/EndCrystalEntity;remove(Lnet/minecraft/entity/Entity$RemovalReason;)V", shift = At.Shift.BEFORE), method = "damage") private void andromeda$damage(DamageSource source, float amount, CallbackInfoReturnable cir) { - if (!am$dft.config().enabled || !am$dft.config().respawnCrystals) return; + if (!am$dft.enabled() || !am$dft.config().respawnCrystals) return; if (world.getRegistryKey() == World.END && !((ServerWorld) world).getAliveEnderDragons().isEmpty() && shouldShowBottom()) { if (this.getPos().getY() > 71) diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java index ebd191c6..169a915a 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java @@ -14,7 +14,7 @@ class EnderDragonMixin { private static final DragonFight am$dft = ModuleManager.quick(DragonFight.class); @ModifyExpressionValue(at = @At(value = "CONSTANT", args = "doubleValue=32"), method = "tickWithEndCrystals") private double andromeda$modConstant(double constant) { - if (am$dft.config().enabled && am$dft.config().shorterCrystalTrackRange) return 24.0; + if (am$dft.enabled() && am$dft.config().shorterCrystalTrackRange) return 24.0; return constant; } } diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java index c55f54f0..0dad4f1e 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java @@ -13,13 +13,13 @@ class SpikeCacheMixin { private static final DragonFight am$dft = ModuleManager.quick(DragonFight.class); @ModifyExpressionValue(method = "load(Ljava/lang/Long;)Ljava/util/List;", at = @At(value = "CONSTANT", args = "intValue=76")) private int andromeda$modifySpikeSize(int size) { - if (am$dft.config().enabled && am$dft.config().shorterSpikes) return 72; + if (am$dft.enabled() && am$dft.config().shorterSpikes) return 72; return size; } @ModifyExpressionValue(method = "load(Ljava/lang/Long;)Ljava/util/List;", at = @At(value = "CONSTANT", args = "intValue=3", ordinal = 1)) private int andromeda$modifySpikeHeight(int size) { - if (am$dft.config().enabled && am$dft.config().shorterSpikes) return 2; + if (am$dft.enabled() && am$dft.config().shorterSpikes) return 2; return size; } } diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/Content.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/Content.java index 539f99d2..60ac2de8 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/Content.java @@ -38,7 +38,7 @@ import static me.melontini.andromeda.util.CommonValues.MODID; public class Content { public static final Keeper> FLYING_ITEM = Keeper.of(() -> () -> - RegistryUtil.createEntityType(() -> ModuleManager.quick(ThrowableItems.class).config().enabled, + RegistryUtil.createEntityType(() -> ModuleManager.get().isPresent(ThrowableItems.class), id("flying_item"), FabricEntityTypeBuilder.create(SpawnGroup.MISC, FlyingItemEntity::new) .dimensions(new EntityDimensions(0.25F, 0.25F, true)).trackRangeChunks(4).trackedUpdateRate(10))); diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java index 0cd86341..9f739c54 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ItemStackMixin.java @@ -1,9 +1,7 @@ package me.melontini.andromeda.modules.mechanics.throwable_items.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.mechanics.throwable_items.FlyingItemEntity; -import me.melontini.andromeda.modules.mechanics.throwable_items.ThrowableItems; import me.melontini.andromeda.modules.mechanics.throwable_items.data.ItemBehaviorManager; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; @@ -49,8 +47,6 @@ abstract class ItemStackMixin { @Unique private boolean andromeda$runBehaviors(World world, PlayerEntity user) { - if (!ModuleManager.quick(ThrowableItems.class).config().enabled) return false; - world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.random.nextFloat() * 0.4F + 0.8F)); if (!world.isClient) { var entity = new FlyingItemEntity((ItemStack) (Object) this, user, world); diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java index d3d46811..026e0b10 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java @@ -36,7 +36,7 @@ abstract class ZombieEntityMixin extends HostileEntity implements ItemThrowerMob @Inject(at = @At("HEAD"), method = "initCustomGoals") private void andromeda$initCustomGoals(CallbackInfo ci) { - if (am$thritm.config().enabled && am$thritm.config().canZombiesThrowItems) + if (am$thritm.enabled() && am$thritm.config().canZombiesThrowItems) this.goalSelector.add(1, new ThrowableItemAttackGoal<>(this, 1.0f, am$thritm.config().zombieThrowInterval, 4, 16)); } @@ -47,7 +47,7 @@ abstract class ZombieEntityMixin extends HostileEntity implements ItemThrowerMob @Override public void am$throwItem(LivingEntity target, float pullProgress) { - if (!am$thritm.config().enabled || !am$thritm.config().canZombiesThrowItems) return; + if (!am$thritm.enabled() || !am$thritm.config().canZombiesThrowItems) return; world.playSound(null, this.getX(), this.getY(), this.getZ(), SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.random.nextFloat() * 0.4F + 0.8F)); diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java index 0b8b7f86..f9b690cd 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java @@ -31,7 +31,7 @@ class GoatHornMixin { private static final GoatHorn am$goathorn = ModuleManager.quick(GoatHorn.class); @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/ItemCooldownManager;set(Lnet/minecraft/item/Item;I)V", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "use") private void andromeda$wanderingGoatHorn(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable> cir, ItemStack itemStack, Optional> optional, Instrument instrument) { - if (!am$goathorn.config().enabled) return; + if (!am$goathorn.enabled()) return; NbtCompound nbtCompound = itemStack.getNbt(); if (!world.isClient()) if (nbtCompound != null) { diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java index 6989789c..31689b09 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java @@ -35,7 +35,7 @@ abstract class VillagerEntityMixin extends MerchantEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/VillagerEntity;getOffers()Lnet/minecraft/village/TradeOfferList;", shift = At.Shift.BEFORE), cancellable = true, method = "interactMob") private void andromeda$useGifts(PlayerEntity player, Hand hand, CallbackInfoReturnable cir) { - if (!am$villgifts.config().enabled) return; + if (!am$villgifts.enabled()) return; if (hand != Hand.MAIN_HAND || world.isClient()) return; ItemStack stack = player.getStackInHand(hand); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java index 982ca118..43f2f897 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java @@ -25,7 +25,7 @@ abstract class PlayerEntityMixin extends LivingEntity { @Inject(at = @At(value = "INVOKE", target = "net/minecraft/entity/LivingEntity.damage (Lnet/minecraft/entity/damage/DamageSource;F)Z", shift = At.Shift.BEFORE), method = "damage", cancellable = true) private void andromeda$damage(DamageSource source, float amount, CallbackInfoReturnable cir) { - if (am$mininc.config().enabled && !world.isClient && source != Agony.AGONY) { + if (am$mininc.enabled() && !world.isClient && source != Agony.AGONY) { super.damage(Agony.AGONY, Float.MAX_VALUE); this.world.createExplosion(null, Agony.AGONY, null, this.getBlockX() + 0.5, this.getBlockY() + 0.5, this.getBlockZ() + 0.5, 5.0F, true, Explosion.DestructionType.DESTROY); cir.setReturnValue(false); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java index 18c90663..f092338f 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java @@ -24,6 +24,6 @@ class PlayerManagerMixin { @Inject(at = @At(value = "INVOKE", target = "Ljava/util/Map;values()Ljava/util/Collection;", ordinal = 0, shift = At.Shift.BEFORE), method = "onDataPacksReloaded") private void andromeda$reload(CallbackInfo ci) { //we don't sync until our advancements have been generated - if (am$rag.config().enabled) generateRecipeAdvancements(server); + if (am$rag.enabled()) generateRecipeAdvancements(server); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java index 2167dc69..f2dc5fcd 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java @@ -24,7 +24,7 @@ class MinecraftClientMixin { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourcePackManager;scanPacks()V", shift = At.Shift.BEFORE), method = "reloadResources(Z)Ljava/util/concurrent/CompletableFuture;") private void andromeda$downloadLangFiles(boolean force, CallbackInfoReturnable> cir) { - if (!am$trans.config().enabled) return; + if (!am$trans.enabled()) return; TranslationUpdater.onResourceReload(this.options.language); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java index 39a35099..7a442e94 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java @@ -29,7 +29,7 @@ class ReloadableResourceManagerImplMixin { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/LifecycledResourceManager;close()V", shift = At.Shift.AFTER), method = "reload") private void andromeda$injectDownloadedTranslations(CallbackInfoReturnable cir, @Local(argsOnly = true) LocalRef> packs) { if (this.type != ResourceType.CLIENT_RESOURCES) return; - if (!am$trans.config().enabled) return; + if (!am$trans.enabled()) return; packs.set(new ArrayList<>(packs.get())); packs.get().add(new DirectoryResourcePack(TranslationUpdater.TRANSLATION_PACK.toFile()) { diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/Content.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/Content.java index 43d0c0d2..f68c427e 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/Content.java @@ -18,7 +18,7 @@ public class Content { public static final Keeper ROSE_OF_THE_VALLEY_BLOCK = start(() -> ContentBuilder.BlockBuilder.create(id("rose_of_the_valley"), () -> new FlowerBlock(StatusEffects.REGENERATION, 12, AbstractBlock.Settings.copy(Blocks.LILY_OF_THE_VALLEY))) .item((block, id) -> ContentBuilder.ItemBuilder.create(id, () -> new RoseOfTheValley(block, new FabricItemSettings().rarity(Rarity.UNCOMMON)))) - .register(() -> ModuleManager.quick(Unknown.class).config().enabled)); + .register(() -> ModuleManager.get().isPresent(Unknown.class))); public static final Keeper ROSE_OF_THE_VALLEY = Keeper.of(() -> () -> asItem(ROSE_OF_THE_VALLEY_BLOCK.orThrow())); } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java index 14fd4fff..7a5a638f 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java @@ -20,7 +20,7 @@ class LevelLoadingScreenMixin { @ModifyReturnValue(at = @At("RETURN"), method = "getPercentage") private String andromeda$getPercentage(String o) { - if (am$unk.config().enabled) { + if (am$unk.enabled()) { if (Objects.equals(o, "69%")) { return "Nice%"; } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java index 9bd0b9d5..bde737c3 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java @@ -22,7 +22,7 @@ class ItemMixin { private static final Unknown am$unk = ModuleManager.quick(Unknown.class); @Inject(at = @At("HEAD"), method = "onClicked", cancellable = true) private void andromeda$onClicked(ItemStack stack, ItemStack otherStack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference, CallbackInfoReturnable cir) { - if (am$unk.config().enabled) + if (am$unk.enabled()) if (clickType == ClickType.RIGHT && stack.isOf(Items.LILY_OF_THE_VALLEY) && otherStack.isOf(Items.DIAMOND)) { //I mean .....yeah RoseOfTheValley.handleClick(stack, otherStack, player); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java index 2baa148d..593ba521 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java @@ -23,6 +23,6 @@ class DebugHudMixin { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/DebugHud;getServerWorldDebugString()Ljava/lang/String;", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "getLeftText") private void andromeda$leftText(CallbackInfoReturnable> cir, @Local List list) { - if (am$unk.config().enabled) if (Unknown.DEBUG_SPLASH != null) list.add(Unknown.DEBUG_SPLASH); + if (am$unk.enabled()) if (Unknown.DEBUG_SPLASH != null) list.add(Unknown.DEBUG_SPLASH); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java index a311933b..6da2dde8 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java @@ -32,7 +32,7 @@ abstract class PlayerEntityMixin { @Inject(at = @At("HEAD"), method = "wakeUp(ZZ)V") private void andromeda$wakeUp(boolean skipSleepTimer, boolean updateSleepingPlayers, CallbackInfo ci) { - if (!am$unk.config().enabled) return; + if (!am$unk.enabled()) return; PlayerEntity player = (PlayerEntity) (Object) this; if (!player.world.isClient) if (Random.create().nextInt(100000) == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java index 888483a8..6a12310b 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java @@ -35,7 +35,7 @@ abstract class ItemEntityMixin { @Inject(at = @At("HEAD"), method = "tick") public void andromeda$tryPlant(CallbackInfo ci) { - if (!am$tbpgs.config().enabled) return; + if (!am$tbpgs.enabled()) return; Entity entity = (Entity) (Object) this; ItemStack stack = this.getStack(); diff --git a/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java b/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java index f039ff25..ae11e932 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java @@ -21,7 +21,7 @@ class ServerWorldMixin { @WrapWithCondition(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;randomTick(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V"), method = "tickChunk") private boolean andromeda$tickPlants(BlockState state, ServerWorld world, BlockPos pos, Random random) { - if (am$tbpgs.config().enabled) { + if (am$tbpgs.enabled()) { if (state.getBlock() instanceof PlantBlock) { PlantTemperatureData data = PlantTemperatureData.PLANT_DATA.get(state.getBlock()); if (data != null) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java index c04ae3f5..fcb35bca 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java @@ -37,7 +37,7 @@ abstract class BeehiveBlockEntityMixin extends BlockEntity { @Inject(at = @At("HEAD"), method = "serverTick") private static void andromeda$fallingHive(@NotNull World world, BlockPos pos, BlockState state, BeehiveBlockEntity beehiveBlockEntity, CallbackInfo ci) { - if (!am$cbnf.config().enabled) return; + if (!am$cbnf.enabled()) return; if (world.getBlockState(pos).getBlock() == Blocks.BEE_NEST) { if (world.random.nextInt(32000) == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java index b622fb7e..5de89d7c 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java @@ -47,7 +47,7 @@ abstract class FallingBlockMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "net/minecraft/world/World.getBlockEntity (Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/entity/BlockEntity;", shift = At.Shift.AFTER), method = "tick") public void andromeda$tick(CallbackInfo ci) { - if (!am$cbnf.config().enabled) return; + if (!am$cbnf.enabled()) return; BlockPos blockPos = this.getBlockPos(); BlockEntity blockEntity = this.world.getBlockEntity(blockPos); diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java index 2316a5e6..4f19f63b 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java @@ -37,7 +37,7 @@ abstract class PersistentProjectileEntityMixin extends ProjectileEntity { @SuppressWarnings("ConstantConditions") @Inject(at = @At("TAIL"), method = "onBlockHit") private void andromeda$onBeeNestHit(BlockHitResult blockHitResult, CallbackInfo ci) { - if (!am$cbnf.config().enabled) return; + if (!am$cbnf.enabled()) return; Entity entity = this; BlockPos pos = blockHitResult.getBlockPos(); diff --git a/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java index 7af3594d..3d9a7e38 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java @@ -31,17 +31,17 @@ abstract class AbstractFireBlockMixin extends AbstractFireBlock { @ModifyVariable(method = "trySpreadingFire", at = @At(value = "LOAD"), index = 3, argsOnly = true) public int andromeda$spreadFire0(int value) { - return !am$quickf.config().enabled ? value : (int) (value * 0.8); + return !am$quickf.enabled() ? value : (int) (value * 0.8); } @ModifyExpressionValue(method = "trySpreadingFire", at = @At(value = "CONSTANT", args = "intValue=10")) public int andromeda$spreadFire01(int value) { - return !am$quickf.config().enabled ? value : (int) Math.ceil(value / 3d); + return !am$quickf.enabled() ? value : (int) Math.ceil(value / 3d); } @Inject(at = @At(value = "INVOKE", target = "net/minecraft/block/FireBlock.trySpreadingFire (Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;ILnet/minecraft/util/math/random/Random;I)V", ordinal = 0, shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "scheduledTick") public void andromeda$trySpreadBlocks(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci, BlockState blockState, boolean bl, int i, int j, boolean bl2, int k) { - if (am$quickf.config().enabled) { + if (am$quickf.enabled()) { for (int x = -3; x < 3; x++) { for (int y = -3; y < 3; y++) { for (int z = -3; z < 3; z++) { -- 2.51.2 From 496bacc562abfe33b6ddfd8be4b19af191988d15 Mon Sep 17 00:00:00 2001 From: melontini <104443436+melontini@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:33:03 +0700 Subject: [PATCH 11/11] Remove the illusion of modules disabling at runtime. --- .../andromeda/common/registries/Keeper.java | 2 +- .../blocks/bed/power/mixin/BedBlockMixin.java | 5 +-- .../blocks/bed/safe/mixin/BedBlockMixin.java | 7 +--- .../bed/unsafe/mixin/BedBlockMixin.java | 7 +--- .../mixin/BowItemMixin.java | 7 ---- .../mixin/FletchingTableBlockMixin.java | 7 ---- .../mixin/ItemMixin.java | 7 ---- .../mixin/AbstractBlockMixin.java | 7 ---- .../mixin/CactusBlockMixin.java | 7 +--- .../mixin/CampfireBlockEntityMixin.java | 2 -- .../mixin/PropaguleBlockMixin.java | 7 ---- .../LootableContainerBlockEntityMixin.java | 36 +++++++++---------- .../leaf_slowdown/mixin/EntityMixin.java | 7 ---- .../mixin/AdvancementTabMixin.java | 9 ++--- .../mixin/RecipeAlternativesWidgetMixin.java | 11 ++---- .../mixin/BeeEntityMixin.java | 6 +--- .../mixin/BoneMealItemMixin.java | 7 ++-- .../mixin/FurnaceMinecartIntakeMixin.java | 2 +- .../mixin/FurnaceMinecartMixin.java | 11 ++---- .../mixin/VillagerEntityMixin.java | 8 +---- .../all_pick_up/mixin/ZombieEntityMixin.java | 7 +--- .../clean_pickup/mixin/ZombieEntityMixin.java | 8 +---- .../name_tooltips/mixin/InGameHudMixin.java | 7 ---- .../mixin/GameModeSelectionMixin.java | 7 +--- .../mixin/GameModeSelectionScreenMixin.java | 8 ++--- .../mixin/AnvilScreenHandlerMixin.java | 6 ---- .../mixin/AnvilScreenMixin.java | 7 +--- .../mixin/ExperienceOrbMixin.java | 8 ++--- .../mixin/ItemStackMixin.java | 8 ++--- .../better_names/mixin/ItemStackMixin.java | 8 +---- .../infinite_totem/mixin/ItemEntityMixin.java | 3 +- .../mixin/LivingEntityMixin.java | 28 ++++++--------- .../modules/items/lockpick/Content.java | 2 +- .../lockpick/mixin/PlayerEntityMixin.java | 6 +--- .../mixin/ItemDispenserBehaviorMixin.java | 5 +-- .../mixin/MinecartItemMixin.java | 6 ++-- .../dragon_fight/mixin/EndCrystalMixin.java | 5 +-- .../dragon_fight/mixin/EnderDragonMixin.java | 6 ++-- .../dragon_fight/mixin/SpikeCacheMixin.java | 8 ++--- .../mixin/ZombieEntityMixin.java | 8 ++--- .../mixin/GoatHornMixin.java | 8 +---- .../mixin/VillagerEntityMixin.java | 5 --- .../mixin/PlayerEntityMixin.java | 8 ++--- .../mixin/PlayerManagerMixin.java | 7 +--- .../mixin/MinecraftClientMixin.java | 6 ---- .../ReloadableResourceManagerImplMixin.java | 6 ---- .../nice_level/LevelLoadingScreenMixin.java | 11 ++---- .../mixin/rose_of_the_valley/ItemMixin.java | 7 +--- .../mixin/useless_info/DebugHudMixin.java | 6 +--- .../mixin/wakeup/PlayerEntityMixin.java | 6 ---- .../auto_planting/mixin/ItemEntityMixin.java | 2 -- .../mixin/ServerWorldMixin.java | 7 ---- .../mixin/BeehiveBlockEntityMixin.java | 6 ---- .../mixin/FallingBlockMixin.java | 7 ---- .../PersistentProjectileEntityMixin.java | 8 +---- .../mixin/AbstractFireBlockMixin.java | 12 ++----- 56 files changed, 84 insertions(+), 341 deletions(-) diff --git a/src/main/java/me/melontini/andromeda/common/registries/Keeper.java b/src/main/java/me/melontini/andromeda/common/registries/Keeper.java index 70435cb0..9f65221f 100644 --- a/src/main/java/me/melontini/andromeda/common/registries/Keeper.java +++ b/src/main/java/me/melontini/andromeda/common/registries/Keeper.java @@ -52,7 +52,7 @@ public class Keeper { this.supplier = null; this.field = f; - this.consumers.forEach(consumer -> consumer.accept(get())); + if (isPresent()) this.consumers.forEach(consumer -> consumer.accept(get())); } public T get() { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java index 5cdde6c1..c2194b66 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/power/mixin/BedBlockMixin.java @@ -6,13 +6,10 @@ import me.melontini.andromeda.modules.blocks.bed.power.Power; import net.minecraft.block.BedBlock; import net.minecraft.block.Block; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(BedBlock.class) abstract class BedBlockMixin extends Block { - @Unique - private static final Power am$pow = ModuleManager.quick(Power.class); public BedBlockMixin(Settings settings) { super(settings); @@ -20,6 +17,6 @@ abstract class BedBlockMixin extends Block { @ModifyExpressionValue(at = @At(value = "CONSTANT", args = "floatValue=5.0F"), method = "onUse") public float andromeda$explosionRedirect(float power) { - return am$pow.enabled() ? am$pow.config().power : power; + return ModuleManager.quick(Power.class).config().power; } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java index 7e162c43..671850ed 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/safe/mixin/BedBlockMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.bed.safe.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.bed.safe.Safe; import me.melontini.andromeda.util.AndromedaTexts; import net.minecraft.block.BedBlock; import net.minecraft.block.Block; @@ -14,7 +12,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -23,8 +20,6 @@ import static net.minecraft.block.BedBlock.isBedWorking; @Mixin(BedBlock.class) abstract class BedBlockMixin extends Block { - @Unique - private static final Safe am$safe = ModuleManager.quick(Safe.class); public BedBlockMixin(Settings settings) { super(settings); @@ -32,7 +27,7 @@ abstract class BedBlockMixin extends Block { @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) public void andromeda$onUse(BlockState state, @NotNull World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (world.isClient || !am$safe.enabled()) return; + if (world.isClient) return; if (!isBedWorking(world)) { player.sendMessage(AndromedaTexts.SAFE_BEDS, true); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java index 5314e6d5..cc11142d 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/bed/unsafe/mixin/BedBlockMixin.java @@ -1,20 +1,15 @@ package me.melontini.andromeda.modules.blocks.bed.unsafe.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.bed.unsafe.Unsafe; import net.minecraft.block.BedBlock; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(BedBlock.class) class BedBlockMixin { - @Unique - private static final Unsafe am$un = ModuleManager.quick(Unsafe.class); @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BedBlock;isBedWorking(Lnet/minecraft/world/World;)Z"), method = "onUse") private boolean andromeda$explode(boolean original) { - return !am$un.enabled(); + return false; } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java index cb068598..18e751f6 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/BowItemMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.better_fletching_table.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.better_fletching_table.BetterFletchingTable; import me.melontini.dark_matter.api.minecraft.data.NbtUtil; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -13,7 +11,6 @@ import net.minecraft.item.RangedWeaponItem; import net.minecraft.nbt.NbtCompound; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -21,8 +18,6 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(BowItem.class) abstract class BowItemMixin extends RangedWeaponItem { - @Unique - private static final BetterFletchingTable am$bft = ModuleManager.quick(BetterFletchingTable.class); public BowItemMixin(Settings settings) { super(settings); @@ -30,8 +25,6 @@ abstract class BowItemMixin extends RangedWeaponItem { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/PersistentProjectileEntity;setVelocity(Lnet/minecraft/entity/Entity;FFFFF)V", shift = At.Shift.AFTER), method = "onStoppedUsing", locals = LocalCapture.CAPTURE_FAILEXCEPTION) public void andromeda$setVelocity(ItemStack stack, World world, LivingEntity user, int remainingUseTicks, CallbackInfo ci, PlayerEntity playerEntity, boolean bl, ItemStack itemStack, int i, float f, boolean bl2, ArrowItem arrowItem, PersistentProjectileEntity persistentProjectileEntity) { - if (!am$bft.enabled()) return; - NbtCompound stackNbt = stack.getNbt(); int a = NbtUtil.getInt(stackNbt, "AM-Tightened", 0); if (a > 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java index 9117e5a9..5657876b 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/FletchingTableBlockMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.better_fletching_table.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.better_fletching_table.BetterFletchingTable; import me.melontini.andromeda.modules.blocks.better_fletching_table.FletchingScreenHandler; import me.melontini.andromeda.util.AndromedaTexts; import net.minecraft.block.BlockState; @@ -17,15 +15,12 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(FletchingTableBlock.class) class FletchingTableBlockMixin extends CraftingTableBlock { - @Unique - private static final BetterFletchingTable am$bft = ModuleManager.quick(BetterFletchingTable.class); public FletchingTableBlockMixin(Settings settings) { super(settings); @@ -33,8 +28,6 @@ class FletchingTableBlockMixin extends CraftingTableBlock { @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) private void andromeda$onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (!am$bft.enabled()) return; - if (state.isOf(Blocks.FLETCHING_TABLE)) { if (player.world.isClient) { cir.setReturnValue(ActionResult.SUCCESS); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java index 68feeff0..f941337d 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/better_fletching_table/mixin/ItemMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.better_fletching_table.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.better_fletching_table.BetterFletchingTable; import me.melontini.dark_matter.api.minecraft.data.NbtUtil; import me.melontini.dark_matter.api.minecraft.util.TextUtil; import net.minecraft.client.item.TooltipContext; @@ -13,7 +11,6 @@ import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -22,13 +19,9 @@ import java.util.List; @Mixin(Item.class) class ItemMixin { - @Unique - private static final BetterFletchingTable am$bft = ModuleManager.quick(BetterFletchingTable.class); @Inject(at = @At("HEAD"), method = "appendTooltip") public void andromeda$tooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context, CallbackInfo ci) { - if (!am$bft.enabled()) return; - if (stack.getItem() instanceof BowItem) { int a = NbtUtil.getInt(stack.getNbt(), "AM-Tightened", 0); if (a > 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java index 67a38e02..8f2a3bea 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/AbstractBlockMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.cactus_bottle_filling.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.cactus_bottle_filling.CactusFiller; import me.melontini.andromeda.util.BlockUtil; import me.melontini.andromeda.util.ItemStackUtil; import net.minecraft.block.AbstractBlock; @@ -22,20 +20,15 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(AbstractBlock.class) class AbstractBlockMixin { - @Unique - private static final CactusFiller am$cbf = ModuleManager.quick(CactusFiller.class); @Inject(at = @At("HEAD"), method = "onUse", cancellable = true) private void andromeda$onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { - if (!am$cbf.enabled()) return; - if (state.getBlock() instanceof CactusBlock) { ItemStack stack = player.getStackInHand(hand); if (stack.isOf(Items.GLASS_BOTTLE)) { diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java index 1ce4aefb..3ba870cd 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/cactus_bottle_filling/mixin/CactusBlockMixin.java @@ -1,25 +1,20 @@ package me.melontini.andromeda.modules.blocks.cactus_bottle_filling.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.cactus_bottle_filling.CactusFiller; import me.melontini.andromeda.util.BlockUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.CactusBlock; import net.minecraft.state.StateManager; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(CactusBlock.class) class CactusBlockMixin { - @Unique - private static final CactusFiller am$cbf = ModuleManager.quick(CactusFiller.class); @Inject(at = @At("TAIL"), method = "appendProperties") private void andromeda$appendProperties(StateManager.Builder builder, CallbackInfo ci) { - if (am$cbf.enabled()) builder.add(BlockUtil.WATER_LEVEL_3); + builder.add(BlockUtil.WATER_LEVEL_3); } } diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java index a6a69ff9..62827000 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/campfire_effects/mixin/CampfireBlockEntityMixin.java @@ -30,8 +30,6 @@ class CampfireBlockEntityMixin { @Inject(at = @At("HEAD"), method = "litServerTick") private static void andromeda$litServerTick(World world, BlockPos pos, BlockState state, CampfireBlockEntity campfire, CallbackInfo ci) { - if (!am$ceff.enabled()) return; - if (world.getTime() % 180 == 0) { if (state.get(CampfireBlock.LIT)) { List entities = new ArrayList<>(); diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java index f98ad9d2..e4e521f2 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/falling_propagule/mixin/PropaguleBlockMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.blocks.falling_propagule.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.blocks.falling_propagule.FallingPropagule; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.PropaguleBlock; @@ -12,15 +10,12 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(PropaguleBlock.class) abstract class PropaguleBlockMixin { - @Unique - private static final FallingPropagule am$fp = ModuleManager.quick(FallingPropagule.class); @Shadow private static boolean isFullyGrown(BlockState state) { return false; @@ -28,8 +23,6 @@ abstract class PropaguleBlockMixin { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/PropaguleBlock;isFullyGrown(Lnet/minecraft/block/BlockState;)Z", shift = At.Shift.BEFORE), method = "randomTick") private void andromeda$randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci) { - if (!am$fp.enabled()) return; - if (isFullyGrown(state) && random.nextInt(40) == 0) { FallingBlockEntity fallingBlock = new FallingBlockEntity( world, pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java index dedb36a1..b28fd643 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/guarded_loot/mixin/LootableContainerBlockEntityMixin.java @@ -39,30 +39,28 @@ abstract class LootableContainerBlockEntityMixin extends LockableContainerBlockE @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;isSpectator()Z"), method = "checkUnlocked") private boolean lockedIfMonstersNearby(boolean locked, @Local PlayerEntity player) { GuardedLoot module = ModuleManager.quick(GuardedLoot.class); - if (module.enabled()) { - List monster = player.world.getEntitiesByClass(LivingEntity.class, new Box(this.getPos()).expand(module.config().range), Entity::isAlive).stream().filter(livingEntity -> livingEntity instanceof Monster) - .toList(); + List monster = player.world.getEntitiesByClass(LivingEntity.class, new Box(this.getPos()).expand(module.config().range), Entity::isAlive).stream().filter(livingEntity -> livingEntity instanceof Monster) + .toList(); - if (!monster.isEmpty()) { - boolean lockpicking = ModuleManager.get().getModule(Lockpick.class).map(m -> { - if (module.config().allowLockPicking) { - if (player.getMainHandStack().isOf(Content.LOCKPICK.orThrow())) { - return Content.LOCKPICK.orThrow().tryUse(m, player.getMainHandStack(), player, Hand.MAIN_HAND); - } + if (!monster.isEmpty()) { + boolean lockpicking = ModuleManager.get().getModule(Lockpick.class).map(m -> { + if (module.config().allowLockPicking) { + if (player.getMainHandStack().isOf(Content.LOCKPICK.orThrow())) { + return Content.LOCKPICK.orThrow().tryUse(m, player.getMainHandStack(), player, Hand.MAIN_HAND); } - return false; - }).orElse(false); + } + return false; + }).orElse(false); - if (!lockpicking) { - player.sendMessage(TextUtil.translatable("andromeda.container.guarded").formatted(Formatting.RED), true); - player.playSound(SoundEvents.BLOCK_CHEST_LOCKED, SoundCategory.BLOCKS, 1.0F, 1.0F); - player.emitGameEvent(GameEvent.CONTAINER_OPEN); + if (!lockpicking) { + player.sendMessage(TextUtil.translatable("andromeda.container.guarded").formatted(Formatting.RED), true); + player.playSound(SoundEvents.BLOCK_CHEST_LOCKED, SoundCategory.BLOCKS, 1.0F, 1.0F); + player.emitGameEvent(GameEvent.CONTAINER_OPEN); - for (LivingEntity livingEntity : monster) { - livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.GLOWING, 5 * 20, 0, false, false)); - } - return true; + for (LivingEntity livingEntity : monster) { + livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.GLOWING, 5 * 20, 0, false, false)); } + return true; } } return locked; diff --git a/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java b/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java index e3ef2e2c..8d3eecff 100644 --- a/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/blocks/leaf_slowdown/mixin/EntityMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.blocks.leaf_slowdown.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.blocks.leaf_slowdown.Content; -import me.melontini.andromeda.modules.blocks.leaf_slowdown.LeafSlowdown; import net.minecraft.block.Blocks; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -17,15 +15,12 @@ import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(LivingEntity.class) abstract class EntityMixin extends Entity { - @Unique - private static final LeafSlowdown am$leaf = ModuleManager.quick(LeafSlowdown.class); public EntityMixin(EntityType type, World world) { super(type, world); @@ -35,8 +30,6 @@ abstract class EntityMixin extends Entity { @Inject(at = @At("HEAD"), method = "baseTick") public void andromeda$tick(CallbackInfo ci) { - if (!am$leaf.enabled()) return; - EntityAttributeInstance attributeInstance = this.getAttributeInstance(EntityAttributes.GENERIC_MOVEMENT_SPEED); if (!this.world.isClient) { if (this.world.getBlockState(getBlockPos().down()).isIn(BlockTags.LEAVES) diff --git a/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java b/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java index 1796e530..ae064bb1 100644 --- a/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/bugfixes/advancement_shadow/mixin/AdvancementTabMixin.java @@ -1,31 +1,26 @@ package me.melontini.andromeda.modules.bugfixes.advancement_shadow.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.bugfixes.advancement_shadow.AdvancementShadow; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.advancement.AdvancementTab; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; @Mixin(AdvancementTab.class) class AdvancementTabMixin { - @Unique - private static final AdvancementShadow am$fias = ModuleManager.quick(AdvancementShadow.class); @Shadow private float alpha; @Shadow @Final private MinecraftClient client; @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 0), index = 0, method = "drawWidgetTooltip") private float andromeda$draw(float value) { - return am$fias.enabled() ? this.alpha + (0.04F * client.getLastFrameDuration()) : value; + return this.alpha + (0.04F * client.getLastFrameDuration()); } @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 1), index = 0, method = "drawWidgetTooltip") private float andromeda$draw1(float value) { - return am$fias.enabled() ? this.alpha - (0.06F * client.getLastFrameDuration()) : value; + return this.alpha - (0.06F * client.getLastFrameDuration()); } } diff --git a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java index ff606feb..9a3af7df 100644 --- a/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/bugfixes/aligned_alternatives/mixin/RecipeAlternativesWidgetMixin.java @@ -1,35 +1,30 @@ package me.melontini.andromeda.modules.bugfixes.aligned_alternatives.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.bugfixes.aligned_alternatives.AlignedRecipeAlternatives; import net.minecraft.client.gui.screen.recipebook.RecipeAlternativesWidget; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(RecipeAlternativesWidget.class) class RecipeAlternativesWidgetMixin { - @Unique - private static final AlignedRecipeAlternatives am$para = ModuleManager.quick(AlignedRecipeAlternatives.class); @Shadow private int buttonX; @Shadow private int buttonY; @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;renderGrid(Lnet/minecraft/client/util/math/MatrixStack;IIIIII)V"), index = 3, method = "render") private int andromeda$prepareGrid(int i) { - return am$para.enabled() ? 25 : i; + return i; } @Redirect(at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;buttonX:I"), method = "renderGrid") private int andromeda$renderGridX(RecipeAlternativesWidget instance) { - return am$para.enabled() ? this.buttonX - 2 : this.buttonX; + return this.buttonX - 2; } @Redirect(at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/recipebook/RecipeAlternativesWidget;buttonY:I"), method = "renderGrid") private int andromeda$renderGridY(RecipeAlternativesWidget instance) { - return am$para.enabled() ? this.buttonY - 1 : this.buttonY; + return this.buttonY - 1; } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java index 87af8418..5701fab4 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BeeEntityMixin.java @@ -21,8 +21,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(BeeEntity.class) abstract class BeeEntityMixin extends AnimalEntity { - @Unique - private static final BeeFlowerDuplication am$bfd = ModuleManager.quick(BeeFlowerDuplication.class); @Shadow @Nullable BlockPos flowerPos; @Shadow BeeEntity.PollinateGoal pollinateGoal; @@ -36,8 +34,6 @@ abstract class BeeEntityMixin extends AnimalEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/AnimalEntity;tick()V", shift = At.Shift.AFTER), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$bfd.enabled()) return; - if (this.andromeda$plantingCoolDown > 0) this.andromeda$plantingCoolDown--; if (this.pollinateGoal != null) { @@ -79,7 +75,7 @@ abstract class BeeEntityMixin extends AnimalEntity { } } } - } else if (flowerState.getBlock() instanceof TallFlowerBlock flowerBlock && am$bfd.enabled()) { + } else if (flowerState.getBlock() instanceof TallFlowerBlock flowerBlock && ModuleManager.quick(BeeFlowerDuplication.class).config().tallFlowers) { andromeda$plantingCoolDown = world.random.nextBetween(3600, 8000); for (int i = -1; i <= 1; i++) { for (int b = -2; b <= 2; b++) { diff --git a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java index 20e8fa25..3e52cb61 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/bee_flower_duplication/mixin/BoneMealItemMixin.java @@ -12,24 +12,21 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.explosion.Explosion; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BoneMealItem.class) class BoneMealItemMixin { - @Unique - private static final BeeFlowerDuplication am$bfd = ModuleManager.quick(BeeFlowerDuplication.class); @Inject(at = @At("HEAD"), method = "useOnFertilizable", cancellable = true) private static void andromeda$useOnFertilizable(ItemStack stack, World world, BlockPos pos, CallbackInfoReturnable cir) { - if (!am$bfd.enabled() || !am$bfd.config().tallFlowers) return; + if (!ModuleManager.quick(BeeFlowerDuplication.class).config().tallFlowers) return; BlockState blockState = world.getBlockState(pos); if (blockState.getBlock() instanceof TallFlowerBlock) { if (!world.isClient) { - if (ModuleManager.get().getModule("misc.unknown").map(m->m.enabled()).orElse(false) && world.random.nextInt(100) == 0) { + if (ModuleManager.get().getModule("misc.unknown").isPresent() && world.random.nextInt(100) == 0) { world.createExplosion(null, DamageSource.explosion((LivingEntity) null), null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3.0F, false, Explosion.DestructionType.DESTROY); diff --git a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java index 792bcf9e..c90b4aaa 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartIntakeMixin.java @@ -33,7 +33,7 @@ abstract class FurnaceMinecartIntakeMixin extends AbstractMinecartEntity { @Inject(at = @At("HEAD"), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$bfm.enabled() || !am$bfm.config().takeFuelWhenLow) return; + if (!am$bfm.config().takeFuelWhenLow) return; if (!this.world.isClient() && this.fuel < 100) { if (world.getTime() % 20 == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java index fad1e877..a5ce0f2f 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/better_furnace_minecart/mixin/FurnaceMinecartMixin.java @@ -14,7 +14,6 @@ import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -24,21 +23,18 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(FurnaceMinecartEntity.class) class FurnaceMinecartMixin { - @Unique - private static final BetterFurnaceMinecart am$bfm = ModuleManager.quick(BetterFurnaceMinecart.class); @Shadow public int fuel; @Inject(at = @At("HEAD"), method = "interact", cancellable = true) public void andromeda$interact(PlayerEntity player, Hand hand, CallbackInfoReturnable cir) { - if (!am$bfm.enabled()) return; ItemStack stack = player.getStackInHand(hand); Item item = stack.getItem(); FurnaceMinecartEntity furnaceMinecart = (FurnaceMinecartEntity) (Object) this; if (FuelRegistry.INSTANCE.get(item) != null) { int itemFuel = FuelRegistry.INSTANCE.get(item); - if ((this.fuel + (itemFuel * 2.25)) <= am$bfm.config().maxFuel) { + if ((this.fuel + (itemFuel * 2.25)) <= ModuleManager.quick(BetterFurnaceMinecart.class).config().maxFuel) { if (!player.getAbilities().creativeMode) { ItemStack reminder = stack.getRecipeRemainder(); if (!reminder.isEmpty()) @@ -60,12 +56,11 @@ class FurnaceMinecartMixin { @WrapOperation(at = @At(value = "INVOKE", target = "Lnet/minecraft/nbt/NbtCompound;putShort(Ljava/lang/String;S)V"), method = "writeCustomDataToNbt") private void andromeda$fuelIntToNbt(NbtCompound nbt, String key, /* short */ short value, Operation operation) { - if (am$bfm.enabled()) nbt.putInt(key, this.fuel); - else operation.call(nbt, key, value); + nbt.putInt(key, this.fuel); } @Inject(at = @At(value = "TAIL"), method = "readCustomDataFromNbt") public void andromeda$fuelIntFromNbt(NbtCompound nbt, CallbackInfo ci) { - if (am$bfm.enabled()) this.fuel = nbt.getInt("Fuel"); + this.fuel = nbt.getInt("Fuel"); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java index 019b4eff..9a70c76d 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/villagers_follow_emeralds/mixin/VillagerEntityMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.entities.villagers_follow_emeralds.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.entities.villagers_follow_emeralds.VillagerTemptGoal; -import me.melontini.andromeda.modules.entities.villagers_follow_emeralds.VillagersFollowEmeralds; import net.minecraft.entity.EntityType; import net.minecraft.entity.passive.MerchantEntity; import net.minecraft.entity.passive.VillagerEntity; @@ -10,15 +8,12 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.village.VillagerType; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(VillagerEntity.class) abstract class VillagerEntityMixin extends MerchantEntity { - @Unique - private static final VillagersFollowEmeralds am$vfeb = ModuleManager.quick(VillagersFollowEmeralds.class); public VillagerEntityMixin(EntityType entityType, World world) { super(entityType, world); @@ -26,7 +21,6 @@ abstract class VillagerEntityMixin extends MerchantEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/VillagerEntity;setVillagerData(Lnet/minecraft/village/VillagerData;)V", shift = At.Shift.AFTER), method = "(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;Lnet/minecraft/village/VillagerType;)V") private void andromeda$init(EntityType entityType, World world, VillagerType type, CallbackInfo ci) { - if (am$vfeb.enabled()) - this.goalSelector.add(6, new VillagerTemptGoal((VillagerEntity) (Object) this, 0.5, Ingredient.fromTag(VillagerTemptGoal.TEMPTING), false)); + this.goalSelector.add(6, new VillagerTemptGoal((VillagerEntity) (Object) this, 0.5, Ingredient.fromTag(VillagerTemptGoal.TEMPTING), false)); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java index 3ddee399..b9a9649c 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/zombie/all_pick_up/mixin/ZombieEntityMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.entities.zombie.all_pick_up.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.entities.zombie.all_pick_up.Pickup; import net.minecraft.entity.EntityData; import net.minecraft.entity.EntityType; import net.minecraft.entity.SpawnReason; @@ -12,15 +10,12 @@ import net.minecraft.world.LocalDifficulty; import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ZombieEntity.class) abstract class ZombieEntityMixin extends HostileEntity { - @Unique - private static final Pickup am$azcbi = ModuleManager.quick(Pickup.class); protected ZombieEntityMixin(EntityType entityType, World world) { super(entityType, world); @@ -28,6 +23,6 @@ abstract class ZombieEntityMixin extends HostileEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/mob/ZombieEntity;setCanPickUpLoot(Z)V", shift = At.Shift.AFTER), method = "initialize") private void andromeda$initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, EntityData entityData, NbtCompound entityNbt, CallbackInfoReturnable cir) { - if (am$azcbi.enabled()) this.setCanPickUpLoot(true); + this.setCanPickUpLoot(true); } } diff --git a/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java index a073d7d2..7202016e 100644 --- a/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/entities/zombie/clean_pickup/mixin/ZombieEntityMixin.java @@ -2,7 +2,6 @@ package me.melontini.andromeda.modules.entities.zombie.clean_pickup.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.entities.zombie.clean_pickup.Pickup; import me.melontini.andromeda.modules.entities.zombie.clean_pickup.PickupTag; import me.melontini.andromeda.modules.mechanics.throwable_items.ThrowableItems; import me.melontini.andromeda.modules.mechanics.throwable_items.data.ItemBehaviorManager; @@ -17,8 +16,6 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(ZombieEntity.class) abstract class ZombieEntityMixin extends HostileEntity { - @Unique - private static final Pickup am$zpui = ModuleManager.quick(Pickup.class); protected ZombieEntityMixin(EntityType entityType, World world) { super(entityType, world); @@ -26,12 +23,9 @@ abstract class ZombieEntityMixin extends HostileEntity { @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/mob/HostileEntity;canPickupItem(Lnet/minecraft/item/ItemStack;)Z"), method = "canPickupItem") public boolean andromeda$canPickupItem(boolean original, ItemStack stack) { - if (am$zpui.enabled()) - return original && (stack.isIn(PickupTag.ZOMBIES_PICKUP) || ModuleManager.get().getModule(ThrowableItems.class) + return original && (stack.isIn(PickupTag.ZOMBIES_PICKUP) || ModuleManager.get().getModule(ThrowableItems.class) .map(m -> handleThrowableItems(m, stack)) .orElse(false)); - else - return original; } @Unique diff --git a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java index 8e9cd854..7bbd2ac8 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/name_tooltips/mixin/InGameHudMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.gui.name_tooltips.mixin; import com.mojang.blaze3d.systems.RenderSystem; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.gui.name_tooltips.NameTooltips; import me.melontini.dark_matter.api.base.util.MakeSure; import me.melontini.dark_matter.api.base.util.Utilities; import me.melontini.dark_matter.api.minecraft.client.util.DrawUtil; @@ -16,7 +14,6 @@ import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -26,8 +23,6 @@ import java.util.stream.Collectors; @Mixin(InGameHud.class) abstract class InGameHudMixin { - @Unique - private static final NameTooltips am$tnotn = ModuleManager.quick(NameTooltips.class); @Shadow @Final private MinecraftClient client; @Shadow private int heldItemTooltipFade; @Shadow private ItemStack currentStack; @@ -36,8 +31,6 @@ abstract class InGameHudMixin { @Inject(at = @At("HEAD"), method = "renderHeldItemTooltip", cancellable = true) private void andromeda$renderTooltip(MatrixStack matrices, CallbackInfo ci) { - if (!am$tnotn.enabled()) return; - this.client.getProfiler().push("selectedItemName"); if (this.heldItemTooltipFade > 0 && !this.currentStack.isEmpty() && MinecraftClient.getInstance().currentScreen == null) { diff --git a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java index b77712ce..69a7f7f5 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionMixin.java @@ -1,19 +1,14 @@ package me.melontini.andromeda.modules.gui.no_more_adventure.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.gui.no_more_adventure.NoMoreAdventure; import net.minecraft.client.gui.screen.GameModeSelectionScreen; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(GameModeSelectionScreen.GameModeSelection.class) class GameModeSelectionMixin { - @Unique - private static final NoMoreAdventure am$noma = ModuleManager.quick(NoMoreAdventure.class); @ModifyExpressionValue(method = "next", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;ADVENTURE:Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;")) private GameModeSelectionScreen.GameModeSelection andromeda$next(GameModeSelectionScreen.GameModeSelection original) { - return !am$noma.enabled() ? original : GameModeSelectionScreen.GameModeSelection.SPECTATOR; + return GameModeSelectionScreen.GameModeSelection.SPECTATOR; } } diff --git a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java index 4625813e..e3a7d9d0 100644 --- a/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/gui/no_more_adventure/mixin/GameModeSelectionScreenMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.gui.no_more_adventure.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.gui.no_more_adventure.NoMoreAdventure; import net.minecraft.client.gui.screen.GameModeSelectionScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; @@ -13,8 +11,6 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(GameModeSelectionScreen.class) abstract class GameModeSelectionScreenMixin extends Screen { - @Unique - private static final NoMoreAdventure am$noma = ModuleManager.quick(NoMoreAdventure.class); protected GameModeSelectionScreenMixin(Text title) { super(title); } @@ -24,11 +20,11 @@ abstract class GameModeSelectionScreenMixin extends Screen { @ModifyExpressionValue(method = "init", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;VALUES:[Lnet/minecraft/client/gui/screen/GameModeSelectionScreen$GameModeSelection;")) private GameModeSelectionScreen.GameModeSelection[] andromeda$modValues(GameModeSelectionScreen.GameModeSelection[] original) { - return !am$noma.enabled() ? original : andromeda$gameModeSelections; + return andromeda$gameModeSelections; } @ModifyExpressionValue(method = "init", at = @At(value = "FIELD", target = "Lnet/minecraft/client/gui/screen/GameModeSelectionScreen;UI_WIDTH:I")) private int andromeda$modValues(int original) { - return !am$noma.enabled() ? original : andromeda$gameModeSelections.length * 31 - 5; + return andromeda$gameModeSelections.length * 31 - 5; } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java index 6fd75541..928382d1 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenHandlerMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.items.balanced_mending.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.items.balanced_mending.BalancedMending; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerInventory; @@ -12,13 +10,10 @@ import net.minecraft.screen.ForgingScreenHandler; import net.minecraft.screen.ScreenHandlerContext; import net.minecraft.screen.ScreenHandlerType; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(AnvilScreenHandler.class) abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler { - @Unique - private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); public AnvilScreenHandlerMixin(@org.jetbrains.annotations.Nullable ScreenHandlerType type, int syncId, PlayerInventory playerInventory, ScreenHandlerContext context) { super(type, syncId, playerInventory, context); @@ -26,7 +21,6 @@ abstract class AnvilScreenHandlerMixin extends ForgingScreenHandler { @ModifyExpressionValue(method = "updateResult", at = @At(value = "CONSTANT", args = "intValue=40")) private int andromeda$setRepairLimit(int constant) { - if (am$balmend.enabled()) if (!this.getSlot(1).getStack().isOf(Items.ENCHANTED_BOOK)) if (EnchantmentHelper.get(this.getSlot(0).getStack()).containsKey(Enchantments.MENDING)) { return Integer.MAX_VALUE; diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java index 5bb616bb..cf407708 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/AnvilScreenMixin.java @@ -2,9 +2,7 @@ package me.melontini.andromeda.modules.items.balanced_mending.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.melontini.andromeda.base.Environment; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.base.annotations.SpecialEnvironment; -import me.melontini.andromeda.modules.items.balanced_mending.BalancedMending; import net.minecraft.client.gui.screen.ingame.AnvilScreen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.enchantment.EnchantmentHelper; @@ -14,21 +12,18 @@ import net.minecraft.item.Items; import net.minecraft.screen.AnvilScreenHandler; import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @SpecialEnvironment(Environment.CLIENT) @Mixin(AnvilScreen.class) abstract class AnvilScreenMixin extends HandledScreen { - @Unique - private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); + public AnvilScreenMixin(AnvilScreenHandler handler, PlayerInventory inventory, Text title) { super(handler, inventory, title); } @ModifyExpressionValue(method = "drawForeground", at = @At(value = "CONSTANT", args = "intValue=40")) private int andromeda$setRepairLimit(int constant) { - if (am$balmend.enabled()) if (!this.handler.getSlot(1).getStack().isOf(Items.ENCHANTED_BOOK)) if (EnchantmentHelper.get(this.handler.getSlot(0).getStack()).containsKey(Enchantments.MENDING)) { return Integer.MAX_VALUE; diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java index bf42df67..83b0384e 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ExperienceOrbMixin.java @@ -1,21 +1,17 @@ package me.melontini.andromeda.modules.items.balanced_mending.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.items.balanced_mending.BalancedMending; import net.minecraft.entity.ExperienceOrbEntity; import net.minecraft.entity.player.PlayerEntity; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ExperienceOrbEntity.class) class ExperienceOrbMixin { - @Unique - private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); + @Inject(at = @At("HEAD"), method = "repairPlayerGears", cancellable = true) private void andromeda$repair(PlayerEntity player, int amount, CallbackInfoReturnable cir) { - if (am$balmend.enabled()) cir.setReturnValue(amount); + cir.setReturnValue(amount); } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java index c6f1526d..3acada6d 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/balanced_mending/mixin/ItemStackMixin.java @@ -1,22 +1,18 @@ package me.melontini.andromeda.modules.items.balanced_mending.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.items.balanced_mending.BalancedMending; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(ItemStack.class) abstract class ItemStackMixin { - @Unique - private static final BalancedMending am$balmend = ModuleManager.quick(BalancedMending.class); + @ModifyReturnValue(method = "getRepairCost", at = @At("RETURN")) private int andromeda$getRepairCost(int original) { - if (am$balmend.enabled() && original >= 52 && EnchantmentHelper.get((ItemStack) (Object) this).containsKey(Enchantments.MENDING)) { + if (original >= 52 && EnchantmentHelper.get((ItemStack) (Object) this).containsKey(Enchantments.MENDING)) { return 52; } return original; diff --git a/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java b/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java index 215ea701..a0670196 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/better_names/mixin/ItemStackMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.items.better_names.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.items.better_names.BetterNames; import me.melontini.dark_matter.api.minecraft.util.TextUtil; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.player.PlayerEntity; @@ -13,7 +11,6 @@ import net.minecraft.util.Rarity; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -23,8 +20,7 @@ import java.util.List; @Mixin(ItemStack.class) abstract class ItemStackMixin { - @Unique - private static final BetterNames am$sbin = ModuleManager.quick(BetterNames.class); + @Shadow public abstract int getMaxDamage(); @Shadow public abstract Item getItem(); @Shadow public abstract int getCount(); @@ -33,8 +29,6 @@ abstract class ItemStackMixin { @Inject(at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", ordinal = 0, shift = At.Shift.BEFORE), method = "getTooltip", locals = LocalCapture.CAPTURE_FAILSOFT) private void andromeda$getTooltip(@Nullable PlayerEntity player, TooltipContext context, CallbackInfoReturnable> cir, List list, MutableText mutableText) { - if (!am$sbin.enabled()) return; - if (!this.getItem().isDamageable()) { if (this.getCount() > 1) mutableText.append(TextUtil.literal(" x" + this.getCount()).formatted(getRarity().formatting)); diff --git a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java index d6623752..a35fb7ad 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/ItemEntityMixin.java @@ -72,8 +72,7 @@ abstract class ItemEntityMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;tick()V", shift = At.Shift.BEFORE), method = "tick") private void andromeda$tick(CallbackInfo ci) { - if (!am$itou.config().enableAscension || !am$itou.enabled()) - return; + if (!am$itou.config().enableAscension) return; if (!this.dataTracker.get(STACK).isOf(Items.TOTEM_OF_UNDYING)) return; if (age % 35 == 0 && andromeda$ascensionTicks == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java index 050259ee..61c72442 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/infinite_totem/mixin/LivingEntityMixin.java @@ -3,9 +3,7 @@ package me.melontini.andromeda.modules.items.infinite_totem.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.WrapWithCondition; import com.llamalad7.mixinextras.sugar.Local; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.items.infinite_totem.Content; -import me.melontini.andromeda.modules.items.infinite_totem.InfiniteTotem; import me.melontini.andromeda.util.AndromedaPackets; import me.melontini.dark_matter.api.minecraft.world.PlayerUtil; import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; @@ -23,7 +21,6 @@ import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -31,10 +28,9 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(LivingEntity.class) abstract class LivingEntityMixin extends Entity { - @Unique - private static final InfiniteTotem am$itou = ModuleManager.quick(InfiniteTotem.class); - @Shadow public abstract ItemStack getStackInHand(Hand hand); + @Shadow + public abstract ItemStack getStackInHand(Hand hand); public LivingEntityMixin(EntityType type, World world) { super(type, world); @@ -53,20 +49,18 @@ abstract class LivingEntityMixin extends Entity { @SuppressWarnings("InvalidInjectorMethodSignature") @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;sendEntityStatus(Lnet/minecraft/entity/Entity;B)V", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "tryUseTotem", cancellable = true) private void andromeda$useInfiniteTotem(DamageSource source, CallbackInfoReturnable cir, ItemStack itemStack) { - if (am$itou.enabled()) { - if (itemStack.isOf(Content.INFINITE_TOTEM.orThrow())) { - if (!world.isClient()) { - PacketByteBuf buf = PacketByteBufs.create() - .writeUuid(this.getUuid()) - .writeItemStack(new ItemStack(Content.INFINITE_TOTEM.orThrow())); - buf.writeRegistryValue(Registry.PARTICLE_TYPE, Content.KNOCKOFF_TOTEM_PARTICLE.orThrow()); + if (itemStack.isOf(Content.INFINITE_TOTEM.orThrow())) { + if (!world.isClient()) { + PacketByteBuf buf = PacketByteBufs.create() + .writeUuid(this.getUuid()) + .writeItemStack(new ItemStack(Content.INFINITE_TOTEM.orThrow())); + buf.writeRegistryValue(Registry.PARTICLE_TYPE, Content.KNOCKOFF_TOTEM_PARTICLE.orThrow()); - for (PlayerEntity player : PlayerUtil.findPlayersInRange(world, getBlockPos(), 120)) { - ServerPlayNetworking.send((ServerPlayerEntity) player, AndromedaPackets.USED_CUSTOM_TOTEM, buf); - } + for (PlayerEntity player : PlayerUtil.findPlayersInRange(world, getBlockPos(), 120)) { + ServerPlayNetworking.send((ServerPlayerEntity) player, AndromedaPackets.USED_CUSTOM_TOTEM, buf); } - cir.setReturnValue(true); } + cir.setReturnValue(true); } } } diff --git a/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java b/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java index a76400d3..58b688f4 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java +++ b/src/main/java/me/melontini/andromeda/modules/items/lockpick/Content.java @@ -17,7 +17,7 @@ public class Content { public static final Keeper LOCKPICK = start(() -> ContentBuilder.ItemBuilder .create(id("lockpick"), () -> new LockpickItem(new FabricItemSettings().maxCount(16))) .itemGroup(ItemGroup.TOOLS) - .register(() -> ModuleManager.quick(Lockpick.class).enabled())) + .register(() -> ModuleManager.get().isPresent(Lockpick.class))) .afterInit(item -> AndromedaItemGroup.accept(acceptor -> acceptor.item(ModuleManager.quick(Lockpick.class), item))); public static final Keeper> MERCHANT_INVENTORY = Keeper.of(() -> () -> diff --git a/src/main/java/me/melontini/andromeda/modules/items/lockpick/mixin/PlayerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/items/lockpick/mixin/PlayerEntityMixin.java index fb75e593..ec805562 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/lockpick/mixin/PlayerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/lockpick/mixin/PlayerEntityMixin.java @@ -2,8 +2,6 @@ package me.melontini.andromeda.modules.items.lockpick.mixin; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.items.lockpick.Lockpick; import me.melontini.andromeda.modules.items.lockpick.LockpickItem; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; @@ -13,13 +11,11 @@ import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(PlayerEntity.class) abstract class PlayerEntityMixin extends LivingEntity { - @Unique - private static final Lockpick am$lockpick = ModuleManager.quick(Lockpick.class); + protected PlayerEntityMixin(EntityType entityType, World world) { super(entityType, world); } diff --git a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/ItemDispenserBehaviorMixin.java b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/ItemDispenserBehaviorMixin.java index fad8e77a..9417949c 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/ItemDispenserBehaviorMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/ItemDispenserBehaviorMixin.java @@ -2,7 +2,6 @@ package me.melontini.andromeda.modules.items.minecart_block_picking.mixin; import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.entities.better_furnace_minecart.BetterFurnaceMinecart; -import me.melontini.andromeda.modules.items.minecart_block_picking.MinecartBlockPicking; import me.melontini.dark_matter.api.minecraft.data.NbtUtil; import net.minecraft.block.BlockState; import net.minecraft.block.enums.RailShape; @@ -17,7 +16,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -25,8 +23,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(targets = "net/minecraft/item/MinecartItem$1") class ItemDispenserBehaviorMixin { - @Unique - private static final MinecartBlockPicking am$mbp = ModuleManager.quick(MinecartBlockPicking.class); + @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/vehicle/AbstractMinecartEntity;create(Lnet/minecraft/world/World;DDDLnet/minecraft/entity/vehicle/AbstractMinecartEntity$Type;)Lnet/minecraft/entity/vehicle/AbstractMinecartEntity;", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "dispenseSilently", cancellable = true) public void andromeda$dispenseSilently(BlockPointer pointer, ItemStack stack, CallbackInfoReturnable cir, Direction direction, World world, double d, double e, double f, BlockPos blockPos, BlockState blockState, RailShape railShape, double g) { if (stack.getItem() == Items.CHEST_MINECART) { diff --git a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java index 85c270ae..f62adb0b 100644 --- a/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/items/minecart_block_picking/mixin/MinecartItemMixin.java @@ -46,8 +46,6 @@ import java.util.Objects; @Mixin(MinecartItem.class) abstract class MinecartItemMixin extends Item { - @Unique - private static final MinecartBlockPicking am$mbp = ModuleManager.quick(MinecartBlockPicking.class); @Shadow @Final public AbstractMinecartEntity.Type type; @@ -116,7 +114,7 @@ abstract class MinecartItemMixin extends Item { } } - if (am$mbp.enabled() && player.isSneaking()) { + if (player.isSneaking()) { if (stack.getItem() != Items.MINECART) return; if (state.isOf(Blocks.CHEST)) { @@ -177,7 +175,7 @@ abstract class MinecartItemMixin extends Item { if (ModuleManager.get().getModule(Minecarts.class).isPresent()) { - if (state.isOf(Blocks.SPAWNER) && am$mbp.config().spawnerPicking && MinecartItems.SPAWNER_MINECART.isPresent()) { + if (state.isOf(Blocks.SPAWNER) && ModuleManager.quick(MinecartBlockPicking.class).config().spawnerPicking && MinecartItems.SPAWNER_MINECART.isPresent()) { if (!world.isClient()) { MobSpawnerBlockEntity mobSpawnerBlockEntity = (MobSpawnerBlockEntity) MakeSure.notNull(world.getBlockEntity(pos), "Block has no block entity. %s".formatted(pos)); if (!player.isCreative()) stack.decrement(1); diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java index 49f0d0de..4474c68e 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EndCrystalMixin.java @@ -13,15 +13,12 @@ import net.minecraft.world.World; import org.apache.commons.lang3.mutable.MutableInt; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(EndCrystalEntity.class) abstract class EndCrystalMixin extends Entity { - @Unique - private static final DragonFight am$dft = ModuleManager.quick(DragonFight.class); @Shadow public abstract boolean shouldShowBottom(); @@ -31,7 +28,7 @@ abstract class EndCrystalMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/decoration/EndCrystalEntity;remove(Lnet/minecraft/entity/Entity$RemovalReason;)V", shift = At.Shift.BEFORE), method = "damage") private void andromeda$damage(DamageSource source, float amount, CallbackInfoReturnable cir) { - if (!am$dft.enabled() || !am$dft.config().respawnCrystals) return; + if (!ModuleManager.quick(DragonFight.class).config().respawnCrystals) return; if (world.getRegistryKey() == World.END && !((ServerWorld) world).getAliveEnderDragons().isEmpty() && shouldShowBottom()) { if (this.getPos().getY() > 71) diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java index 169a915a..627abdbb 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/EnderDragonMixin.java @@ -5,16 +5,14 @@ import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.mechanics.dragon_fight.DragonFight; import net.minecraft.entity.boss.dragon.EnderDragonEntity; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(EnderDragonEntity.class) class EnderDragonMixin { - @Unique - private static final DragonFight am$dft = ModuleManager.quick(DragonFight.class); + @ModifyExpressionValue(at = @At(value = "CONSTANT", args = "doubleValue=32"), method = "tickWithEndCrystals") private double andromeda$modConstant(double constant) { - if (am$dft.enabled() && am$dft.config().shorterCrystalTrackRange) return 24.0; + if (ModuleManager.quick(DragonFight.class).config().shorterCrystalTrackRange) return 24.0; return constant; } } diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java index 0dad4f1e..9688f755 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/dragon_fight/mixin/SpikeCacheMixin.java @@ -4,22 +4,20 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.mechanics.dragon_fight.DragonFight; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(targets = "net/minecraft/world/gen/feature/EndSpikeFeature$SpikeCache") class SpikeCacheMixin { - @Unique - private static final DragonFight am$dft = ModuleManager.quick(DragonFight.class); + @ModifyExpressionValue(method = "load(Ljava/lang/Long;)Ljava/util/List;", at = @At(value = "CONSTANT", args = "intValue=76")) private int andromeda$modifySpikeSize(int size) { - if (am$dft.enabled() && am$dft.config().shorterSpikes) return 72; + if (ModuleManager.quick(DragonFight.class).config().shorterSpikes) return 72; return size; } @ModifyExpressionValue(method = "load(Ljava/lang/Long;)Ljava/util/List;", at = @At(value = "CONSTANT", args = "intValue=3", ordinal = 1)) private int andromeda$modifySpikeHeight(int size) { - if (am$dft.enabled() && am$dft.config().shorterSpikes) return 2; + if (ModuleManager.quick(DragonFight.class).config().shorterSpikes) return 2; return size; } } diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java index 026e0b10..97720226 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/throwable_items/mixin/ZombieEntityMixin.java @@ -24,8 +24,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ZombieEntity.class) abstract class ZombieEntityMixin extends HostileEntity implements ItemThrowerMob { - @Unique - private static final ThrowableItems am$thritm = ModuleManager.quick(ThrowableItems.class); @Unique private int andromeda$cooldown = 0; @@ -36,8 +34,8 @@ abstract class ZombieEntityMixin extends HostileEntity implements ItemThrowerMob @Inject(at = @At("HEAD"), method = "initCustomGoals") private void andromeda$initCustomGoals(CallbackInfo ci) { - if (am$thritm.enabled() && am$thritm.config().canZombiesThrowItems) - this.goalSelector.add(1, new ThrowableItemAttackGoal<>(this, 1.0f, am$thritm.config().zombieThrowInterval, 4, 16)); + if (ModuleManager.quick(ThrowableItems.class).config().canZombiesThrowItems) + this.goalSelector.add(1, new ThrowableItemAttackGoal<>(this, 1.0f, ModuleManager.quick(ThrowableItems.class).config().zombieThrowInterval, 4, 16)); } @Inject(at = @At("HEAD"), method = "tick") @@ -47,7 +45,7 @@ abstract class ZombieEntityMixin extends HostileEntity implements ItemThrowerMob @Override public void am$throwItem(LivingEntity target, float pullProgress) { - if (!am$thritm.enabled() || !am$thritm.config().canZombiesThrowItems) return; + if (!ModuleManager.quick(ThrowableItems.class).config().canZombiesThrowItems) return; world.playSound(null, this.getX(), this.getY(), this.getZ(), SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.random.nextFloat() * 0.4F + 0.8F)); diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java index f9b690cd..49a88ebf 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/trading_goat_horn/mixin/GoatHornMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.mechanics.trading_goat_horn.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.mechanics.trading_goat_horn.CustomTraderManager; -import me.melontini.andromeda.modules.mechanics.trading_goat_horn.GoatHorn; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.GoatHornItem; import net.minecraft.item.Instrument; @@ -16,7 +14,6 @@ import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.GameRules; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -27,12 +24,9 @@ import java.util.Optional; @Mixin(GoatHornItem.class) class GoatHornMixin { - @Unique - private static final GoatHorn am$goathorn = ModuleManager.quick(GoatHorn.class); + @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/ItemCooldownManager;set(Lnet/minecraft/item/Item;I)V", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "use") private void andromeda$wanderingGoatHorn(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable> cir, ItemStack itemStack, Optional> optional, Instrument instrument) { - if (!am$goathorn.enabled()) return; - NbtCompound nbtCompound = itemStack.getNbt(); if (!world.isClient()) if (nbtCompound != null) { if (nbtCompound.getString("instrument") != null) { diff --git a/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java index 31689b09..8590c398 100644 --- a/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/mechanics/villager_gifting/mixin/VillagerEntityMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.mechanics.villager_gifting.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.mechanics.villager_gifting.GiftTags; -import me.melontini.andromeda.modules.mechanics.villager_gifting.VillagerGifting; import net.minecraft.entity.EntityType; import net.minecraft.entity.passive.MerchantEntity; import net.minecraft.entity.passive.VillagerEntity; @@ -23,8 +21,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(VillagerEntity.class) abstract class VillagerEntityMixin extends MerchantEntity { - @Unique - private static final VillagerGifting am$villgifts = ModuleManager.quick(VillagerGifting.class); @Shadow @Final private VillagerGossips gossip; @Shadow protected abstract void sayNo(); @@ -35,7 +31,6 @@ abstract class VillagerEntityMixin extends MerchantEntity { @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/passive/VillagerEntity;getOffers()Lnet/minecraft/village/TradeOfferList;", shift = At.Shift.BEFORE), cancellable = true, method = "interactMob") private void andromeda$useGifts(PlayerEntity player, Hand hand, CallbackInfoReturnable cir) { - if (!am$villgifts.enabled()) return; if (hand != Hand.MAIN_HAND || world.isClient()) return; ItemStack stack = player.getStackInHand(hand); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java index 43f2f897..a35ecc71 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/minor_inconvenience/mixin/PlayerEntityMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.misc.minor_inconvenience.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.misc.minor_inconvenience.Agony; -import me.melontini.andromeda.modules.misc.minor_inconvenience.MinorInconvenience; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; @@ -10,22 +8,20 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.world.World; import net.minecraft.world.explosion.Explosion; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerEntity.class) abstract class PlayerEntityMixin extends LivingEntity { - @Unique - private static final MinorInconvenience am$mininc = ModuleManager.quick(MinorInconvenience.class); + protected PlayerEntityMixin(EntityType entityType, World world) { super(entityType, world); } @Inject(at = @At(value = "INVOKE", target = "net/minecraft/entity/LivingEntity.damage (Lnet/minecraft/entity/damage/DamageSource;F)Z", shift = At.Shift.BEFORE), method = "damage", cancellable = true) private void andromeda$damage(DamageSource source, float amount, CallbackInfoReturnable cir) { - if (am$mininc.enabled() && !world.isClient && source != Agony.AGONY) { + if (!world.isClient && source != Agony.AGONY) { super.damage(Agony.AGONY, Float.MAX_VALUE); this.world.createExplosion(null, Agony.AGONY, null, this.getBlockX() + 0.5, this.getBlockY() + 0.5, this.getBlockZ() + 0.5, 5.0F, true, Explosion.DestructionType.DESTROY); cir.setReturnValue(false); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java index f092338f..a53d17d1 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/recipe_advancements_generation/mixin/PlayerManagerMixin.java @@ -1,13 +1,10 @@ package me.melontini.andromeda.modules.misc.recipe_advancements_generation.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.misc.recipe_advancements_generation.AdvancementGeneration; import net.minecraft.server.MinecraftServer; import net.minecraft.server.PlayerManager; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -16,14 +13,12 @@ import static me.melontini.andromeda.modules.misc.recipe_advancements_generation @Mixin(PlayerManager.class) class PlayerManagerMixin { - @Unique - private static final AdvancementGeneration am$rag = ModuleManager.quick(AdvancementGeneration.class); @Shadow @Final private MinecraftServer server; @Inject(at = @At(value = "INVOKE", target = "Ljava/util/Map;values()Ljava/util/Collection;", ordinal = 0, shift = At.Shift.BEFORE), method = "onDataPacksReloaded") private void andromeda$reload(CallbackInfo ci) { //we don't sync until our advancements have been generated - if (am$rag.enabled()) generateRecipeAdvancements(server); + generateRecipeAdvancements(server); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java index f2dc5fcd..07385160 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/MinecraftClientMixin.java @@ -1,14 +1,11 @@ package me.melontini.andromeda.modules.misc.translations.mixin; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.misc.translations.TranslationUpdater; -import me.melontini.andromeda.modules.misc.translations.Translations; import net.minecraft.client.MinecraftClient; import net.minecraft.client.option.GameOptions; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -17,14 +14,11 @@ import java.util.concurrent.CompletableFuture; @Mixin(MinecraftClient.class) class MinecraftClientMixin { - @Unique - private static final Translations am$trans = ModuleManager.quick(Translations.class); @Shadow @Final public GameOptions options; @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourcePackManager;scanPacks()V", shift = At.Shift.BEFORE), method = "reloadResources(Z)Ljava/util/concurrent/CompletableFuture;") private void andromeda$downloadLangFiles(boolean force, CallbackInfoReturnable> cir) { - if (!am$trans.enabled()) return; TranslationUpdater.onResourceReload(this.options.language); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java index 7a442e94..31355172 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/translations/mixin/ReloadableResourceManagerImplMixin.java @@ -2,16 +2,13 @@ package me.melontini.andromeda.modules.misc.translations.mixin; import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.ref.LocalRef; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.misc.translations.TranslationUpdater; -import me.melontini.andromeda.modules.misc.translations.Translations; import net.minecraft.resource.*; import net.minecraft.resource.metadata.ResourceMetadataReader; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -21,15 +18,12 @@ import java.util.List; @Mixin(ReloadableResourceManagerImpl.class) class ReloadableResourceManagerImplMixin { - @Unique - private static final Translations am$trans = ModuleManager.quick(Translations.class); @Shadow @Final private ResourceType type; @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/LifecycledResourceManager;close()V", shift = At.Shift.AFTER), method = "reload") private void andromeda$injectDownloadedTranslations(CallbackInfoReturnable cir, @Local(argsOnly = true) LocalRef> packs) { if (this.type != ResourceType.CLIENT_RESOURCES) return; - if (!am$trans.enabled()) return; packs.set(new ArrayList<>(packs.get())); packs.get().add(new DirectoryResourcePack(TranslationUpdater.TRANSLATION_PACK.toFile()) { diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java index 7a5a638f..5ee46c95 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/nice_level/LevelLoadingScreenMixin.java @@ -2,12 +2,9 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.nice_level; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.melontini.andromeda.base.Environment; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.base.annotations.SpecialEnvironment; -import me.melontini.andromeda.modules.misc.unknown.Unknown; import net.minecraft.client.gui.screen.LevelLoadingScreen; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import java.util.Objects; @@ -15,15 +12,11 @@ import java.util.Objects; @SpecialEnvironment(Environment.CLIENT) @Mixin(LevelLoadingScreen.class) class LevelLoadingScreenMixin { - @Unique - private static final Unknown am$unk = ModuleManager.quick(Unknown.class); @ModifyReturnValue(at = @At("RETURN"), method = "getPercentage") private String andromeda$getPercentage(String o) { - if (am$unk.enabled()) { - if (Objects.equals(o, "69%")) { - return "Nice%"; - } + if (Objects.equals(o, "69%")) { + return "Nice%"; } return o; } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java index bde737c3..a32c860a 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/rose_of_the_valley/ItemMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.rose_of_the_valley; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.modules.misc.unknown.RoseOfTheValley; -import me.melontini.andromeda.modules.misc.unknown.Unknown; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.StackReference; import net.minecraft.item.Item; @@ -11,18 +9,15 @@ import net.minecraft.item.Items; import net.minecraft.screen.slot.Slot; import net.minecraft.util.ClickType; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Item.class) class ItemMixin { - @Unique - private static final Unknown am$unk = ModuleManager.quick(Unknown.class); + @Inject(at = @At("HEAD"), method = "onClicked", cancellable = true) private void andromeda$onClicked(ItemStack stack, ItemStack otherStack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference, CallbackInfoReturnable cir) { - if (am$unk.enabled()) if (clickType == ClickType.RIGHT && stack.isOf(Items.LILY_OF_THE_VALLEY) && otherStack.isOf(Items.DIAMOND)) { //I mean .....yeah RoseOfTheValley.handleClick(stack, otherStack, player); diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java index 593ba521..e0ebbd06 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/useless_info/DebugHudMixin.java @@ -2,12 +2,10 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.useless_info; import com.llamalad7.mixinextras.sugar.Local; import me.melontini.andromeda.base.Environment; -import me.melontini.andromeda.base.ModuleManager; import me.melontini.andromeda.base.annotations.SpecialEnvironment; import me.melontini.andromeda.modules.misc.unknown.Unknown; import net.minecraft.client.gui.hud.DebugHud; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -18,11 +16,9 @@ import java.util.List; @SpecialEnvironment(Environment.CLIENT) @Mixin(DebugHud.class) class DebugHudMixin { - @Unique - private static final Unknown am$unk = ModuleManager.quick(Unknown.class); @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/DebugHud;getServerWorldDebugString()Ljava/lang/String;", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "getLeftText") private void andromeda$leftText(CallbackInfoReturnable> cir, @Local List list) { - if (am$unk.enabled()) if (Unknown.DEBUG_SPLASH != null) list.add(Unknown.DEBUG_SPLASH); + if (Unknown.DEBUG_SPLASH != null) list.add(Unknown.DEBUG_SPLASH); } } diff --git a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java index 6da2dde8..a9b623d2 100644 --- a/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/misc/unknown/mixin/wakeup/PlayerEntityMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.misc.unknown.mixin.wakeup; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.misc.unknown.Unknown; import me.melontini.andromeda.util.WorldUtil; import me.melontini.dark_matter.api.minecraft.data.NbtBuilder; import net.minecraft.entity.EquipmentSlot; @@ -16,7 +14,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -25,14 +22,11 @@ import java.util.Optional; @Mixin(PlayerEntity.class) abstract class PlayerEntityMixin { - @Unique - private static final Unknown am$unk = ModuleManager.quick(Unknown.class); @Shadow public abstract void playSound(SoundEvent event, SoundCategory category, float volume, float pitch); @Inject(at = @At("HEAD"), method = "wakeUp(ZZ)V") private void andromeda$wakeUp(boolean skipSleepTimer, boolean updateSleepingPlayers, CallbackInfo ci) { - if (!am$unk.enabled()) return; PlayerEntity player = (PlayerEntity) (Object) this; if (!player.world.isClient) if (Random.create().nextInt(100000) == 0) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java index 6a12310b..cf991727 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/auto_planting/mixin/ItemEntityMixin.java @@ -35,8 +35,6 @@ abstract class ItemEntityMixin { @Inject(at = @At("HEAD"), method = "tick") public void andromeda$tryPlant(CallbackInfo ci) { - if (!am$tbpgs.enabled()) return; - Entity entity = (Entity) (Object) this; ItemStack stack = this.getStack(); BlockPos pos = entity.getBlockPos(); diff --git a/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java b/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java index ae11e932..4ef7943b 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/crop_temperature/mixin/ServerWorldMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.world.crop_temperature.mixin; import com.llamalad7.mixinextras.injector.WrapWithCondition; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.world.crop_temperature.PlantTemperature; import me.melontini.andromeda.modules.world.crop_temperature.PlantTemperatureData; import me.melontini.dark_matter.api.base.util.MathStuff; import net.minecraft.block.BlockState; @@ -11,17 +9,13 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(ServerWorld.class) class ServerWorldMixin { - @Unique - private static final PlantTemperature am$tbpgs = ModuleManager.quick(PlantTemperature.class); @WrapWithCondition(at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;randomTick(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V"), method = "tickChunk") private boolean andromeda$tickPlants(BlockState state, ServerWorld world, BlockPos pos, Random random) { - if (am$tbpgs.enabled()) { if (state.getBlock() instanceof PlantBlock) { PlantTemperatureData data = PlantTemperatureData.PLANT_DATA.get(state.getBlock()); if (data != null) { @@ -32,7 +26,6 @@ class ServerWorldMixin { return (!(temp > data.aMax())) && (!(temp < data.aMin())); } } - } return true; } } diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java index fcb35bca..55e05a61 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/BeehiveBlockEntityMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.world.falling_beenests.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.world.falling_beenests.CanBeeNestsFall; import me.melontini.andromeda.util.WorldUtil; import net.minecraft.block.AirBlock; import net.minecraft.block.BlockState; @@ -25,8 +23,6 @@ import static me.melontini.andromeda.util.WorldUtil.trySpawnFallingBeeNest; @Mixin(BeehiveBlockEntity.class) abstract class BeehiveBlockEntityMixin extends BlockEntity { - @Unique - private static final CanBeeNestsFall am$cbnf = ModuleManager.quick(CanBeeNestsFall.class); @Unique private boolean andromeda$FromFallen; @@ -37,8 +33,6 @@ abstract class BeehiveBlockEntityMixin extends BlockEntity { @Inject(at = @At("HEAD"), method = "serverTick") private static void andromeda$fallingHive(@NotNull World world, BlockPos pos, BlockState state, BeehiveBlockEntity beehiveBlockEntity, CallbackInfo ci) { - if (!am$cbnf.enabled()) return; - if (world.getBlockState(pos).getBlock() == Blocks.BEE_NEST) { if (world.random.nextInt(32000) == 0) { if (world.getBlockState(pos.offset(Direction.DOWN)).getBlock() instanceof AirBlock) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java index 5de89d7c..6cee51ff 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/FallingBlockMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.world.falling_beenests.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.world.falling_beenests.CanBeeNestsFall; import me.melontini.andromeda.util.ItemStackUtil; import me.melontini.andromeda.util.WorldUtil; import me.melontini.dark_matter.api.base.util.MathStuff; @@ -25,7 +23,6 @@ import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -35,8 +32,6 @@ import java.util.Optional; @Mixin(FallingBlockEntity.class) abstract class FallingBlockMixin extends Entity { - @Unique - private static final CanBeeNestsFall am$cbnf = ModuleManager.quick(CanBeeNestsFall.class); @Shadow @Nullable public NbtCompound blockEntityData; @Shadow private BlockState block; @@ -47,8 +42,6 @@ abstract class FallingBlockMixin extends Entity { @Inject(at = @At(value = "INVOKE", target = "net/minecraft/world/World.getBlockEntity (Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/entity/BlockEntity;", shift = At.Shift.AFTER), method = "tick") public void andromeda$tick(CallbackInfo ci) { - if (!am$cbnf.enabled()) return; - BlockPos blockPos = this.getBlockPos(); BlockEntity blockEntity = this.world.getBlockEntity(blockPos); if (blockEntity != null) { diff --git a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java index 4f19f63b..27cf575e 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/falling_beenests/mixin/PersistentProjectileEntityMixin.java @@ -1,7 +1,5 @@ package me.melontini.andromeda.modules.world.falling_beenests.mixin; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.world.falling_beenests.CanBeeNestsFall; import me.melontini.andromeda.util.WorldUtil; import net.minecraft.block.AirBlock; import net.minecraft.block.Block; @@ -19,7 +17,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -28,8 +25,7 @@ import static me.melontini.andromeda.util.WorldUtil.trySpawnFallingBeeNest; @Mixin(PersistentProjectileEntity.class) abstract class PersistentProjectileEntityMixin extends ProjectileEntity { - @Unique - private static final CanBeeNestsFall am$cbnf = ModuleManager.quick(CanBeeNestsFall.class); + public PersistentProjectileEntityMixin(EntityType entityType, World world) { super(entityType, world); } @@ -37,8 +33,6 @@ abstract class PersistentProjectileEntityMixin extends ProjectileEntity { @SuppressWarnings("ConstantConditions") @Inject(at = @At("TAIL"), method = "onBlockHit") private void andromeda$onBeeNestHit(BlockHitResult blockHitResult, CallbackInfo ci) { - if (!am$cbnf.enabled()) return; - Entity entity = this; BlockPos pos = blockHitResult.getBlockPos(); BlockState state = world.getBlockState(pos); diff --git a/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java b/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java index 3d9a7e38..4ad9ea6b 100644 --- a/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java +++ b/src/main/java/me/melontini/andromeda/modules/world/quick_fire/mixin/AbstractFireBlockMixin.java @@ -1,8 +1,6 @@ package me.melontini.andromeda.modules.world.quick_fire.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.melontini.andromeda.base.ModuleManager; -import me.melontini.andromeda.modules.world.quick_fire.QuickFire; import net.minecraft.block.AbstractFireBlock; import net.minecraft.block.BlockState; import net.minecraft.block.FireBlock; @@ -12,7 +10,6 @@ import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyVariable; @@ -21,8 +18,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(FireBlock.class) abstract class AbstractFireBlockMixin extends AbstractFireBlock { - @Unique - private static final QuickFire am$quickf = ModuleManager.quick(QuickFire.class); + @Shadow protected abstract void trySpreadingFire(World world, BlockPos pos, int spreadFactor, Random random, int currentAge); public AbstractFireBlockMixin(Settings settings, float damage) { @@ -31,24 +27,22 @@ abstract class AbstractFireBlockMixin extends AbstractFireBlock { @ModifyVariable(method = "trySpreadingFire", at = @At(value = "LOAD"), index = 3, argsOnly = true) public int andromeda$spreadFire0(int value) { - return !am$quickf.enabled() ? value : (int) (value * 0.8); + return (int) (value * 0.8); } @ModifyExpressionValue(method = "trySpreadingFire", at = @At(value = "CONSTANT", args = "intValue=10")) public int andromeda$spreadFire01(int value) { - return !am$quickf.enabled() ? value : (int) Math.ceil(value / 3d); + return (int) Math.ceil(value / 3d); } @Inject(at = @At(value = "INVOKE", target = "net/minecraft/block/FireBlock.trySpreadingFire (Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;ILnet/minecraft/util/math/random/Random;I)V", ordinal = 0, shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILSOFT, method = "scheduledTick") public void andromeda$trySpreadBlocks(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci, BlockState blockState, boolean bl, int i, int j, boolean bl2, int k) { - if (am$quickf.enabled()) { for (int x = -3; x < 3; x++) { for (int y = -3; y < 3; y++) { for (int z = -3; z < 3; z++) { this.trySpreadingFire(world, new BlockPos(pos.getX() + x, pos.getY() + y, pos.getZ() + z), 300 + k, random, i); } } - } } } }