♻️ Improved the API

This commit is contained in:
SBDeveloper 2022-06-30 19:26:51 +02:00
parent 2c65469bfb
commit bfaa99e5dd
29 changed files with 444 additions and 341 deletions

View file

@ -41,13 +41,12 @@ import tech.sbdevelopment.mapreflectionapi.api.MapController;
import tech.sbdevelopment.mapreflectionapi.api.MapWrapper;
import tech.sbdevelopment.mapreflectionapi.exceptions.MapLimitExceededException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;
public class MapWrapper_v1_14_R1 implements MapWrapper {
protected ArrayImage content;
import static tech.sbdevelopment.mapreflectionapi.util.ReflectionUtil.getField;
import static tech.sbdevelopment.mapreflectionapi.util.ReflectionUtil.setField;
public class MapWrapper_v1_14_R1 extends MapWrapper {
protected MapController controller = new MapController() {
private final Map<UUID, Integer> viewers = new HashMap<>();
@ -140,7 +139,7 @@ public class MapWrapper_v1_14_R1 implements MapWrapper {
net.minecraft.server.v1_14_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(stack);
PacketPlayOutSetSlot packet = new PacketPlayOutSetSlot(windowId, slot, nmsStack);
((EntityPlayer) player).playerConnection.sendPacket(packet);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
@Override
@ -222,23 +221,31 @@ public class MapWrapper_v1_14_R1 implements MapWrapper {
private void sendItemFramePacket(Player player, int entityId, ItemStack stack, int mapId) {
net.minecraft.server.v1_14_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(stack);
nmsStack.getOrCreateTag().setInt("map", mapId);
nmsStack.getOrCreateTag().setInt("map", mapId); //getOrCreateTag putInt
DataWatcher watcher = new DataWatcher(null);
watcher.set(DataWatcher.a(EntityItemFrame.class, DataWatcherRegistry.g), nmsStack);
PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(entityId, new DataWatcher(null), true);
PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(entityId, watcher, true);
((EntityPlayer) player).playerConnection.sendPacket(packet);
try {
List<DataWatcher.Item<?>> list = new ArrayList<>();
DataWatcherObject<net.minecraft.server.v1_14_R1.ItemStack> dataWatcherObject = (DataWatcherObject<net.minecraft.server.v1_14_R1.ItemStack>) getField(EntityItemFrame.class, "ITEM");
DataWatcher.Item<?> dataWatcherItem = new DataWatcher.Item<>(dataWatcherObject, nmsStack);
list.add(dataWatcherItem);
setField(packet, "b", list);
} catch (Exception e) {
e.printStackTrace();
return;
}
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
};
public MapWrapper_v1_14_R1(ArrayImage image) {
super(image);
}
@Override
public MapController getController() {
return controller;
}
@Override
public ArrayImage getContent() {
return content;
}
}

View file

@ -38,6 +38,9 @@ import tech.sbdevelopment.mapreflectionapi.listeners.PacketListener;
import java.util.concurrent.TimeUnit;
import static tech.sbdevelopment.mapreflectionapi.util.ReflectionUtil.getField;
import static tech.sbdevelopment.mapreflectionapi.util.ReflectionUtil.setField;
public class PacketListener_v1_14_R1 extends PacketListener {
@Override
protected void injectPlayer(Player p) {