凉凉丶
在玩家输入某个指令时
给予玩家一个蛋-比如豹猫蛋/村民蛋等
给予的方式是玩家以OP权限执行give指令或者玩家输入命令后后台执行
我看一些插件是有%player%这个东西 这种是怎么写出来的

零点星辰
本帖最后由 新科 于 2020-5-21 10:47 编辑

不是很理解这是什么意思...
关于 %player% 的实现方式, 非常简单你只需要在需要这个变量的地方进行替换即可, 使用 String.replaceAll(regex, target) 例如
"/give %player% egg".replaceAll("%player%", player.getName())
后台执行指令则使用此方法
getServer().dispatchCommand(getServer().getConsoleSender(), "give xxx egg 1");


零点星辰
新科 发表于 2020-5-21 10:41
不是很理解这是什么意思...
关于 %player% 的实现方式, 非常简单你只需要在需要这个变量的地方进行替换即可 ...

另外就是 replaceAll 的第一个参数注意是 regex, 虽然可以直接作为字符串替换, 但本质上需要是正则表达式。如果只需要替换字符的话注意正则语法里的字符比如 "{" "}" 这些都是不能用的, 别像我一样踩坑233

gooding300
新科 发表于 2020-5-21 10:56
另外就是 replaceAll 的第一个参数注意是 regex, 虽然可以直接作为字符串替换, 但本质上需要是正则表达式 ...

非正则替换用replace即可
https://docs.oracle.com/javase/8 ... .lang.CharSequence-

凉凉丶
新科 发表于 2020-5-21 10:56
另外就是 replaceAll 的第一个参数注意是 regex, 虽然可以直接作为字符串替换, 但本质上需要是正则表达式 ...

那么怎么给玩家一个豹猫蛋呢
不知道怎么用nbt 用Material. 没有找到豹猫蛋
我用的ItemStack dan=new ItemStack();
player.getInventory().addItem(dan);

1378495772
本帖最后由 1378495772 于 2020-5-21 11:59 编辑
凉凉丶 发表于 2020-5-21 11:36
那么怎么给玩家一个豹猫蛋呢
不知道怎么用nbt 用Material. 没有找到豹猫蛋
我用的ItemStack dan=new Item ...
  1. ItemStack stack = new ItemStack(Material.MONSTER_EGG);
  2. SpawnEggMeta meta = (SpawnEggMeta) stack.getItemMeta();
  3. meta.setSpawnedType(EntityType.OCELOT);
  4. stack.setItemMeta(meta);
复制代码



凉凉丶
本帖最后由 凉凉丶 于 2020-5-21 13:55 编辑


他会产生这样一个报错
stack.setItemMeta(meta);

我的代码是复制粘贴的
SpawnEggMeta是红色的 我输入Spawn只有SpawnEgg
我使用的是1.7.10的核心....

天辉胡萝卜
凉凉丶 发表于 2020-5-21 13:41
他会产生这样一个报错
stack.setItemMeta(meta);

1.7.10没有SpawnEggMeta,只能用附加值

  1. ItemStack stack = new ItemStack(Material.MONSTER_EGG, 1, EntityType.WOLF.getTypeId());
复制代码

第一页 上一页 下一页 最后一页