- Баллы
- 76
- Имя в Minecraft
- Blc_Dragon
это EntityDamageByBlockEvent.Я дамагер, и я - кактус. Слови ClassCastException.
(а теперь ты берешь удочку\лук\снежок\превращаешься в крипера)
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
это EntityDamageByBlockEvent.Я дамагер, и я - кактус. Слови ClassCastException.
Очень тебе благодарен)EntityDamageByEntityEvent
Коротенький пример:
Java:@EventHandler public void on(EntityDamageByEntityEvent e) { Player p = (Player) e.getDamager(); if(e.getEntityType() == EntityType.PLAYER) { String name = e.getEntity().getName(); p.sendMessage("Вы ударили игрока " + name); } }
@EventHandler
public void on(EntityDamageByEntityEvent e)
{
Player p = (Player) e.getDamager();
if(e.getDamager() instanceof Player)
{
if(e.getEntityType() == EntityType.PLAYER)
{
String name = e.getEntity().getName();
p.sendMessage("Вы ударили игрока " + name);
}
}
}
), интересно, как сделать, чтобы в конфиге можно было включать и выключать функцию оповещения, при заходе.А я злой кактус, который Entity.это EntityDamageByBlockEvent.
И снова словишь исключение. Думай.Раз Вы так просите:
Java:@EventHandler public void on(EntityDamageByEntityEvent e) { Player p = (Player) e.getDamager(); if(e.getDamager() instanceof Player) { if(e.getEntityType() == EntityType.PLAYER) { String name = e.getEntity().getName(); p.sendMessage("Вы ударили игрока " + name); } } }
API PermissionsEx (если у тебя он). Добавляешь его в библиотеки и далее так:1. Вот я сделал плагин, который оповещает о заходе игрока. Мне бы хотелось, чтобы рядом с ником отображался префикс. Подскажите, пожалуйста, как это сделать. Если можно, объясните на пальцах)
public void on(PlayerJoinEvent e)
{
Player p = e.getPlayer();
PermissionUser user = PermissionsEx.getUser(p);
String prefix = user.getPrefix();
String suffix = user.getSuffix();
}
Например, если конфиг такой:2. Я более-менее научился работать с конфигом (Могу в нем сообщения менять), интересно, как сделать, чтобы в конфиге можно было включать и выключать функцию оповещения, при заходе.
enabled: true
public void on(PlayerJoinEvent e)
{
boolean enabled = getConfig().getBoolean("enabled");
if(enabled == true)
{
e.setJoinMessage(null);
//Остальное...
}
}
сначала проверяй instanceof, а уже только потом Player p = (Player) e.getDamager();Раз Вы так просите:
Java:@EventHandler public void on(EntityDamageByEntityEvent e) { Player p = (Player) e.getDamager(); if(e.getDamager() instanceof Player) { if(e.getEntityType() == EntityType.PLAYER) { String name = e.getEntity().getName(); p.sendMessage("Вы ударили игрока " + name); } } }
== true можно и не писать.
- boolean enabled = getConfig().getBoolean("enabled");
- if(enabled == true)
С включение/выключением функции разобрался сам, не получалось из-за того, что потерял одно равно в условии. А за префиксы большое спасибо.API PermissionsEx (если у тебя он). Добавляешь его в библиотеки и далее так:
Java:public void on(PlayerJoinEvent e) { Player p = e.getPlayer(); PermissionUser user = PermissionsEx.getUser(p); String prefix = user.getPrefix(); String suffix = user.getSuffix(); }
Например, если конфиг такой:
то:Код:enabled: true
JavaScript:public void on(PlayerJoinEvent e) { boolean enabled = getConfig().getBoolean("enabled"); if(enabled == true) { e.setJoinMessage(null); //Остальное... } }

Ну так и на префиксе заменяй, в чем проблема?В конфиге заменены "\u00a7" на "&", но, как теперь понятно, это на префикс не влияет.
Отсюда вопрос, как мне это поправить?
Заранее спасибо)
А можно поподробнее?Ну так и на префиксе заменяй, в чем проблема?
Спасибо за ответы. Но при решении одной проблемы, появляются другие:
Префикс в сообщениях отображается некорректно.
В конфиге заменены "\u00a7" на "&", но, как теперь понятно, это на префикс не влияет.
Отсюда вопрос, как мне это поправить?
Заранее спасибо
Посмотреть вложение 46185
Извините за флуд, залагало.
prefix = prefix.replace("&", "\u00a7");
Пробовал, ничего не получилось. Возможно, я допустил ошибку, сейчас проверю и напишу.JavaScript:prefix = prefix.replace("&", "\u00a7");
Если не работает, кинь сюда часть кода что отвечает за джоинерПробовал, ничего не получилось. Возможно, я допустил ошибку, сейчас проверю и напишу.
А данный код надо написать до вызова префикса или после? Или не имеет значения?

Заработало! Спасибо, наверное, до этого я допустил ошибку![]()

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(!sender.hasPermission("futurestats.use")) {
sender.sendMessage("У вас недостаточно прав");
return true;
}
if(args.length == 0) {
sender.sendMessage("Недостаточно аргументов.\n/stat [nick]");
}
String name = args[0];
Player p = Bukkit.getPlayer(name);
int death = p.getStatistic(Statistic.DEATHS);
int kills = p.getStatistic(Statistic.PLAYER_KILLS);
int mobkills = p.getStatistic(Statistic.MOB_KILLS);
String format = plugin.getConfig().getString("stat-format");
sender.sendMessage(format);
return true;
}
config.yml:
stat-format: '
Убиства: {kills}
Смерти: {death}
Убийства мобов: {mobkills}'
Первый способ не работает.{kills} - String s = getConfig().getString(kills);
s = s.replace("{kills}", kills);
Писал от руки на форуме, не уверен что сработает.Я это так представляю.
Если число заменять не хочет, то valueOf(kills)
Up1.Как сделать, чтобы выводилась статистика, как игрока онлайн, так и оффлайн, но чтобы не выводилась статистика игрока, которого не было на сервере, а вместо этого какое-то сообщение?
.
Смотря какое тебе надо.Первый способ не работает.
Второй, я не понял, как оформить..
Все, понял. Большое спасибо. Второй способ помог.
Up
Как сделать, чтобы при убийстве игрока выполнялось какое-то действие?
String status = Какое-то условие ? "Онлайн" : "Оффлайн";
Решил.У меня снова вопрос. При вводе команды /stat nick у меня выводится статистика игрока(убийства, смерти), которые записаны в файле. Вопрос такой: Как сделать вывод статуса игрока, т.е. онлайн он или оффлайн. p.isOnline - не работает, т.к. когда игрок оффлайн, выводится ошибка "An internal..."
Пример:
Java:String status = Какое-то условие ? "Онлайн" : "Оффлайн";