mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-13 04:36:44 +00:00
![snowleo](/assets/img/avatar_default.png)
Many commands have been cleaned. File changes: - all user data has been moved from users.yml to userdata folder - all files in userdata folder are lower case Both changes should be done automatically. Class changes: - Moved all user data functions to UserData class - Moved all user teleport functions to Teleport class - Moved the user list to Essentials class - Less static functions for better testing - EssentialsCommand now has ess Property (Essentials class) - New NotEnoughArgumentsException, that will show command description and syntax New commands: - /seen, shows the last login or logout - /tempban, temporarily ban someone - /tjail and mute, temporarily option added Other changes: - ban reason is saved - don't show "You have xxx mail" on login, if user doesn't have essentials.mail permission - time will be parsed: years, months (mo), weeks, days, hours, minutes (m), seconds, these can be shortened and combined, example: 2 days 5h 30m git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1300 e251c2fe-e539-e718-e476-b85c1f46cddb
81 lines
1.9 KiB
Java
81 lines
1.9 KiB
Java
package com.earth2me.essentials;
|
|
|
|
import java.io.File;
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
|
public class EssentialsTimer implements Runnable, IConf
|
|
{
|
|
private Essentials parent;
|
|
private Set<User> allUsers = new HashSet<User>();
|
|
|
|
EssentialsTimer(Essentials parent)
|
|
{
|
|
this.parent = parent;
|
|
File userdir = new File(parent.getDataFolder(), "userdata");
|
|
if (!userdir.exists()) {
|
|
return;
|
|
}
|
|
for (String string : userdir.list())
|
|
{
|
|
if (!string.endsWith(".yml")) {
|
|
continue;
|
|
}
|
|
String name = string.substring(0, string.length()-4);
|
|
User u = parent.getUser(new OfflinePlayer(name));
|
|
allUsers.add(u);
|
|
}
|
|
}
|
|
|
|
public void run()
|
|
{
|
|
long currentTime = System.currentTimeMillis();
|
|
for (Player player : parent.getServer().getOnlinePlayers())
|
|
{
|
|
User u = parent.getUser(player);
|
|
allUsers.add(u);
|
|
u.setLastActivity(currentTime);
|
|
}
|
|
|
|
for (User user: allUsers) {
|
|
if (user.getBanTimeout() > 0 && user.getBanTimeout() < currentTime) {
|
|
user.setBanTimeout(0);
|
|
((CraftServer)parent.getServer()).getHandle().b(user.getName());
|
|
Essentials.getStatic().loadBanList();
|
|
}
|
|
if (user.getMuteTimeout() > 0 && user.getMuteTimeout() < currentTime && user.isMuted()) {
|
|
user.setMuteTimeout(0);
|
|
user.sendMessage("§7You can talk again");
|
|
user.setMuted(false);
|
|
}
|
|
if (user.getJailTimeout() > 0 && user.getJailTimeout() < currentTime && user.isJailed()) {
|
|
user.setJailTimeout(0);
|
|
user.setJailed(false);
|
|
user.sendMessage("§7You have been released");
|
|
user.setJail(null);
|
|
try
|
|
{
|
|
user.getTeleport().back();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
}
|
|
|
|
if (user.getLastActivity() < currentTime && user.getLastActivity() > user.getLastLogout()) {
|
|
user.setLastLogout(user.getLastActivity());
|
|
}
|
|
}
|
|
}
|
|
|
|
public void reloadConfig()
|
|
{
|
|
for (User user : allUsers)
|
|
{
|
|
user.reloadConfig();
|
|
}
|
|
}
|
|
}
|