2014-09-14 2 views
0

"/setspawn"명령을 "/lv setspawn"으로 만들려고합니다. 나는 플러그인을 "plugins"폴더 안에 넣었고, 플러그인은 config를 생성하고 config를 열 것이다. 지금은 모든 것이 옳다. 따라서 "/lv setspawn"을 사용하려고하면 코드를 제외하고 모든 것이 제거된다. 나는 config (설정)로 이동하고 "제어 + Z" "제어 + "와 /reload을 사용합니다. 이제 config는 첫 번째 순간과 같습니다. 다시 "/lv setspawn"을 사용하고 완벽하게 작동합니다 (2 개 이상의 링크를 넣을 수 없습니다).getConfig(). set이 올바르게 작동하지 않습니까?

영어로 죄송합니다.

나는 원하는 것은 :

package com.gmail.santiagoelheroe; 

import static com.gmail.santiagoelheroe.Eventos.plugin; 
import org.bukkit.*; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandSender; 
import org.bukkit.configuration.file.FileConfiguration; 
import org.bukkit.entity.Player; 
import org.bukkit.plugin.PluginManager; 
import org.bukkit.plugin.java.JavaPlugin; 

public class LoginVip extends JavaPlugin { 

    // Comandos  
    @Override 
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 

     if (args[0].equalsIgnoreCase("setspawn")) { 
      getConfig().set("Cords.World", player.getLocation().getWorld().getName()); 
      getConfig().set("Cords.X", player.getLocation().getX()); 
      getConfig().set("Cords.Y", player.getLocation().getY()); 
      getConfig().set("Cords.Z", player.getLocation().getZ()); 
      saveConfig();  
      sender.sendMessage(prefix + "§aSpawn placed"); 
      return true; 
     } 

     if (args[0].equalsIgnoreCase("spawn")) { 
      World w = Bukkit.getServer().getWorld(getConfig().getString("Cords.World")); 
      double x = getConfig().getDouble("Cords.X"); 
      double y = getConfig().getDouble("Cords.Y"); 
      double z = getConfig().getDouble("Cords.Z"); 
      player.teleport(new Location(w, x, y, z)); 
      return true;  
     } 
     return true;   
    } 


//Comandos 


    @Override 
    public void onEnable() { 
     PluginManager manager = this.getServer().getPluginManager(); 
     manager.registerEvents(Eventos, this); 
     saveDefaultConfig(); 
    } 

구성합니다 (내부 :

내가 좌표가 나는 /lv setspawn

Video from the problem

홈페이지 코드를 사용하는 설정 안에 넣어 원하는 플러그인)

# * Permisos: 'lv.main', 'lv.join' y 'lv.quit' Variables: %player% 
Configuracion: 
    JoinMessage: '&b%player% &7se ha conectado' 
    JoinMessageActivo: true 
    QuitMessage: '&c%player% &7se ha desconectado' 
    QuitMessageActivo: true 
    NoPermissionsMessage: '&cNo tienes permisos para hacer esto' 
    Prefix: '&7[&6LV&7] ' 
    TpSpawnOnJoin: false #To set spawn use in game /lv setspawn 
Cords: 
    World: '' 
    X: '' 
    Y: '' 
    Z: '' 
+0

File fileConfig = new File(Plugin.getDataFolder().getPath(), "config.yml"); YamlConfiguration config = YamlConfiguration.loadConfiguration(fileConfig); 
, 여기에 내가 질문을 할 때 내가 할 것입니다. 1) 나는 문장을 써야한다. 2) Google Translator를 사용합니다. 3) 나는 그것에 많은 시간을 보낸다. 이건 매우 중요합니다. –

+0

문제가 무엇인지 이해가 안되지만'.set()'다음에'saveConfig()'를 잊어 버린 것 같습니다. – Unihedron

+0

"/ lv setspawn"을 처음 사용하는 경우 코드를 제외하고 모두 제거되지만 두 번째로는 비디오를주의 깊게 살펴보십시오. –

답변

1

저는 개인적으로 개인적으로 기본 설정이 싫어서 사용하지 않습니다. YamlConfiguration을보세요. tutorial을 참조하십시오. 나는 또한 아주 잘 영어 모르는


// Setting 
Location spawn = Player.getLocation(); 
config.set("spawn.world", spawn.getWorld().getName()); 
config.set("spawn.x", spawn.getX()); 
config.set("spawn.y", spawn.getY()); 
config.set("spawn.z", spawn.getZ()); 
config.set("spawn.yaw", spawn.getYaw()); 
config.set("spawn.pitch", spawn.getPitch()); 
try { 
    config.save(fileConfig); 
} catch (IOException io) { 
    // Unable to save data 
} 

// Getting 
String world = config.getString("spawn.world"); 
double x = config.getDouble("spawn.x"); 
double y = config.getDouble("spawn.y"); 
double z = config.getDouble("spawn.z"); 
double yaw = config.getDouble("spawn.yaw"); 
double pitch = config.getDouble("spawn.pitch"); 
Location spawn = new Location(Server.getWorld(world), x, y, z, (float) yaw, (float) pitch); 
Player.teleport(spawn); 
+0

그래서 어떻게 2 파일을 만들 수 있습니까? "config.yml" "spawn.yml" –

+0

여러 변수를 사용하십시오. –

+0

그리고 어떻게 다시로드 할 수 있습니까? reloadConfig(); ? –

관련 문제