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

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

Discussion in 'Разработка плагинов для новичков' started by ka4okRUS, May 28, 2017.

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    Skype:
    the_osirius
    Может,
    Code:
    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 Участник Пользователь

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

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

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

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

    Trophy Points:
    76
    Skype:
    the_osirius
    Code:
    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("Ваш пол Женский");
                }
            }
        }
    }
     

Share This Page