mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-12-27 20:27:37 +00:00
Re-implement unbannable usernames. Resolves #180
This commit is contained in:
parent
7b8ba0bdf5
commit
73a91c02c6
@ -1,3 +1,3 @@
|
||||
#Build Number for ANT. Do not edit!
|
||||
#Tue May 13 16:30:53 CEST 2014
|
||||
build.number=837
|
||||
#Tue May 13 17:00:06 CEST 2014
|
||||
build.number=840
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# TotalFreedomMod banning config
|
||||
# Warning: modification of this file is not reccomended
|
||||
# Warning: modification of this file is not recomended
|
||||
#
|
||||
# Format:
|
||||
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
||||
|
@ -6,12 +6,16 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_Config;
|
||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
|
||||
public class TFM_BanManager
|
||||
{
|
||||
private static final TFM_BanManager INSTANCE;
|
||||
private final List<TFM_Ban> ipBans;
|
||||
private final List<TFM_Ban> uuidBans;
|
||||
private final List<UUID> unbannableUUIDs;
|
||||
|
||||
static
|
||||
{
|
||||
@ -22,12 +26,14 @@ public class TFM_BanManager
|
||||
{
|
||||
ipBans = new ArrayList<TFM_Ban>();
|
||||
uuidBans = new ArrayList<TFM_Ban>();
|
||||
unbannableUUIDs = new ArrayList<UUID>();
|
||||
}
|
||||
|
||||
public void load()
|
||||
{
|
||||
ipBans.clear();
|
||||
uuidBans.clear();
|
||||
unbannableUUIDs.clear();
|
||||
|
||||
final TFM_Config config = new TFM_Config(TotalFreedomMod.plugin, "bans.yml", true);
|
||||
config.load();
|
||||
@ -58,8 +64,21 @@ public class TFM_BanManager
|
||||
|
||||
// Save the config
|
||||
save();
|
||||
TFM_Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
|
||||
|
||||
TFM_Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans.");
|
||||
for (String username : (List<String>) TFM_ConfigEntry.UNBANNABLE_USERNAMES.getList())
|
||||
{
|
||||
final OfflinePlayer player = Bukkit.getOfflinePlayer(username);
|
||||
if (player == null || player.getUniqueId() == null)
|
||||
{
|
||||
TFM_Log.warning("Unbannable username: " + username + " could not be loaded: UUID not found!");
|
||||
continue;
|
||||
}
|
||||
|
||||
unbannableUUIDs.add(player.getUniqueId());
|
||||
}
|
||||
|
||||
TFM_Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
|
||||
}
|
||||
|
||||
public void save()
|
||||
@ -80,7 +99,7 @@ public class TFM_BanManager
|
||||
|
||||
for (TFM_Ban savedBan : uuidBans)
|
||||
{
|
||||
if (!savedBan.isExpired())
|
||||
if (!savedBan.isExpired() && !unbannableUUIDs.contains(UUID.fromString(savedBan.getSubject())))
|
||||
{
|
||||
newUuidBans.add(savedBan.toString());
|
||||
}
|
||||
@ -201,6 +220,11 @@ public class TFM_BanManager
|
||||
return;
|
||||
}
|
||||
|
||||
if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
uuidBans.add(ban);
|
||||
save();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user