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

Problem z menu serwera


Matis55

Rekomendowane odpowiedzi

Opublikowano

 

AhYTfB6.png

       

 

 

 

 

Witam mam problem jak na obrazku wyżej jest w kodzie komenda która ma się wywoływać podczas kliknięcia na item który jest umiejscowiony w menu serwera i niestety gdy klikam ten itemek nie przekierowywoje mnie na inny serwer, nic sie nie dzieje nawet nie wyskakuje błąd że serwer niedostępny itp...

Próbowałem także dodać lore do itemków ale niestety nie dało rady. Z góry dziękuje za pomoc

Opublikowano

Komendy z Bungee nie mogą być wywoływane przez metody w pluginie jak np. dispatchCommand(). Mogą być tylko wpisane bezpośrednio przez gracza w grze. 

Żeby przekierować gracza na dany serwer w swoim pluginie musisz użyć API Bungee, co zresztą jest jedyną poprawną opcją.

5465845486.png

Opublikowano

Komendy z Bungee nie mogą być wywoływane przez metody w pluginie jak np. dispatchCommand(). Mogą być tylko wpisane bezpośrednio przez gracza w grze. 

Żeby przekierować gracza na dany serwer w swoim pluginie musisz użyć API Bungee, co zresztą jest jedyną poprawną opcją.

 

Dało by się kod z API Bungee wsadzić gdzie to?: 

 

 

case GRASS:

p.closeInventory();

break;

 

case STONE_SWORD:

p.performCommand("server survival");

p.closeInventory();

break;

case BRICK:

p.performCommand("server freebuild");

p.closeInventory();

break;

 

case DIAMOND_AXE:

p.performCommand("server skywars");

p.closeInventory();

break;

 

Opublikowano
        final Player p = e.getPlayer();
        this.getServer().getMessenger().registerOutgoingPluginChannel((Plugin)this, "BungeeCord");
        final ByteArrayOutputStream b = new ByteArrayOutputStream();
        final DataOutputStream out = new DataOutputStream(;
        try {
            out.writeUTF("Connect");
            out.writeUTF("NAZWA_SERWERA");
        }
        catch (IOException ez) {
            ez.printStackTrace();
        }
        p.sendPluginMessage((Plugin)this, "BungeeCord", b.toByteArray());
    }
}

Wycinek z mojego pluginu. Wklej sobie to w miejsce performCommand().

Pamiętaj o dodaniu do bibliotek BugneeCorda jarem lub Mavenem - zależy czego używasz.

5465845486.png

Opublikowano

Możesz to zrobić też w taki sposób

i metodą sendToServer(player, "nazwa_Serwera"); wysyłasz gracza na serwer przerób sobie tak aby działał ci pod GUI

    public void sendToServer(Player player, String targetServer)
    {
        ByteArrayOutputStream b = new ByteArrayOutputStream();
        DataOutputStream out = new DataOutputStream(;
        try {
            out.writeUTF("Connect");
            out.writeUTF(targetServer);
        } catch (Exception e) {
            e.printStackTrace();
        }
        player.sendPluginMessage(this, "BungeeCord", b.toByteArray());
    }

    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player player = (Player)sender;
        if (label.equalsIgnoreCase("serwer")) {
            sendToServer(player, "nazwa_Serwera");
            player.sendMessage("Zostales przeniesiony na serwer " + args[0]);
        }

        return true;
    }
Opublikowano

Jeszcze mam problem z komendami w pluginie który zarząda wszystkimi sprawami dotyczącymi chatu tutaj urywek z komendami:

	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		Player p = (Player)sender;
		if(!(sender instanceof Player)) {
			
		}else{
			


		if(!(p.hasPermission("chat.use"))){
			p.sendMessage(MessageHandler.permission);
			return true;
		}else{
			
			
		if(label.equalsIgnoreCase("chat")) {
			if (args.length == 0){
                sender.sendMessage("§aDostepne komendy:");
                sender.sendMessage("§b>> §e/chat wyczysc §f-§7 Czysci czat");
                sender.sendMessage("§b>> §e/chat on §f-§7 Wlacza chat");
                sender.sendMessage("§b>> §e/chat off §f-§7 Wylacza chat");
                return false;
			}
			if(args[0].equalsIgnoreCase("wyczysc")) {
				for(int i = 0; i < 1; i++){
					Bukkit.broadcastMessage("");
				}
				
				Bukkit.broadcastMessage("§c§m-------------------------");
				Bukkit.broadcastMessage("§eChat wyczyszczony przez: " + p.getName()+ "!");
				Bukkit.broadcastMessage("§cGame§7-§aCraft&f.pl");				
				Bukkit.broadcastMessage("§c§m-------------------------");
			}
			if(args[0].equalsIgnoreCase("on")) {
                chat = false;
				Bukkit.broadcastMessage(MessageHandler.prefix + "§aChat zostal wlaczony");
                return true;	
				
			}
			if(args[0].equalsIgnoreCase("off")) {
                chat = true;
				Bukkit.broadcastMessage(MessageHandler.prefix + "§cChat zostal wylaczony");
                return true;
			}
			if(args[0].equalsIgnoreCase("mute")) {
				 if(args.length == 0){
                     sender.sendMessage(MessageHandler.prefix + "§aUzyj: /chat mute <Nazwa Gracza>");
             }else{
                     switch(args.length){
                     case 1:
                             p = Bukkit.getPlayer(args[0]);
                             if(p == null){
                                     sender.sendMessage(MessageHandler.prefix + "§cTen gracz nie jest Online!");
                             }else{
                                     if(mutedPlayers.contains(p.getName())){
                                             mutedPlayers.remove(p.getName());
                                             p.sendMessage(MessageHandler.prefix + "§cZnow mozesz pisac na chacie!");
                                     }else{
                                             mutedPlayers.add(p.getName());
                                             p.sendMessage(MessageHandler.prefix + "§cZostales wyciszony przez " + sender.getName());
                                             
                                           
                                     }
                             }
                             break;
                     }
             }
     }else{
             sender.sendMessage(MessageHandler.permission);
             return false;
     }
     }

			}
		}
		
		return super.onCommand(sender, command, label, args);

	}
    @EventHandler
    public void PlayerChat (AsyncPlayerChatEvent e){
        e.setCancelled(chat);
    } 
    
	@EventHandler
    public void onPlayerChat(PlayerChatEvent e){
            if(mutedPlayers.contains(e.getPlayer().getName())){
                    e.setCancelled(true);
                    e.getPlayer().sendMessage("§cJestes wyciszony, nie mozesz pisac na chacie!");
            }else{
                    
            }
    }

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...