/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [22/09/2016, 13:06:44 (GMT)]
*/
package vazkii.botania.common.network;
import baubles.api.BaublesApi;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.util.SoundCategory;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.items.IItemHandler;
import vazkii.botania.api.sound.BotaniaSoundEvents;
import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.item.equipment.bauble.ItemDodgeRing;
public class PacketDodge implements IMessage {
@Override
public void fromBytes(ByteBuf buf) {}
@Override
public void toBytes(ByteBuf buf) {}
public static class Handler implements IMessageHandler<PacketDodge, IMessage> {
@Override
public IMessage onMessage(PacketDodge message, MessageContext ctx) {
EntityPlayerMP player = ctx.getServerHandler().playerEntity;
player.mcServer.addScheduledTask(() -> {
player.world.playSound(null, player.posX, player.posY, player.posZ, BotaniaSoundEvents.dash, SoundCategory.PLAYERS, 1F, 1F);
IItemHandler baublesInv = BaublesApi.getBaublesHandler(player);
ItemStack ringStack = baublesInv.getStackInSlot(1);
if(ringStack.isEmpty() || !(ringStack.getItem() instanceof ItemDodgeRing)) {
ringStack = baublesInv.getStackInSlot(2);
if(ringStack.isEmpty() || !(ringStack.getItem() instanceof ItemDodgeRing))
ctx.getServerHandler().disconnect("Invalid Dodge Packet");
}
player.addExhaustion(0.3F);
ItemNBTHelper.setInt(ringStack, ItemDodgeRing.TAG_DODGE_COOLDOWN, ItemDodgeRing.MAX_CD);
});
return null;
}
}
}