removing possibility of multible serverchanges at a time
This commit is contained in:
parent
3845f104c6
commit
945e707b20
src/main/java/eu/mhsl/craftattack/spawn
@ -0,0 +1,13 @@
|
||||
package eu.mhsl.craftattack.spawn.listener;
|
||||
|
||||
import eu.mhsl.craftattack.spawn.util.PlayerOnlineUtil;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerDisconnectListener implements Listener {
|
||||
@EventHandler
|
||||
public void onDisconnect(PlayerQuitEvent event) {
|
||||
if (PlayerOnlineUtil.worldMuseumCheck(event.getPlayer())) PlayerOnlineUtil.remove(event.getPlayer());
|
||||
}
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
package eu.mhsl.craftattack.spawn.listener;
|
||||
|
||||
import eu.mhsl.craftattack.spawn.util.ConfigUtil;
|
||||
import eu.mhsl.craftattack.spawn.util.PlayerOnlineUtil;
|
||||
import eu.mhsl.craftattack.spawn.util.PluginMessage;
|
||||
import eu.mhsl.craftattack.spawn.util.VillagerSpawner;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||
@ -13,7 +15,11 @@ public class PlayerEntityInteractListener implements Listener {
|
||||
public void onInteract(PlayerInteractAtEntityEvent event) {
|
||||
if (!event.getRightClicked().equals(VillagerSpawner.getStaticVillager())) return;
|
||||
event.setCancelled(true);
|
||||
if (PlayerOnlineUtil.worldMuseumCheck(event.getPlayer())) return;
|
||||
|
||||
String servername = ConfigUtil.getConfigUtil().getConfig().getString("world-museum-name");
|
||||
pluginMessage.connect(event.getPlayer(), servername);
|
||||
PlayerOnlineUtil.addPlayer(event.getPlayer());
|
||||
Bukkit.getLogger().info(event.getPlayer().getName() + " connects to Worldmuseum");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package eu.mhsl.craftattack.spawn.util;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PlayerOnlineUtil {
|
||||
private static final List<Player> playerOnWorldMuseum= new ArrayList<>(); // if player is in list --> he will be connected to worldmuseum
|
||||
|
||||
public static void addPlayer(Player player) {
|
||||
playerOnWorldMuseum.add(player);
|
||||
}
|
||||
public static boolean worldMuseumCheck(Player player) {
|
||||
return playerOnWorldMuseum.contains(player);
|
||||
}
|
||||
public static void remove(Player player) {
|
||||
playerOnWorldMuseum.remove(player);
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package eu.mhsl.craftattack.spawn.util;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Villager;
|
||||
|
||||
@ -12,9 +11,8 @@ public class VillagerSpawner {
|
||||
Location location = config.getVillagerLocation();
|
||||
|
||||
assert EntityType.VILLAGER.getEntityClass() != null;
|
||||
Entity entity = location.getWorld().spawn(location, EntityType.VILLAGER.getEntityClass());
|
||||
Villager villager = (Villager) location.getWorld().spawn(location, EntityType.VILLAGER.getEntityClass());
|
||||
|
||||
Villager villager = (Villager) entity;
|
||||
villager.setAI(false);
|
||||
villager.setInvulnerable(true);
|
||||
villager.setSilent(true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user