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

  • Автор темы Автор темы 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);//работает

}

}

пожалуйста помогите.
 
Возможно я не прав...
В какой момент код должен выполняться?
Если при входе на сервер, то вместо PlayerEvent лучше использовать PlayerJoinEvent.
 
Начнем с того что PlayerEvent это вообще абстрактный класс который используется исключительно как основа для других эвентов.
Сам по себе он никогда не вызывается)

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

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
 
Окай, приведённый код снял ряд вопросов. Сразу бы так.
По существу: написано всё так, что работать должно.

Тут уже вскрывается факт про BukkitAPI, который нужно нагуглить:
https://bukkit.org/posts/1201535
PlayerLoginEvent is fired before the player actually joins the server. PlayerJoinEvent is what you want.
 
Да это проблема в PlayerLoginEvevnt. Я заменил на PlayerJoinEvent все работает.
Но мне нужно, чтобы метод Login выполнился один раз при первом подключении игрока к
серверу. Может есть другой способ узнать первый раз игрок подключился или не первый раз?
 
Назад
Верх