Skocz do zawartości
  • 0

Broadcast, wysyła mi kilka wiadomośći


Pytanie

Hej, mam taki kod:

Spoiler

package com.shadow;

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

public class Main extends JavaPlugin{

    @Override
    public void onEnable(){
        getLogger().info("Plugin napisal _szadouu!");
    }

    @Override
    public void onDisable(){
        getLogger().info("Plugin napisal _szadouu");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String lab, String[] args) {
        Player p = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("broadcast")){
            if(!(sender.hasPermission("broadcast.*"))) {
                sender.sendMessage("§8» §cBrak odpowiednich permisji!");
                sender.sendMessage("§8» §7Permisja: §7(§fbroadcast.*§7)");
            } else{
                if(args.length >=1) {
                    String broadc = "";
                    for (int x = 0; x < args.length; x++) {
                        broadc = broadc + args[x] + " ";
                        broadc = ChatColor.translateAlternateColorCodes('&', broadc);
                        p.sendMessage("");
                        p.sendMessage("§8» §aWiadomosc wyslana!");
                        p.sendMessage("");
                        Bukkit.broadcastMessage("§8» §c§lshadowBroadcast §8» §f"+ broadc);
                    }
                } else{
                    sender.sendMessage("§8» §cJezeli chcesz uzyc broadcasta");
                    sender.sendMessage("§8» §cTo musisz podac §fwiadomosc");
                }
            }
        }
        return false;
    }
}

Np, gdy napiszę: Dzień dobry

to wyświetla mi się tak:

Dzień

Dzień dobry

Liczę na pomoc! :)

Odnośnik do komentarza
https://skript.pl/temat/27381-broadcast-wysy%C5%82a-mi-kilka-wiadomo%C5%9B%C4%87i/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

daj Bukkit.broadcast... poza pętlą for

i zamiast tak składać stringi użyj StringBuildera

np.

StringBuilder sb = new StringBuilder();
for(int i = 0; i < args.length;){
    sb.append(args[i]);
    i++;
}
Bukkit.broadcastMessage(sb.toString());

Edytowane przez LloydPL
Odnośnik do komentarza
https://skript.pl/temat/27381-broadcast-wysy%C5%82a-mi-kilka-wiadomo%C5%9B%C4%87i/#findComment-180815
Udostępnij na innych stronach

  • 0
10 minut temu, LloydPL napisał:

daj Bukkit.broadcast... poza pętlą for

i zamiast tak składać stringi użyj StringBuildera

Spoiler

package com.shadow;

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

public class Main extends JavaPlugin{

    @Override
    public void onEnable(){
        getLogger().info("Plugin napisal _szadouu!");
    }

    @Override
    public void onDisable(){
        getLogger().info("Plugin napisal _szadouu");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String lab, String[] args) {
        Player p = (Player) sender;
        if(cmd.getName().equalsIgnoreCase("broadcast")){
            if(!(sender.hasPermission("broadcast.*"))) {
                sender.sendMessage("§8» §cBrak odpowiednich permisji!");
                sender.sendMessage("§8» §7Permisja: §7(§fbroadcast.*§7)");
            } else{
                if(args.length >=1) {
                    String broadc = "";
                    Bukkit.broadcastMessage("§8» §c§lshadowBroadcast §8» §f"+ broadc);
                    broadc = ChatColor.translateAlternateColorCodes('&', broadc);
                    p.sendMessage("§8» §aWiadomosc wyslana!");
                    for (int x = 0; x < args.length; x++){
                        broadc = broadc + args[x] + " ";
                    }
                } else{
                    sender.sendMessage("§8» §cJezeli chcesz uzyc broadcasta");
                    sender.sendMessage("§8» §cTo musisz podac §fwiadomosc");
                }
            }
        }
        return false;
    }
}

Teraz kod wygląda tak, wysyła po jednej, ale nie wysyła wiadomości ;p

// Chciałem zrobić StringBuildera to były błędy, więc zostawiłem ;p

Edytowane przez ShadowEk
Odnośnik do komentarza
https://skript.pl/temat/27381-broadcast-wysy%C5%82a-mi-kilka-wiadomo%C5%9B%C4%87i/#findComment-180818
Udostępnij na innych stronach

  • 0

daj za for

broadc = ChatColor.translateAlternateColorCodes('&', broadc);
Bukkit.broadcastMessage("§8» §c§lshadowBroadcast §8» §f"+ broadc);

tak to wysyłasz nic i później składasz wiadomość, tu jest jak w skripcie - kod wykonuje się po kolei 

Edytowane przez LloydPL
Odnośnik do komentarza
https://skript.pl/temat/27381-broadcast-wysy%C5%82a-mi-kilka-wiadomo%C5%9B%C4%87i/#findComment-180819
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...