Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Отслеживание чата

Тема в разделе "Разработка плагинов для новичков", создана пользователем ka4okRUS, 28 май 2017.

  1. Автор темы
    ka4okRUS

    ka4okRUS Участник Пользователь

    Баллы:
    31
    Напишите как код:
    Если игрок ввёл в чат "М" {
    },
     
  2. Хостинг MineCraft
    <
  3. iD3LSY

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

    Баллы:
    46
    Имя в Minecraft:
    opy
    Код:
    @EventHandler
    public void onMessage(AsyncPlayerChatEvent e) {
        Player p = e.getPlayer();
        String msg = e.getMessage();
    
        if(msg.equalsIgnoreCase("M")) {
    
        }
    }
     
  4. Автор темы
    ka4okRUS

    ka4okRUS Участник Пользователь

    Баллы:
    31
    Спасибо[DOUBLEPOST=1495976699,1495975979][/DOUBLEPOST]
    А если он мне нужен в onJoin()?
     
  5. Exception_Prototype

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

    Баллы:
    46
    Какон у тебя в событие входа на сервер будет писать в чат?!
     
  6. Dexel

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

    Баллы:
    76
    Skype:
    the_osirius
    Может,
    Код:
    private static List<Player> justLogged = new ArrayList<>();
    
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
            // Код, много кода
    
          e.getPlayer().sendMessage("Скажите М");
            justLogged.add(e.getPlayer());
            Bukkit.getScheduler.scheduleSyncDelayedTask(plugin, new Runnable {
                    @Override
                    public void run() {
                            // Игрок уже не считается только что зашедшим
                            if (justLogged.contains(e.getPlayer()) {
    
                                  justLogged.remove(e.getPlayer());
                                    e.getPlayer().sendMessage("Вы не успели. Как жаль.");
                            }
                    }
            }, 0, 200);
    }
    
    @EventHandler
    public void onChat(AsyncPlayerChatEvent e) {
            if (justLogged.contains(e.getPlayer()) {
                    justLogged.remove(e.getPlayer());
                    e.getPlayer().sendMessage("Вы успели! #FUB");
            }
    }
    Этот код даст игроку 10 секунд (200 / 20), чтобы сразу после захода написать в чат что-нибудь. Там уже думаю сделаешь проверку на текст. К примеру, justLogged.contains(e.getPlayer()) && e.getMessage.equals("М")
     
  7. Автор темы
    ka4okRUS

    ka4okRUS Участник Пользователь

    Баллы:
    31
    Код:
    If (!list.contains(p.getName()) {
      p.sendMessage("Выберите пол М или Ж")
    /*Если игрок написал М*/
       If (...) {
      p.sendMessage("Ваш пол Мужской")
     
  8. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Это в ивенте чата...[DOUBLEPOST=1495993320,1495993212][/DOUBLEPOST]Где у тебя хранится инфа о полах(странное слово...) игроков?
     
  9. Dexel

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

    Баллы:
    76
    Skype:
    the_osirius
    Код:
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    import java.util.HashMap;
    
    public class Listen implements Listener {
    
        HashMap<Player, Character> genders = new HashMap<>();
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            if (!genders.containsKey(e.getPlayer())) {
                e.getPlayer().sendMessage("Выберите пол: М или Ж");
            }
        }
    
        @EventHandler
        public void onChat(AsyncPlayerChatEvent e) {
            if (!genders.containsKey(e.getPlayer())) {
                // Если игрок выбрал мужской пол
                if (e.getMessage().equalsIgnoreCase("м")) {
                    genders.put(e.getPlayer(), 'м');
                    e.getPlayer().sendMessage("Ваш пол Мужской");
                    return;
                }
                // Если игрок выбрал женский пол
                if (e.getMessage().equalsIgnoreCase("ж")) {
                    genders.put(e.getPlayer(), 'ж');
                    e.getPlayer().sendMessage("Ваш пол Женский");
                }
            }
        }
    }
     

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