Вопрос Обмен игроков

Kluffy

Пользователь
Сообщения
500
Решения
16
Здравствуйте! Нужен плагин который по команде будет менять двух игроков местами на пример /switch (player) (player). Важно что бы команда работала из консоли
 
Здравствуйте! Нужен плагин который по команде будет менять двух игроков местами на пример /switch (player) (player). Важно что бы команда работала из консоли
offtop
помню что-то наподобие делал, если найду сейчас дам.
 
offtop
можешь объяснить как ты сделал проверку есть ли игрок на сервере? Я твой код когда декомпилил не понял. Я так сделал
Java:
package org.quenna.qswitch;

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

public class qSwitchCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
        if (sender.hasPermission("qSwitch.commands")) {
            if (args.length != 0) {
                Player p1 = sender.getServer().getPlayer(args[0]);
                Player p2 = sender.getServer().getPlayer(args[1]);
                Location locp1 = p1.getLocation();
                Location locp2 = p2.getLocation();
                p1.teleport(locp2);
                p2.teleport(locp1);
            } else {
                sender.sendMessage(ChatColor.GOLD + "Команды плагина" + ChatColor.WHITE + " qSwitch v1.0");
                sender.sendMessage(ChatColor.GOLD + "");
                sender.sendMessage(ChatColor.GOLD + " /switch <игрок1> <игрок2>" + ChatColor.WHITE + " - Игроки поменяются местоположением");
                sender.sendMessage(ChatColor.GOLD + "");
            }


        } else {
            sender.sendMessage(ChatColor.GOLD + "Команда недоступна для вас.");
        }
        return true;
    }
}

[/QUOTE]
 
Последнее редактирование:
offtop
можешь объяснить как ты сделал проверку есть ли игрок на сервере? Я твой код когда декомпилил не понял. Я так сделал
Java:
package org.quenna.qswitch;

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

public class qSwitchCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
        if (sender.hasPermission("qSwitch.commands")) {
            if (args.length != 0) {
                Player p1 = sender.getServer().getPlayer(args[0]);
                Player p2 = sender.getServer().getPlayer(args[1]);
                Location locp1 = p1.getLocation();
                Location locp2 = p2.getLocation();
                p1.teleport(locp2);
                p2.teleport(locp1);
            } else {
                sender.sendMessage(ChatColor.GOLD + "Команды плагина" + ChatColor.WHITE + " qSwitch v1.0");
                sender.sendMessage(ChatColor.GOLD + "");
                sender.sendMessage(ChatColor.GOLD + " /switch <игрок1> <игрок2>" + ChatColor.WHITE + " - Игроки поменяются местоположением");
                sender.sendMessage(ChatColor.GOLD + "");
            }


        } else {
            sender.sendMessage(ChatColor.GOLD + "Команда недоступна для вас.");
        }
        return true;
    }
}
[/QUOTE]
Странно. В исходниках другой вид, видимо декомпилятор неправильно показывает.

Исходный код в таком виде:

Форматирование (BB-код):
package dev.teleportcommand.cmd;

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

public class TeleportCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
        if (cmd.getName().toLowerCase().contains("teleportcommand") && sender.hasPermission("teleportcommand.use")) {
            if (args.length != 2) {
                sender.sendMessage(ChatColor.RED + "/teleportcommand Player Player2");
                return false;
            }
            if (Bukkit.getPlayer(args[0]) != null && Bukkit.getPlayer(args[1]) != null) {
                // Получаем игроков
                Player p = Bukkit.getPlayer(args[0]);
                Player p2 = Bukkit.getPlayer(args[1]);
                // Копируем локации
                Location loc1 = p.getLocation().clone();
                Location loc2 = p2.getLocation().clone();
                // Телепортируем игроков по противоположным локациям
                p.teleport(loc2);
                p2.teleport(loc1);
                sender.sendMessage(ChatColor.GREEN + "Успешно");
            }
        }
        return false;
    }
}
 
Странно. В исходниках другой вид, видимо декомпилятор неправильно показывает.

Исходный код в таком виде:

Форматирование (BB-код):
package dev.teleportcommand.cmd;

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

public class TeleportCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
        if (cmd.getName().toLowerCase().contains("teleportcommand") && sender.hasPermission("teleportcommand.use")) {
            if (args.length != 2) {
                sender.sendMessage(ChatColor.RED + "/teleportcommand Player Player2");
                return false;
            }
            if (Bukkit.getPlayer(args[0]) != null && Bukkit.getPlayer(args[1]) != null) {
                // Получаем игроков
                Player p = Bukkit.getPlayer(args[0]);
                Player p2 = Bukkit.getPlayer(args[1]);
                // Копируем локации
                Location loc1 = p.getLocation().clone();
                Location loc2 = p2.getLocation().clone();
                // Телепортируем игроков по противоположным локациям
                p.teleport(loc2);
                p2.teleport(loc1);
                sender.sendMessage(ChatColor.GREEN + "Успешно");
            }
        }
        return false;
    }
}
[/QUOTE]
если игроков нет в сети, что пишет?
 
Странно. В исходниках другой вид, видимо декомпилятор неправильно показывает.

Исходный код в таком виде:

Форматирование (BB-код):
package dev.teleportcommand.cmd;

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

public class TeleportCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
        if (cmd.getName().toLowerCase().contains("teleportcommand") && sender.hasPermission("teleportcommand.use")) {
            if (args.length != 2) {
                sender.sendMessage(ChatColor.RED + "/teleportcommand Player Player2");
                return false;
            }
            if (Bukkit.getPlayer(args[0]) != null && Bukkit.getPlayer(args[1]) != null) {
                // Получаем игроков
                Player p = Bukkit.getPlayer(args[0]);
                Player p2 = Bukkit.getPlayer(args[1]);
                // Копируем локации
                Location loc1 = p.getLocation().clone();
                Location loc2 = p2.getLocation().clone();
                // Телепортируем игроков по противоположным локациям
                p.teleport(loc2);
                p2.teleport(loc1);
                sender.sendMessage(ChatColor.GREEN + "Успешно");
            }
        }
        return false;
    }
}
если игроков нет в сети, что пишет?
[/QUOTE]
Ничего. Код просто не отвечает. Потребности в этом не увидел.
 
Назад
Сверху Снизу