1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-05 14:18:21 +02:00

Merge branch 'refs/heads/groupmanager'

This commit is contained in:
snowleo
2011-10-21 00:04:40 +02:00
6 changed files with 32 additions and 14 deletions

View File

@@ -46,3 +46,6 @@ v 1.4:
- Removed extra notification messages for the player issuing the group move command. - Removed extra notification messages for the player issuing the group move command.
- Added a config setting - bukkit_perms_override: false - Added a config setting - bukkit_perms_override: false
Enable to allow default Bukkit based permissions to remain enabled, unless directly negated within GroupManager. Enable to allow default Bukkit based permissions to remain enabled, unless directly negated within GroupManager.
- Fixed reading world mirrors from the config.
- Simplified config.yml while retaining backwards compatibility.
- Added data.save.hours setting to config. This allow control over how long backups are retained.

View File

@@ -2,20 +2,24 @@ settings:
config: config:
# With this enabled anyone set as op has full permissions when managing GroupManager # With this enabled anyone set as op has full permissions when managing GroupManager
opOverrides: true opOverrides: true
# If enabled any bukkit permissiosn which default to true will be left enabled. # If enabled any bukkit permissiosn which default to true will be left enabled.
# If the player is op any permissions set to Op will follow suit. # If the player is op any permissions set to Op will follow suit.
bukkit_perms_override: false bukkit_perms_override: false
data: data:
save: save:
# How often GroupManager will save it's data back to groups and users.yml # How often GroupManager will save it's data back to groups and users.yml
minutes: 10 minutes: 10
# Number of hours to retain backups (plugins/GroupManager/backup)
hours: 24
logging: logging:
# level of detail GroupManager will use when logging. # level of detail GroupManager will use when logging.
# Acceptable entries are - ALL,CONFIG,FINE,FINER,FINEST,INFO,OFF,SEVERE,WARNING # Acceptable entries are - ALL,CONFIG,FINE,FINER,FINEST,INFO,OFF,SEVERE,WARNING
level: INFO level: INFO
permission:
world: mirrors:
mirror:
# Worlds listed here have their permissions mirrored in their children. # Worlds listed here have their permissions mirrored in their children.
world: world:
- world_nether - world_nether

View File

@@ -58,15 +58,23 @@ public class GMConfiguration {
return GMconfig.getBoolean("settings.config.opOverrides", true); return GMconfig.getBoolean("settings.config.opOverrides", true);
} }
@SuppressWarnings("unchecked")
public Map<String, Object> getMirrorsMap() { public Map<String, Object> getMirrorsMap() {
return (Map<String, Object>) GMconfig.getList("settings.permission.world.mirror"); // Try to fetch the old mirror path first
if (GMconfig.isConfigurationSection("settings.permission.world.mirror"))
return (Map<String, Object>) GMconfig.getConfigurationSection("settings.permission.world.mirror").getValues(false);
else
return (Map<String, Object>) GMconfig.getConfigurationSection("settings.mirrors").getValues(false);
} }
public Integer getSaveInterval() { public Integer getSaveInterval() {
return GMconfig.getInt("settings.data.save.minutes", 10); return GMconfig.getInt("settings.data.save.minutes", 10);
} }
public Integer getBackupDuration() {
return GMconfig.getInt("settings.data.save.hours", 24);
}
public void adjustLoggerLevel() { public void adjustLoggerLevel() {
try { try {

View File

@@ -163,6 +163,7 @@ public class GroupManager extends JavaPlugin {
int minutes = getGMConfig().getSaveInterval(); int minutes = getGMConfig().getSaveInterval();
scheduler.scheduleAtFixedRate(commiter, minutes, minutes, TimeUnit.MINUTES); scheduler.scheduleAtFixedRate(commiter, minutes, minutes, TimeUnit.MINUTES);
GroupManager.logger.info("Scheduled Data Saving is set for every " + minutes + " minutes!"); GroupManager.logger.info("Scheduled Data Saving is set for every " + minutes + " minutes!");
GroupManager.logger.info("Backups will be retained for " + getGMConfig().getBackupDuration() + " hours!");
} }
} }

View File

@@ -99,12 +99,12 @@ public class WorldsHolder {
* don't load any worlds which are already loaded * don't load any worlds which are already loaded
* or mirrored worlds that don't need data. * or mirrored worlds that don't need data.
*/ */
if (worldsData.containsKey(folder.getName().toLowerCase()) if (!worldsData.containsKey(folder.getName().toLowerCase())
|| mirrors.containsKey(folder.getName().toLowerCase())) { || !mirrors.containsKey(folder.getName().toLowerCase())) {
continue;
}
loadWorld(folder.getName()); loadWorld(folder.getName());
} }
}
} }
} }
@@ -168,7 +168,7 @@ public class WorldsHolder {
if (alreadyDone.contains(w)) { if (alreadyDone.contains(w)) {
continue; continue;
} }
Tasks.removeOldFiles(plugin.getBackupFolder()); Tasks.removeOldFiles(plugin, plugin.getBackupFolder());
if (w == null) { if (w == null) {
GroupManager.logger.severe("WHAT HAPPENED?"); GroupManager.logger.severe("WHAT HAPPENED?");
continue; continue;

View File

@@ -13,6 +13,8 @@ import java.io.OutputStream;
import java.util.Calendar; import java.util.Calendar;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.List; import java.util.List;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.data.Group;
/** /**
@@ -43,9 +45,9 @@ public abstract class Tasks {
copy(in, dst); copy(in, dst);
} }
public static void removeOldFiles(File folder) { public static void removeOldFiles(GroupManager gm, File folder) {
if (folder.isDirectory()) { if (folder.isDirectory()) {
long oldTime = System.currentTimeMillis() - 86400000L; long oldTime = System.currentTimeMillis() - (((long)gm.getGMConfig().getBackupDuration()*60*60)*1000);
for (File olds : folder.listFiles()) { for (File olds : folder.listFiles()) {
if (olds.isFile()) { if (olds.isFile()) {
if (olds.lastModified() < oldTime) { if (olds.lastModified() < oldTime) {