G2A Many GEOs
SHARE
TWEET

AnimalFarming.java

a guest Jul 10th, 2019 160 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package animalFarming;
  2.  
  3. import net.risingworld.api.Plugin;
  4. import net.risingworld.api.Server;
  5. import net.risingworld.api.World;
  6. import net.risingworld.api.events.EventMethod;
  7. import net.risingworld.api.events.Listener;
  8. import net.risingworld.api.events.player.PlayerNpcInteractionEvent;
  9. import net.risingworld.api.objects.Inventory;
  10. import net.risingworld.api.objects.Item;
  11. import net.risingworld.api.objects.Npc;
  12. import net.risingworld.api.objects.Player;
  13. import net.risingworld.api.utils.Vector3f;
  14.  
  15. public class AnimalFarming extends Plugin implements Listener
  16. {
  17.     World world;
  18.     Server server;
  19.     int[] supportedAnimals = new int[] { 1, 2, 3, 4, 8, 9, 10, 19, 22, 28, 29 };
  20.     int lureItemID = 497;
  21.     int breedItemID = 494;
  22.     int breedItemCost = 64;
  23.  
  24.     @Override
  25.     public void onEnable()
  26.     {
  27.         registerEventListener(this);
  28.         world = getWorld();
  29.         server = getServer();
  30.     }
  31.  
  32.     @EventMethod
  33.     public void onPlayerNpcInteraction(PlayerNpcInteractionEvent event)
  34.     {
  35.         Npc npc = event.getNpc();
  36.         Player player = event.getPlayer();
  37.  
  38.         // Check if the player has an item equipped and if the NPC is an animal
  39.         if (player.getEquippedItem() != null && npc.getType() == Npc.Type.Animal)
  40.         {
  41.             Boolean isAnimalSupported = false;
  42.             int animalID = npc.getTypeID();
  43.             int equippedItemID = player.getEquippedItem().getTypeID();
  44.  
  45.             for (int i = 0; i < supportedAnimals.length; i++)
  46.             {
  47.                 if (supportedAnimals[i] == animalID)
  48.                     isAnimalSupported = true;
  49.             }
  50.  
  51.             if (isAnimalSupported)
  52.             {
  53.                 // Animal Luring Behaviour
  54.                 if (equippedItemID == lureItemID)
  55.                 {
  56.                     npc.setGroupID(-1);
  57.                     npc.moveTo(player.getPosition());
  58.                 }
  59.  
  60.                 // Animal Breeding Behaviour
  61.                 if (equippedItemID == breedItemID)
  62.                 {
  63.                     int breedItemsInInventoryCount = 0;
  64.                     Inventory inventory = player.getInventory();
  65.  
  66.                     // Count amount of breeding items in quickslots
  67.                     for (int i = 0; i < 5; i++)
  68.                     {
  69.                         Item item = inventory.getItem(i, Inventory.SlotType.Quickslot);
  70.                         if (item != null)
  71.                         {
  72.                             if (item.getTypeID() == breedItemID)
  73.                                 breedItemsInInventoryCount += item.getStacksize();
  74.                         }
  75.                     }
  76.  
  77.                     // Count amount of breed items in inventory
  78.                     for (int i = 0; i < 32; i++)
  79.                     {
  80.                         Item item = inventory.getItem(i, Inventory.SlotType.Inventory);
  81.                         if (item != null)
  82.                         {
  83.                             if (item.getTypeID() == breedItemID)
  84.                                 breedItemsInInventoryCount += item.getStacksize();
  85.                         }
  86.                     }
  87.  
  88.                     // Breed new animal and delete breed items from inventory
  89.                     // if player has enough breed items in his inventory to pay for the cost
  90.                     if (breedItemsInInventoryCount >= breedItemCost)
  91.                     {
  92.                         int breedItemCostLeft = breedItemCost;
  93.  
  94.                         // Delete breed items from inventory first
  95.                         for (int i = 0; i < 32; i++)
  96.                         {
  97.                             if (breedItemCostLeft <= 0)
  98.                                 break;
  99.  
  100.                             Item item = inventory.getItem(i, Inventory.SlotType.Inventory);
  101.                             if (item != null)
  102.                             {
  103.                                 if (item.getTypeID() == breedItemID)
  104.                                 {
  105.                                     if (item.getStacksize() > breedItemCostLeft)
  106.                                     {
  107.                                         breedItemCostLeft -= breedItemCostLeft - breedItemCostLeft;
  108.                                         inventory.removeItem(i, Inventory.SlotType.Inventory, breedItemCostLeft);
  109.                                     }
  110.                                     else
  111.                                     {
  112.                                         breedItemCostLeft -= item.getStacksize();
  113.                                         inventory.removeItem(i, Inventory.SlotType.Inventory, item.getStacksize());
  114.                                     }
  115.                                 }
  116.                             }
  117.                         }
  118.  
  119.                         // Delete breed items from quickslots second
  120.                         for (int i = 0; i < 5; i++)
  121.                         {
  122.                             if (breedItemCostLeft <= 0)
  123.                                 break;
  124.  
  125.                             Item item = inventory.getItem(i, Inventory.SlotType.Quickslot);
  126.                             if (item != null)
  127.                             {
  128.                                 if (item.getTypeID() == breedItemID)
  129.                                 {
  130.                                     if (item.getStacksize() > breedItemCostLeft)
  131.                                     {
  132.                                         breedItemCostLeft -= breedItemCostLeft;
  133.                                         inventory.removeItem(i, Inventory.SlotType.Quickslot, breedItemCostLeft);
  134.                                     }
  135.                                     else
  136.                                     {
  137.                                         breedItemCostLeft -= item.getStacksize();
  138.                                         inventory.removeItem(i, Inventory.SlotType.Quickslot, item.getStacksize());
  139.                                     }
  140.                                 }
  141.                             }
  142.                         }
  143.  
  144.                         // Spawn animal if all breed cost has been paid
  145.                         if (breedItemCostLeft <= 0)
  146.                         {
  147.                             Vector3f spawnPosition = new Vector3f(npc.getPosition().x, npc.getPosition().y, npc.getPosition().z);
  148.                             world.spawnNpc((short)npc.getTypeID(), (byte)0, spawnPosition, npc.getRotation());
  149.                         }
  150.                     }
  151.                 }
  152.             }
  153.         }
  154.     }
  155.  
  156.     @Override
  157.     public void onDisable()
  158.     {
  159.  
  160.     }
  161. }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top