From f8afdbafc624d20e5bfe040360bd8be7e8755970 Mon Sep 17 00:00:00 2001 From: StormyBytes Date: Wed, 16 Jun 2021 10:47:28 +0700 Subject: [PATCH] Remove NoInteract (Already in meteor whoops) --- .../rejects/MeteorRejectsAddon.java | 1 - .../ClientPlayerInteractionManagerMixin.java | 38 ------- .../rejects/modules/NoInteract.java | 100 ------------------ src/main/resources/meteor-rejects.mixins.json | 1 - 4 files changed, 140 deletions(-) delete mode 100644 src/main/java/cloudburst/rejects/mixin/ClientPlayerInteractionManagerMixin.java delete mode 100644 src/main/java/cloudburst/rejects/modules/NoInteract.java diff --git a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java index 08bf09b..54331dd 100644 --- a/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java +++ b/src/main/java/cloudburst/rejects/MeteorRejectsAddon.java @@ -54,7 +54,6 @@ public class MeteorRejectsAddon extends MeteorAddon { modules.add(new Glide()); modules.add(new Lavacast()); modules.add(new NewChunks()); - modules.add(new NoInteract()); modules.add(new ObsidianFarm()); modules.add(new PacketFly()); modules.add(new Painter()); diff --git a/src/main/java/cloudburst/rejects/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/cloudburst/rejects/mixin/ClientPlayerInteractionManagerMixin.java deleted file mode 100644 index 7347361..0000000 --- a/src/main/java/cloudburst/rejects/mixin/ClientPlayerInteractionManagerMixin.java +++ /dev/null @@ -1,38 +0,0 @@ -package cloudburst.rejects.mixin; - -import cloudburst.rejects.modules.NoInteract; -import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.network.ClientPlayerInteractionManager; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(ClientPlayerInteractionManager.class) -public class ClientPlayerInteractionManagerMixin { - - @Final @Shadow private MinecraftClient client; - - @Inject(method = "interactBlock", at = @At("HEAD"), cancellable = true) - private void onInteractBlock(ClientPlayerEntity player, ClientWorld world, Hand hand, BlockHitResult hitResult, CallbackInfoReturnable info) { - if (Modules.get().get(NoInteract.class).noInteractBlock(client.world.getBlockState(hitResult.getBlockPos()).getBlock())) - info.setReturnValue(ActionResult.FAIL); - } - - @Inject(method = "interactEntity", at = @At("HEAD"), cancellable = true) - private void onInteractEntity(PlayerEntity player, Entity entity, Hand hand, CallbackInfoReturnable info) { - if (Modules.get().get(NoInteract.class).noInteractEntity(entity)) - info.setReturnValue(ActionResult.FAIL); - } - -} diff --git a/src/main/java/cloudburst/rejects/modules/NoInteract.java b/src/main/java/cloudburst/rejects/modules/NoInteract.java deleted file mode 100644 index 30a595d..0000000 --- a/src/main/java/cloudburst/rejects/modules/NoInteract.java +++ /dev/null @@ -1,100 +0,0 @@ -package cloudburst.rejects.modules; - -import it.unimi.dsi.fastutil.objects.Object2BooleanMap; -import it.unimi.dsi.fastutil.objects.Object2BooleanOpenHashMap; -import meteordevelopment.orbit.EventHandler; -import meteordevelopment.meteorclient.events.game.OpenScreenEvent; -import meteordevelopment.meteorclient.settings.BlockListSetting; -import meteordevelopment.meteorclient.settings.EntityTypeListSetting; -import meteordevelopment.meteorclient.settings.Setting; -import meteordevelopment.meteorclient.settings.SettingGroup; -import meteordevelopment.meteorclient.systems.modules.Categories; -import meteordevelopment.meteorclient.systems.modules.Module; -import meteordevelopment.meteorclient.systems.modules.Modules; -import net.minecraft.block.*; -import net.minecraft.client.gui.screen.ingame.AbstractInventoryScreen; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.util.registry.Registry; - -import cloudburst.rejects.MeteorRejectsAddon; - -import java.util.ArrayList; -import java.util.List; - -public class NoInteract extends Module { - - private final SettingGroup sgGeneral = settings.getDefaultGroup(); - - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() - .name("blocks") - .description("Blocks interactions with certain blocks") - .defaultValue(getDefaultBlocks()) - .filter(this::filterBlocks) - .build() - ); - - private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() - .name("entities") - .description("Entities to block interaction with") - .defaultValue(new Object2BooleanOpenHashMap<>(0)) - .build() - ); - - public NoInteract() { - super(MeteorRejectsAddon.CATEGORY, "no-interact", "Blocks interactions with certain types of inputs."); - } - @EventHandler - private void onScreenOpen(OpenScreenEvent event) { - if (event.screen == null) return; - if (!event.screen.isPauseScreen() && !(event.screen instanceof AbstractInventoryScreen) && (event.screen instanceof HandledScreen)) event.setCancelled(true); - } - - public boolean noInteractBlock(Block block) { - return Modules.get().get(this.getClass()).isActive() && blocks.get().contains(block); - } - - public boolean noInteractEntity(Entity entity) { - return Modules.get().get(this.getClass()).isActive() && entities.get().getBoolean(entity.getType()); - } - - private List getDefaultBlocks() { - - ArrayList defaultBlocks = new ArrayList<>(); - for (Block block : Registry.BLOCK) { - if (filterBlocks(block)) defaultBlocks.add(block); - } - return defaultBlocks; - } - - private boolean filterBlocks(Block block) { - return isStorageBlock(block) || isRedstoneBlock(block) || - - // Others - block instanceof RespawnAnchorBlock || - block instanceof BedBlock; - } - - private boolean isStorageBlock(Block block) { - return block instanceof ChestBlock || - block instanceof EnderChestBlock || - block instanceof AbstractFurnaceBlock || - block instanceof BrewingStandBlock || - block instanceof BarrelBlock || - block instanceof HopperBlock || - block instanceof ShulkerBoxBlock || - block instanceof DispenserBlock; - } - - private boolean isRedstoneBlock(Block block) { - return block instanceof TrapdoorBlock || - block instanceof DoorBlock || - block instanceof FenceGateBlock || - block instanceof LeverBlock || - block instanceof AbstractButtonBlock || - block instanceof AbstractPressurePlateBlock || - block instanceof RepeaterBlock || - block instanceof ComparatorBlock; - } -} diff --git a/src/main/resources/meteor-rejects.mixins.json b/src/main/resources/meteor-rejects.mixins.json index cbbeb25..d23088a 100644 --- a/src/main/resources/meteor-rejects.mixins.json +++ b/src/main/resources/meteor-rejects.mixins.json @@ -5,7 +5,6 @@ "mixins": [ ], "client": [ - "ClientPlayerInteractionManagerMixin", "Deadmau5FeatureRendererMixin", "StructureVoidBlockMixin", "TitleScreenMixin",