Помогите Как сделать что бы команду можно выполнять в определённом месте???

  • Автор темы Автор темы _EneRo_
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

_EneRo_

Активный участник
Пользователь
Баллы
76
Ник в Minecraft
_EneRGO_
Как сделать что бы команду можно выполнять в определённом месте???
Например: Хочу что-бы команду /auc выполняли в определённом месте
 
Ну, как вариант, дать право, запретить её в регионе __global__ и разрешить в нужном.
 
Не думаю, что как-либо, кроме как самописом.
Я играю на 5 серверах,и на этих все серверах есть такая штучка не думаю что 5+ серверов писали разные плагины на 1 функцию
 
Как сделать что бы команду можно выполнять в определённом месте???
Например: Хочу что-бы команду /auc выполняли в определённом месте
Проверяй координаты игрока. В 3 цикла for это делается, и если все ок, то выполняй команду, иначе нет.

Я играю на 5 серверах,и на этих все серверах есть такая штучка не думаю что 5+ серверов писали разные плагины на 1 функцию
Сейчас мода продавать сборку сервера. Раньше так вообще заходишь на 10 серверов и все под копирку, кроме лобби и названия да прочей косметики))
 
Последнее редактирование:
Код не тестил, но что-то такое:
PHP:
//Координаты игрока берем округленные
for(int x=<число>; x<=<число>; x++){
for(int y=<число>; y<=<число>; y++){
for(int z=<число>; z<=<число>; z++){
if((playerX == x) & (playerY == y) & (playerZ == z)){
//игрок в нужной зоне
return;
}
}
}
}
//игрок не в нужной зоне
 
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player plaer = (Player) sender;
            if(this.plugin.cuboid.contains(plaer.getLocation())) {
                //TODO
            }
        }
        return true;
    }
https://github.com/alexandrage/Example/blob/master/src/Example/wge/Cuboid.java
Зачем использовать api, если можно просто проверить, есть ли игрок в зоне?
 
Код:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(sender instanceof Player) {
            Player plaer = (Player) sender;
            if(this.plugin.cuboid.contains(plaer.getLocation())) {
                //TODO
            }
        }
        return true;
    }
https://github.com/alexandrage/Example/blob/master/src/Example/wge/Cuboid.java
Не давно начал изучать java,тут просто надо написать под этот код плагин,или в коде надо что-то вписывать(Пример:размер мира,где будет запрещаться команда,где разрешаться)
 
Код не тестил, но что-то такое:
PHP:
//Координаты игрока берем округленные
for(int x=<число>; x<=<число>; x++){
for(int y=<число>; y<=<число>; y++){
for(int z=<число>; z<=<число>; z++){
if((playerX == x) & (playerY == y) & (playerZ == z)){
//игрок в нужной зоне
return;
}
}
}
}
//игрок не в нужной зоне
Тут пишешь с какой по какую координату (x, y, z соответственно смотреть). Изи использовать))
 
Видишь код?
PHP:
//Координаты игрока берем округленные
for(int x=<число>; x<=<число>; x++){
for(int y=<число>; y<=<число>; y++){
for(int z=<число>; z<=<число>; z++){
if((playerX == x) & (playerY == y) & (playerZ == z)){
//игрок в нужной зоне
return;
}
}
}
}
//игрок не в нужной зоне
Пиши его в onCommand, вот так:
(код набран на телефоне, не тестировал, возможны ошибки)
PHP:
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.equalsIgnoreCase("example"){
if(sender instanceof Player) {
Player pl = (player) sender;
int playerX = (int)pl.getX(); //пишу на телнфоне, апи только учу, не помню, может надо так: pl.getLocation().getX и т.п.
int playerY = (int)pl.getY();
int playerZ = (int)pl.getZ();
//Координаты игрока берем округленные, поэтому используем явное преобразование примитивных типов (приведение типов) - с терминами у меня слабо, если где-то чего не так сказал, сори.
//------
//Координаты начала зоны:
int xBegin = -50;
int yBegin = 30;
int zBegin = 147;
//Координаты конца зоны:
int xEnd = 100;
int yEnd = 90;
int zEnd = -80;
//---------------
for(int x=xBegin; x<=xEnd; x++){
for(int y=yBegin; y<=yEnd; y++){
for(int z=zBegin; z<=zEnd; z++){
if((playerX == x) & (playerY == y) & (playerZ == z)){
//игрок в нужной зоне
return;
}
}
}
}
//игрок не в нужной зоне
return true;
}
else
{
//команда введена из консоли
return true;
}
}
return true;
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