user16386411
user16386411

Reputation:

PlayerJoinEvent - Create a welcome message Spigot 1.12.2 (Java)

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

Answers (1)

Axisnix
Axisnix

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

Related Questions