Implement missing data syncing methods

Fix MRS not syncing data immediately.
This commit is contained in:
Nicholas Ignoffo 2016-09-07 17:12:25 -07:00
parent f4feb07e47
commit 4d331aa758
10 changed files with 186 additions and 0 deletions

View file

@ -6,6 +6,8 @@ import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraftforge.fluids.*; import net.minecraftforge.fluids.*;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileBloodTank extends TileEntity implements IFluidHandler public class TileBloodTank extends TileEntity implements IFluidHandler
{ {
@ -81,6 +83,7 @@ public class TileBloodTank extends TileEntity implements IFluidHandler
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{ {
super.onDataPacket(net, pkt); super.onDataPacket(net, pkt);
@ -92,4 +95,10 @@ public class TileBloodTank extends TileEntity implements IFluidHandler
{ {
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
} }

View file

@ -19,6 +19,8 @@ import WayofTime.bloodmagic.api.soul.DemonWillHolder;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.block.BlockDemonCrystal; import WayofTime.bloodmagic.block.BlockDemonCrystal;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileDemonCrystal extends TileEntity implements ITickable public class TileDemonCrystal extends TileEntity implements ITickable
{ {
@ -214,6 +216,7 @@ public class TileDemonCrystal extends TileEntity implements ITickable
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{ {
super.onDataPacket(net, pkt); super.onDataPacket(net, pkt);
@ -226,4 +229,10 @@ public class TileDemonCrystal extends TileEntity implements ITickable
{ {
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
} }

View file

@ -5,11 +5,17 @@ import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.soul.IDemonWillConduit; import WayofTime.bloodmagic.api.soul.IDemonWillConduit;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.ModBlocks;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable; import net.minecraft.util.ITickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileDemonCrystallizer extends TileEntity implements ITickable, IDemonWillConduit public class TileDemonCrystallizer extends TileEntity implements ITickable, IDemonWillConduit
{ {
@ -169,4 +175,38 @@ public class TileDemonCrystallizer extends TileEntity implements ITickable, IDem
{ {
return holder.getWill(type); return holder.getWill(type);
} }
@Override
public SPacketUpdateTileEntity getUpdatePacket()
{
NBTTagCompound nbt = new NBTTagCompound();
writeToNBT(nbt);
return new SPacketUpdateTileEntity(getPos(), -999, nbt);
}
@Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
super.onDataPacket(net, pkt);
readFromNBT(pkt.getNbtCompound());
}
@Override
public NBTTagCompound getUpdateTag()
{
return writeToNBT(new NBTTagCompound());
}
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
{
return oldState.getBlock() != newState.getBlock();
}
} }

View file

@ -4,11 +4,17 @@ import WayofTime.bloodmagic.api.soul.DemonWillHolder;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.soul.IDemonWillConduit; import WayofTime.bloodmagic.api.soul.IDemonWillConduit;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable; import net.minecraft.util.ITickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileDemonPylon extends TileEntity implements ITickable, IDemonWillConduit public class TileDemonPylon extends TileEntity implements ITickable, IDemonWillConduit
{ {
@ -128,4 +134,38 @@ public class TileDemonPylon extends TileEntity implements ITickable, IDemonWillC
{ {
return holder.getWill(type); return holder.getWill(type);
} }
@Override
public SPacketUpdateTileEntity getUpdatePacket()
{
NBTTagCompound nbt = new NBTTagCompound();
writeToNBT(nbt);
return new SPacketUpdateTileEntity(getPos(), -999, nbt);
}
@Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
super.onDataPacket(net, pkt);
readFromNBT(pkt.getNbtCompound());
}
@Override
public NBTTagCompound getUpdateTag()
{
return writeToNBT(new NBTTagCompound());
}
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
{
return oldState.getBlock() != newState.getBlock();
}
} }

View file

@ -2,9 +2,15 @@ package WayofTime.bloodmagic.tile;
import WayofTime.bloodmagic.ritual.RitualPortal; import WayofTime.bloodmagic.ritual.RitualPortal;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileDimensionalPortal extends TileEntity public class TileDimensionalPortal extends TileEntity
{ {
@ -52,4 +58,38 @@ public class TileDimensionalPortal extends TileEntity
this.masterStoneY = blockPos.getY(); this.masterStoneY = blockPos.getY();
this.masterStoneZ = blockPos.getZ(); this.masterStoneZ = blockPos.getZ();
} }
@Override
public SPacketUpdateTileEntity getUpdatePacket()
{
NBTTagCompound nbt = new NBTTagCompound();
writeToNBT(nbt);
return new SPacketUpdateTileEntity(getPos(), -999, nbt);
}
@Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
super.onDataPacket(net, pkt);
readFromNBT(pkt.getNbtCompound());
}
@Override
public NBTTagCompound getUpdateTag()
{
return writeToNBT(new NBTTagCompound());
}
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
{
return oldState.getBlock() != newState.getBlock();
}
} }

View file

@ -14,6 +14,8 @@ import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@NoArgsConstructor @NoArgsConstructor
public class TileImperfectRitualStone extends TileEntity implements IImperfectRitualStone public class TileImperfectRitualStone extends TileEntity implements IImperfectRitualStone
@ -27,6 +29,7 @@ public class TileImperfectRitualStone extends TileEntity implements IImperfectRi
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity packet) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity packet)
{ {
super.onDataPacket(net, packet); super.onDataPacket(net, packet);
@ -39,6 +42,12 @@ public class TileImperfectRitualStone extends TileEntity implements IImperfectRi
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
// IImperfectRitualStone // IImperfectRitualStone
@Override @Override

View file

@ -17,6 +17,8 @@ import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.wrapper.InvWrapper; import net.minecraftforge.items.wrapper.InvWrapper;
@ -102,6 +104,7 @@ public class TileInventory extends TileEntity implements IInventory
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{ {
super.onDataPacket(net, pkt); super.onDataPacket(net, pkt);
@ -114,6 +117,12 @@ public class TileInventory extends TileEntity implements IInventory
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override @Override
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState) public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
{ {

View file

@ -35,6 +35,8 @@ import WayofTime.bloodmagic.registry.ModItems;
import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.ChatUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@Getter @Getter
@NoArgsConstructor @NoArgsConstructor
@ -186,10 +188,12 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
this.owner = crystalOwner; this.owner = crystalOwner;
this.currentRitual = ritual; this.currentRitual = ritual;
getWorld().notifyBlockUpdate(getPos(), getWorld().getBlockState(getPos()), getWorld().getBlockState(getPos()), 3);
return true; return true;
} }
} }
getWorld().notifyBlockUpdate(getPos(), getWorld().getBlockState(getPos()), getWorld().getBlockState(getPos()), 3);
return true; return true;
} }
} }
@ -238,6 +242,7 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
this.active = false; this.active = false;
this.activeTime = 0; this.activeTime = 0;
} }
getWorld().notifyBlockUpdate(getPos(), getWorld().getBlockState(getPos()), getWorld().getBlockState(getPos()), 3);
} }
} }
@ -304,6 +309,7 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity packet) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity packet)
{ {
super.onDataPacket(net, packet); super.onDataPacket(net, packet);
@ -316,6 +322,12 @@ public class TileMasterRitualStone extends TileEntity implements IMasterRitualSt
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override @Override
public World getWorldObj() public World getWorldObj()
{ {

View file

@ -11,6 +11,8 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ITickable; import net.minecraft.util.ITickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@NoArgsConstructor @NoArgsConstructor
public class TilePhantomBlock extends TileEntity implements ITickable public class TilePhantomBlock extends TileEntity implements ITickable
@ -58,6 +60,7 @@ public class TilePhantomBlock extends TileEntity implements ITickable
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{ {
super.onDataPacket(net, pkt); super.onDataPacket(net, pkt);
@ -70,6 +73,12 @@ public class TilePhantomBlock extends TileEntity implements ITickable
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override @Override
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState) public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
{ {

View file

@ -14,6 +14,8 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.ForgeRegistries; import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class TileSpectralBlock extends TileEntity implements ITickable public class TileSpectralBlock extends TileEntity implements ITickable
{ {
@ -53,6 +55,7 @@ public class TileSpectralBlock extends TileEntity implements ITickable
} }
@Override @Override
@SideOnly(Side.CLIENT)
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{ {
super.onDataPacket(net, pkt); super.onDataPacket(net, pkt);
@ -65,6 +68,12 @@ public class TileSpectralBlock extends TileEntity implements ITickable
return writeToNBT(new NBTTagCompound()); return writeToNBT(new NBTTagCompound());
} }
@Override
public void handleUpdateTag(NBTTagCompound tag)
{
readFromNBT(tag);
}
@Override @Override
public void update() public void update()
{ {