Skip to content

Commit

Permalink
Temp fix for villager trades
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Oct 15, 2016
1 parent f8e1b66 commit 02db1af
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 51 deletions.
Expand Up @@ -146,6 +146,9 @@ public boolean sendPacket(Player player, PacketOutWindowItems windowItems) {
@Override
public boolean sendPacket(Player player, PacketOutTradeList tradeList) {
List<TradeOffer> tradeOffers = tradeList.getTradeOffers();
if (tradeOffers == null) {
return false;
}
for (TradeOffer tradeOffer : tradeOffers) {
tradeOffer.setFirstCost(removeItemScriptLore(tradeOffer.getFirstCost()));
tradeOffer.setSecondCost(removeItemScriptLore(tradeOffer.getSecondCost()));
Expand Down
Expand Up @@ -2,17 +2,12 @@

import io.netty.buffer.Unpooled;
import net.aufdemrand.denizen.nms.interfaces.packets.PacketOutTradeList;
import net.aufdemrand.denizen.nms.util.ReflectionHelper;
import net.aufdemrand.denizen.nms.util.TradeOffer;
import net.minecraft.server.v1_10_R1.PacketDataSerializer;
import net.minecraft.server.v1_10_R1.PacketPlayOutCustomPayload;
import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class PacketOutTradeList_v1_10_R1 implements PacketOutTradeList {

Expand All @@ -22,9 +17,12 @@ public class PacketOutTradeList_v1_10_R1 implements PacketOutTradeList {

public PacketOutTradeList_v1_10_R1(PacketPlayOutCustomPayload internal) {
this.internal = internal;
try {
PacketDataSerializer serializer = (PacketDataSerializer) SERIALIZER.get(internal);
/*try {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
internal.b(serializer);
container = serializer.readInt();
int bytes = serializer.readableBytes();
serializer = new PacketDataSerializer(serializer.readBytes(bytes));
tradeOffers = new ArrayList<TradeOffer>();
byte tradeCount = serializer.readByte();
for (byte i = 0; i < tradeCount; i++) {
Expand All @@ -40,7 +38,7 @@ public PacketOutTradeList_v1_10_R1(PacketPlayOutCustomPayload internal) {
}
catch (Exception e) {
e.printStackTrace();
}
}*/
}

@Override
Expand All @@ -53,7 +51,7 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
try {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
serializer.writeInt(container);
serializer.writeByte(tradeOffers.size());
serializer.writeByte((byte)(tradeOffers.size() & 255));
for (TradeOffer tradeOffer : tradeOffers) {
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getFirstCost()));
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getProduct()));
Expand All @@ -66,17 +64,10 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
serializer.writeInt(tradeOffer.getCurrentUses());
serializer.writeInt(tradeOffer.getMaxUses());
}
SERIALIZER.set(internal, serializer);
internal.a(serializer);
}
catch (Exception e) {
e.printStackTrace();
}
}

private static final Field SERIALIZER;

static {
Map<String, Field> fields = ReflectionHelper.getFields(PacketPlayOutCustomPayload.class);
SERIALIZER = fields.get("b");
}
}
Expand Up @@ -2,17 +2,12 @@

