CodeRida

Untitled

Feb 21st, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. package me.rida.bookjoin;
  2.  
  3. import org.bukkit.Material;
  4. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.EventPriority;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.player.PlayerJoinEvent;
  10. import org.bukkit.inventory.Inventory;
  11. import org.bukkit.inventory.ItemStack;
  12. import org.bukkit.plugin.Plugin;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14.  
  15. import io.netty.buffer.ByteBuf;
  16. import io.netty.buffer.Unpooled;
  17. import net.minecraft.server.v1_8_R3.PacketDataSerializer;
  18. import net.minecraft.server.v1_8_R3.PacketPlayOutCustomPayload;
  19.  
  20. public class BookJoin extends JavaPlugin implements Listener {
  21.  
  22. public static BookJoin Instance;
  23. public static Plugin plugin = Instance;
  24. @Override
  25. public void onEnable() {
  26. getServer().getPluginManager().registerEvents(this, this);
  27. }
  28. @Override
  29. public void onDisable() {
  30.  
  31. }
  32. @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
  33. public void onJoin(PlayerJoinEvent e) {
  34. Player p = e.getPlayer();
  35. if (!p.hasPlayedBefore()) {
  36. this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  37. public void run() {
  38. openBook(p);
  39. }
  40.  
  41. }, 10L);
  42. }
  43. }
  44. public void openBook(Player p) {
  45. ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
  46. Inventory inv = p.getInventory();for (int i=0; i <= 35; i+=1){
  47. if(inv.contains(Material.WRITTEN_BOOK)){
  48. int slot = inv.first(Material.WRITTEN_BOOK) +1;
  49. ItemStack old = p.getInventory().getItem(slot);
  50. p.getInventory().setItem(slot, book);
  51.  
  52. ByteBuf buf = Unpooled.buffer(256);
  53. buf.setByte(0, (byte)0);
  54. buf.writerIndex(1);
  55.  
  56. PacketPlayOutCustomPayload packet = new PacketPlayOutCustomPayload("MC|BOpen", new PacketDataSerializer(buf));
  57. ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
  58. p.getInventory().setItem(slot, old);
  59. }
  60. }
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment