Ir para conteúdo
  • 0

[Dúvida] Usar várias class.


Eduardoo

Pergunta

Bom, queria saber como tipo:
Eu tenho 2 class, Main.java e Exemplo.java

Ao iniciar a main, eu não consigo usar nada do Exemplo.java, tipo um comando, quando executo ele não funciona. Nem manda mensagem que não existe.

Alguém me ajuda, por favor?? (são 2 packages diferente) a principal e a de comandos.
Os códigos estão certos, pois eu inverti o código de um para o outro, e na Main funciona, o do outro não.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Você tem que deixar em ''public static'' para chamar uma variavel, bem, eu acho. Aí tu já seta lá uma variavel, se for um evento, registra ele na main

Editado por Plowdzn
Link para o comentário
Compartilhar em outros sites

  • 0

Se for só pra comando, é só fazer uma nova classe.

getCommand("command").setExecutor(new Class());

Agora caso queira usar algum método que esteja em outra classe, deixe em "static", por exemplo

public static void enviarMensagemParaTodos(String mensagem) {
    Bukkit.broadcastMessage("[Mensagem] " + mensagem);
}

e em outra classe você usa

nomeDaClasse.enviarMensagemParaTodos("Olá, isso é um teste!");
Link para o comentário
Compartilhar em outros sites

  • 0

 

No seu "onEnable" na main, utilize o seguinte código: 

 

 

getCommand("comando").setExecutor(new Exemplo());

 

 

Se for só pra comando, é só fazer uma nova classe.

getCommand("command").setExecutor(new Class());

Agora caso queira usar algum método que esteja em outra classe, deixe em "static", por exemplo

public static void enviarMensagemParaTodos(String mensagem) {
    Bukkit.broadcastMessage("[Mensagem] " + mensagem);
}

e em outra classe você usa

nomeDaClasse.enviarMensagemParaTodos("Olá, isso é um teste!");

Ao iniciar, o comando continua não sendo executado.

 

Coloquei o comando na main, e novamente ele funcionou, porém ao colocar em outra class, ele para de funcionar, nem fala que não existe nem nada, apenas não faz NADA.

 

Ele está em outra package, Tem algo a ver?

 

EDIT: Eu importei a package.

 

Editado por Grimmjow
Link para o comentário
Compartilhar em outros sites

  • 0

Ao iniciar, o comando continua não sendo executado.

 

Coloquei o comando na main, e novamente ele funcionou, porém ao colocar em outra class, ele para de funcionar, nem fala que não existe nem nada, apenas não faz NADA.

 

Ele está em outra package, Tem algo a ver?

 

EDIT: Eu importei a package.

 

Posta a Main e a classe do comando

Link para o comentário
Compartilhar em outros sites

  • 0

Posta a Main e a classe do comando

Main.java:

 

package br.grimm.kits;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import br.grimm.kits.cmds.*;

public class Main extends JavaPlugin {
	
	@Override
	public void onEnable() {
		Bukkit.getConsoleSender().sendMessage("[KitPvP] Plugin habilitado!");

		getCommand("aplicar").setExecutor(new Aplicar());
	}

	@Override
	public void onDisable() {
		Bukkit.getConsoleSender().sendMessage("[KitPvP] Plugin desabilitado");
	}
}

Aplicar.java:

 

package br.grimm.kits.cmds;

import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Aplicar extends JavaPlugin {
	
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		
		Player p = (Player)sender;
		
		if (command.getName().equalsIgnoreCase("aplicar")) {
			p.sendMessage("§aFormulário: §7www.form.com.br");
			p.playSound(p.getLocation(), Sound.ORB_PICKUP, 12.0f, 12.0f);
		}
		
		return false;
	}

}
Link para o comentário
Compartilhar em outros sites

  • 0

 

Main.java:

 

package br.grimm.kits;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import br.grimm.kits.cmds.*;

public class Main extends JavaPlugin {
	
	@Override
	public void onEnable() {
		Bukkit.getConsoleSender().sendMessage("[KitPvP] Plugin habilitado!");

		getCommand("aplicar").setExecutor(new Aplicar());
	}

	@Override
	public void onDisable() {
		Bukkit.getConsoleSender().sendMessage("[KitPvP] Plugin desabilitado");
	}
}

Aplicar.java:

 

package br.grimm.kits.cmds;

import org.bukkit.Sound;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Aplicar extends JavaPlugin {
	
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		
		Player p = (Player)sender;
		
		if (command.getName().equalsIgnoreCase("aplicar")) {
			p.sendMessage("§aFormulário: §7www.form.com.br");
			p.playSound(p.getLocation(), Sound.ORB_PICKUP, 12.0f, 12.0f);
		}
		
		return false;
	}

}
  • 1. A única classe que você vai extends JavaPlugin é a MAIN.
  • 2. Quando é uma classe de comandos, você tem que indicar isso,  implements CommandExecutor. Ficaria
    public class Aplicar implements CommandExecutor {
  • 3. Não se esqueça de registrar o comando na plugin.yml ;)
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...