Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не работают селекторы @p @s и остальные

Селекторы должны указываться в команде через пробел, иначе они не работают. С любыми плагинами они должны работать, на ник игрока заменяет их сам блок, а только потом вызывает команду.
Не работать может только по одной причине: плагин не принимает команды от блока. В PEX запросто такое ограничение может быть для безопасности. А лучше выбрасывай это говно.
Я в командном блоке пишу "/tp @s @s" отладка: Игрок не найден (c Ess)
 
Пересобирать pex из исходников, изменив метод проверки прав.
Java:
public static boolean hasPermission(CommandSender sender, String permission) {
   if(sender instanceof ConsoleCommandSender) {
       return true;
   }
   if(sender instanceof Player) {
       return ((Player)sender).hasPermission(permission);
   }
   return false;
}
Обычно что-то подобное делают. Поэтому блок (BlockCommandSender) в пролёте.

Достаточно универсальной проверки, так как CommandSender имеет этот метод. Будет работать с блоками, консолями, игроками и прочими...
Код:
sender.hasPermission(permission);

Это я тебе объяснил примерный принцип.
Как то без доп плагинов возможно обойтись?
 
Как то без доп плагинов возможно обойтись?
Нет.
Я в командном блоке пишу "/tp @s @s" отладка: Игрок не найден (c Ess)
Ты слепой или как? Тебе же писали, что ess заменяет команды майна на свои и нужно указывать именно на майновские.
/minecraft:tp @s @s
 
Я в командном блоке пишу "/tp @s @s" отладка: Игрок не найден (c Ess)
Версия игры 1.12.2. Ядро spigot. Последняя версия EssentialsX.
Пишу в командный блок: /minecraft:tp @s @s
Командный блок возвращает: [12:19:59] Сущность «@s» не найдена

Пишу в командный блок команду от ess: /tp @s @s
Командный блок ничего не возвращает, значить ошибка синтаксиса у плагина.


Есть еще вопросы? Селектор @s не предназначен для командных блоков.
 
Нет.

Ты слепой или как? Тебе же писали, что ess заменяет команды майна на свои и нужно указывать именно на майновские.
/minecraft:tp @s @s
Я выше писал что мне нужно "/pex User @s group set vor"
 
Версия игры 1.12.2. Ядро spigot. Последняя версия EssentialsX.
Пишу в командный блок: /minecraft:tp @s @s
Командный блок возвращает: [12:19:59] Сущность «@s» не найдена

Пишу в командный блок команду от ess: /tp @s @s
Командный блок ничего не возвращает, значить ошибка синтаксиса у плагина.


Есть еще вопросы? Селектор @s не предназначен для командных блоков.
Селектор @s предназначен для командных блоков!
 
Отлично.
А что делает кнопка? Верно, она создает редстоун сигнал. А редстоун сигнал активирует командный блок.
@s скорее всего является сам командный блок, ибо как написано, @s это исполнитель команды, а командный блок и есть этот самый исполнитель. Но так как он является блоком а не сущностью, он не может выполнить этот селектор, говорит что не нашел сущность.
Вроде бы я думал с самого начала было все понятно..
 
Отлично.
А что делает кнопка? Верно, она создает редстоун сигнал. А редстоун сигнал активирует командный блок.
@s скорее всего является сам командный блок, ибо как написано, @s это исполнитель команды, а командный блок и есть этот самый исполнитель. Но так как он является блоком а не сущностью, он не может выполнить этот селектор, говорит что не нашел сущность.
Вроде бы я думал с самого начала было все понятно..
Дело в том что без Ess все работает
 
Отлично.
А что делает кнопка? Верно, она создает редстоун сигнал. А редстоун сигнал активирует командный блок.
@s скорее всего является сам командный блок, ибо как написано, @s это исполнитель команды, а командный блок и есть этот самый исполнитель. Но так как он является блоком а не сущностью, он не может выполнить этот селектор, говорит что не нашел сущность.
Вроде бы я думал с самого начала было все понятно..
@s- тот кто подал сигнал на команд. блок.
 
Дело в том что без Ess все работает
Удали все плагины которые есть на сервере. Выполни команду /minecraft:tp @s @s в командном блоке.
И весь вывод покажи здесь. А так же покажи что написано в чате.

@s- тот кто подал сигнал на команд. блок.
В этом то и проблема, каким хером командный блок узнает кто активировал этот редстоун блок. Может он циклом одним механизмом запускается?
 
Кстати.
Targets only one entity—the entity that executed the command, including dead players. If the executor was not an entity, for instance if the executor was a command block or a server console, this selector will find nothing.

https://minecraft.gamepedia.com/Commands

Он ничего не сделает. Уже 3 раз пишу.
 
Перевод с гугла переводчика:
@s
Задает только один объект - объект, который выполнил команду, включая мертвых игроков. Если исполнитель не был сущностью, например, если исполнителем был командный блок или консоль сервера, этот селектор ничего не найдет.
 
@s- тот кто подал сигнал на команд. блок.
@s - это исполнитель команды (ком. блок в твоём случае). Эту штуку для функций добавили, удобно использовать.
Тебе может @p помочь
 
@s - это исполнитель команды (ком. блок в твоём случае). Эту штуку для функций добавили, удобно использовать.
Тебе может @p помочь
Вот это уже ближе к делу. А вообще, у меня есть подозрение...
Очень похоже на проблему молотка. Напиши цель всего этого действия, может необходимое тебе решение уже придумано и давно реализовано.
 

Поделиться этой страницей

Назад
Верх