Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Jak zrobic aby konsola przyjmowala komende?


Rekomendowane odpowiedzi

Opublikowano

Jak w temacie "if ((sender instanceof Player) || (sender instanceof ConsoleCommandSender)){" nie dziala i wyskakuje blad "Caused by: java.lang.ClassCastException: " Wie ktos jak to naprawic?

 
Opublikowano

Zrób po prostu:

if (sender instanceof Player){
    sender.sendMessage("To musi uzyc konsola!");
}else{
    sender.sendMessage("Dziala :D");

Chyba że nie o to Ci chodzi, to sprecyzuj problem.

 

PS: Nigdy nie używałem ale czy...

if (sender instanceof Console)){

Nie zadziała?

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

Proste.

	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
	     if(cmd.getName().equalsIgnoreCase("drop")){
	          if(sender instanceof Player){
	        	  if (args.length == 0){
	        		  sender.sendMessage(ChatColor.RED + "Wpisz /drop reload");
	        	  }
	        	  if (args.length == 1){
	        		  if (args[0].equalsIgnoreCase("reload")){
	        			  this.reloadConfig(); // chyba
	        			  sender.sendMessage(ChatColor.GREEN + "Przeladowano!");
	        		  }
	        	  }
	          }else{
	        	  sender.sendMessage(ChatColor.RED + "Tylko gracz moze tego uzyc!");
	          }
	     }
	     return false;
	}

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

if(!sender instanceof Player){

player.sendMessage("konsola");

}else{

player.sendMessage("gracz");

}

Pisane z tableta

Pisze pluginy na zamówienie ! Skype: elfusion200

Opublikowano

@ElDorado123

Nie zadziała mu.

Nie wiem czy wiesz ale teraz daje się:

if(!(sender instanceof Player)){

A nie 

if(!sender instanceof Player){

Taki szczegół.

 

 

PS: Ja mu dałem całą komendę, lepiej dla niego aby użył mojej metody :P #ta_skromnosc

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Opublikowano

Dalej ten sam blad prosze przerobic klase aby dzialalo (Dziekuje za pomoc, nagrodze lajkiem):

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args){
        Player player = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("drop")){
         if ((sender instanceof Player) || (sender instanceof ConsoleCommandSender)){
         if(args.length == 0){
         Inventory.openInv(player);
         return true;
         }
         if(args.length == 1){
         if(args[0].equalsIgnoreCase("reload")){
         if(sender.hasPermission("drop.reload")) {
         plugin.reloadConfig();
         sender.sendMessage(ChatColor.RED + "[Drop] " + ChatColor.GRAY + "Plugin zostal przeladowany!");
         return true;
         }else{
         sender.sendMessage(ChatColor.DARK_RED + "Nie posiadasz uprawnienia");
         }
         }
}
         }
        }
        return false;
    }
}

Podczas wpisania /drop otwiera sie inventory gui wiec konsola nie moze tego wykonac, ale chce aby mogla wykonac /drop reload (przeladowanie configu).

Opublikowano

Tak będzie działać, ogólnie nie możesz w jednym if() sprawdzać czy sender jest Consolą lub Graczem, bo jeżeli jest consolą to rzutowanie na Player zawsze zwróci błąd ClassCastException.

 

	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
	{
		if(cmd.getName().equalsIgnoreCase("drop"))
		{
	         if(args.length == 0) 
	         {
	        	 if (sender instanceof Player)
	        	 {
	        		 Player player = (Player) sender;

	        		 Inventory.openInv(player);
	        		 return true;
	        	 }
	         }
	         
	         if(args.length == 1)
	         {
	        	 if(args[0].equalsIgnoreCase("reload"))
	        	 {
	        		 if(sender.hasPermission("drop.reload"))
	        		 {
	        			 plugin.reloadConfig();
	        			 sender.sendMessage(ChatColor.RED + "[Drop] " + ChatColor.GRAY + "Plugin zostal przeladowany!");
	        			 return true;
	        		 }
	        		 else
	        		 {
	        			 sender.sendMessage(ChatColor.DARK_RED + "Nie posiadasz uprawnienia");
	        		 }
	        	 }
	         }
	         return false;
	    }
	}
Opublikowano

Spróbuj tego:

if(sender.hasPermission("drop.reload") || sender instanceof Console)

{

plugin.reloadConfig();

sender.sendMessage(ChatColor.RED + "[Drop] " + ChatColor.GRAY + "Plugin zostal przeladowany!");

return true;

}

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...