Preparation for lag-save join order
Dieser Commit ist enthalten in:
Ursprung
a3331788d4
Commit
c00e276fea
@ -9,8 +9,8 @@ public class Fight {
|
|||||||
|
|
||||||
private Fight(){}
|
private Fight(){}
|
||||||
|
|
||||||
public static final FightTeam redTeam = new FightTeam(Config.TeamRedName, Config.TeamRedPrefix, Config.TeamRedSpawn, Config.TeamRedPaste, Config.TeamRedCorner, Config.TeamRedRotate, false);
|
public static final FightTeam redTeam = new FightTeam(Config.TeamRedName, Config.TeamRedPrefix, Config.TeamRedSpawn, Config.TeamRedPaste, Config.TeamRedCorner, Config.TeamRedRotate, false, Config.RedLeader);
|
||||||
public static final FightTeam blueTeam = new FightTeam(Config.TeamBlueName, Config.TeamBluePrefix, Config.TeamBlueSpawn, Config.TeamBluePaste, Config.TeamBlueCorner, Config.TeamBlueRotate, true);
|
public static final FightTeam blueTeam = new FightTeam(Config.TeamBlueName, Config.TeamBluePrefix, Config.TeamBlueSpawn, Config.TeamBluePaste, Config.TeamBlueCorner, Config.TeamBlueRotate, true, Config.BlueLeader);
|
||||||
|
|
||||||
public static FightTeam getPlayerTeam(Player player) {
|
public static FightTeam getPlayerTeam(Player player) {
|
||||||
if(redTeam.isPlayerInTeam(player))
|
if(redTeam.isPlayerInTeam(player))
|
||||||
|
@ -23,10 +23,7 @@ import org.bukkit.scoreboard.Team;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.*;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
|
||||||
@ -56,6 +53,7 @@ public class FightTeam {
|
|||||||
private static final Set<BaseBlock> CONCRETE_POWDER_SET = Collections.singleton(CONCRETE_POWDER);
|
private static final Set<BaseBlock> CONCRETE_POWDER_SET = Collections.singleton(CONCRETE_POWDER);
|
||||||
|
|
||||||
private FightPlayer leader;
|
private FightPlayer leader;
|
||||||
|
private final UUID designatedLeader;
|
||||||
private final Set<FightPlayer> players = new HashSet<>();
|
private final Set<FightPlayer> players = new HashSet<>();
|
||||||
private boolean ready;
|
private boolean ready;
|
||||||
private final Set<Player> invited = new HashSet<>();
|
private final Set<Player> invited = new HashSet<>();
|
||||||
@ -71,7 +69,7 @@ public class FightTeam {
|
|||||||
private final Vector corner;
|
private final Vector corner;
|
||||||
private final boolean rotate;
|
private final boolean rotate;
|
||||||
|
|
||||||
public FightTeam(String name, String prefix, Location spawn, Vector paste, Vector corner, boolean rotate, boolean blue) {
|
public FightTeam(String name, String prefix, Location spawn, Vector paste, Vector corner, boolean rotate, boolean blue, UUID designatedLeader) {
|
||||||
this.spawn = spawn;
|
this.spawn = spawn;
|
||||||
this.paste = paste;
|
this.paste = paste;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -80,6 +78,7 @@ public class FightTeam {
|
|||||||
this.rotate = rotate;
|
this.rotate = rotate;
|
||||||
this.corner = corner;
|
this.corner = corner;
|
||||||
this.blue = blue;
|
this.blue = blue;
|
||||||
|
this.designatedLeader = designatedLeader;
|
||||||
color = ChatColor.getByChar(ChatColor.getLastColors(prefix).replace("§", ""));
|
color = ChatColor.getByChar(ChatColor.getLastColors(prefix).replace("§", ""));
|
||||||
if(FightScoreboard.getScoreboard().getTeam(name) == null)
|
if(FightScoreboard.getScoreboard().getTeam(name) == null)
|
||||||
team = FightScoreboard.getScoreboard().registerNewTeam(name);
|
team = FightScoreboard.getScoreboard().registerNewTeam(name);
|
||||||
@ -90,6 +89,10 @@ public class FightTeam {
|
|||||||
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM);
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean canbeLeader(Player p){
|
||||||
|
return !hasTeamLeader() && (designatedLeader == null || designatedLeader.equals(p.getUniqueId()));
|
||||||
|
}
|
||||||
|
|
||||||
public void teleportToSpawn(){
|
public void teleportToSpawn(){
|
||||||
for(FightPlayer player : players){
|
for(FightPlayer player : players){
|
||||||
player.getPlayer().teleport(spawn);
|
player.getPlayer().teleport(spawn);
|
||||||
|
@ -18,9 +18,9 @@ public class NormalJoinListener extends BasicListener {
|
|||||||
FightTeam fightTeam = Fight.getPlayerTeam(player);
|
FightTeam fightTeam = Fight.getPlayerTeam(player);
|
||||||
|
|
||||||
if (fightTeam == null) {
|
if (fightTeam == null) {
|
||||||
if(!Fight.getRedTeam().hasTeamLeader()) {
|
if(Fight.getRedTeam().canbeLeader(player)) {
|
||||||
Fight.getRedTeam().setLeader(Fight.getRedTeam().addMember(player));
|
Fight.getRedTeam().setLeader(Fight.getRedTeam().addMember(player));
|
||||||
} else if(!Fight.getBlueTeam().hasTeamLeader()) {
|
} else if(Fight.getBlueTeam().canbeLeader(player)) {
|
||||||
Fight.getBlueTeam().setLeader(Fight.getBlueTeam().addMember(player));
|
Fight.getBlueTeam().setLeader(Fight.getBlueTeam().addMember(player));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class Config {
|
public class Config {
|
||||||
@ -102,6 +103,9 @@ public class Config {
|
|||||||
public static int EventTeamRedID;
|
public static int EventTeamRedID;
|
||||||
public static int MaximumTeamMembers = Integer.MAX_VALUE;
|
public static int MaximumTeamMembers = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
public static UUID BlueLeader;
|
||||||
|
public static UUID RedLeader;
|
||||||
|
|
||||||
public static void load(){
|
public static void load(){
|
||||||
if(!new File(Bukkit.getWorldContainer().getPath() + '/' + Bukkit.getWorlds().get(0).getName() + "/config.yml").exists()) {
|
if(!new File(Bukkit.getWorldContainer().getPath() + '/' + Bukkit.getWorlds().get(0).getName() + "/config.yml").exists()) {
|
||||||
FightSystem.getPlugin().saveDefaultConfig();
|
FightSystem.getPlugin().saveDefaultConfig();
|
||||||
@ -268,6 +272,13 @@ public class Config {
|
|||||||
MaximumTeamMembers = event.getMaximumTeamMembers();
|
MaximumTeamMembers = event.getMaximumTeamMembers();
|
||||||
OnlyPublicSchematics = event.publicSchemsOnly();
|
OnlyPublicSchematics = event.publicSchemsOnly();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String blueLeader = System.getProperty("blueLeader", null);
|
||||||
|
String redLeader = System.getProperty("redLeader", null);
|
||||||
|
if(blueLeader != null)
|
||||||
|
BlueLeader = UUID.fromString(blueLeader);
|
||||||
|
if(redLeader != null)
|
||||||
|
RedLeader = UUID.fromString(redLeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean event(){
|
public static boolean event(){
|
||||||
|
@ -57,7 +57,7 @@ public class WaterRemover {
|
|||||||
while(it.hasNext()){
|
while(it.hasNext()){
|
||||||
Block b = it.next();
|
Block b = it.next();
|
||||||
blocksToRemove.addAll(getSourceBlocksOfWater(b));
|
blocksToRemove.addAll(getSourceBlocksOfWater(b));
|
||||||
if (b.getType() != Material.STATIONARY_WATER)
|
if (b.getType() != Material.STATIONARY_WATER && b.getType() != Material.WATER)
|
||||||
it.remove();
|
it.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren