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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем menfun, 15 авг 2016.

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

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

    Баллы:
    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. Незнайчик

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

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

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

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

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

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

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

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

    Баллы:
    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 Старожил Пользователь

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

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

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

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

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

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

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

    Баллы:
    61
    Имя в Minecraft:
    oil
    Спасибо за помощь
     

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