Added ::items command
Added missing 6th colour variant of kitten/cat Fixed duplicated interaction implementations
This commit is contained in:
@@ -50,15 +50,14 @@ class EmptyOptionListener : InteractionListener {
|
|||||||
POTION(Items.POTION_195, Items.VIAL_229, "You empty the vial.", Sounds.LIQUID_2401),
|
POTION(Items.POTION_195, Items.VIAL_229, "You empty the vial.", Sounds.LIQUID_2401),
|
||||||
BURNT_STEW(Items.BURNT_STEW_2005, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
BURNT_STEW(Items.BURNT_STEW_2005, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
||||||
NETTLE_TEA(Items.NETTLE_TEA_4239, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
NETTLE_TEA(Items.NETTLE_TEA_4239, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
||||||
CUP_OF_TEA(Items.CUP_OF_TEA_4242, Items.EMPTY_CUP_1980, "You empty the cup of tea.", Sounds.LIQUID_2401),
|
NETTLE_TEA_CUP(Items.CUP_OF_TEA_4242, Items.EMPTY_CUP_1980, "You empty the cup of tea.", Sounds.LIQUID_2401),
|
||||||
NETTLE_WATER(Items.NETTLE_WATER_4237, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
|
||||||
NETTLE_TEA_MILKY(Items.NETTLE_TEA_4240, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
|
||||||
NETTLE_TEA_CUP(Items.CUP_OF_TEA_4242, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
|
||||||
NETTLE_TEA_CUP_MILKY(Items.CUP_OF_TEA_4243, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
NETTLE_TEA_CUP_MILKY(Items.CUP_OF_TEA_4243, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
TEA_CUP_WATER(Items.CUP_OF_WATER_4458, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
|
||||||
TEA_CUP_HOT_WATER(Items.CUP_OF_HOT_WATER_4460, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
|
||||||
NETTLE_TEA_PORCELAIN(Items.CUP_OF_TEA_4245, Items.PORCELAIN_CUP_4244, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
NETTLE_TEA_PORCELAIN(Items.CUP_OF_TEA_4245, Items.PORCELAIN_CUP_4244, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
NETTLE_TEA_PORCELAIN_MILKY(Items.CUP_OF_TEA_4246, Items.PORCELAIN_CUP_4244, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
NETTLE_TEA_PORCELAIN_MILKY(Items.CUP_OF_TEA_4246, Items.PORCELAIN_CUP_4244, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
|
NETTLE_WATER(Items.NETTLE_WATER_4237, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
||||||
|
NETTLE_TEA_MILKY(Items.NETTLE_TEA_4240, Items.BOWL_1923, "You empty the contents of the bowl onto the floor.", Sounds.LIQUID_2401),
|
||||||
|
TEA_CUP_WATER(Items.CUP_OF_WATER_4458, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
|
TEA_CUP_HOT_WATER(Items.CUP_OF_HOT_WATER_4460, Items.EMPTY_CUP_1980, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
BUILDERS_TEA1(Items.CUP_OF_TEA_7730, Items.EMPTY_CUP_7728, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
BUILDERS_TEA1(Items.CUP_OF_TEA_7730, Items.EMPTY_CUP_7728, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
BUILDERS_TEA1_MILKY(Items.CUP_OF_TEA_7731, Items.EMPTY_CUP_7728, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
BUILDERS_TEA1_MILKY(Items.CUP_OF_TEA_7731, Items.EMPTY_CUP_7728, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
BUILDERS_TEA2(Items.CUP_OF_TEA_7733, Items.PORCELAIN_CUP_7732, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
BUILDERS_TEA2(Items.CUP_OF_TEA_7733, Items.PORCELAIN_CUP_7732, "You empty the contents of the cup onto the floor.", Sounds.LIQUID_2401),
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package content.global.handlers.item
|
||||||
|
|
||||||
|
import content.data.LightSource
|
||||||
|
import core.api.*
|
||||||
|
import core.game.interaction.InteractionListener
|
||||||
|
import core.game.interaction.IntType
|
||||||
|
import org.rs09.consts.Items
|
||||||
|
import kotlin.collections.toIntArray
|
||||||
|
|
||||||
|
class LightSourceListeners : InteractionListener {
|
||||||
|
override fun defineListeners() {
|
||||||
|
val lightSourceProducts = LightSource.values().map { it.product.id }.toIntArray()
|
||||||
|
|
||||||
|
on(lightSourceProducts, ITEM, "drop") { player, light ->
|
||||||
|
val active = LightSource.getActiveLightSource(player).product.id
|
||||||
|
if (player.location.isInRegion(10648) && light.id == active) { //Temple of Ikov dungeon
|
||||||
|
sendMessage(player, "Dropping the " + LightSource.getActiveLightSource(player).product.name.lowercase() + " would leave you without a light source.")
|
||||||
|
return@on false
|
||||||
|
}
|
||||||
|
val removed = removeItem(player, light.id)
|
||||||
|
if (removed) {
|
||||||
|
var droppedId = light.id
|
||||||
|
if (light.id == Items.MINING_HELMET_5013) {
|
||||||
|
droppedId = Items.MINING_HELMET_5014
|
||||||
|
sendMessage(player, "The helmet goes out as you drop it.")
|
||||||
|
}
|
||||||
|
produceGroundItem(player, droppedId)
|
||||||
|
}
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package content.global.handlers.item
|
|
||||||
|
|
||||||
import core.api.*
|
|
||||||
import core.game.interaction.InteractionListener
|
|
||||||
import core.game.interaction.IntType
|
|
||||||
import org.rs09.consts.Items
|
|
||||||
|
|
||||||
class MiningHelmetListener : InteractionListener {
|
|
||||||
override fun defineListeners() {
|
|
||||||
on(Items.MINING_HELMET_5013, IntType.ITEM, "drop") { player, _ ->
|
|
||||||
val removed = removeItem(player, Items.MINING_HELMET_5013)
|
|
||||||
if (removed) produceGroundItem(player, Items.MINING_HELMET_5014)
|
|
||||||
sendMessage(player, "The helmet goes out as you drop it.")
|
|
||||||
return@on true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package content.global.skill.cooking
|
|
||||||
|
|
||||||
import org.rs09.consts.Items
|
|
||||||
import core.api.replaceSlot
|
|
||||||
import core.api.removeItem
|
|
||||||
import core.game.interaction.IntType
|
|
||||||
import core.game.interaction.InteractionListener
|
|
||||||
import core.game.node.item.Item
|
|
||||||
|
|
||||||
class NettleWaterListener : InteractionListener {
|
|
||||||
override fun defineListeners() {
|
|
||||||
onUseWith(IntType.ITEM, Items.BOWL_OF_WATER_1921, Items.NETTLES_4241) { player, used, with ->
|
|
||||||
replaceSlot(player, used.asItem().slot, Item(Items.NETTLE_WATER_4237), used.asItem())
|
|
||||||
removeItem(player, with.asItem())
|
|
||||||
return@onUseWith true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -137,20 +137,6 @@ class TempleOfIkovListeners : InteractionListener {
|
|||||||
teleport(player, Location.create(2649, 9804, 0))
|
teleport(player, Location.create(2649, 9804, 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't let light extinguish or cape take off
|
|
||||||
val lightSourceProducts = LightSource.values().map { it.product.id }.toIntArray()
|
|
||||||
|
|
||||||
on(lightSourceProducts, ITEM, "drop") { player, light ->
|
|
||||||
val active = LightSource.getActiveLightSource(player).product.id
|
|
||||||
if (player.location.isInRegion(10648) && light.id == active) {
|
|
||||||
sendMessage(player, "Dropping the " + LightSource.getActiveLightSource(player).product.name.lowercase() + " would leave you without a light source.")
|
|
||||||
return@on false
|
|
||||||
}
|
|
||||||
val removed = removeItem(player, light.id)
|
|
||||||
if (removed) produceGroundItem(player, light.id)
|
|
||||||
return@on true
|
|
||||||
}
|
|
||||||
|
|
||||||
// B: Attach lever, authentic if you log out, the lever is lost, and you have to do that bridge again
|
// B: Attach lever, authentic if you log out, the lever is lost, and you have to do that bridge again
|
||||||
onUseWith(SCENERY, Items.LEVER_83, Scenery.LEVER_BRACKET_86) { player, used, with ->
|
onUseWith(SCENERY, Items.LEVER_83, Scenery.LEVER_BRACKET_86) { player, used, with ->
|
||||||
removeItem(player, used)
|
removeItem(player, used)
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ public final class GertrudeDialogue extends DialoguePlugin {
|
|||||||
* @return the item.
|
* @return the item.
|
||||||
*/
|
*/
|
||||||
public Item getKitten() {
|
public Item getKitten() {
|
||||||
return new Item(RandomFunction.random(1555, 1560));
|
return new Item(RandomFunction.random(1555, 1561));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -81,6 +81,33 @@ class SpawnCommandSet : CommandSet(Privilege.ADMIN){
|
|||||||
player.inventory.add(item)
|
player.inventory.add(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Spawns multiple items with the given ID
|
||||||
|
*/
|
||||||
|
define("items", usage = "::items <lt>start-id<gt> <lt>end-id<gt> [amount]", description = "Loops through item ids from 'start-id' to 'end-id' and spawns 'amount' of them in your inventory."){player,args ->
|
||||||
|
if (args.size < 3) {
|
||||||
|
reject(player,"You must specify start and end item ids.")
|
||||||
|
return@define
|
||||||
|
}
|
||||||
|
val start = args[1].toIntOrNull() ?: return@define
|
||||||
|
val end = args[2].toIntOrNull() ?: return@define
|
||||||
|
var amount = (args.getOrNull(3) ?: "1").toInt()
|
||||||
|
for (id in start..end) {
|
||||||
|
if (id > Cache.getItemDefinitionsSize()) {
|
||||||
|
reject(player,"Item ID '$id' out of range.")
|
||||||
|
return@define
|
||||||
|
}
|
||||||
|
val item = Item(id, amount)
|
||||||
|
val max = player.inventory.getMaximumAdd(item)
|
||||||
|
if (amount > max) {
|
||||||
|
amount = max
|
||||||
|
}
|
||||||
|
item.setAmount(amount)
|
||||||
|
player.inventory.add(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Spawn object with given ID at the player's location
|
* Spawn object with given ID at the player's location
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user