Advertisement
Nuparu00

InventoryDetectionHandler.class

Aug 9th, 2017
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. public class InventoryDetectionHandler
  2. {
  3. public HashMap<String,InventoryPlayer> inventory_cache = new HashMap<String,InventoryPlayer>();
  4.  
  5. @SubscribeEvent
  6. public void onEntityUpdate(LivingEvent.LivingUpdateEvent event)
  7. {
  8. if(event.entityLiving instanceof EntityPlayer){
  9. EntityPlayer player = (EntityPlayer)event.entityLiving;
  10. if(inventory_cache.containsKey(player.getCommandSenderName())){
  11. if(areInventoriesEqual(player.inventory,inventory_cache.get(player.getCommandSenderName()))){
  12. return;
  13. }
  14. System.out.println("Difference has been found");
  15. inventory_cache.put(player.getCommandSenderName(),player.inventory);
  16. }else{
  17. inventory_cache.put(player.getCommandSenderName(),player.inventory);
  18. System.out.println("Key has not been found");  
  19. }
  20. }
  21. }
  22. @SubscribeEvent
  23. public void onEntityJoin(EntityJoinWorldEvent event){
  24. if(event.entity instanceof EntityPlayer){
  25. EntityPlayer player = (EntityPlayer)event.entity;  
  26. inventory_cache.put(player.getCommandSenderName(),player.inventory);
  27. }  
  28. }
  29. //TO DO - SEND PACKET ON START TRACKING
  30. @SubscribeEvent
  31. public void onPlayerStartedTracking(PlayerEvent.StartTracking event){
  32. if(event.entity instanceof EntityPlayer && event.target instanceof EntityPlayer){
  33.        
  34. }
  35. }
  36. public static boolean areInventoriesEqual(InventoryPlayer a , InventoryPlayer b){
  37. if(a == null || b == null){
  38. return false;
  39. }
  40. for(int i = 0;i < a.mainInventory.length;i++){
  41. if(!ItemStack.areItemStacksEqual(a.mainInventory[i],b.mainInventory[i])){
  42. return false;
  43. }
  44. }
  45. return true;
  46. }
  47.  
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement