Сообщение самому себе

Версия Minecraft
1.12.2
API
Forge
Игрок выполняет действие, после чего он получает сообщение в чат(которое увидит только он), можно ли как-то это реализовать?
 

jopi

Попрошайка
1,421
30
260
Самому себе? Код отправки сообщения такой-же как и в твоем предыдущем вопросе
Minecraft.getMinecraft().player.sendMessage(new TextComponentString("Привет"));
Потому-что для отправки сообщения с сервера игроку использовать Minecraft.getMinecraft() нельзя, потому-что это возвращает инстанс клиента, в котором player (или thePlayer) это твой локальный игрок которым ты управляешь

Код отправки сообщения ты должен поместить в место где ты проверяешь какое действие происходит, некоторые действия по умолчанию имеют события которыми можно их отловить, например событие ItemTossEvent которое срабатывает каждый раз когда игрок выбрасывает предмет через нажатие кнопки либо из гуи. Для отправки сообщения при таком событии на клиенте, ты должен зарегистрировать обработчик событий (EventHandler), и сделать метод обрабатывающий это событие

Java:
@SubscribeEvent //Аннотация помечающая этот метод как метод обрабатывающий событие
@SideOnly(Side.CLIENT) //Аннотация компиляции, обозначающая что этот метод будет работать исключительно на клиенте
//Если не добавлять SideOnly и сервер использует этот метод, сервер крашнется
public void onItemToss(ItemTossEvent event) {
    Minecraft.getMinecraft().thePlayer.sendMessage(new TextComponentString("item tossed somewhere!"));
    //Аннотацию SideOnly можно убрать и оставить игрока в событии ItemTossEvent (удалив строку выше)
    // В таком случае сообщение будет показано тому игроку, который выкинул предмет
    //  Поскольку на предыдущем этапе, сообщения присылались всякий раз когда кто-то выкидывал предмет
    event.player.sendMessage(new TextComponentString("you tossed an item!"));
}
 
1,074
72
372
Аннотация компиляции, обозначающая что этот метод будет работать исключительно на клиенте
Какая ещё компиляция? SideTransformer вырезает отмеченные аннотацией элементы.
 
Сверху