MC~蛟龙 发表于 2023-7-30 10:48
额,这什么意思,Bukkit的不是和原版的一样吗
低版本有差异,高版本没啥区别
MC~蛟龙 发表于 2023-7-30 11:25
版本1.20.1
所以有什么好点的解决办法吗
装一下这个
https://www.mcbbs.net/thread-1364195-1-1.html
然后打开plugins/NeigeItems/Expansions文件夹,新建一个文本文档,改名"物品给予.js"
打开这个文件,输入以下文本:
- function enable() {
- const ArrayList = Packages.java.util.ArrayList
- const Comparator = Packages.java.util.Comparator
- const ItemStack = Packages.org.bukkit.inventory.ItemStack
- const Material = Packages.org.bukkit.Material
- const materialIds = new ArrayList()
- const materials = Material.values()
- for (let index = 0; index < materials.length; index++) {
- const material = materials[index]
- try {
- materialIds.add(material.key.toString())
- materialIds.add(material.toString())
- } catch (error) {}
- }
- materialIds.sort(Comparator.naturalOrder())
- new Command("蛟龙给你物品")
- .setPermission("蛟龙给你物品.command")
- .setPermissionMessage("权限不足")
- .setExecutor(function(sender, command, label, args) {
- if (args.length < 2) {
- sender.sendMessage("/蛟龙给你物品 玩家ID 物品ID 物品数量")
- return true
- }
- const player = Bukkit.getPlayerExact(args[0])
- if (player == null) {
- sender.sendMessage("玩家不在线或不存在")
- return true
- }
- let amount = 1
- if (args.length > 2) {
- amount = parseInt(args[2])
- }
- if (isNaN(amount)) {
- sender.sendMessage(`无法解析的数量: ${args[2]}`)
- return true
- }
- let material
- if (args[1].startsWith("minecraft:")) {
- material = Material.matchMaterial(args[1].substring(10).toUpperCase())
- } else {
- material = Material.matchMaterial(args[1].toUpperCase())
- }
- if (material == null) {
- sender.sendMessage(`无法解析的物品材质: ${args[1]}`)
- return true
- }
- const itemStack = new ItemStack(material)
- PlayerUtils.giveItems(player, itemStack, amount)
- sender.sendMessage(`成功给予 ${args[0]} ${amount} 个 ${HookerManager.getParsedName(itemStack)}`)
- return true
- })
- .setTabCompleter(function(sender, command, label, args) {
- if (args.length == 1) {
- const onlinePlayers = new ArrayList()
- Bukkit.getOnlinePlayers().forEach(function(player) {
- onlinePlayers.add(player.name)
- })
- return onlinePlayers
- } else if (args.length == 2) {
- return materialIds
- } else if (args.length == 3) {
- return ["amount"]
- }
- return []
- })
- .register()
- }