- Выберите загрузчик игры
- Fabric
Ну хз чисто для себя наклипал вроде норм
Пожалуйста, авторизуйтесь для просмотра ссылки.
java:
package sweetie.evaware.client.features.modules.other;
import net.minecraft.item.ItemStack;
import net.minecraft.item.PickaxeItem;
import net.minecraft.screen.slot.SlotActionType;
import net.minecraft.util.Hand;
import sweetie.evaware.api.event.EventListener;
import sweetie.evaware.api.event.Listener;
import sweetie.evaware.api.event.events.player.world.BlockBreakEvent;
import sweetie.evaware.api.module.Category;
import sweetie.evaware.api.module.Module;
import sweetie.evaware.api.module.ModuleRegister;
@ModuleRegister(name = "CrashNotification", category = Category.OTHER)
public class CrashNotification extends Module {
@Override
public void onEvent() {
EventListener blockBreakEvent = BlockBreakEvent.getInstance().subscribe(
new Listener<>(1, event -> {
ItemStack item = mc.player.getMainHandStack();
if (!(item.getItem() instanceof PickaxeItem))
return;
int remaining = item.getMaxDamage() - item.getDamage();
if (remaining < 50) {
mc.player.getInventory().selectedSlot = 1;
mc.interactionManager.syncSelectedSlot();
print("Ломать нельзя кирка щас сломается черт побери");
}
})
);
addEvents(blockBreakEvent);
}
}
MixinClientPlayerInteractionManager:
@Inject(method = "attackBlock", at = @At("HEAD"), cancellable = true)
public void onAttackBlock(BlockPos pos, Direction direction, CallbackInfoReturnable<Boolean> cir) {
if (BlockBreakEvent.getInstance().call()) {
cir.setReturnValue(false);
cir.cancel();
}
}
event:
package sweetie.evaware.api.event.events.player.world;
import lombok.Getter;
import sweetie.evaware.api.event.events.Event;
public class BlockBreakEvent extends Event<BlockBreakEvent> {
@Getter
private static final BlockBreakEvent instance = new BlockBreakEvent();
}
