Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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];
}
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх