Added further functionality to the player object in the debug card

This commit is contained in:
Russell Long 2016-10-03 15:40:05 +11:00
parent 51085de828
commit dbea220117

View File

@ -326,6 +326,52 @@ object DebugCard {
null
})
@Callback(doc = """function():number -- Get the player's level""")
def getLevel(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => result(player.experienceLevel))
@Callback(doc = """function():number -- Get the player's total experience""")
def getExperienceTotal(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => result(player.experienceTotal))
@Callback(doc = """function(level:number) -- Add a level to the player's experience level""")
def addExperienceLevel(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => {
player.addExperienceLevel(args.checkDouble(0).toInt)
null
})
@Callback(doc = """function(level:number) -- Remove a level from the player's experience level""")
def removeExperienceLevel(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => {
player.removeExperienceLevel(args.checkDouble(0).toInt)
null
})
@Callback(doc = """function() -- Clear the players inventory""")
def clearInventory(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => {
player.inventory.clear()
null
})
@Callback(doc = """function(id:string, amount:number, meta:number[, nbt:string]):number -- Adds the item stack to the players inventory""")
def insertItem(context: Context, args: Arguments): Array[AnyRef] =
withPlayer(player => {
val item = Item.REGISTRY.getObject(new ResourceLocation(args.checkString(0)))
if (item == null) {
throw new IllegalArgumentException("invalid item id")
}
val amount = args.checkInteger(1)
val meta = args.checkInteger(2)
val tagJson = args.checkString(3)
val tag = if (Strings.isNullOrEmpty(tagJson)) null else JsonToNBT.getTagFromJson(tagJson)
val stack = new ItemStack(item, amount, meta)
stack.setTagCompound((tag))
result(InventoryUtils.insertIntoInventory(stack, player.inventory))
})
// ----------------------------------------------------------------------- //
private final val NameTag = "name"