Updated CrystalKeyCreate plugin to listener
This commit is contained in:
@@ -1,46 +0,0 @@
|
|||||||
package core.game.interaction.item.withitem;
|
|
||||||
|
|
||||||
import core.game.interaction.NodeUsageEvent;
|
|
||||||
import core.game.interaction.UseWithHandler;
|
|
||||||
import core.game.node.entity.player.Player;
|
|
||||||
import core.game.node.item.Item;
|
|
||||||
import core.plugin.Initializable;
|
|
||||||
import core.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the plugin used to handle the creation of a crystal key.
|
|
||||||
* @author 'Vexia
|
|
||||||
* @version 1.0
|
|
||||||
*/
|
|
||||||
@Initializable
|
|
||||||
public final class CrystalKeyCreatePlugin extends UseWithHandler {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the crystal key item.
|
|
||||||
*/
|
|
||||||
private static final Item KEY = new Item(989, 1);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new {@code CrystalKeyCreatePlugin} {@code Object}.
|
|
||||||
*/
|
|
||||||
public CrystalKeyCreatePlugin() {
|
|
||||||
super(985);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean handle(NodeUsageEvent event) {
|
|
||||||
final Player player = event.getPlayer();
|
|
||||||
if (player.getInventory().remove(event.getBaseItem(), event.getUsedItem())) {
|
|
||||||
player.getInventory().add(KEY);
|
|
||||||
player.getPacketDispatch().sendMessage("You join the loop half of a key and the tooth half of a key to make a crystal key.");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
|
||||||
addHandler(987, ITEM_TYPE, this);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
package rs09.game.interaction.item.withitem
|
||||||
|
|
||||||
|
import api.addItem
|
||||||
|
import api.removeItem
|
||||||
|
import api.sendMessage
|
||||||
|
import org.rs09.consts.Items
|
||||||
|
import rs09.game.interaction.IntType
|
||||||
|
import rs09.game.interaction.InteractionListener
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listener for creating a crystal key
|
||||||
|
* @author Byte
|
||||||
|
*/
|
||||||
|
@Suppress("unused")
|
||||||
|
class CrystalKeyCreateListener : InteractionListener {
|
||||||
|
|
||||||
|
override fun defineListeners() {
|
||||||
|
onUseWith(IntType.ITEM, Items.LOOP_HALF_OF_A_KEY_987, Items.TOOTH_HALF_OF_A_KEY_985) { player, used, with ->
|
||||||
|
if (!removeItem(player, used)) {
|
||||||
|
return@onUseWith false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!removeItem(player, with)) {
|
||||||
|
return@onUseWith false
|
||||||
|
}
|
||||||
|
|
||||||
|
addItem(player, Items.CRYSTAL_KEY_989)
|
||||||
|
sendMessage(player, "You join the loop half of a key and the tooth half of a key to make a crystal key.")
|
||||||
|
|
||||||
|
return@onUseWith true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user