mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2024-11-22 10:05:12 +01:00
Fix USE_ITEM using correct item. Fix SPAWN_OBJECT velocity.
This commit is contained in:
parent
442d4de74b
commit
db9cd296ee
@ -2,7 +2,10 @@ package us.myles.ViaVersion.transformers;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.Channel;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import us.myles.ViaVersion.*;
|
||||
import us.myles.ViaVersion.handlers.ViaVersionInitializer;
|
||||
import us.myles.ViaVersion.packets.PacketType;
|
||||
@ -89,11 +92,8 @@ public class IncomingTransformer {
|
||||
throw new CancelException();
|
||||
}
|
||||
output.writeByte(status);
|
||||
// read position
|
||||
Long pos = input.readLong();
|
||||
output.writeLong(pos);
|
||||
short face = input.readUnsignedByte();
|
||||
output.writeByte(face);
|
||||
// write remaining bytes
|
||||
output.writeBytes(input);
|
||||
return;
|
||||
}
|
||||
if (packet == PacketType.PLAY_CLICK_WINDOW) {
|
||||
@ -205,16 +205,30 @@ public class IncomingTransformer {
|
||||
}
|
||||
if (packet == PacketType.PLAY_USE_ITEM) {
|
||||
output.clear();
|
||||
PacketUtil.writeVarInt(PacketType.PLAY_PLAYER_BLOCK_PLACEMENT.getPacketID(), output);
|
||||
// Simulate using item :)
|
||||
output.writeLong(-1L);
|
||||
output.writeByte(-1);
|
||||
// write item in hand
|
||||
output.writeShort(-1);
|
||||
|
||||
output.writeByte(-1);
|
||||
output.writeByte(-1);
|
||||
output.writeByte(-1);
|
||||
PacketUtil.writeVarInt(PacketType.PLAY_PLAYER_BLOCK_PLACEMENT.getPacketID(), output);
|
||||
// Simulate using item :)
|
||||
output.writeLong(-1L);
|
||||
output.writeByte(255);
|
||||
// write item in hand
|
||||
ItemStack inHand = Core.getHandItem(info);
|
||||
Object item = null;
|
||||
try {
|
||||
Method m = ReflectionUtil.obc("inventory.CraftItemStack").getDeclaredMethod("asNMSCopy", ItemStack.class);
|
||||
item = m.invoke(null, inHand);
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
PacketUtil.writeItem(item, output);
|
||||
|
||||
output.writeByte(-1);
|
||||
output.writeByte(-1);
|
||||
output.writeByte(-1);
|
||||
return;
|
||||
}
|
||||
output.writeBytes(input);
|
||||
|
@ -237,12 +237,16 @@ public class OutgoingTransformer {
|
||||
|
||||
int data = input.readInt();
|
||||
output.writeInt(data);
|
||||
|
||||
short vX = input.readableBytes() >= 16 ? input.readShort() : 0;
|
||||
|
||||
short vX = 0, vY = 0, vZ = 0;
|
||||
if(data > 0)
|
||||
{
|
||||
vX = input.readShort();
|
||||
vY = input.readShort();
|
||||
vZ = input.readShort();
|
||||
}
|
||||
output.writeShort(vX);
|
||||
short vY = input.readableBytes() >= 16 ? input.readShort() : 0;
|
||||
output.writeShort(vY);
|
||||
short vZ = input.readableBytes() >= 16 ? input.readShort() : 0;
|
||||
output.writeShort(vZ);
|
||||
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user