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

Помогите Не работает sendMessage(" ")

Discussion in 'Разработка плагинов для новичков' started by menfun, Aug 15, 2016.

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

    menfun Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    oil
    Вот не главный класса в которых не работает el.getPlayer().sendMessage();.
    А el.getPlayer().setHealth(5); работает

    package CIMC;

    import org.bukkit.event.player.PlayerEvent;

    public class tutorial {
    public static void tutorialMethod(PlayerEvent el){

    el.getPlayer().sendMessage("Здесь будет Приветствие --> Обучение");//не работает
    el.getPlayer().sendMessage("блабалбалбал а в конце приравнять перфомобучение на тру");//не работает
    el.getPlayer().setHealth(5);//работает
    Main_CIMC.tabInfoPlayer.set("PlayerList."+Main_CIMC.nick+".PerformTutorial",true);//работает

    }

    }

    пожалуйста помогите.
     
  2. Хостинг MineCraft
    <
  3. Незнайчик

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

    Trophy Points:
    76
    Возможно я не прав...
    В какой момент код должен выполняться?
    Если при входе на сервер, то вместо PlayerEvent лучше использовать PlayerJoinEvent.
     
  4. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Начнем с того что PlayerEvent это вообще абстрактный класс который используется исключительно как основа для других эвентов.
    Сам по себе он никогда не вызывается)

    Остальное написали выше
     
  5. Reality_SC

    Reality_SC Старожил Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    Code:
    @EventHandler
    public void название(КонкретноеСобытие event) { ... }
    И зарегистрировать Listener не забыть.
     
  6. Автор темы
    menfun

    menfun Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    oil
    package CIMC;

    import org.bukkit.Bukkit;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;

    import org.bukkit.event.player.PlayerLoginEvent;
    import org.bukkit.plugin.java.JavaPlugin;

    public class Main_CIMC extends JavaPlugin implements Listener{

    boolean NoobOrNo =true;
    static String nick;
    boolean PerformTutorial = false;
    public static FileConfiguration tabInfoPlayer;
    public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this,this);
    tabInfoPlayer = getConfig();
    }
    public void onDisable(){

    }
    @EventHandler
    public void Login(PlayerLoginEvent el){
    nick = el.getPlayer().getName();
    tabInfoPlayer.set("PlayerList."+nick+".NoobOrNo",NoobOrNo);
    tabInfoPlayer.set("PlayerList."+nick+".PerformTutorial",PerformTutorial);
    if(!PerformTutorial){
    tutorial.tutorialMethod(el);
    }
    GiveBonusKits.GiveKits(el);
    tabInfoPlayer.set("PlayerList."+nick+".NoobOrNo",false);
    }

    }
    Это главный класс.
    Тот код вызывается, когда игрок первый раз заходит на сервер PlayerLoginEvent
     
  7. Reality_SC

    Reality_SC Старожил Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    Окай, приведённый код снял ряд вопросов. Сразу бы так.
    По существу: написано всё так, что работать должно.

    Тут уже вскрывается факт про BukkitAPI, который нужно нагуглить:
    https://bukkit.org/posts/1201535
     
  8. Автор темы
    menfun

    menfun Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    oil
    Да это проблема в PlayerLoginEvevnt. Я заменил на PlayerJoinEvent все работает.
    Но мне нужно, чтобы метод Login выполнился один раз при первом подключении игрока к
    серверу. Может есть другой способ узнать первый раз игрок подключился или не первый раз?
     
  9. Reality_SC

    Reality_SC Старожил Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    boolean player.hasPlayedBefore();
     
  10. Автор темы
    menfun

    menfun Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    oil
    Спасибо за помощь
     

Share This Page