• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
Cam Chua

Hỏi về code plugin Ai rảnh java vào đây giúp?

Trạng thái
Không mở trả lời sau này.

Cam Chua

DEVELOPER
THÀNH VIÊN
Tham gia
18/04/2017
Bài viết
1,407
Phần Code
Mã:
package anlun2.worldcup.inventory;

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

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import anlun2.worldcup.Main;
import net.md_5.bungee.api.ChatColor;

public class WorldCup {
    
    private static Main main;
    
    public WorldCup(Main worldcup) {
        this.main = worldcup;
    }
    
    public static Inventory get() {
        Inventory inv = Bukkit.createInventory(null, main.getWorldCup().getInt("Rows") * 9, main.getWorldCup().getString("Name"));
        
        ItemStack aqua = new ItemStack(Material.getMaterial(main.getWorldCup().getInt("BlankAqua.ID")), 1, (byte) main.getWorldCup().getInt("BlankAqua.Data"));
        ItemMeta maqua = aqua.getItemMeta();
        maqua.setDisplayName("");
        aqua.setItemMeta(maqua);
        
        ItemStack yellow = new ItemStack(Material.getMaterial(main.getWorldCup().getInt("BlankYellow.ID")), 1, (byte) main.getWorldCup().getInt("BlankYellow.Data"));
        ItemMeta myellow = yellow.getItemMeta();
        myellow.setDisplayName("");
        yellow.setItemMeta(myellow);
        
        ItemStack uoc = new ItemStack(Material.getMaterial(main.getWorldCup().getInt("Uoc.ID")), 1, (byte) main.getWorldCup().getInt("Uoc.Data"));
        ItemMeta muoc = uoc.getItemMeta();
        muoc.setDisplayName(ChatColor.translateAlternateColorCodes('&', main.getWorldCup().getString("Uoc.Name")));
        List<String> ulores = new ArrayList<String>();
        for(String ulore : main.getWorldCup().getStringList("Uoc.Lore")) {
            ulores.add(ChatColor.translateAlternateColorCodes('&', ulore));
        }
        muoc.setLore(ulores);
        uoc.setItemMeta(muoc);
        
        ItemStack air = new ItemStack(Material.AIR, 1);
        ItemMeta mair = air.getItemMeta();
        mair.setDisplayName("");
        air.setItemMeta(mair);
        
        for(int i = 0; i <= 53; i++) {
            if(i % 2 == 0) {
                inv.setItem(i, aqua);
            } else {
                inv.setItem(i, yellow);
            }
        }
        inv.setItem(main.getWorldCup().getInt("Ball.Slot"), air);
        inv.setItem(main.getWorldCup().getInt("Uoc.Slot"), uoc);
        return inv;
    }
    
    public static void open(Player p) {
        p.openInventory(get());
    }

}
Phần Lỗi:
Mã:
[21:47:31] [Server thread/INFO]: anlun2 issued server command: /worldcup
[21:47:31] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'worldcup' in plugin WorldCup v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.handleCommand(PlayerConnection.java:1349) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.a(PlayerConnection.java:1184) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_172]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_172]
    at net.minecraft.server.v1_9_R2.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:726) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
Caused by: java.lang.NullPointerException
    at anlun2.worldcup.inventory.WorldCup.get(WorldCup.java:25) ~[?:?]
    at anlun2.worldcup.inventory.WorldCup.open(WorldCup.java:64) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    ... 15 more
 
Dòng 25 + 64 là dòng nào bác
 
DisplayName null bác ơi
*****Nội dung được bổ sung thêm*****
getWorldCup() ở đâu thế, thiếu nên nó báo null
 
Mã:
package anlun2.worldcup;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import anlun2.worldcup.commands.CommandWorldcup;
import anlun2.worldcup.listener.InventoryClick;
import anlun2.worldcup.listener.InventoryClose;
import anlun2.worldcup.listener.PlayerJoin;

public class Main extends JavaPlugin {
    
    public Main() {
        
    }
    
    File configf, worldcupf;
    FileConfiguration config, worldcup;
    
    public List<String> uoc = new ArrayList<String>();
    
    @Override
    public void onEnable() {
        registerCommand();
        registerEvent();
        fileConfig();
    }
    
    @Override
    public void onDisable() {
        
    }
    
    public void registerCommand() {
        getCommand("worldcup").setExecutor(new CommandWorldcup(this));
    }
    
    public void registerEvent() {
        PluginManager pm = Bukkit.getPluginManager();
        pm.registerEvents(new InventoryClick(this), this);
        pm.registerEvents(new InventoryClose(this), this);
        pm.registerEvents(new PlayerJoin(this), this);
    }
    
    public void fileConfig() {
        configf = new File(getDataFolder(), "config.yml");
        worldcupf = new File(getDataFolder(), "worldcup.yml");
        if(!configf.exists()) {
            configf.getParentFile().mkdirs();
            saveResource("config.yml", false);
        }
        if(!worldcupf.exists()) {
            worldcupf.getParentFile().mkdirs();
            saveResource("worldcup.yml", false);
        }
        config = new YamlConfiguration();
        worldcup = new YamlConfiguration();
        try {
            config.load(configf);
            worldcup.load(worldcupf);
        } catch(IOException | InvalidConfigurationException ex) {
            ex.printStackTrace();
        }
    }
    
    public FileConfiguration getConfig() {
        return this.config;
    }
    
    public FileConfiguration getWorldCup() {
        return this.worldcup;
    }

}
 
xoá 2 cái này thử:

if(!configf.exists()) {
configf.getParentFile().mkdirs();
saveResource("config.yml", false);
}
if(!worldcupf.exists()) {
worldcupf.getParentFile().mkdirs();
saveResource("worldcup.yml", false);
}
 
xoá 2 cái này thử:

if(!configf.exists()) {
configf.getParentFile().mkdirs();
saveResource("config.yml", false);
}
if(!worldcupf.exists()) {
worldcupf.getParentFile().mkdirs();
saveResource("worldcup.yml", false);
}
xóa r thì file config ko load và vẫn còn lỗi đó
 
if(!configf.exists()) {
configf.createNewFile()
}
if(!worldcupf.exists()) {
worldcupf.createNewFile()
}
 
DisplayName null bác ơi
*****Nội dung được bổ sung thêm*****
getWorldCup() ở đâu thế, thiếu nên nó báo null

getWorldCup() ở bên Main.java viết tắt là main.getWorldCup()

private static Main main;

public WorldCup(Main worldcup) {
this.main = worldcup;
}
nói cho biết getWorldCup() ở đâu !
 
Mã:
package anlun2.worldcup;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import anlun2.worldcup.commands.CommandWorldcup;
import anlun2.worldcup.listener.InventoryClick;
import anlun2.worldcup.listener.InventoryClose;
import anlun2.worldcup.listener.PlayerJoin;

public class Main extends JavaPlugin {
   
    public Main() {
       
    }
   
    File configf, worldcupf;
    FileConfiguration config, worldcup;
   
    public List<String> uoc = new ArrayList<String>();
   
    @Override
    public void onEnable() {
        registerCommand();
        registerEvent();
        fileConfig();
    }
   
    @Override
    public void onDisable() {
       
    }
   
    public void registerCommand() {
        getCommand("worldcup").setExecutor(new CommandWorldcup(this));
    }
   
    public void registerEvent() {
        PluginManager pm = Bukkit.getPluginManager();
        pm.registerEvents(new InventoryClick(this), this);
        pm.registerEvents(new InventoryClose(this), this);
        pm.registerEvents(new PlayerJoin(this), this);
    }
   
    public void fileConfig() {
        configf = new File(getDataFolder(), "config.yml");
        worldcupf = new File(getDataFolder(), "worldcup.yml");
        if(!configf.exists()) {
            configf.getParentFile().mkdirs();
            saveResource("config.yml", false);
        }
        if(!worldcupf.exists()) {
            worldcupf.getParentFile().mkdirs();
            saveResource("worldcup.yml", false);
        }
        config = new YamlConfiguration();
        worldcup = new YamlConfiguration();
        try {
            config.load(configf);
            worldcup.load(worldcupf);
        } catch(IOException | InvalidConfigurationException ex) {
            ex.printStackTrace();
        }
    }
   
    public FileConfiguration getConfig() {
        return this.config;
    }
   
    public FileConfiguration getWorldCup() {
        return this.worldcup;
    }

}
Bác thử làm thể này coi: bác static cho các file config + fileconfiguaration, không nên dùng return
 
Fix dc lỗi này tới lỗi khác
Mã:
[21:22:38] [Server thread/INFO]: anlun2 issued server command: /worldcup
[21:22:38] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'worldcup' in plugin WorldCup v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.handleCommand(PlayerConnection.java:1349) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.a(PlayerConnection.java:1184) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_172]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_172]
    at net.minecraft.server.v1_9_R2.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:726) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
Caused by: java.lang.ArrayIndexOutOfBoundsException
 
Fix dc lỗi này tới lỗi khác
Mã:
[21:22:38] [Server thread/INFO]: anlun2 issued server command: /worldcup
[21:22:38] [Server thread/ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'worldcup' in plugin WorldCup v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at org.bukkit.craftbukkit.v1_9_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.handleCommand(PlayerConnection.java:1349) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnection.a(PlayerConnection.java:1184) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_172]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_172]
    at net.minecraft.server.v1_9_R2.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:726) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:665) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:564) [spigot.jar:git-Spigot-c6871e2-0cd0397]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
Caused by: java.lang.ArrayIndexOutOfBoundsException
thử đưa hết log coi
 
Trạng thái
Không mở trả lời sau này.
Similar content Most view Xem thêm
Back
Top Bottom