Ah ! Donc il faudrait enlever les autres package et tout mettre dans le même que la class main ?
AlexFatta
AlexFatta
Je vois pas de quoi tu parles... Tu pars trop loin j'ai l'impression.Ah ! Donc il faudrait enlever les autres package et tout mettre dans le même que la class main ?
import fr.alexfatta.fallenkingdoms.managers.GameManager;
import org.bukkit.ChatColor;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class main extends JavaPlugin implements Listener{
private GameManager GameManager; //modif ici
public static String gamePrefix = ChatColor.GRAY + "[" + ChatColor.RED + "FallenKingdoms" + ChatColor.GRAY + "] ";
public static String argument = ChatColor.RED + "Erreur : ce n'est pas le bon argument !";
@Override
public void onEnable() {
getLogger().info("Plugin de FallenKingodms actif !");
saveDefaultConfig();
GameManager = new GameManager(); //modif ici
//modif ici
getCommand("fk").setExecutor(GameManager); // /fk start, pause, play, stop
}
package fr.alexfatta.fallenkingdoms.managers;
import fr.alexfatta.fallenkingdoms.managers.GameManager;
import org.bukkit.ChatColor;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class main extends JavaPlugin { // Pourquoi implement un listener, tu l'utilises pas...
// Un maximum de private ! Si tu veux récupérer ces valeurs tu fais un getter, si tu veux le modifier, un setter
// et si tu les modifie pas, rajoute le mot clef "final"
private static String gamePrefix = ChatColor.GRAY + "[" + ChatColor.RED + "FallenKingdoms" + ChatColor.GRAY + "] ";
private static String argument = ChatColor.RED + "Erreur : ce n'est pas le bon argument !";
@Override
public void onEnable() {
getLogger().info("Plugin de FallenKingodms actif !");
saveDefaultConfig();
getCommand("fk").setExecutor(new GameManager()); // /fk start, pause, play, stop
}
package fr.alexfatta.fallenkingdoms.managers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import org.bukkit.plugin.java.JavaPlugin;
import fr.alexfatta.fallenkingdoms.main;
// la on implement CommandExecutor. On NE PEUT PAS extends à NOUVEAU JavaPlugin
// Sinon tu as deux main et bukkit ne sais pas lequel est le bon !
public class GameManager implements CommandExecutor {
// On oublies pas de mettre private/public (à moins que tu sache ce que ça veut dire quand on met rien...)
private World world;
private boolean statuts = false;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(label.equalsIgnoreCase("fk")) {
if(sender instanceof Player) { // Pourquoi faire deux condition ? Tu peux les mettre ensemble avec un "&&"... Bref
// blabla du code... bla bla
}
}
return false;
}
}
public class PlayerJoinListener implements Listener{
public void onJoin(PlayerJoinEvent pje){
Player player = pje.getPlayer();
pje.setJoinMessage(main.getGamePrefix() + ChatColor.YELLOW + player.getName() + ChatColor.GRAY + " à rejoint la partie !");
}
public void onKick(PlayerKickEvent pke){
Player player = pke.getPlayer();
pke.setLeaveMessage(main.getGamePrefix() + ChatColor.YELLOW + player.getName() + ChatColor.GRAY + " à rejoint la partie !");
}
}
public void onEnable() {
getLogger().info("Plugin de FallenKingodms actif !");
getCommand("fk").setExecutor(new GameManager()); // /fk start, pause, play, stop
getCommand("fk").setExecutor(new TeamManager());
}
package fr.alexfatta.fallenkingdoms.managers;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permission;
import fr.alexfatta.fallenkingdoms.main;
public class TeamManager implements CommandExecutor{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(label.equalsIgnoreCase("fk") && sender instanceof Player){
Player player = (Player) sender;
if(sender.hasPermission(new Permission("fk.teams.manage"))){
if(args[0].equalsIgnoreCase("team")){
if(args[1].equalsIgnoreCase("add")){
player.sendMessage(main.getGamePrefix() + ChatColor.GREEN + "Tu souhaite ajouter, cela est bien.");
}
}
}
}
return false;
}
}
package fr.alexfatta.fallenkingdoms.managers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import fr.alexfatta.fallenkingdoms.main;
public class GameManager implements CommandExecutor{
private World world;
private boolean statuts = false;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(label.equalsIgnoreCase("fk") && sender instanceof Player){
Player player = (Player) sender;
if(args.length <= 0){
player.sendMessage(main.getGamePrefix() + main.getArgument());
}else if (label.equalsIgnoreCase("start")){
if(setStatuts(false)){
world = player.getWorld();
world.setTime(0);
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms lancé par " + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle true");
setStatuts(true);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà lancée !");
}
}else if(label.equalsIgnoreCase("stop")){
if(setStatuts(true)){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms arrêté par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle false");
setStatuts(false);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà arrêtée !");
}
}else if(label.equalsIgnoreCase("pause")){
if(setStatuts(true)){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms mis en pause par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle false");
setStatuts(false);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà mise en pause !");
}
}else if(label.equalsIgnoreCase("play")){
if(setStatuts(false)){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms relancé par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle true");
setStatuts(true);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà relancée !");
}
}
}
return false;
}
public boolean isStatuts() {
return statuts;
}
public boolean setStatuts(boolean statuts) {
this.statuts = statuts;
return statuts;
}
}
if(label.equalsIgnoreCase("fk") && sender instanceof Player){
Player player = (Player) sender;
if(args.length <= 0){
player.sendMessage(main.getGamePrefix() + main.getArgument());
}else if (label.equalsIgnoreCase("start")){
...
AlexFatta issued server command: /fk team add AlexFatta Blue
[23:37:50 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'fk' in plugin FallenKingdoms v1.0.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot_server.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.lang.NullPointerException
at fr.alexfatta.fallenkingdoms.managers.TeamManager.onCommand(TeamManager.java:27) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot_server.jar:git-Spigot-db6de12-18fbb24]
... 15 more
package fr.alexfatta.fallenkingdoms.managers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import fr.alexfatta.fallenkingdoms.main;
public class TeamManager implements CommandExecutor{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = (Player) sender;
if(label.equalsIgnoreCase("fk") && sender instanceof Player){
if(args.length <= 0){
player.sendMessage(main.getGamePrefix() + main.getArgument());
}else if(args[0].equalsIgnoreCase("team") && args[1].equalsIgnoreCase("add")){ //add
if(args[3].equalsIgnoreCase("Blue")){
if(args.length > 3){
Player p = Bukkit.getServer().getPlayer(args[3]);
main.Blue.add(p);
String s = args[3];
player.sendMessage(main.getGamePrefix() + ChatColor.GREEN + "Tu as ajouté " + ChatColor.LIGHT_PURPLE + p.getName() + ChatColor.GREEN + " à la team " + s);
p.sendMessage(main.getGamePrefix() + ChatColor.GREEN + "Tu as été ajouté à la team " + ChatColor.LIGHT_PURPLE + s);
p.getPlayer().setPlayerListName(ChatColor.BLUE + p.getPlayer().getName());
}
}
package fr.alexfatta.fallenkingdoms.managers;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import fr.alexfatta.fallenkingdoms.main;
public class GameManager implements CommandExecutor{
private World world;
private boolean statuts = false;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(label.equalsIgnoreCase("fk") && sender instanceof Player){
Player player = (Player) sender;
if(args.length < 0){
player.sendMessage(main.getGamePrefix() + main.getArgument());
}if(args[0].equalsIgnoreCase("start")){
if(statuts = false){
world = player.getWorld();
world.setTime(0);
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms lancé par " + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle true");
setStatuts(true);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà lancée !");
}
}else if(args[0].equalsIgnoreCase("stop")){
if(statuts = true){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms arrêté par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle false");
setStatuts(false);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà arrêtée !");
}
}else if(args[0].equalsIgnoreCase("pause")){
if(statuts = true){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms mis en pause par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle false");
setStatuts(false);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà mise en pause !");
}
}else if(args[0].equalsIgnoreCase("play")){
if(statuts = false){
Bukkit.broadcastMessage(main.getGamePrefix() + ChatColor.GREEN + "FallenKingdoms relancé par " + ChatColor.LIGHT_PURPLE + player.getName());
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "gamerule doDaylightCycle true");
setStatuts(true);
}else {
player.sendMessage(main.getGamePrefix() + ChatColor.RED + "Erreur : la partie est déjà relancée !");
}
}
}
return false;
}
public boolean isStatuts() {
return statuts;
}
public boolean setStatuts(boolean statuts) {
this.statuts = statuts;
return statuts;
}
}
new ListenerManager(this).registerListeners();
package fr.alexfatta.fallenkingdoms.listeners;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
public class ListenerManager {
public Plugin plugin;
public PluginManager pluginManager;
public ListenerManager(Plugin plugin){
this.plugin = plugin;
this.pluginManager = Bukkit.getPluginManager();
}
public void registerListeners() {
}
}
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new LeNomDeTaClasseOuY'aL'event(this), this);
public LeNomDeLaClass(LeNomDeTonMain JspCeQueC'estMaisToucheLePas) {
// TODO Auto-generated constructor stub
}
this.main = LeTrucQueJeSaisPasCeQueC'est;
public LeNomDeLaClass(LeNomDeTonMain JspCeQueC'estMaisToucheLePas) {
this.main = JspCeQueC'estMaisToucheLePas;
}
private LeNomDeLaClasseMain main;
public class Join implements Listener {
private Test main;
public Join(Test test) {
this.main = test;
}
@EventHandler
public void TonEvent(PlayerJoinEvent event){
if(args.lenght == 1) {
// ici on peut utiliser args[0];
}
if(args.lenght >= 1) {
// ici on peut utiliser args[0];
}
if(!(args.lenght <= 0)) {
// ici on peut utiliser args[0];
}
if(args.lenght <= 0) {
// message d'erreur
} else {
// ici on peut utiliser args[0];
}
int i = 0;
System.out.println(i); // Affiche 0
if(i == 1) {
System.out.println("Vrai " + i);
} else {
System.out.println("Faux " + i);
}
// Affiche: Faux 0
// Mais maintenant:
if(i = 1) {
System.out.println("Vrai " + i);
} else {
System.out.println("Faux " + i);
}
// Affiche: Vrai 1
Boolean test = true;
// Ceci:
if(test == true) {
// ton code
}
// Est totalement équivalent à ceci:
if(test) {
// ton code
}
// Et ceci:
if(test == false) {
// ton code
}
// est totalement équivalent à ceci:
if(!test) {
// ton code
}
Je le savais pas x) Je lis exprès les problèmes des autres pour avoir des conseilsDans un test il va de toute façon tester que quelque chose est vrai ou pas.
Donc inutile de faire un "== true" ou "== false"
Il faut donc créer une instance dans le main ?et de faire un getter static qui permet de récupérer l'instance principal.