Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package animalFarming;
- import net.risingworld.api.Plugin;
- import net.risingworld.api.Server;
- import net.risingworld.api.World;
- import net.risingworld.api.events.EventMethod;
- import net.risingworld.api.events.Listener;
- import net.risingworld.api.events.player.PlayerNpcInteractionEvent;
- import net.risingworld.api.objects.Inventory;
- import net.risingworld.api.objects.Item;
- import net.risingworld.api.objects.Npc;
- import net.risingworld.api.objects.Player;
- import net.risingworld.api.utils.Vector3f;
- public class AnimalFarming extends Plugin implements Listener
- {
- World world;
- Server server;
- int[] supportedAnimals = new int[] { 1, 2, 3, 4, 8, 9, 10, 19, 22, 28, 29 };
- int lureItemID = 497;
- int breedItemID = 494;
- int breedItemCost = 64;
- @Override
- public void onEnable()
- {
- registerEventListener(this);
- world = getWorld();
- server = getServer();
- }
- @EventMethod
- public void onPlayerNpcInteraction(PlayerNpcInteractionEvent event)
- {
- Npc npc = event.getNpc();
- Player player = event.getPlayer();
- // Check if the player has an item equipped and if the NPC is an animal
- if (player.getEquippedItem() != null && npc.getType() == Npc.Type.Animal)
- {
- Boolean isAnimalSupported = false;
- int animalID = npc.getTypeID();
- int equippedItemID = player.getEquippedItem().getTypeID();
- for (int i = 0; i < supportedAnimals.length; i++)
- {
- if (supportedAnimals[i] == animalID)
- isAnimalSupported = true;
- }
- if (isAnimalSupported)
- {
- // Animal Luring Behaviour
- if (equippedItemID == lureItemID)
- {
- npc.setGroupID(-1);
- npc.moveTo(player.getPosition());
- }
- // Animal Breeding Behaviour
- if (equippedItemID == breedItemID)
- {
- int breedItemsInInventoryCount = 0;
- Inventory inventory = player.getInventory();
- // Count amount of breeding items in quickslots
- for (int i = 0; i < 5; i++)
- {
- Item item = inventory.getItem(i, Inventory.SlotType.Quickslot);
- if (item != null)
- {
- if (item.getTypeID() == breedItemID)
- breedItemsInInventoryCount += item.getStacksize();
- }
- }
- // Count amount of breed items in inventory
- for (int i = 0; i < 32; i++)
- {
- Item item = inventory.getItem(i, Inventory.SlotType.Inventory);
- if (item != null)
- {
- if (item.getTypeID() == breedItemID)
- breedItemsInInventoryCount += item.getStacksize();
- }
- }
- // Breed new animal and delete breed items from inventory
- // if player has enough breed items in his inventory to pay for the cost
- if (breedItemsInInventoryCount >= breedItemCost)
- {
- int breedItemCostLeft = breedItemCost;
- // Delete breed items from inventory first
- for (int i = 0; i < 32; i++)
- {
- if (breedItemCostLeft <= 0)
- break;
- Item item = inventory.getItem(i, Inventory.SlotType.Inventory);
- if (item != null)
- {
- if (item.getTypeID() == breedItemID)
- {
- if (item.getStacksize() > breedItemCostLeft)
- {
- breedItemCostLeft -= breedItemCostLeft - breedItemCostLeft;
- inventory.removeItem(i, Inventory.SlotType.Inventory, breedItemCostLeft);
- }
- else
- {
- breedItemCostLeft -= item.getStacksize();
- inventory.removeItem(i, Inventory.SlotType.Inventory, item.getStacksize());
- }
- }
- }
- }
- // Delete breed items from quickslots second
- for (int i = 0; i < 5; i++)
- {
- if (breedItemCostLeft <= 0)
- break;
- Item item = inventory.getItem(i, Inventory.SlotType.Quickslot);
- if (item != null)
- {
- if (item.getTypeID() == breedItemID)
- {
- if (item.getStacksize() > breedItemCostLeft)
- {
- breedItemCostLeft -= breedItemCostLeft;
- inventory.removeItem(i, Inventory.SlotType.Quickslot, breedItemCostLeft);
- }
- else
- {
- breedItemCostLeft -= item.getStacksize();
- inventory.removeItem(i, Inventory.SlotType.Quickslot, item.getStacksize());
- }
- }
- }
- }
- // Spawn animal if all breed cost has been paid
- if (breedItemCostLeft <= 0)
- {
- Vector3f spawnPosition = new Vector3f(npc.getPosition().x, npc.getPosition().y, npc.getPosition().z);
- world.spawnNpc((short)npc.getTypeID(), (byte)0, spawnPosition, npc.getRotation());
- }
- }
- }
- }
- }
- }
- @Override
- public void onDisable()
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement