1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите sendMessage не отправляет сообщения во время действия Conversation

Тема в разделе "Разработка плагинов для новичков", создана пользователем Energy warrior, 7 янв 2020.

Статус темы:
Закрыта.
  1. Автор темы
    Energy warrior

    Energy warrior Активный участник Пользователь

    Баллы:
    76
    Я хотел реализовать редактирование сообщений одним костылём и у меня даже получилось, но я заметил,что sendMessage не работает, он ничего не отправляет.
    Код:
    public void edit(UUID uuid){
            Player player = Bukkit.getPlayer(messages.getMessageByID(uuid).getSender());
            ChatMessage message = messages.getMessageByID(uuid);
            PlayerQueue queue = messages.getPersonalHistory(player);
            TextComponent component = new TextComponent(new ComponentBuilder("§aВставить сообщение").create());
            component.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND,message.getMessage()));
            component.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,new ComponentBuilder("§aВставить текст!").create()));
            player.spigot().sendMessage(component);
            ConversationFactory factory = new ConversationFactory(ChatManager.getManager());
            Conversation conversation = factory.withFirstPrompt(new EditConversation(message,messages)).buildConversation(player);
            conversation.begin();
        }
    Код:
    public class EditConversation extends StringPrompt
    {
        private final ChatMessage message;
        private final MessageManager queue;
    
        public EditConversation(ChatMessage edit, MessageManager queue) {
            this.message = edit;
            this.queue = queue;
        }
    
        @Override
        public String getPromptText(ConversationContext conversationContext) {
            return "EDIT";
        }
    
        @Override
        public Prompt acceptInput(ConversationContext context, String answer) {
            Player player = (Player) context.getForWhom();
            if(queue.editMessage(message.getId(),answer)){
                for (int i = 0; i < 50; i++) {
                    player.sendMessage("\n");
                }
                queue.resend(message);
            }
            return END_OF_CONVERSATION;
        }
    }
    Я посмотрел туториал, но не понял как работает Conversation API и в документации, как мне кажется, не очень хорошо это объяснено. Не работает именно sendMessage чтобы отправлять пустые строки во время работы Conversation
     
  2. Автор темы
    Energy warrior

    Energy warrior Активный участник Пользователь

    Баллы:
    76
  3. Lemar98

    Lemar98 Активный участник Пользователь

    Баллы:
    76
    Реализовывай по-другому
    То, что ты наделал, по-моему, параша
     
  4. Автор темы
    Energy warrior

    Energy warrior Активный участник Пользователь

    Баллы:
    76
    Уже и оно работает!
     
Статус темы:
Закрыта.

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