小帅120
本帖最后由 小帅120 于 2022-7-28 15:58 编辑

1.7.10 NBT怎么修改tag列表内的标签数值


  1. import org.bukkit.Bukkit;
  2. import org.bukkit.Material;
  3. import org.bukkit.command.Command;
  4. import org.bukkit.command.CommandSender;
  5. import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.Listener;
  8. import org.bukkit.event.player.PlayerMoveEvent;
  9. import org.bukkit.inventory.ItemStack;
  10. import org.bukkit.plugin.java.JavaPlugin;

  11. import net.minecraft.server.v1_7_R4.NBTTagCompound;



  12. net.minecraft.server.v1_7_R4.ItemStack ItemInHand = CraftItemStack.asNMSCopy(event.getPlayer().getInventory().getItemInHand());;
  13.                                 NBTTagCompound tag = new NBTTagCompound();
  14.                                 tag = ItemInHand.getTag();
  15.                                 Integer Ammo = tag.getInt("Ammo");//改为tag列表下的Ammo标签
  16.                                 if(Ammo > getConfig().getIntegerList("Amount").get(a)) {
  17.                                         tag.setInt("Ammo", 0);
  18.                                         ItemInHand.setTag(tag);
  19.                                         event.getPlayer().setItemInHand(CraftItemStack.asBukkitCopy(ItemInHand));
  20.                                 }
复制代码




就是我主要想让代码去修改它
比如超过2000
直接改为0
就是让代码去判断他是否超过2000
if超过 直接修改为0



tianbingDD
选中你要更改的标签后点左上方的 I图标就能编辑

小帅120
tianbingDD 发表于 2022-7-28 15:41
选中你要更改的标签后点左上方的 I图标就能编辑

不是修改我是要用插件去修改它 请看图下面代码

是控控吗
你写的难道改不了吗

小帅120
是控控吗 发表于 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 ...

源码文件发一下

小帅120
  1. package com.AmmendFix;

  2. import org.bukkit.Bukkit;
  3. import org.bukkit.Material;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandSender;
  6. import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.player.PlayerMoveEvent;
  10. import org.bukkit.inventory.ItemStack;
  11. import org.bukkit.plugin.java.JavaPlugin;

  12. import net.minecraft.server.v1_7_R4.NBTTagCompound;

  13. public class Project extends JavaPlugin implements Listener {
  14.         public void onEnable() {
  15.                 saveDefaultConfig();
  16.                 reloadConfig();
  17.                 Bukkit.getPluginCommand("AmmendFix").setExecutor(this);
  18.                 System.out.println("已修复");
  19.                 getServer().getPluginManager().registerEvents(this, this);
  20.         }


  21.         @EventHandler
  22.         public void onMove(PlayerMoveEvent event) {
  23.                 ItemStack i = event.getPlayer().getInventory().getItemInHand();
  24.                 if(i.getType() == Material.AIR) {
  25.                         return;
  26.                 }
  27.                 Integer b = i.getTypeId();
  28.                 for(int a = 0; a<getConfig().getIntegerList("ID").size();a++) {
  29.                         if(getConfig().getIntegerList("ID").get(a) == b) {
  30.                                 net.minecraft.server.v1_7_R4.ItemStack ItemInHand = CraftItemStack.asNMSCopy(event.getPlayer().getInventory().getItemInHand());;
  31.                                 NBTTagCompound tag = new NBTTagCompound();
  32.                                 tag = ItemInHand.getTag();
  33.                                 Integer Ammo = tag.getInt("Ammo");//改为tag列表下的Ammo标签
  34.                                 if(Ammo > getConfig().getIntegerList("Amount").get(a)) {
  35.                                         tag.setInt("Ammo", 0);
  36.                                         ItemInHand.setTag(tag);
  37.                                         event.getPlayer().setItemInHand(CraftItemStack.asBukkitCopy(ItemInHand));
  38.                                 }
  39.                         }
  40.                 }
  41.                
  42.         }
  43.        
  44.        
  45.         @EventHandler
  46.         public boolean onCommand(CommandSender sender,Command cmd,String Label,String[] args) {
  47.                 if(!(cmd.getName().equalsIgnoreCase("AmmendFix"))) {
  48.                         return false;
  49.                 }
  50.                
  51.                 saveDefaultConfig();
  52.                 reloadConfig();
  53.                 sender.sendMessage("已重载");
  54.                
  55.                 return false;
  56.                
  57.         }
  58.        
  59.        
  60.        
  61. }
复制代码



是控控吗
onCommand方法不要@EventHandler注解

小帅120
是控控吗 发表于 2022-7-28 16:53
onCommand方法不要@EventHandler注解

这个能帮忙修复构建下嘛

是控控吗
小帅120 发表于 2022-7-28 19:30
这个能帮忙修复构建下嘛

com.zip (2.27 KB, 下载次数: 1)

小帅120


没有用还是改不了

是控控吗
小帅120 发表于 2022-7-28 20:13
没有用还是改不了

com.zip (2.22 KB, 下载次数: 3)

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