Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SkillExecutionPacket:
- ===
- package mcd.rivenmod.packet;
- import io.netty.buffer.ByteBuf;
- import mcd.rivenmod.main.RivenMod;
- import mcd.rivenmod.skill.ISkill;
- import mcd.rivenmod.util.RivenPlayer;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import net.minecraft.util.ChatComponentText;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
- import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
- public class SkillExecutionPacket implements IMessage
- {
- private int id;
- private EntityPlayer player;
- public SkillExecutionPacket() {
- }
- public SkillExecutionPacket(int id, EntityPlayer player) {
- this.id = id;
- this.player = player;
- }
- @Override
- public void toBytes(ByteBuf bb) {
- bb.writeInt(id);
- }
- @Override
- public void fromBytes(ByteBuf bb) {
- id = bb.readInt();
- }
- public static class SkillExecutionPacketHandler implements IMessageHandler<SkillExecutionPacket, IMessage>{
- @Override
- public IMessage onMessage(SkillExecutionPacket message, MessageContext ctx) {
- EntityPlayerMP serverPlayer = ctx.getServerHandler().playerEntity;
- int skillId = message.id;
- RivenPlayer rp = RivenPlayer.get(message.player);
- if(rp == null) return null;
- int cooldown = rp.getCooldownFromId(skillId);
- if(cooldown <= 0) rp.setCooldownFromId(skillId);
- cooldown = rp.getCooldownFromId(skillId);
- ISkill skill = RivenMod.skillList.get(skillId);
- if(cooldown > 0) return new SkillFailedPacket(false);
- else {
- serverPlayer.addChatMessage(new ChatComponentText("Skill Activated!"));
- skill.performAction();
- return new SkillSuccessPacket(skillId);
- }
- }
- }
- }
- ---
- RivenPlayer:
- ===
- package mcd.rivenmod.util;
- import java.util.ArrayList;
- import mcd.rivenmod.main.RivenMod;
- import mcd.rivenmod.skill.ISkill;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.world.World;
- import net.minecraftforge.common.IExtendedEntityProperties;
- public class RivenPlayer implements IExtendedEntityProperties
- {
- public static final String EXT_PROP_NAME = "RivenPlayer";
- public static final int Z_COOLDOWN_WATCHER = 20;
- public static final int X_COOLDOWN_WATCHER = 21;
- public static final int C_COOLDOWN_WATCHER = 22;
- public static final int V_COOLDOWN_WATCHER = 23;
- private int zCooldown, xCooldown, cCooldown, vCooldown;
- private EntityPlayer player;
- private ArrayList<ISkill> skillListInstance;
- public RivenPlayer(EntityPlayer player) {
- this.player = player;
- skillListInstance = RivenMod.skillList;
- zCooldown = 0;
- xCooldown = 0;
- cCooldown = 0;
- vCooldown = 0;
- this.player.getDataWatcher().addObject(Z_COOLDOWN_WATCHER, zCooldown);
- this.player.getDataWatcher().addObject(X_COOLDOWN_WATCHER, xCooldown);
- this.player.getDataWatcher().addObject(C_COOLDOWN_WATCHER, cCooldown);
- this.player.getDataWatcher().addObject(V_COOLDOWN_WATCHER, vCooldown);
- }
- public static final void register(EntityPlayer player) {
- player.registerExtendedProperties(RivenPlayer.EXT_PROP_NAME, new RivenPlayer(player));
- }
- public static final RivenPlayer get(EntityPlayer player) {
- return (RivenPlayer) player.getExtendedProperties(EXT_PROP_NAME);
- }
- @Override
- public void saveNBTData(NBTTagCompound compound) {
- NBTTagCompound properties = new NBTTagCompound();
- properties.setInteger("Z_COOLDOWN", this.player.getDataWatcher().getWatchableObjectInt(Z_COOLDOWN_WATCHER));
- properties.setInteger("X_COOLDOWN", this.player.getDataWatcher().getWatchableObjectInt(X_COOLDOWN_WATCHER));
- properties.setInteger("C_COOLDOWN", this.player.getDataWatcher().getWatchableObjectInt(C_COOLDOWN_WATCHER));
- properties.setInteger("V_COOLDOWN", this.player.getDataWatcher().getWatchableObjectInt(V_COOLDOWN_WATCHER));
- compound.setTag(EXT_PROP_NAME, properties);
- }
- @Override
- public void loadNBTData(NBTTagCompound compound) {
- NBTTagCompound properties = (NBTTagCompound)compound.getTag(EXT_PROP_NAME);
- this.player.getDataWatcher().updateObject(Z_COOLDOWN_WATCHER, properties.getInteger("Z_COOLDOWN"));
- this.player.getDataWatcher().updateObject(X_COOLDOWN_WATCHER, properties.getInteger("X_COOLDOWN"));
- this.player.getDataWatcher().updateObject(C_COOLDOWN_WATCHER, properties.getInteger("C_COOLDOWN"));
- this.player.getDataWatcher().updateObject(V_COOLDOWN_WATCHER, properties.getInteger("V_COOLDOWN"));
- }
- @Override
- public void init(Entity entity, World world) {
- }
- public final int getCooldownFromId(int id) {
- switch(id) {
- default:
- return 0;
- case 0:
- return getZCooldown();
- case 1:
- return getXCooldown();
- case 2:
- return getCCooldown();
- case 3:
- return getVCooldown();
- }
- }
- public final void setCooldownFromId(int id) {
- switch(id) {
- case 0:
- setZCooldown();
- case 1:
- setXCooldown();
- case 2:
- getCCooldown();
- case 3:
- setVCooldown();
- }
- }
- public final int getZCooldown() {
- return this.player.getDataWatcher().getWatchableObjectInt(Z_COOLDOWN_WATCHER);
- }
- public final void decrementZCooldown() {
- int cooldown = this.player.getDataWatcher().getWatchableObjectInt(Z_COOLDOWN_WATCHER);
- if(cooldown > 0) cooldown--;
- else cooldown = 0;
- this.player.getDataWatcher().updateObject(Z_COOLDOWN_WATCHER, cooldown);
- }
- public final void setZCooldown() {
- this.player.getDataWatcher().updateObject(Z_COOLDOWN_WATCHER, skillListInstance.get(0).getCooldown());
- }
- public final int getXCooldown() {
- return this.player.getDataWatcher().getWatchableObjectInt(X_COOLDOWN_WATCHER);
- }
- public final void decrementXCooldown() {
- int cooldown = this.player.getDataWatcher().getWatchableObjectInt(X_COOLDOWN_WATCHER);
- if(cooldown > 0) cooldown--;
- else cooldown = 0;
- this.player.getDataWatcher().updateObject(X_COOLDOWN_WATCHER, cooldown);
- }
- public final void setXCooldown() {
- this.player.getDataWatcher().updateObject(X_COOLDOWN_WATCHER, skillListInstance.get(1).getCooldown());
- }
- public final int getCCooldown() {
- return this.player.getDataWatcher().getWatchableObjectInt(C_COOLDOWN_WATCHER);
- }
- public final void decrementCCooldown() {
- int cooldown = this.player.getDataWatcher().getWatchableObjectInt(C_COOLDOWN_WATCHER);
- if(cooldown > 0) cooldown--;
- else cooldown = 0;
- this.player.getDataWatcher().updateObject(C_COOLDOWN_WATCHER, cooldown);
- }
- public final void setCCooldown() {
- this.player.getDataWatcher().updateObject(C_COOLDOWN_WATCHER, skillListInstance.get(2).getCooldown());
- }
- public final int getVCooldown() {
- return this.player.getDataWatcher().getWatchableObjectInt(V_COOLDOWN_WATCHER);
- }
- public final void decrementVCooldown() {
- int cooldown = this.player.getDataWatcher().getWatchableObjectInt(V_COOLDOWN_WATCHER);
- if(cooldown > 0) cooldown--;
- else cooldown = 0;
- this.player.getDataWatcher().updateObject(V_COOLDOWN_WATCHER, cooldown);
- }
- public final void setVCooldown() {
- this.player.getDataWatcher().updateObject(V_COOLDOWN_WATCHER, skillListInstance.get(3).getCooldown());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement