- 929
- 30
- 66
В общем, та же проблема , но уже кикает не обоих ,а игрока который подключается , если игрок в каст слот одел итем идет отправка пакета и заходит игрок на сервер его просто кик c сервера , если игрок снимет пакет и пакет не отправ , то игрок может зайти..
Так же если игрок подкл к серверу и только потом 1 игрок оденет итем , то пакет отправ и не кик , но если они на раст и их друг другу тп , то 2 игрока кикает..
//отправка пакета
//сам пакет,отправляю его на клиент
Так же если игрок подкл к серверу и только потом 1 игрок оденет итем , то пакет отправ и не кик , но если они на раст и их друг другу тп , то 2 игрока кикает..
Java:
@SubscribeEvent
public void CrownDestinyTick(TickEvent.PlayerTickEvent e) {
EntityPlayer player = e.player;
InventoryCustom custom = PlayerHandler.getPlayer(player);
if (custom == null) return;
ItemStack equipStack = custom.getStackInSlot(0);
if (equipStack == null) return;
Item equip = equipStack.getItem();
if(equip == CrownItems.crowndestiny && !player.worldObj.isRemote && player != null && player.dimension == e.player.dimension) {
CMessageDestinyCrown message = new CMessageDestinyCrown();
TargetPoint point = new TargetPoint(player.dimension, player.posX, player.posY, player.posZ, 64D);
message.playerID = player.getEntityId();
message.x = player.posX;
message.y = player.posY;
message.z = player.posZ;
bestfoxy.netw.sendToAllAround(message, point);
}
}
}
Java:
public class CMessageDestinyCrown implements IMessage {
public int playerID;
public double x,y,z;
public CMessageDestinyCrown() {}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(playerID);
buf.writeDouble(x);
buf.writeDouble(y);
buf.writeDouble(z);
}
@Override
public void fromBytes(ByteBuf buf) {
playerID = buf.readInt();
x = buf.readDouble();
y = buf.readDouble();
z = buf.readDouble();
}
public static class Handler implements IMessageHandler<CMessageDestinyCrown, IMessage> {
@SideOnly(Side.CLIENT)
@Override
public IMessage onMessage(CMessageDestinyCrown packet, MessageContext ctx) {
Minecraft mc = Minecraft.getMinecraft();
Entity entity = mc.theWorld.getEntityByID(packet.playerID);
for(int i = 1; i < 7; ++i) {
mc.effectRenderer.addEffect(new EntitySparkleFX(entity.worldObj, packet.x + Math.sin((double)i) * 0.370D, packet.y + 2.150D, packet.z + Math.cos((double)i) * 0.370D));
}
return null;
}
}
}