你可以使用以下的Java代码来实现你的需求:

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.ArrayList;
import java.util.List;

public class YourPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        // 注册事件监听器
        Bukkit.getPluginManager().registerEvents(this, this);
        
        // 创建物品列表
        List<ItemStack> items = createItems();
        
        // 将物品列表保存到配置文件
        saveItemsToConfig(items);
    }
    
    @EventHandler
    public void onInventoryOpen(InventoryOpenEvent event) {
        Player player = (Player) event.getPlayer();
        int itemCount = getItemCount(player);
        
        player.sendMessage("你的物品数量为:" + itemCount);
    }
    
    private List<ItemStack> createItems() {
        List<ItemStack> items = new ArrayList<>();

        // 创建45个物品,这里使用的是石头作为示例
        for (int i = 0; i < 45; i++) {
            ItemStack item = new ItemStack(Material.STONE);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("物品 " + (i + 1));
            item.setItemMeta(meta);
            
            items.add(item);
        }

        return items;
    }
    
    private void saveItemsToConfig(List<ItemStack> items) {
        // 获取配置文件对象
        FileConfiguration config = getConfig();
        
        // 清除原有的物品数据
        config.set("items", null);
        
        // 将物品数据保存到配置文件
        for (int i = 0; i < items.size(); i++) {
            ItemStack item = items.get(i);
            config.set("items." + i, item);
        }
        
        // 保存配置文件
        saveConfig();
    }
    
    private int getItemCount(Player player) {
        int count = 0;
        
        // 获取配置文件对象
        FileConfiguration config = getConfig();
        
        // 获取玩家的物品列表
        for (String key : config.getConfigurationSection("items").getKeys(false)) {
            ItemStack item = config.getItemStack("items." + key);
            
            // 检查玩家是否拥有该物品
            if (player.getInventory().contains(item)) {
                count++;
            }
        }
        
        return count;
    }
}

这段代码创建了一个名为YourPlugin的插件类,其中包含了一个物品生成方法createItems()、一个将物品保存到配置文件的方法saveItemsToConfig()和一个获取玩家物品数量的方法getItemCount()

在插件启动时,会调用onEnable()方法注册事件监听器和保存物品到配置文件。

当玩家打开GUI界面时,会触发onInventoryOpen()方法,该方法会获取玩家物品数量并发送一条消息给玩家。

请注意,你需要将以上代码保存为一个Java文件,并在构建插件时添加对应的Bukkit依赖

用Java写一个Bukkit1201的 配置文件Data的到物品达到45个 玩家打开Gui的时候发送一条物品数量消息

原文地址: https://www.cveoy.top/t/topic/ikA0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录