Fix bugs in purge classes, cleanup
- OfflinePlayer objects were never mapped to names - Essentials purge was run even if setting was disabled - Console user saw messages twice - Misc: trivial field reorderings, change DefaultPermission to be null safe - Permissions: do not expose PermissionHandler just to get its type
This commit is contained in:
@@ -15,6 +15,7 @@ import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.inject.Inject;
|
||||
@@ -238,7 +239,7 @@ public class PurgeService implements Reloadable {
|
||||
* @param cleared List of String
|
||||
*/
|
||||
synchronized void purgeEssentials(Set<OfflinePlayer> cleared) {
|
||||
if (!settings.getProperty(PurgeSettings.REMOVE_ESSENTIALS_FILES) && !pluginHooks.isEssentialsAvailable()) {
|
||||
if (!settings.getProperty(PurgeSettings.REMOVE_ESSENTIALS_FILES)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -281,7 +282,8 @@ public class PurgeService implements Reloadable {
|
||||
|
||||
private static void logAndSendMessage(CommandSender sender, String message) {
|
||||
ConsoleLogger.info(message);
|
||||
if (sender != null) {
|
||||
// Make sure sender is not console user, which will see the message from ConsoleLogger already
|
||||
if (sender != null && !(sender instanceof ConsoleCommandSender)) {
|
||||
sender.sendMessage(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,11 +14,10 @@ import java.util.UUID;
|
||||
|
||||
public class PurgeTask extends BukkitRunnable {
|
||||
|
||||
private PurgeService purgeService;
|
||||
|
||||
//how many players we should check for each tick
|
||||
private static final int INTERVALL_CHECK = 5;
|
||||
|
||||
private final PurgeService purgeService;
|
||||
private final UUID sender;
|
||||
private final Set<String> toPurge;
|
||||
|
||||
@@ -52,15 +51,14 @@ public class PurgeTask extends BukkitRunnable {
|
||||
Set<String> namePortion = new HashSet<String>(INTERVALL_CHECK);
|
||||
for (int i = 0; i < INTERVALL_CHECK; i++) {
|
||||
int nextPosition = (currentPage * INTERVALL_CHECK) + i;
|
||||
if (offlinePlayers.length >= nextPosition) {
|
||||
if (offlinePlayers.length <= nextPosition) {
|
||||
//no more offline players on this page
|
||||
break;
|
||||
}
|
||||
|
||||
OfflinePlayer offlinePlayer = offlinePlayers[nextPosition];
|
||||
String offlineName = offlinePlayer.getName();
|
||||
//remove to speed up later lookups
|
||||
if (toPurge.remove(offlineName.toLowerCase())) {
|
||||
if (toPurge.remove(offlinePlayer.getName().toLowerCase())) {
|
||||
playerPortion.add(offlinePlayer);
|
||||
namePortion.add(offlinePlayer.getName());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user