2016-10-21 2 views
1

Я хочу создать плагин для защиты от взлома, который должен позволить клиенту написать «.msg Test». Таким образом, он будет печатать «Test» и без hackclient «.msg Test» (ikr, а не со всеми хакклиентами, но с большим количеством).CraftBukkit 1.8.8 - Можно ли отправить клиенту сообщение самостоятельно?

Для этого клиенту необходимо написать сообщение самостоятельно. Это можно сделать, отправив игроку сообщение и позволить клиенту отправить это сообщение «.msg» при нажатии на текст.

Но есть ли способ сделать это без взаимодействия плеера?

+0

То, что вы пытаетесь сделать, не представляется возможным, к сожалению. Вы можете позволить игрокам отправлять чат-сообщение через сервер, используя метод 'player.chat (String str);'. –

ответ

1

К сожалению, это невозможно через bukkit-api. Самое близкое к этому вы можете сделать, используя Server # dispatchCommand, но он выполнит только команду, если она зарегистрирована на стороне сервера. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Server.html#dispatchCommand(org.bukkit.command.CommandSender,%20java.lang.String)

Однако, если вы чувствуете, до использования (net.minecraft.server) код NMS, затем

CommandBlockListenerAbstract.executeCommand(ICommandListener sender, org.bukkit.command.CommandSender bSender, String command) 

должен работать, так как это то, что я видел, что реализация была для командных знаков в 1,8 .8 spigot-server (строка TileEntitySign.java: 181).

+0

На самом деле это возможно, как сказано в другом ответе. – Kerooker

+0

@ Kerooker немного новый для StackOverflow. Должен ли я просто удалить свой ответ или изменить то, что я сказал? –

+0

им не уверен. вы должны спросить об этом в мета, но я думаю, что это нормально – Kerooker

2

Это возможно мой друг

Люди склонны пропустить полезность метода

myPlayer.chat(); 

Метод заставляет игрока положить что-то в чате, а также потому, что, как чат и команды идут через тот же поток, вы можете просто изменить сообщение чата на команду предваряя с «/»

myPlayer.chat("/msg test"); 

бы заставить игрока выполнить команду «сбщ» с argu тест ".

 Смежные вопросы

  • Нет связанных вопросов^_^