"> Foro - Preguntas sobre programación de plugins. en Ayuda y soporte - Page 1 of 1
Abril 18, 2024, 08:02:46 pm
Visitante


Autor Tema:  Preguntas sobre programación de plugins.  (Leído 2943 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Febrero 10, 2015, 11:07:34 pm

gaelito




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

Hola a todos 
Cita de:  fecha autor gaelito link = topic = 8328.msg43985 # msg43985 = 1423606054
Hola a todos :D
Estoy ONU Creando Bastante plugin de raro y necesito aclarar Unas Cosas:

1- Tengo una clase con las consas del config. Como Hago párr cargar la clase (Es Decir, Que Me funcione Que Lo heno escrito)? Also, puedo Poner Comandos / Eventos del una clase Que No Sea La directora?

Aquí os dejo mi config.java:





Citar
package com.gmail.gaelitoelquesito.myessentials;

import java.io.File;
import java.util.logging.Level;
import org.bukkit.configuration.file.YamlConfiguration;

public class Config {
    public static String No_Jugador_Encontrado = "No se ha encontrado al usuario";
    public static String Nombre_Server = "mi server";
    //Archivos
    public static File configFile = new File("plugins/myessentials/config.yml");
    
    
    
    public static void load(){
        YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
        No_Jugador_Encontrado = config.getString("Mensaje.hola");
    }
    public static void Save(){
        YamlConfiguration config = new YamlConfiguration();
        config.set("Jugador no encontrado", No_Jugador_Encontrado);
        config.set("mi server", Nombre_Server);
        
        try{
            config.save(configFile);
            Inicial.log.log(Level.INFO,"Configuracion cargada");
        } catch (Exception e){
            Inicial.log.log(Level.WARNING,"Error en el config: "+ e.getMessage());
        }
            
        
        
    }
    
}







2- Que sabeis MUCHOS Comandos de plugins Tienen Argumentos estilo "/ smashbros setlobby , en Los Que el Tiene Argumento Ser Que Palabra Una exacta Para Que funcione. Como Hago ESO? 


3 - quiero hacer ONU comando (/ smashbros setlobby) Que Guarde mis COORDENADAS En un archivo Llamado data.yml párr LUEGO USAR (Como podeis ver, ES PARA UN lobby)

Gracias de antemano :)


Linkback: https://minecraftmin.net/index.php?topic=8328.0
« Última modificación: Febrero 11, 2015, 12:34:11 am por gaelito »
MinVip en MinPlay.


Respuesta #1 Febrero 11, 2015, 12:06:40 am

khmdev




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

¿Eres ingles? el texto esta traducido con Google. Se me hace imposible ayudarte, al menos tabula bien el código y no lo traduzcas, e intenta redactar bien las preguntas.

Un saludo!




Respuesta #2 Febrero 11, 2015, 12:14:09 am

gaelito




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

¿Eres ingles? el texto esta traducido con Google. Se me hace imposible ayudarte, al menos tabula bien el código y no lo traduzcas, e intenta redactar bien las preguntas.

Un saludo!

Ahora pongo bien el código XD no se porque me salió así.
Y no, soy español, pero para poner nombres a veces uso palabras inglesas porque me resulta cómodo.


Respuesta #3 Febrero 11, 2015, 12:36:46 am

gaelito




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información



Hola a todos :D
Estoy creando un plugin bastante raro y necesito aclarar unas cosas:

1- Tengo una clase con las consas del config. Como hago para cargar la clase (Es decir, que me funcione lo que hay escrito)? También, puedo poner Comandos/Eventos en una class que no sea la principal?

Aquí os dejo mi config.java:


Código: [Seleccionar]
package com.gmail.gaelitoelquesito.myessentials;

import java.io.File;
import java.util.logging.Level;
import org.bukkit.configuration.file.YamlConfiguration;

public class Config {
    public static String No_Jugador_Encontrado = "No se ha encontrado al usuario";
    public static String Nombre_Server = "mi server";
    //Archivos
    public static File configFile = new File("plugins/myessentials/config.yml");
    
    
    
    public static void load(){
        YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
        No_Jugador_Encontrado = config.getString("Mensaje.hola");
    }
    public static void Save(){
        YamlConfiguration config = new YamlConfiguration();
        config.set("Jugador no encontrado", No_Jugador_Encontrado);
        config.set("mi server", Nombre_Server);
        
        try{
            config.save(configFile);
            Inicial.log.log(Level.INFO,"Configuracion cargada");
        } catch (Exception e){
            Inicial.log.log(Level.WARNING,"Error en el config: "+ e.getMessage());
        }
            
        
        
    }
    
}






2- Sabéis que muchos comandos de plugins tienen argumentos estilo "/smashbros setlobby, en los que el argumento tiene que ser una palabra exacta para que funcione. Como hago eso?


3 - Quiero hacer un comando (/smashbros setlobby) que guarde mis coordenadas en un archivo llamado data.yml para luego usar (Como podéis ver, es para un lobby)

Gracias de antemano :)



Siento si está mal escrito, pero mi ordena o el foro se volvió loco! D:




Respuesta #4 Febrero 11, 2015, 12:04:23 pm

khmdev




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

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í:
Código: [Seleccionar]
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:
Código: [Seleccionar]
/*
 * 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.
Código: [Seleccionar]
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:
Código: [Seleccionar]
// 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!


Respuesta #5 Febrero 11, 2015, 04:05:23 pm

gaelito




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

Muchas gracias :D Ya había mandado un mensaje a alfomega sobre lo ocurrido.
Sobre mis conocimientos en java, empecé en serio hace una semana, pero como se de C++ me resultó fácil. Se las cosas básicas, pero no se usarlas muy bien. (Además que una de mis maneras de aprender es ir probando lo que hace cada cosa xD)

me has aclarado para que sirven las statics, ahora lo comprendo a la perfección. :)

Lo otro se ve claramente como hay que hacerlo, pero no lo tenía claro :P

Muchas gracias, en serio, gracias! :D





Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

xx
Dudas sobre determinados plugins

Iniciado por MrGat0s

1 Respuestas
1599 Vistas
Último mensaje Abril 17, 2017, 06:35:09 pm
por WaxtzCraft
xx
[Lista de Plugins para un UHC 1.7.2]Como Hacer un UHC con los Plugins necesarios

Iniciado por EzPlays35

2 Respuestas
7945 Vistas
Último mensaje Febrero 17, 2015, 09:52:07 pm
por EzPlays35
thumbup
Ayuda de programacion

Iniciado por javihunt100

1 Respuestas
1507 Vistas
Último mensaje Marzo 18, 2015, 10:39:32 pm
por Sargock
question
Argumentos en la programacion

Iniciado por ThevioNoob

2 Respuestas
1871 Vistas
Último mensaje Abril 16, 2015, 11:39:18 am
por Alfomega