Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
package ru.fucktmgc.vOpGuard.Cmd;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import ru.fucktmgc.vOpGuard.Main;
public class Check implements CommandExecutor {
FileConfiguration Config = Main.getInstance().getConfig();
private Main plugin;
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.not-player").replace("&", "§"));
return true;
}
if (!sender.hasPermission("vcheck.use")) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.no-perm").replace("&", "§"));
return true;
}
if (args.length == 0) {
sender.sendMessage(Config.getString("messages.help").replace("&", "§"));
return true;
}
if (args.length == 1) {
Player target = Bukkit.getPlayer(args[0]);
target.sendTitle(Main.getInstance().getConfig().getString("check.title").replace("&", "§"), Main.getInstance().getConfig().getString("check.subtitle").replace("&", "§"), 40, 99999, 99999);
target.sendMessage(Main.getInstance().getConfig().getString("check.chat").replace("&", "§").replace("%moder%", sender.getName()));
target.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 999999, 999999));
sender.sendMessage(Config.getString("check.successfully").replace("§", "&"));
if (!target.hasPermission("check.dont")) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check.command2").replace("%target%", target.getName()));
}
return false;
}
if (args[0].equalsIgnoreCase("ally")) {
if (args.length == 2) {
Player target = Bukkit.getPlayer(args[1]);
target.removePotionEffect(PotionEffectType.SLOW);
target.sendTitle(Main.getInstance().getConfig().getString("check_ally.title").replace("&", "§"), Main.getInstance().getConfig().getString("check_ally.subtitle").replace("&", "§"), 40, 40, 40);
target.sendMessage(Main.getInstance().getConfig().getString("check_ally.chat").replace("&", "§").replace("%moder%", sender.getName()));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("check_ally.command").replace("%check%", target.getName()));
if (target.hasPermission("check.dont")) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_ally.command2").replace("%target%", target.getName()));
}
}
}
if (args[0].equalsIgnoreCase("ban")) {
if(args.length == 2) {
Player target = Bukkit.getPlayer(args[1]);
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_ban.command").replace("&", "§").replace("%target%", target.getName()));
sender.sendMessage(Config.getString("check_ban.successfully").replace("&", "§").replace("%target%", target.getName()));
}
return false;
}
return false;
}
}
private ArrayList<UUID> uuid = new ArrayList<>();
public class Check implements CommandExecutor {
FileConfiguration Config = Main.getInstance().getConfig();
private Main plugin;
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.not-player").replace("&", "§"));
return true;
}
if (!sender.hasPermission("vcheck.use")) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.no-perm").replace("&", "§"));
return true;
}
if (args.length == 0) {
sender.sendMessage(Config.getString("messages.help").replace("&", "§"));
return true;
}
if (args.length > 0) {
Player target = Bukkit.getPlayer(args[0]);
if(target == null || !target.isOnline()) {
//тут твой код если игрока не существует/он офлайн
return true;
}
if(uuid.contains(target.getUniqueId())) {
//код если игрок уже на проверке
} else {
uuid.add(target.getUniqueId());
}
target.sendTitle(Main.getInstance().getConfig().getString("check.title").replace("&", "§"), Main.getInstance().getConfig().getString("check.subtitle").replace("&", "§"), 40, 99999, 99999);
target.sendMessage(Main.getInstance().getConfig().getString("check.chat").replace("&", "§").replace("%moder%", sender.getName()));
target.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 999999, 999999));
sender.sendMessage(Config.getString("check.successfully").replace("§", "&"));
if (!target.hasPermission("check.dont")) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check.command2").replace("%target%", target.getName()));
}
return false;
}
if (args[0].equalsIgnoreCase("ally")) {
if (args.length > 1) {
Player target = Bukkit.getPlayer(args[1]);
if(target == null || !target.isOnline()) {
//тут твой код если игрока не существует/он офлайн
return true;
}
target.removePotionEffect(PotionEffectType.SLOW);
target.sendTitle(Main.getInstance().getConfig().getString("check_ally.title").replace("&", "§"), Main.getInstance().getConfig().getString("check_ally.subtitle").replace("&", "§"), 40, 40, 40);
target.sendMessage(Main.getInstance().getConfig().getString("check_ally.chat").replace("&", "§").replace("%moder%", sender.getName()));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("check_ally.command").replace("%check%", target.getName()));
if (target.hasPermission("check.dont")) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_ally.command2").replace("%target%", target.getName()));
}
}
}
if (args[0].equalsIgnoreCase("ban")) {
if(args.length > 1) {
Player target = Bukkit.getPlayer(args[1]);
if(target == null || !target.isOnline()) {
//тут твой код если игрока не существует/он офлайн
return true;
}
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_ban.command").replace("&", "§").replace("%target%", target.getName()));
sender.sendMessage(Config.getString("check_ban.successfully").replace("&", "§").replace("%target%", target.getName()));
}
return false;
}
return false;
}
}
if(!uuid.contains(target.getUniqueId())) {
//игрок не на проверке
}
Ошибку пишетКод:if(!uuid.contains(target.getUniqueId())) { //игрок не на проверке }
Ты импортировал arraylist и uuid?Ошибку пишетВам необходимо зарегистрироваться для просмотра изображений-вложений
Так же с помощью списка делаешь проверку в PlayerMoveEvent.А как после команды /check <игрок> игроку запретить двигаться, ибо в классе CommandCheck, EventHandler не работает же ._.
public class YourCmd implements CommandExecutor, Listener {
private final Map<UUID, UUID> players = new HashMap<>(); //1 - master, 2 - slave
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player)) return true;
if (args.length < 1) return false;
Player target = Bukkit.getPlayerExact(args[0]);
if (target == null) {
sender.sendMessage("Player is offline");
return true;
}
if (players.containsValue(target.getUniqueId())) {
sender.sendMessage("Player is already editing");
return true;
}
players.put(((Player) sender).getUniqueId(), target.getUniqueId());
return true;
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent e) {
if (players.containsValue(e.getPlayer().getUniqueId()))
e.setCancelled(true);
}
}
@Override
public void onEnable() {
YourCmd cmd = new YourCmd();
Bukkit.getPluginManager().registerEvents(cmd, this);
Bukkit.getPluginCommand("cmd").setExecutor(cmd);
}
А, понял, спасибо!Belg1anKquck, поля объявляются внутри класса.
Так же с помощью списка делаешь проверку в PlayerMoveEvent.
Объединено
Я бы сделал так:
Java:public class YourCmd implements CommandExecutor, Listener { private final Map<UUID, UUID> players = new HashMap<>(); //1 - master, 2 - slave @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (!(sender instanceof Player)) return true; if (args.length < 1) return false; Player target = Bukkit.getPlayerExact(args[0]); if (target == null) { sender.sendMessage("Player is offline"); return true; } if (players.containsValue(target.getUniqueId())) { sender.sendMessage("Player is already editing"); return true; } players.put(((Player) sender).getUniqueId(), target.getUniqueId()); return true; } @EventHandler public void onPlayerMove(PlayerMoveEvent e) { if (players.containsValue(e.getPlayer().getUniqueId())) e.setCancelled(true); } }
Java:@Override public void onEnable() { YourCmd cmd = new YourCmd(); Bukkit.getPluginManager().registerEvents(cmd, this); Bukkit.getPluginCommand("cmd").setExecutor(cmd); }
В коде все есть.А как добавить игрока в список HashMap?
В моем тогда плиз поменяй, если не сложноВ коде все есть.
package ru.fucktmgc.vOpGuard.Cmd;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import ru.fucktmgc.vOpGuard.Main;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class Check implements CommandExecutor, Listener {
private ArrayList<UUID> uuid = new ArrayList<>();
private final Map<UUID, UUID> players = new HashMap<>(); //1 - master, 2 - slave
FileConfiguration Config = Main.getInstance().getConfig();
private Main plugin;
public Check(Main main) {
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.not-player").replace("&", "§"));
return true;
}
if (!sender.hasPermission("vcheck.use")) {
sender.sendMessage(Main.getInstance().getConfig().getString("messages.no-perm").replace("&", "§"));
return true;
}
if (args.length == 0) {
sender.sendMessage(Config.getString("messages.help").replace("&", "§"));
return true;
}
if (args.length == 1) {
Player target = Bukkit.getPlayer(args[0]);
if (target == null || !target.isOnline()) {
sender.sendMessage(Config.getString("messages.offline").replace("&", "§").replace("%target%", target.getName()));
return true;
}
if (players.containsValue(target.getUniqueId())) {
sender.sendMessage(Config.getString("messages.check").replace("&", "§").replace("%target%", target.getName()));
return true;
} else {
players.put(target.getUniqueId(), ((Player) sender).getUniqueId());
}
target.sendTitle(Main.getInstance().getConfig().getString("check.title").replace("&", "§"), Main.getInstance().getConfig().getString("check.subtitle").replace("&", "§"), 40, 99999, 99999);
target.sendMessage(Main.getInstance().getConfig().getString("check.chat").replace("&", "§").replace("%moder%", sender.getName()));
target.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 999999, 999999));
sender.sendMessage(Config.getString("check.successfully").replace("&", "§").replace("%target%", target.getName()));
return false;
}
if (args[0].equalsIgnoreCase("ally")) {
if (args.length == 2) {
Player target = Bukkit.getPlayer(args[1]);
if (args.length > 0) {
if (target == null || !target.isOnline()) {
sender.sendMessage(Config.getString("messages.offline").replace("&", "§").replace("%target%", target.getName()));
return true;
}
if (!uuid.contains(target.getUniqueId())) {
sender.sendMessage(Config.getString("messages.ally").replace("&", "§").replace("%target%", target.getName()));
return true;
}
target.removePotionEffect(PotionEffectType.SLOW);
target.sendTitle(Main.getInstance().getConfig().getString("check_ally.title").replace("&", "§"), Main.getInstance().getConfig().getString("check_ally.subtitle").replace("&", "§"), 40, 40, 40);
target.sendMessage(Main.getInstance().getConfig().getString("check_ally.chat").replace("&", "§").replace("%moder%", sender.getName()));
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Main.getInstance().getConfig().getString("check_ally.command").replace("%check%", target.getName()));
players.remove(target.getUniqueId());
}
}
}
if (args[0].equalsIgnoreCase("leave")) {
Player target = Bukkit.getPlayer(args[1]);
if (args.length > 0) {
if (target == null || !target.isOnline()) {
sender.sendMessage(Config.getString("messages.offline").replace("&", "§").replace("%target%", target.getName()));
return true;
}
if (!uuid.contains(target.getUniqueId())) {
sender.sendMessage(Config.getString("messages.leave").replace("&", "§").replace("%target%", target.getName()));
return true;
}
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_leave.command").replace("&", "§").replace("%target%", target.getName()));
sender.sendMessage(Config.getString("check_leave.successfully").replace("&", "§").replace("%target%", target.getName()));
}
return false;
}
if (args[0].equalsIgnoreCase("ban")) {
Player target = Bukkit.getPlayer(args[1]);
if (args.length > 0) {
if (target == null || !target.isOnline()) {
sender.sendMessage(Config.getString("messages.offline").replace("&", "§").replace("%target%", target.getName()));
return true;
}
if (!uuid.contains(target.getUniqueId())) {
sender.sendMessage(Config.getString("messages.ban").replace("&", "§").replace("%target%", target.getName()));
return true;
}
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), Config.getString("check_ban.command").replace("&", "§").replace("%target%", target.getName()));
sender.sendMessage(Config.getString("check_ban.successfully").replace("&", "§").replace("%target%", target.getName()));
}
return false;
}
return false;
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent e) {
Player p = e.getPlayer();
if(players.containsValue(p.getUniqueId())) {
e.setCancelled(true);
}
}
}
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения