Advertisement
jtjj222

Villager trading screen plugin in scala!

Nov 25th, 2012
573
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.81 KB | None | 0 0
  1. package me.jtjj222.scalatest
  2.  
  3. import org.bukkit.plugin.java.JavaPlugin;
  4. import org.bukkit.command.CommandSender;
  5. import org.bukkit.command.Command;
  6. import org.bukkit.Material;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.craftbukkit.entity.CraftPlayer;
  9.  
  10. import net.minecraft.server.EntityPlayer;
  11. import net.minecraft.server.Packet250CustomPayload;
  12. import net.minecraft.server.Packet100OpenWindow;
  13. import net.minecraft.server.MerchantRecipeList;
  14. import net.minecraft.server.MerchantRecipe;
  15. import net.minecraft.server.ItemStack;
  16.  
  17. import java.io.DataOutputStream;
  18. import java.io.ByteArrayOutputStream;
  19. import java.util.logging.Level;
  20.  
  21. class ScalaPlugin extends JavaPlugin{
  22.    
  23.     override def onCommand(sender : CommandSender, cmd : Command, label : String, args : Array[String]):Boolean = {
  24.      
  25.      var player : CraftPlayer =
  26.        sender match{
  27.         case p : Player => p.asInstanceOf[CraftPlayer]
  28.         case _ => {
  29.           sender.sendMessage("This command can only be used by players, sorry!");
  30.           return true;
  31.         }
  32.       }
  33.      
  34.       var packet = new Packet100OpenWindow(100,6,"",1);  
  35.       var recipes = new MerchantRecipeList;
  36.      
  37.       recipes.a(new MerchantRecipe(new ItemStack(Material.GLASS.getId(),1, 0), new ItemStack(Material.STONE.getId(),2,0), new ItemStack(Material.THIN_GLASS.getId(),3,0)));
  38.       recipes.a(new MerchantRecipe(new ItemStack(Material.GLASS.getId(),1, 0), new ItemStack(Material.GLASS.getId(),20,0)));
  39.      
  40.       player.getHandle().netServerHandler.sendPacket(packet);
  41.      
  42.       var buffer = new ByteArrayOutputStream;
  43.       var out = new DataOutputStream(buffer);
  44.      
  45.       //note exception catching is optional :D
  46.       out.writeInt(100);
  47.       recipes.a(out);
  48.       player.getHandle().netServerHandler.sendPacket(new Packet250CustomPayload("MC|TrList", buffer.toByteArray()));
  49.      
  50.       return true;
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement