Помогите Как сделать команду /ban и /unban в плагине?

Optifyne

Ньюби
Баллы
1
Имя в Minecraft
Optifyne
Здрасте, прошу прощения, что открываю тему по такому пустяку, но лично я облазил много чего и, как новичок в плагинах, не нашел инфы про бан. Самому тоже не получилось:( Прошу помощи, как сделать команду /ban и /unban!
Код вот (сам бан должен быть внизу, на месте комментария):

package DefaultTp.main;

import org.bukkit.BanList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class ban implements CommandExecutor{

private DefaultTp plugin;
public ban(DefaultTp plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(!sender.hasPermission("DefaultTp.ban")) {
sender.sendMessage(ChatColor.RED + "Недостаточно прав!");
return true;
}
if(args.length == 0) {
sender.sendMessage(ChatColor.RED + "Пожалуйста, используйте: " + ChatColor.BOLD + "/ban [Игрок]");
return true;
}
String name = args[0];
Player p = Bukkit.getPlayer(name);
if(p == null) {
sender.sendMessage(ChatColor.RED + "Игрок" + ChatColor.YELLOW + " " + name + " " + ChatColor.RED + "не в сети!");
return true;
}
p.kickPlayer(ChatColor.RED + "Вы были забанены!");
//
sender.sendMessage(ChatColor.YELLOW + "Игрок" + ChatColor.BOLD + name + ChatColor.YELLOW + "успешно забанен!");
return true;
}
}
 
Здрасте, прошу прощения, что открываю тему по такому пустяку, но лично я облазил много чего и, как новичок в плагинах, не нашел инфы про бан. Самому тоже не получилось:( Прошу помощи, как сделать команду /ban и /unban!
Код вот (сам бан должен быть внизу, на месте комментария):

package DefaultTp.main;

import org.bukkit.BanList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class ban implements CommandExecutor{

private DefaultTp plugin;
public ban(DefaultTp plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(!sender.hasPermission("DefaultTp.ban")) {
sender.sendMessage(ChatColor.RED + "Недостаточно прав!");
return true;
}
if(args.length == 0) {
sender.sendMessage(ChatColor.RED + "Пожалуйста, используйте: " + ChatColor.BOLD + "/ban [Игрок]");
return true;
}
String name = args[0];
Player p = Bukkit.getPlayer(name);
if(p == null) {
sender.sendMessage(ChatColor.RED + "Игрок" + ChatColor.YELLOW + " " + name + " " + ChatColor.RED + "не в сети!");
return true;
}
p.kickPlayer(ChatColor.RED + "Вы были забанены!");
//
sender.sendMessage(ChatColor.YELLOW + "Игрок" + ChatColor.BOLD + name + ChatColor.YELLOW + "успешно забанен!");
return true;
}
}
Создай HashMap и кидай в него ключ - игрок, а значение какой нибудь объект бана в котором вся информация об бане этого игрока.
Зарегистрируй слушатель и при входе игрока не давай ему зайти если он оказался в бане.
 
Создай HashMap и кидай в него ключ - игрок, а значение какой нибудь объект бана в котором вся информация об бане этого игрока.
Спасибо за ответ, но если честно не сильно понял:( Если не сложно, можете примерно код скинуть, как это должно выглядеть:)
 
Просто кикаешь при коменде, если игрок онлайн. Ну и дисалов, если в бане игрок, на логин ивенте или прелогине.
 
Просто кикаешь при коменде, если игрок онлайн. Ну и дисалов, если в бане игрок, на логин ивенте или прелогине.
При команде и так кикает. Но я не пойму, что такое дисалов, логин и прелогин ивент? Можете код скинуть, или для новичка объяснить, пожалуйста:)
 
Bukkit.getBanList(Type.NAME).add(/*здесь с аргументами думаю разберёшься, если нет, то скажи*/);
 
Назад
Верх