Войти или зарегистрироваться

Помогите Получение отправленного игроком сообщения

  • Автор темы Автор темы Den42
  • Дата начала Дата начала

Den42

Активный участник
Пользователь
Баллы
76
Здравствуйте, форумчане! Никак не могу понять, мне нужно, чтобы когда игрок написал команду /report <сообщение>, оно дошло до игроков с разрешением forever.view. Прошу помощи!

Вот код плагина:

package foreverreports;

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.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class ForeverReports extends JavaPlugin implements Listener {
public String p1 = (Object)ChatColor.DARK_GRAY + "[ ";
public String p2 = (Object)ChatColor.DARK_GRAY + " ] ";
public static String prefix = (Object)ChatColor.AQUA + "FreshWorld";
private String help = (Object)ChatColor.RED + "Ошибка! Правильное использование: /report <сообщение>";
private String offline_player = (Object)ChatColor.RED + "Ошибка! Данный игрок не в сети";
private String no_perm = (Object)ChatColor.RED + "Ошибка! У вас нет прав!";
@Override
public void onEnable(){
Bukkit.getServer().getPluginManager().registerEvents(this, this);
getLogger().info("ForeverReports by Den42 was Enabled!");
}
public void onDisabe(){
getLogger().info("ForeverReports by Den42 was Disabled!");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String Commandlabel, String[] args) {
if (cmd.getName().equalsIgnoreCase("report")) {
if (sender instanceof Player) {
Player p = (Player)sender;
if (p.hasPermission("forever.user")) {
if (args.length == 0) {
p.sendMessage(p1 + prefix + p2 + (Object)ChatColor.RED + help);
return true;
}
if (args.length == 1) {
Player target = Bukkit.getPlayer((String)args[1]);
Player online = (Player)sender;
if (target != null)
{
p.sendMessage(p1 + prefix + p2 + (Object)ChatColor.WHITE + "Ваше сообщение отправлено!");
if (online.hasPermission("forever.view")) {
online.sendMessage(p1 + prefix + p2 + ChatColor.GREEN + p.getName() + ChatColor.WHITE +
" просит помощи: " + ChatColor.WHITE + args[1] + ".");
}
}
}
}
}
}
return false;
}
}
 
JavaScript:
        for (Player player : getServer().getOnlinePlayers())
            if (player.hasPermission("forever.view"))
                p.sendMessage(....);
 
А что мне писать в p.sendMessage? Мне нужно получить args[1] команды, насколько я понял.
Нужно, чтобы сообщение, написанное игроком через /reporter сообщение, отправлялось игрокам с разрешением, как мне получить само сообщение, и отправить конкретно то, что написал игрок через /reporter?
Так не работает. Пишет сообщение из usage: в plugin yml


if (args.length == 1) {
String message = StringUtils.join(args, ' ', 0, args.length);
Player online = (Player)sender;
p.sendMessage(p1 + prefix + p2 + (Object)ChatColor.WHITE + "Ваше сообщение отправлено!");
for (Player player : getServer().getOnlinePlayers())
if (online.hasPermission("forever.view")) {
online.sendMessage(p1 + prefix + p2 + ChatColor.GREEN + p.getName() + ChatColor.GREEN +
": " + ChatColor.WHITE + message);
}
}
 
А что мне писать в p.sendMessage? Мне нужно получить args[1] команды, насколько я понял.

так просто соедини все агруметы начиная с первого через цыкл
for(int i = 1; i < args.length; i++)
{
message = message + " " + args[1];
}
 
Последнее редактирование:
Назад
Верх