TeamVento/src/main/java/eu/univento/teamvento/listener/JoinQuit.java

72 lines
2.8 KiB
Java

package eu.univento.teamvento.listener;
import eu.univento.commons.player.Rank;
import eu.univento.core.api.Config;
import eu.univento.core.api.Hologram;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.teamvento.TeamVento;
import eu.univento.teamvento.utils.Plot;
import eu.univento.teamvento.utils.PlotManager;
import net.minecraft.server.v1_10_R1.EnumParticle;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.HashMap;
/**
* @author joethei
* @version 0.1
*/
public class JoinQuit implements Listener {
static final HashMap<CustomPlayer, Hologram> holograms = new HashMap<>();
@EventHandler
public void onJoin(PlayerJoinEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
e.setJoinMessage(null);
p.resetAttackSpeed();
if(PlotManager.hasPlot(p)) {
Plot plot = PlotManager.getPlotByPlayer(p);
assert plot != null;
if(!plot.isReady()) {
ItemStack menu = new ItemStack(Material.WATCH);
ItemMeta menuMeta = menu.getItemMeta();
menuMeta.setDisplayName("§eErweiterungen");
menu.setItemMeta(menuMeta);
p.getInventory().setItem(8, menu);
}
}
if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder)
Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §bbetreten");
else
p.teleport(Config.readLocation("Build.Locs.Spawn"));
String[] text;
if(PlotManager.hasPlot(p))
text = new String[]{"§eZu deinem Plot teleportieren", "|", "|", ""};
else
text = new String[]{"§eNeues Plot erstellen", "|", "|", "",};
Bukkit.getScheduler().runTaskTimerAsynchronously(TeamVento.getInstance(), () -> p.playParticle(Config.readLocation("Build.Locs.Holo").add(0.0D, 1.0D, 0.0D), EnumParticle.SPELL_WITCH, 0.4F, 10), 20L, 5L);
Hologram holo = new Hologram(text, Config.readLocation("Build.Locs.Holo"));
holograms.put(p, holo);
holo.showPlayer(p);
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
e.setQuitMessage(null);
holograms.remove(p);
if(p.getDatabasePlayer().getRank() == Rank.Builder || p.getDatabasePlayer().getRank() == Rank.SrBuilder)
Bukkit.broadcastMessage(p.getDatabasePlayer().getRank().getColor() + p.getDisplayName() + " §8hat den Server §cverlassen");
}
}