close #579 and add cobwebs to noslow

This commit is contained in:
Bella 2020-03-22 09:17:03 -04:00
parent ba0111fa13
commit f8345b7d2f
No known key found for this signature in database
GPG Key ID: 815562EA23BFE344
4 changed files with 67 additions and 7 deletions

View File

@ -1,6 +1,7 @@
package me.zeroeightsix.kami.mixin.client; package me.zeroeightsix.kami.mixin.client;
import me.zeroeightsix.kami.module.ModuleManager; import me.zeroeightsix.kami.module.ModuleManager;
import me.zeroeightsix.kami.module.modules.movement.NoSlowDown;
import net.minecraft.block.BlockSoulSand; import net.minecraft.block.BlockSoulSand;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -20,7 +21,7 @@ public class MixinBlockSoulSand {
@Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true)
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) { public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) {
// If noslowdown is on, just don't do anything else in this method (slow the player) // If noslowdown is on, just don't do anything else in this method (slow the player)
if (ModuleManager.isModuleEnabled("NoSlowDown")) info.cancel(); if (ModuleManager.isModuleEnabled("NoSlowDown") && ((NoSlowDown) ModuleManager.getModuleByName("NoSlowDown")).soulSand.getValue()) info.cancel();
} }
} }

View File

@ -0,0 +1,28 @@
package me.zeroeightsix.kami.mixin.client;
import me.zeroeightsix.kami.module.ModuleManager;
import me.zeroeightsix.kami.module.modules.movement.NoSlowDown;
import net.minecraft.block.BlockWeb;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
/**
* @see MixinBlockSoulSand
* @author 086
*/
@Mixin(BlockWeb.class)
public class MixinBlockWeb {
@Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true)
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn, CallbackInfo info) {
// If noslowdown is on, just don't do anything else in this method (slow the player)
if (ModuleManager.isModuleEnabled("NoSlowDown") && ((NoSlowDown) ModuleManager.getModuleByName("NoSlowDown")).cobweb.getValue()) info.cancel();
}
}

View File

@ -3,28 +3,58 @@ package me.zeroeightsix.kami.module.modules.movement;
import me.zero.alpine.listener.EventHandler; import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener; import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.module.Module; import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.init.Blocks;
import net.minecraft.item.*;
import net.minecraftforge.client.event.InputUpdateEvent; import net.minecraftforge.client.event.InputUpdateEvent;
/** /**
* Created by 086 on 15/12/2017. * Created by 086 on 15/12/2017.
* Updated by S-B99 on 21/03/20
* @see me.zeroeightsix.kami.mixin.client.MixinBlockSoulSand
* @see net.minecraft.client.entity.EntityPlayerSP .onLivingUpdate()
*/ */
@Module.Info(name = "NoSlowDown", category = Module.Category.MOVEMENT, description = "Prevents being slowed down when using an item or going through cobwebs") @Module.Info(name = "NoSlowDown", category = Module.Category.MOVEMENT, description = "Prevents being slowed down when using an item or going through cobwebs")
public class NoSlowDown extends Module { public class NoSlowDown extends Module {
public Setting<Boolean> soulSand = register(Settings.b("Soul Sand", true));
public Setting<Boolean> cobweb = register(Settings.b("Cobweb", true));
private Setting<Boolean> slime = register(Settings.b("Slime", true));
private Setting<Boolean> allItems = register(Settings.b("All Items", false));
private Setting<Boolean> food = register(Settings.booleanBuilder().withName("Food").withValue(true).withVisibility(v -> !allItems.getValue()).build());
private Setting<Boolean> bow = register(Settings.booleanBuilder().withName("Bows").withValue(true).withVisibility(v -> !allItems.getValue()).build());
private Setting<Boolean> potion = register(Settings.booleanBuilder().withName("Potions").withValue(true).withVisibility(v -> !allItems.getValue()).build());
private Setting<Boolean> shield = register(Settings.booleanBuilder().withName("Shield").withValue(true).withVisibility(v -> !allItems.getValue()).build());
@EventHandler @EventHandler
private Listener<InputUpdateEvent> eventListener = new Listener<>(event -> { private Listener<InputUpdateEvent> eventListener = new Listener<>(event -> {
// /*
// InputUpdateEvent is called just before the player is slowed down @see EntityPlayerSP.onLivingUpdate) * InputUpdateEvent is called just before the player is slowed down @see EntityPlayerSP.onLivingUpdate)
// We'll abuse this fact, and multiply moveStrafe and moveForward by 5 to nullify the *0.2f hardcoded by mojang. * We'll abuse this fact, and multiply moveStrafe and moveForward by 5 to nullify the *0.2f hardcoded by mojang.
// */
// Check if the player should be slowed down or not // Check if the player should be slowed down or not
if (mc.player.isHandActive() && !mc.player.isRiding()) { if (passItemCheck(mc.player.getActiveItemStack().getItem()) && mc.player.isHandActive() && !mc.player.isRiding()) {
event.getMovementInput().moveStrafe *= 5; event.getMovementInput().moveStrafe *= 5;
event.getMovementInput().moveForward *= 5; event.getMovementInput().moveForward *= 5;
} }
}); });
// Check MixinBlockSoulSand for soulsand slowdown nullification @Override
public void onUpdate() {
if (slime.getValue()) Blocks.SLIME_BLOCK.slipperiness = 0.4945f; // normal block speed 0.4945
else Blocks.SLIME_BLOCK.slipperiness = 0.8f;
}
@Override
public void onDisable() { Blocks.SLIME_BLOCK.slipperiness = 0.8f; }
private boolean passItemCheck(Item item) {
if (allItems.getValue()) return true;
if (food.getValue() && item instanceof ItemFood) return true;
if (bow.getValue() && item instanceof ItemBow) return true;
if (potion.getValue() && item instanceof ItemPotion) return true;
if (shield.getValue() && item instanceof ItemShield) return true;
return false;
}
} }

View File

@ -7,6 +7,7 @@
"MixinAbstractClientPlayer", "MixinAbstractClientPlayer",
"MixinBlockLiquid", "MixinBlockLiquid",
"MixinBlockSoulSand", "MixinBlockSoulSand",
"MixinBlockWeb",
"MixinC00Handshake", "MixinC00Handshake",
"MixinChunkCache", "MixinChunkCache",
"MixinEntity", "MixinEntity",