Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import lombok.SneakyThrows;
- import net.minecraft.server.v1_16_R3.*;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.Server;
- import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- public class UpdateTittleContainers {
- @SneakyThrows
- public static void update(Player p, String title, Material container, int inventorySize) {
- Containers<?> inventoryType = null;
- EntityPlayer ep = ((CraftPlayer) p).getHandle();
- IChatBaseComponent icbc = IChatBaseComponent.ChatSerializer.b("'" + title + "'");
- if (container == Material.HOPPER)
- inventoryType = Containers.HOPPER;
- if (container == Material.CHEST)
- inventoryType = inventorySize == 9 ? Containers.GENERIC_9X1 : inventorySize == 9 * 2 ?
- Containers.GENERIC_9X2 : inventorySize == 9 * 3 ? Containers.GENERIC_9X3 : inventorySize == 9 * 4 ?
- Containers.GENERIC_9X4 : inventorySize == 9 * 5 ? Containers.GENERIC_9X5 : null;
- if (inventoryType != null) {
- PacketPlayOutOpenWindow packet = new PacketPlayOutOpenWindow(ep.activeContainer.windowId, inventoryType, icbc);
- ep.playerConnection.sendPacket((Packet<?>) packet);
- ep.updateInventory(ep.activeContainer);
- }
- versionCheck(Bukkit.getServer(), p);
- }
- public static void versionCheck(Server server, Player p) {
- String version = server.getVersion();
- int start = version.indexOf("MC: ") + 4;
- int end = version.length() - 1;
- System.out.println(version.substring(start, end));
- System.out.println(Bukkit.getServer().getClass().getPackageName().split("\\.")[3]);
- String title = "Testar";
- try {
- EntityPlayer ep = ((CraftPlayer) p).getHandle();
- IChatBaseComponent icbc = IChatBaseComponent.ChatSerializer.b("'" + title + "'");
- Class<?> exemple = Class.forName("net.minecraft.server.v1_16_R3.Containers");
- Class<?> exemplee = Class.forName("net.minecraft.server.v1_16_R3.Container");
- Class<?> tests155 = Class.forName("net.minecraft.server.v1_16_R3.EntityPlayer");
- Class<?> testshuman = Class.forName("net.minecraft.server.v1_16_R3.EntityHuman");
- int windowId = exemplee.getDeclaredField("windowId").getInt("windowId");
- Class<?> tests1 = Class.forName("net.minecraft.server.v1_16_R3.IChatBaseComponent");
- Class<?> chatCompenent = Class.forName("net.minecraft.server.v1_16_R3.IChatBaseComponent$ChatSerializer");
- Method declaredMethodChat = chatCompenent.getDeclaredMethod("b", String.class);
- Object inventoryTittle = declaredMethodChat.invoke(null, "'" + title + "'");
- Object inventoryType = exemple.getDeclaredField("HOPPER").get("HOPPER");
- Class<?> tests = Class.forName("net.minecraft.server.v1_16_R3.PacketPlayOutOpenWindow");
- Constructor<?> tesst = tests.getDeclaredConstructor(int.class, exemple, tests1);
- Object methods = tesst.newInstance(ep.activeContainer.windowId, inventoryType, inventoryTittle);
- System.out.println("windows ");
- PacketPlayOutOpenWindow packet = new PacketPlayOutOpenWindow(ep.activeContainer.windowId, (Containers<?>) inventoryType, icbc);
- ep.playerConnection.sendPacket((Packet<?>) methods);
- ep.updateInventory(ep.activeContainer);
- System.out.println(inventoryType);
- //System.out.println(Arrays.toString(new String[]{exemple.getDeclaredField("GENERIC_9X1").toString()}));
- } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InstantiationException | InvocationTargetException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement