我可以通过java bukkit上的命令创建配置列表吗?

时间:2015-05-18 04:17:43

标签: java minecraft bukkit

在这种情况下,我正在创建一个学习插件,我需要知道以下内容。 我想要做的是在地图上建立点,并在另一个命令闪电时在这些点上建立点。

1-例如:/ thor设定点1,2,3,4 ...

在配置创建中......

Lightning:
  1:
    x:
    y:
    z:
  2:
    x:
    y:
    z:
  3... 6, 14..

接下来的三个命令。

  • / thor delpoint 1,2,3 ... =删除的点ID
  • / launch all =启动所有积分
  • / launch ID =仅启动ID

现在我设法落入一个坐标,单个配置文件。

提前致谢

主:

package me.alexbanper.thorproject.plugin;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
//import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ThorProject extends JavaPlugin implements Listener {

    public void onEnable(){
        saveDefaultConfig();
    }

    public void onDisable(){

    }

    public boolean onCommand(CommandSender enviar, Command comando, String commandLabel, String[] args){
        Player player = (Player) enviar;
        if(enviar instanceof Player){
            if(commandLabel.equalsIgnoreCase("trueno")){
                if(player.hasPermission("trueno.comando")){
                    if(args.length == 0){
                        player.sendMessage(col("&aUtiliza:"));
                        player.sendMessage(col("&6/trueno iniciarahora &5Inicia los truenos"));
                        player.sendMessage(col("&6/trueno iniciartiempo SEGUNDOS &5Inicia con segundos"));
                        player.sendMessage(col("&6/trueno setpoint &5establece un punto"));
                    }else if(args.length == 1){
                         if(args[0].equalsIgnoreCase("setpoint")){  
                            this.getConfig().set("Config" + ".Thor" + ".X", player.getLocation().getBlockX());
                            this.getConfig().set("Config" + ".Thor" + ".Y", player.getLocation().getBlockY());
                            this.getConfig().set("Config" + ".Thor" + My".Z", player.getLocation().getBlockZ());
                            //this.getConfig().set("Config" + ".World", player.getLocation().getWorld());
                            saveConfig();
                            player.sendMessage(col("&aSpawnPoint 1 set!"));
                            player.sendMessage("X: " + getConfig().getInt("Config.Thor.X"));
                            player.sendMessage("Y: " + getConfig().getInt("Config.Thor.Y"));
                            player.sendMessage("Z: " + getConfig().getInt("Config.Thor.Z"));
                            player.sendMessage("World: " + getConfig().getString("Config.World"));
                        }else if(args[0].equalsIgnoreCase("setpoint2")){    
                            this.getConfig().set("Config" + ".Thor2" + ".X", player.getLocation().getBlockX());
                            this.getConfig().set("Config" + ".Thor2" + ".Y", player.getLocation().getBlockY());
                            this.getConfig().set("Config" + ".Thor2" + ".Z", player.getLocation().getBlockZ());
                            //this.getConfig().set("Config" + ".World", player.getLocation().getWorld());
                            saveConfig();
                            player.sendMessage(col("&aSpawnPoint 2 Set!"));
                            player.sendMessage("X: " + getConfig().getInt("Config.Thor2.X"));
                            player.sendMessage("Y: " + getConfig().getInt("Config.Thor2.Y"));
                            player.sendMessage("Z: " + getConfig().getInt("Config.Thor2.Z"));
                            player.sendMessage("World: " + getConfig().getString("Config.World"));
                        }
                    }
                }else{enviar.sendMessage(col("&cAcceso Denegado!"));}
            }else if(commandLabel.equalsIgnoreCase("it")){
                int x = getConfig().getInt("Config.Thor.X");
                int y = getConfig().getInt("Config.Thor.Y");
                int z = getConfig().getInt("Config.Thor.Z");

                int x2 = getConfig().getInt("Config.Thor2.X");
                int y2 = getConfig().getInt("Config.Thor2.Y");
                int z2 = getConfig().getInt("Config.Thor2.Z");
                //Object world = getConfig().get("Config" + ".World");

                Location light = new Location(null, x, y, z);
                Location light2 = new Location(null, x2, y2, z2);

                Bukkit.getServer().getWorld("world").strikeLightningEffect(light);
                Bukkit.getServer().getWorld("world").strikeLightningEffect(light2);
                player.sendMessage("All correct!");
            }
        }else{enviar.sendMessage("Only Players!");}
        return false;
    }

    public static String col(String msg){
        return ChatColor.translateAlternateColorCodes('&', msg);
    }
}

/ trueno = / thor(我说西班牙语)

1 个答案:

答案 0 :(得分:0)

首先,您需要保存世界名称,否则您将无法获得该位置。对于所有人,拨打电话获取密钥集并遍历所有位置。 (请注意如何执行此操作,确保使用正确的密钥) 需要删除位置时删除密钥映射。最后,在选择特定ID时获取相应的密钥。 有很多视频可以谷歌了解Bukkit的YAMLConfigiration类的行为,但大多数都非常可怕。我找到了一个对你不好的东西。它适用于配置文件,但YAMLConfig类的行为非常相似。 (我计划在今年夏天做一些自己的教程,但是我会非常小心地遵循java惯例和正确的练习,而不像大多数这些youtubers)

Bukkit Coding~第5集:配置:https://youtu.be/SBvrpmNDr74

作为旁注,bukkit论坛是bukkit开发比堆栈溢出更好的地方。 http://bukkit.org/forums/