removing possibility of multible serverchanges at a time
This commit is contained in:
parent
3845f104c6
commit
945e707b20
@ -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;
|
package eu.mhsl.craftattack.spawn.listener;
|
||||||
|
|
||||||
import eu.mhsl.craftattack.spawn.util.ConfigUtil;
|
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.PluginMessage;
|
||||||
import eu.mhsl.craftattack.spawn.util.VillagerSpawner;
|
import eu.mhsl.craftattack.spawn.util.VillagerSpawner;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||||
@ -13,7 +15,11 @@ public class PlayerEntityInteractListener implements Listener {
|
|||||||
public void onInteract(PlayerInteractAtEntityEvent event) {
|
public void onInteract(PlayerInteractAtEntityEvent event) {
|
||||||
if (!event.getRightClicked().equals(VillagerSpawner.getStaticVillager())) return;
|
if (!event.getRightClicked().equals(VillagerSpawner.getStaticVillager())) return;
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
if (PlayerOnlineUtil.worldMuseumCheck(event.getPlayer())) return;
|
||||||
|
|
||||||
String servername = ConfigUtil.getConfigUtil().getConfig().getString("world-museum-name");
|
String servername = ConfigUtil.getConfigUtil().getConfig().getString("world-museum-name");
|
||||||
pluginMessage.connect(event.getPlayer(), servername);
|
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;
|
package eu.mhsl.craftattack.spawn.util;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
|
|
||||||
@ -12,9 +11,8 @@ public class VillagerSpawner {
|
|||||||
Location location = config.getVillagerLocation();
|
Location location = config.getVillagerLocation();
|
||||||
|
|
||||||
assert EntityType.VILLAGER.getEntityClass() != null;
|
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.setAI(false);
|
||||||
villager.setInvulnerable(true);
|
villager.setInvulnerable(true);
|
||||||
villager.setSilent(true);
|
villager.setSilent(true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user