mirror of https://github.com/taoneill/war.git
parent
1d6ffcea7e
commit
4106dd887f
|
@ -180,6 +180,7 @@ public class War extends JavaPlugin {
|
|||
warConfig.put(WarConfig.RESETSPEED, 5000);
|
||||
warConfig.put(WarConfig.MAXSIZE, 750);
|
||||
warConfig.put(WarConfig.LANGUAGE, Locale.getDefault().toString());
|
||||
warConfig.put(WarConfig.AUTOJOIN, "");
|
||||
|
||||
warzoneDefaultConfig.put(WarzoneConfig.AUTOASSIGN, false);
|
||||
warzoneDefaultConfig.put(WarzoneConfig.BLOCKHEADS, true);
|
||||
|
|
|
@ -153,6 +153,13 @@ public class Warzone {
|
|||
return bestGuess;
|
||||
}
|
||||
|
||||
public static Warzone getZoneByNameExact(String name) {
|
||||
for (Warzone zone : War.war.getWarzones()) {
|
||||
if (zone.getName().equalsIgnoreCase(name)) return zone;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Warzone getZoneByLocation(Location location) {
|
||||
for (Warzone warzone : War.war.getWarzones()) {
|
||||
if (location.getWorld().getName().equals(warzone.getWorld().getName()) && warzone.getVolume() != null && warzone.getVolume().contains(location)) {
|
||||
|
|
|
@ -11,7 +11,8 @@ public enum WarConfig {
|
|||
TNTINZONESONLY (Boolean.class),
|
||||
RESETSPEED (Integer.class),
|
||||
MAXSIZE (Integer.class),
|
||||
LANGUAGE (String.class);
|
||||
LANGUAGE (String.class),
|
||||
AUTOJOIN (String.class);
|
||||
|
||||
private final Class<?> configType;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.tommytony.war.event;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.tommytony.war.config.WarConfig;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
|
@ -73,6 +74,34 @@ public class WarPlayerListener implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event) {
|
||||
String autojoinName = War.war.getWarConfig().getString(WarConfig.AUTOJOIN);
|
||||
boolean autojoinEnabled = autojoinName.isEmpty();
|
||||
if (autojoinEnabled) { // Won't be able to find warzone if unset
|
||||
Warzone autojoinWarzone = Warzone.getZoneByNameExact(autojoinName);
|
||||
if (autojoinWarzone == null) {
|
||||
War.war.getLogger().log(Level.WARNING, "Failed to find autojoin warzone ''{0}''.", new Object[] {autojoinName});
|
||||
return;
|
||||
}
|
||||
if (autojoinWarzone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED) || autojoinWarzone.isReinitializing()) {
|
||||
War.war.badMsg(event.getPlayer(), "join.disabled");
|
||||
event.getPlayer().teleport(autojoinWarzone.getTeleport());
|
||||
} else if (!autojoinWarzone.getWarzoneConfig().getBoolean(WarzoneConfig.JOINMIDBATTLE) && autojoinWarzone.isEnoughPlayers()) {
|
||||
War.war.badMsg(event.getPlayer(), "join.progress");
|
||||
event.getPlayer().teleport(autojoinWarzone.getTeleport());
|
||||
} else if (autojoinWarzone.isFull()) {
|
||||
War.war.badMsg(event.getPlayer(), "join.full.all");
|
||||
event.getPlayer().teleport(autojoinWarzone.getTeleport());
|
||||
} else if (autojoinWarzone.isFull(event.getPlayer())) {
|
||||
War.war.badMsg(event.getPlayer(), "join.permission.all");
|
||||
event.getPlayer().teleport(autojoinWarzone.getTeleport());
|
||||
} else { // Player will only ever be autoassigned to a team
|
||||
autojoinWarzone.autoAssign(event.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerDropItem(final PlayerDropItemEvent event) {
|
||||
if (War.war.isLoaded()) {
|
||||
|
|
Loading…
Reference in New Issue