Reputation:
I don't understand why he always returns to me "You never played" then the first time ok, but the second I don't understand
I'm trying to make a condition: If the player has already played I do nothing: no message the player receives nothing! If the player has never played : Welcome message + He receives an item + and I get his position to explode fireworks And I would have liked to add a counter of players who join in the second condition
Commands Class:
package fr.antyss77.pandowelcome;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
public class Commands implements Listener {
private Main main;
@EventHandler
public void PlayerJoin(PlayerJoinEvent e) {
Player player = e.getPlayer();
Location loc = player.getLocation();
boolean hasPlayed = player.hasPlayedBefore();
if (hasPlayed != true) {
player.sendMessage("You've already played !");
} else {
player.sendMessage("You never played !");
player.getInventory().addItem(new ItemStack(Material.SAND, 12));
loc.getWorld().spawnEntity(loc, EntityType.SPLASH_POTION);
}
}
}
Main class:
package fr.antyss77.pandowelcome;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
private String color(String arg) {
return ChatColor.translateAlternateColorCodes('&', arg);
}
public void onEnable() {
Bukkit.getConsoleSender().sendMessage(color("&6[&ePandoWelcomer&6] &ehas just started."));
getServer().getPluginManager().registerEvents(new Commands(), this);
}
public void onDisable() {
Bukkit.getConsoleSender().sendMessage(color("&6[&cPandoWelcomer&6] &ehas been shut down."));
}
}
If anyone can help me understand my mistake I will be infinitely grateful, thank you in advance!
Upvotes: 0
Views: 854
Reputation: 2907
if (hasPlayed != true)
should be if (hasPlayed == true)
as you have it doing the opposite of what you want.
Your code would look like:
package fr.antyss77.pandowelcome;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.ItemStack;
public class Commands implements Listener {
private Main main;
@EventHandler
public void PlayerJoin(PlayerJoinEvent e) {
Player player = e.getPlayer();
Location loc = player.getLocation();
boolean hasPlayed = player.hasPlayedBefore();
if (hasPlayed == true) {
player.sendMessage("You've already played !");
} else {
player.sendMessage("You never played !");
player.getInventory().addItem(new ItemStack(Material.SAND, 12));
loc.getWorld().spawnEntity(loc, EntityType.SPLASH_POTION);
}
}
}
Upvotes: 0