package com.iridium.iridiumskyblock.nms; import com.iridium.iridiumskyblock.Color; import com.iridium.iridiumskyblock.IridiumSkyblock; import com.iridium.iridiumskyblock.XMaterial; import net.minecraft.server.v1_13_R1.*; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.craftbukkit.v1_13_R1.CraftChunk; import org.bukkit.craftbukkit.v1_13_R1.CraftWorld; import org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.inventory.InventoryHolder; public class v1_13_R1 implements NMS { @Override public void setBlockFast(Block block, int blockId, byte data) { BlockState state = block.getState(); if (state.getType().name().endsWith("AIR") && blockId == 0) return; if (state instanceof InventoryHolder) { ((InventoryHolder) state).getInventory().clear(); } XMaterial material = XMaterial.requestOldXMaterial(blockId, (byte) 0); if (material != null && material.parseMaterial() != null) { block.setBlockData(IridiumSkyblock.getInstance().fromLegacy(material.parseMaterial(), data), false); } } @Override public void sendChunk(Player player, Chunk chunk) { PacketPlayOutMapChunk packetPlayOutMapChunk = new PacketPlayOutMapChunk(((CraftChunk) chunk).getHandle(), 65535); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packetPlayOutMapChunk); } @Override public void sendWorldBorder(Player player, Color color, double size, Location centerLocation) { WorldBorder worldBorder = new WorldBorder(); worldBorder.world = ((CraftWorld) centerLocation.getWorld()).getHandle(); worldBorder.setCenter(centerLocation.getBlockX() + 0.5, centerLocation.getBlockZ() + 0.5); if (color == Color.Off) { worldBorder.setSize(Integer.MAX_VALUE); } else { worldBorder.setSize(size); } worldBorder.setWarningDistance(0); worldBorder.setWarningTime(0); if (color == Color.Red) { worldBorder.transitionSizeBetween(size, size - 1.0D, 20000000L); } else if (color == Color.Green) { worldBorder.transitionSizeBetween(size - 0.1D, size, 20000000L); } ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutWorldBorder(worldBorder, PacketPlayOutWorldBorder.EnumWorldBorderAction.INITIALIZE)); } @Override public void sendSubTitle(Player player, String message, int fadeIn, int displayTime, int fadeOut) { IChatBaseComponent iChatBaseComponent = IChatBaseComponent.ChatSerializer.a(ChatColor.translateAlternateColorCodes('&', "{\"text\":\"" + message + "\"}")); PacketPlayOutTitle packetPlayOutTitle = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.SUBTITLE, iChatBaseComponent, fadeIn, displayTime, fadeOut); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packetPlayOutTitle); } @Override public void sendTitle(Player player, String message, int fadeIn, int displayTime, int fadeOut) { IChatBaseComponent iChatBaseComponent = IChatBaseComponent.ChatSerializer.a(ChatColor.translateAlternateColorCodes('&', "{\"text\":\"" + message + "\"}")); PacketPlayOutTitle packetPlayOutTitle = new PacketPlayOutTitle(PacketPlayOutTitle.EnumTitleAction.TITLE, iChatBaseComponent, fadeIn, displayTime, fadeOut); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packetPlayOutTitle); } }