Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Мои сообщения читайAgravaine написал(а):Расскажи)
А то у меня тоже такая фигня)
Он про пакетыGloomyFolken написал(а):Мои сообщения читайAgravaine написал(а):Расскажи)
А то у меня тоже такая фигня)
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.FMLEventChannel;
import cpw.mods.fml.common.network.FMLNetworkEvent.ClientCustomPacketEvent;
import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetHandlerPlayServer;
public class NetworkManager {
private final FMLEventChannel channel;
private final String channelName;
private final IPacketHandler packetHandler;
public NetworkManager(String name, IPacketHandler pktHandler) {
channelName = name;
channel = NetworkRegistry.INSTANCE.newEventDrivenChannel(channelName);
channel.register(this);
packetHandler = pktHandler;
}
public static NetworkManager registerPacketHandler(String name, IPacketHandler packetHandler) {
return new NetworkManager(name, packetHandler);
}
@SubscribeEvent
public void onServerPacket(ServerCustomPacketEvent e) {
EntityPlayerMP player = ((NetHandlerPlayServer) e.handler).playerEntity;
ByteBuf buf = e.packet.payload();
packetHandler.handleServerSide(buf, player.worldObj, player);
}
@SubscribeEvent
public void onClientPacket(ClientCustomPacketEvent event) {
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
ByteBuf buf = event.packet.payload();
packetHandler.handleClientSide(buf, player.worldObj, player);
}
public void sendToServer(FMLProxyPacket packet) {
channel.sendToServer(packet);
}
public void sendToClients(FMLProxyPacket packet) {
channel.sendToAll(packet);
}
public void sendToPlayer(FMLProxyPacket packet, EntityPlayerMP player) {
channel.sendTo(packet, player);
}
public void sendToArea(FMLProxyPacket packet, double x, double y, double z, double range, int dim) {
channel.sendToAllAround(packet, new TargetPoint(dim, x, y, z, range));
}
public void sendToDimension(FMLProxyPacket packet, int id) {
channel.sendToDimension(packet, id);
}
public FMLProxyPacket createPacket(Object... data) {
return createPacket(Unpooled.buffer(32), data);
}
public FMLProxyPacket createPacket(ByteBuf buf, Object... data) {
for (Object obj : data) {
if (obj instanceof Byte) {
buf.writeByte((Byte) obj);
}
if (obj instanceof Short) {
buf.writeShort((Short) obj);
}
if (obj instanceof Integer) {
buf.writeInt((Integer) obj);
}
if (obj instanceof Float) {
buf.writeFloat((Float) obj);
}
if (obj instanceof Double) {
buf.writeDouble((Double) obj);
}
if (obj instanceof Long) {
buf.writeLong((Long) obj);
}
if (obj instanceof Character) {
buf.writeChar((Character) obj);
}
if (obj instanceof String) {
ByteBufUtils.writeUTF8String(buf, (String) obj);
}
if (obj instanceof ItemStack) {
ByteBufUtils.writeItemStack(buf, (ItemStack) obj);
}
if (obj instanceof NBTTagCompound) {
ByteBufUtils.writeTag(buf, (NBTTagCompound) obj);
}
}
return new FMLProxyPacket(buf, channelName);
}
Нах?Dovakin написал(а):Код:import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.FMLEventChannel; import cpw.mods.fml.common.network.FMLNetworkEvent.ClientCustomPacketEvent; import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLProxyPacket; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetHandlerPlayServer; public class NetworkManager { private final FMLEventChannel channel; private final String channelName; private final IPacketHandler packetHandler; public NetworkManager(String name, IPacketHandler pktHandler) { channelName = name; channel = NetworkRegistry.INSTANCE.newEventDrivenChannel(channelName); channel.register(this); packetHandler = pktHandler; } public static NetworkManager registerPacketHandler(String name, IPacketHandler packetHandler) { return new NetworkManager(name, packetHandler); } @SubscribeEvent public void onServerPacket(ServerCustomPacketEvent e) { EntityPlayerMP player = ((NetHandlerPlayServer) e.handler).playerEntity; ByteBuf buf = e.packet.payload(); packetHandler.handleServerSide(buf, player.worldObj, player); } @SubscribeEvent public void onClientPacket(ClientCustomPacketEvent event) { EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; ByteBuf buf = event.packet.payload(); packetHandler.handleClientSide(buf, player.worldObj, player); } public void sendToServer(FMLProxyPacket packet) { channel.sendToServer(packet); } public void sendToClients(FMLProxyPacket packet) { channel.sendToAll(packet); } public void sendToPlayer(FMLProxyPacket packet, EntityPlayerMP player) { channel.sendTo(packet, player); } public void sendToArea(FMLProxyPacket packet, double x, double y, double z, double range, int dim) { channel.sendToAllAround(packet, new TargetPoint(dim, x, y, z, range)); } public void sendToDimension(FMLProxyPacket packet, int id) { channel.sendToDimension(packet, id); } public FMLProxyPacket createPacket(Object... data) { return createPacket(Unpooled.buffer(32), data); } public FMLProxyPacket createPacket(ByteBuf buf, Object... data) { for (Object obj : data) { if (obj instanceof Byte) { buf.writeByte((Byte) obj); } if (obj instanceof Short) { buf.writeShort((Short) obj); } if (obj instanceof Integer) { buf.writeInt((Integer) obj); } if (obj instanceof Float) { buf.writeFloat((Float) obj); } if (obj instanceof Double) { buf.writeDouble((Double) obj); } if (obj instanceof Long) { buf.writeLong((Long) obj); } if (obj instanceof Character) { buf.writeChar((Character) obj); } if (obj instanceof String) { ByteBufUtils.writeUTF8String(buf, (String) obj); } if (obj instanceof ItemStack) { ByteBufUtils.writeItemStack(buf, (ItemStack) obj); } if (obj instanceof NBTTagCompound) { ByteBufUtils.writeTag(buf, (NBTTagCompound) obj); } } return new FMLProxyPacket(buf, channelName); }
Поделись пакетами, с разрешения автора, разумеется)svk написал(а):Не знаю поможешь-ли ты, но мне агровайн систему пакетов дал, а она крашит...GloomyFolken написал(а):Большинство первые несколько часов пытаются решить свою проблему сами, и только потом идут на форумы)
Вот это в CommonProxy прописал:
Код:public static final NetworkManager packetSender = NetworkManager.registerPacketHandler("industrialGun", new PacketHandler());