He avisado para ver si quitan el mensaje repetido para que quede más limpio el tema. Tranquilo, ya he dicho que no es culpa tuya, para que no te pongan amonestación ni nada. A ver si arreglas el ordenador, porque te hace cosas muy muy raras jejeje
Por lo que veo te faltan conocimientos básicos de Java. Si estas empezando, te recomiendo que tengas un buen nivel de Java antes ponerte con Bukkit. Aun así voy a intentar contestarte.
1.
Para llamar a funciones estáticas se hace con llamadas así:
Config.load();
Config.Save();
Un poco de info sobre las funciones estáticas y el uso que se les da.Sobre el tema de los comando puedes simplemente crear una función similar a onCommand en la otra clase y llamarla desde JavaPlugin:
/*
* Clase JavaPlugin
*/
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
Clase2.onCommand(sender,cmd,label,args);
}
/*
* Clase Clase2
*/
public static boolean onCommand2(CommandSender sender, Command cmd, String label,
String[] args) {
// Código
}
Véase que que la función onCommand2() es estática. Con los eventos el uso esta explicado en ingles
aquí. Es muy sencillito así que no creo que tengas problemas.
2.
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {
if (cmd.getName().equalsIgnoreCase("smashbros")) { // el comando es smashbros (sin importar mayúsculas y minúsculas)
if(args.length>=1&& // hay al menos un argumento
args[0].equalsIgnoreCase("setlobby")){ // el primer argumento es setlobby (sin importar mayúsculas y minúsculas)
//Código
}
return true;
}
return false;
}
3.
Para guardar un Location debes serializarlo (convertirlo en un String para poder guardarlo). Un ejemplo:
// Convierte un Location en un String
public String serialize(Location l){
return l.getX()+":"+l.getY()+":"+l.getZ(); // devuelve los valores X, Y y Z separados por :
}
// Convierte un String en un Location
public Location deserialize(String s){
String[]array=s.split(":"); //devuelve un array con los elementos separados por :
try{
if(array.length>=3){
double x=Double.valueOf(array[0]); //convierte el primer valor en un Double
double y=Double.valueOf(array[1]);
double z=Double.valueOf(array[2]);
return new Locataion(x,y,z); //devuelve el location
}
}catch(Exception e){ //si alguno de los elementos no es un double
return null; // El String no tiene el formato correcto
}
return null; // El String no tiene el formato correcto
}
De este modo podrás guardar en un config el Location como un String, y cuando cargues la configuración volver a convertirlo en un Location.
Eso es todo, he intentado explicarlo lo más sencillito posible, aunque es posible que no hayas entendido alguna cosa. En ese caso te recomiendo que sigas aprendiendo Java, y cuando creas que tienes los suficiente conocimientos intentes ponerte con Bukkit de verdad.
Un saludo!