本帖最后由 小帅120 于 2022-7-28 15:58 编辑
1.7.10 NBT怎么修改tag列表内的标签数值
复制代码
就是我主要想让代码去修改它
比如超过2000
直接改为0
就是让代码去判断他是否超过2000
if超过 直接修改为0

- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.java.JavaPlugin;
- import net.minecraft.server.v1_7_R4.NBTTagCompound;
- net.minecraft.server.v1_7_R4.ItemStack ItemInHand = CraftItemStack.asNMSCopy(event.getPlayer().getInventory().getItemInHand());;
- NBTTagCompound tag = new NBTTagCompound();
- tag = ItemInHand.getTag();
- Integer Ammo = tag.getInt("Ammo");//改为tag列表下的Ammo标签
- if(Ammo > getConfig().getIntegerList("Amount").get(a)) {
- tag.setInt("Ammo", 0);
- ItemInHand.setTag(tag);
- event.getPlayer().setItemInHand(CraftItemStack.asBukkitCopy(ItemInHand));
- }
就是我主要想让代码去修改它
比如超过2000
直接改为0
就是让代码去判断他是否超过2000
if超过 直接修改为0
tianbingDD 发表于 2022-7-28 15:41
选中你要更改的标签后点左上方的 I图标就能编辑
不是修改我是要用插件去修改它 请看图下面代码
你写的难道改不了吗
是控控吗 发表于 2022-7-28 16:06
你写的难道改不了吗
[13:05:37] [Server thread/ERROR]: [AmmendFix] AmmendFix v1.0 attempted to register an invalid EventHandler method signature "public boolean com.AmmendFix.Project.onCommand(org.bukkit.command.CommandSender,org.bukkit.command.Command,java.lang.String,java.lang.String[])" in class com.AmmendFix.Project
我改了报错改不明白
小帅120 发表于 2022-7-28 16:11
[13:05:37] [Server thread/ERROR]: [AmmendFix] AmmendFix v1.0 attempted to register an invalid Even ...
源码文件发一下
小帅120 发表于 2022-7-28 16:11
[13:05:37] [Server thread/ERROR]: [AmmendFix] AmmendFix v1.0 attempted to register an invalid Even ...
源码文件发一下
是控控吗 发表于 2022-7-28 16:15
源码文件发一下
- package com.AmmendFix;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.plugin.java.JavaPlugin;
- import net.minecraft.server.v1_7_R4.NBTTagCompound;
- public class Project extends JavaPlugin implements Listener {
- public void onEnable() {
- saveDefaultConfig();
- reloadConfig();
- Bukkit.getPluginCommand("AmmendFix").setExecutor(this);
- System.out.println("已修复");
- getServer().getPluginManager().registerEvents(this, this);
- }
- @EventHandler
- public void onMove(PlayerMoveEvent event) {
- ItemStack i = event.getPlayer().getInventory().getItemInHand();
- if(i.getType() == Material.AIR) {
- return;
- }
- Integer b = i.getTypeId();
- for(int a = 0; a<getConfig().getIntegerList("ID").size();a++) {
- if(getConfig().getIntegerList("ID").get(a) == b) {
- net.minecraft.server.v1_7_R4.ItemStack ItemInHand = CraftItemStack.asNMSCopy(event.getPlayer().getInventory().getItemInHand());;
- NBTTagCompound tag = new NBTTagCompound();
- tag = ItemInHand.getTag();
- Integer Ammo = tag.getInt("Ammo");//改为tag列表下的Ammo标签
- if(Ammo > getConfig().getIntegerList("Amount").get(a)) {
- tag.setInt("Ammo", 0);
- ItemInHand.setTag(tag);
- event.getPlayer().setItemInHand(CraftItemStack.asBukkitCopy(ItemInHand));
- }
- }
- }
-
- }
-
-
- @EventHandler
- public boolean onCommand(CommandSender sender,Command cmd,String Label,String[] args) {
- if(!(cmd.getName().equalsIgnoreCase("AmmendFix"))) {
- return false;
- }
-
- saveDefaultConfig();
- reloadConfig();
- sender.sendMessage("已重载");
-
- return false;
-
- }
-
-
-
- }
onCommand方法不要@EventHandler注解