import io.netty.buffer.Unpooled;
import net.aufdemrand.denizen.nms.interfaces.packets.PacketOutTradeList;
import net.aufdemrand.denizen.nms.util.ReflectionHelper;
import net.aufdemrand.denizen.nms.util.TradeOffer;
import net.minecraft.server.v1_8_R3.PacketDataSerializer;
import net.minecraft.server.v1_8_R3.PacketPlayOutCustomPayload;
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class PacketOutTradeList_v1_8_R3 implements PacketOutTradeList {

Expand All @@ -21,9 +16,10 @@ public class PacketOutTradeList_v1_8_R3 implements PacketOutTradeList {
private List<TradeOffer> tradeOffers;

public PacketOutTradeList_v1_8_R3(PacketPlayOutCustomPayload internal) {
this.internal = internal;
/*this.internal = internal;
try {
PacketDataSerializer serializer = (PacketDataSerializer) SERIALIZER.get(internal);
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
internal.b(serializer);
container = serializer.readInt();
tradeOffers = new ArrayList<TradeOffer>();
byte tradeCount = serializer.readByte();
Expand All @@ -40,7 +36,7 @@ public PacketOutTradeList_v1_8_R3(PacketPlayOutCustomPayload internal) {
}
catch (Exception e) {
e.printStackTrace();
}
}*/
}

@Override
Expand All @@ -53,7 +49,7 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
try {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
serializer.writeInt(container);
serializer.writeByte(tradeOffers.size());
serializer.writeByte((byte)(tradeOffers.size() & 255));
for (TradeOffer tradeOffer : tradeOffers) {
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getFirstCost()));
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getProduct()));
Expand All @@ -66,17 +62,10 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
serializer.writeInt(tradeOffer.getCurrentUses());
serializer.writeInt(tradeOffer.getMaxUses());
}
SERIALIZER.set(internal, serializer);
internal.a(serializer);
}
catch (Exception e) {
e.printStackTrace();
}
}

private static final Field SERIALIZER;

static {
Map<String, Field> fields = ReflectionHelper.getFields(PacketPlayOutCustomPayload.class);
SERIALIZER = fields.get("b");
}
}
Expand Up @@ -2,17 +2,12 @@

import io.netty.buffer.Unpooled;
import net.aufdemrand.denizen.nms.interfaces.packets.PacketOutTradeList;
import net.aufdemrand.denizen.nms.util.ReflectionHelper;
import net.aufdemrand.denizen.nms.util.TradeOffer;
import net.minecraft.server.v1_9_R2.PacketDataSerializer;
import net.minecraft.server.v1_9_R2.PacketPlayOutCustomPayload;
import org.bukkit.craftbukkit.v1_9_R2.inventory.CraftItemStack;
import org.bukkit.inventory.ItemStack;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class PacketOutTradeList_v1_9_R2 implements PacketOutTradeList {

Expand All @@ -21,9 +16,10 @@ public class PacketOutTradeList_v1_9_R2 implements PacketOutTradeList {
private List<TradeOffer> tradeOffers;

public PacketOutTradeList_v1_9_R2(PacketPlayOutCustomPayload internal) {
this.internal = internal;
/*this.internal = internal;
try {
PacketDataSerializer serializer = (PacketDataSerializer) SERIALIZER.get(internal);
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
internal.b(serializer);
container = serializer.readInt();
tradeOffers = new ArrayList<TradeOffer>();
byte tradeCount = serializer.readByte();
Expand All @@ -40,7 +36,7 @@ public PacketOutTradeList_v1_9_R2(PacketPlayOutCustomPayload internal) {
}
catch (Exception e) {
e.printStackTrace();
}
}*/
}

@Override
Expand All @@ -53,7 +49,7 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
try {
PacketDataSerializer serializer = new PacketDataSerializer(Unpooled.buffer());
serializer.writeInt(container);
serializer.writeByte(tradeOffers.size());
serializer.writeByte((byte)(tradeOffers.size() & 255));
for (TradeOffer tradeOffer : tradeOffers) {
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getFirstCost()));
serializer.a(CraftItemStack.asNMSCopy(tradeOffer.getProduct()));
Expand All @@ -66,17 +62,10 @@ public void setTradeOffers(List<TradeOffer> tradeOffers) {
serializer.writeInt(tradeOffer.getCurrentUses());
serializer.writeInt(tradeOffer.getMaxUses());
}
SERIALIZER.set(internal, serializer);
internal.a(serializer);
}
catch (Exception e) {
e.printStackTrace();
}
}

private static final Field SERIALIZER;

static {
Map<String, Field> fields = ReflectionHelper.getFields(PacketPlayOutCustomPayload.class);
SERIALIZER = fields.get("b");
}
}

0 comments on commit 02db1af

Please sign in to comment.