Nettoyage automatique des données de joueurs Essentials et PermissionsEx qui ne sont pas inscrits
This commit is contained in:
parent
88cc48d99a
commit
c777545158
@ -15,5 +15,6 @@
|
||||
<classpathentry kind="lib" path="lib/PandacraftAuth.jar" sourcepath="R:/Dropbox/wspace_java_minecraft/xAuth.src"/>
|
||||
<classpathentry kind="lib" path="lib/Essentials-Pre2.13.1.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/worldguard-5.9.jar"/>
|
||||
<classpathentry kind="lib" path="lib/PermissionsEx.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
BIN
lib/PermissionsEx.jar
Normal file
BIN
lib/PermissionsEx.jar
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<jardesc>
|
||||
<jar path="PandacraftUtils/jar_export/PandacraftUtils-2.10.jar"/>
|
||||
<jar path="PandacraftUtils/jar_export/PandacraftUtils-2.11.jar"/>
|
||||
<options buildIfNeeded="true" compress="true" descriptionLocation="/PandacraftUtils/make_jar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
|
||||
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
|
||||
<selectedProjects/>
|
||||
|
@ -33,3 +33,8 @@ cubos:
|
||||
# séparé avec des point-virgules
|
||||
worlds: Survival
|
||||
|
||||
|
||||
|
||||
|
||||
cleaner:
|
||||
users_cleaner_group: default
|
||||
|
@ -1,6 +1,6 @@
|
||||
name: PandacraftUtils
|
||||
main: net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils
|
||||
version: 2.10
|
||||
version: 2.11
|
||||
|
||||
|
||||
|
||||
|
@ -81,6 +81,8 @@ public class ConfigManager {
|
||||
|
||||
CuboCommand_worlds = Arrays.asList(configFile.getString("cubos.worlds").split(";"));
|
||||
|
||||
UsersCleaner_users_cleaner_group = configFile.getString("cleaner.users_cleaner_group");
|
||||
|
||||
|
||||
initChatAnalysisBadWord();
|
||||
initCommandAlias();
|
||||
@ -105,6 +107,15 @@ public class ConfigManager {
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Users cleaner
|
||||
*/
|
||||
public String UsersCleaner_users_cleaner_group;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Configuration AFK
|
||||
*/
|
||||
|
@ -92,6 +92,13 @@ public class PandacraftUtils extends JavaPlugin {
|
||||
calculatorManager = new CalculatorManager(this);
|
||||
|
||||
serverPingListener = new PacketOutServerInfoListener(this);
|
||||
|
||||
|
||||
getServer().getScheduler().runTaskLater(this, new Runnable() {
|
||||
@Override public void run() { new PlayerDataCleaner(instance); }
|
||||
}, 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,76 @@
|
||||
package net.mc_pandacraft.java.plugin.pandacraftutils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.plugin_interface.EssentialsInterface;
|
||||
import ru.tehkode.permissions.PermissionUser;
|
||||
import ru.tehkode.permissions.bukkit.PermissionsEx;
|
||||
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.UserMap;
|
||||
|
||||
public class PlayerDataCleaner {
|
||||
|
||||
private PandacraftUtils plugin;
|
||||
|
||||
public PlayerDataCleaner(PandacraftUtils pl) {
|
||||
plugin = pl;
|
||||
|
||||
|
||||
try {
|
||||
clean();
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void clean() {
|
||||
|
||||
|
||||
String group_to_remove = ConfigManager.getInstance().UsersCleaner_users_cleaner_group;
|
||||
|
||||
|
||||
// essentials players
|
||||
|
||||
UserMap players = EssentialsInterface.getPlugin().getUserMap();
|
||||
plugin.getLogger().info("Group to remove : "+group_to_remove);
|
||||
plugin.getLogger().info("Running Essentials players autoremove ..");
|
||||
if (players == null) return;
|
||||
plugin.getLogger().info("There are "+players.getUniqueUsers()+" players files in Essentials/userdata");
|
||||
Set<String> users = players.getAllUniqueUsers();
|
||||
|
||||
for (String su : users) {
|
||||
User u = players.getUser(su);
|
||||
if (u.getBase() != null && u.getBase().isOnline()) continue;
|
||||
if (!group_to_remove.equalsIgnoreCase(u.getGroup())) continue;
|
||||
plugin.getLogger().info("Essentials players autoremove : "+su);
|
||||
players.getUserFile(su).delete();
|
||||
}
|
||||
players.reloadConfig();
|
||||
|
||||
|
||||
// permissions_ex players
|
||||
PermissionUser[] pUsers = PermissionsEx.getPermissionManager().getUsers(group_to_remove);
|
||||
plugin.getLogger().info("Running PermissionsEx players autoremove ..");
|
||||
plugin.getLogger().info("There are "+pUsers.length+" players in 'default' group");
|
||||
|
||||
for (PermissionUser pUser : pUsers) {
|
||||
if (pUser == null) continue;
|
||||
if (pUser.getGroupsNames().length != 1) continue;
|
||||
if (!pUser.getGroupsNames()[0].equalsIgnoreCase(group_to_remove)) continue;
|
||||
plugin.getLogger().info("PermissionsEx players autoremove : "+pUser.getName());
|
||||
pUser.remove();
|
||||
}
|
||||
PermissionsEx.getPlugin().reloadConfig();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user