mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-11 11:49:12 +00:00
Fix cleanup to not hold Users in memory.
This commit is contained in:
parent
ebc6b14284
commit
555a300378
6 changed files with 22 additions and 15 deletions
|
@ -297,7 +297,7 @@ public class EssentialsConf extends YamlConfiguration
|
||||||
Future<?> future = EXECUTOR_SERVICE.submit(new WriteRunner(configFile, data, pendingDiskWrites));
|
Future<?> future = EXECUTOR_SERVICE.submit(new WriteRunner(configFile, data, pendingDiskWrites));
|
||||||
|
|
||||||
//LOGGER.log(Level.INFO, configFile + " prepared for writing in " + (System.nanoTime() - startTime) + " nsec.");
|
//LOGGER.log(Level.INFO, configFile + " prepared for writing in " + (System.nanoTime() - startTime) + " nsec.");
|
||||||
|
|
||||||
return future;
|
return future;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -351,16 +351,23 @@ public class EssentialsConf extends YamlConfiguration
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final FileOutputStream fos = new FileOutputStream(configFile);
|
||||||
final OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(configFile), UTF8);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
writer.write(data);
|
final OutputStreamWriter writer = new OutputStreamWriter(fos, UTF8);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
writer.write(data);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
writer.close();
|
fos.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
|
@ -753,4 +760,5 @@ public class EssentialsConf extends YamlConfiguration
|
||||||
{
|
{
|
||||||
super.set(path, value);
|
super.set(path, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ import org.bukkit.potion.PotionEffectType;
|
||||||
public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
{
|
{
|
||||||
private CommandSender replyTo = null;
|
private CommandSender replyTo = null;
|
||||||
private transient User teleportRequester;
|
private transient String teleportRequester;
|
||||||
private transient boolean teleportRequestHere;
|
private transient boolean teleportRequestHere;
|
||||||
private transient boolean vanished;
|
private transient boolean vanished;
|
||||||
private transient final Teleport teleport;
|
private transient final Teleport teleport;
|
||||||
|
@ -263,11 +263,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
public void requestTeleport(final User player, final boolean here)
|
public void requestTeleport(final User player, final boolean here)
|
||||||
{
|
{
|
||||||
teleportRequestTime = System.currentTimeMillis();
|
teleportRequestTime = System.currentTimeMillis();
|
||||||
teleportRequester = player;
|
teleportRequester = player.getName();
|
||||||
teleportRequestHere = here;
|
teleportRequestHere = here;
|
||||||
}
|
}
|
||||||
|
|
||||||
public User getTeleportRequest()
|
public String getTeleportRequest()
|
||||||
{
|
{
|
||||||
return teleportRequester;
|
return teleportRequester;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.bukkit.inventory.ItemStack;
|
||||||
public abstract class UserData extends PlayerExtension implements IConf
|
public abstract class UserData extends PlayerExtension implements IConf
|
||||||
{
|
{
|
||||||
protected final transient IEssentials ess;
|
protected final transient IEssentials ess;
|
||||||
private EssentialsConf config;
|
private final EssentialsConf config;
|
||||||
private final File folder;
|
private final File folder;
|
||||||
|
|
||||||
protected UserData(Player base, IEssentials ess)
|
protected UserData(Player base, IEssentials ess)
|
||||||
|
@ -31,8 +31,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||||
public final void reset()
|
public final void reset()
|
||||||
{
|
{
|
||||||
config.getFile().delete();
|
config.getFile().delete();
|
||||||
config = new EssentialsConf(new File(folder, Util.sanitizeFileName(base.getName()) + ".yml"));
|
ess.getUserMap().removeUser(this.getName());
|
||||||
reloadConfig();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class Commandtpaccept extends EssentialsCommand
|
||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
final User target = user.getTeleportRequest();
|
final User target = ess.getUser(user.getTeleportRequest());
|
||||||
|
|
||||||
if (target == null || !target.isOnline())
|
if (target == null || !target.isOnline())
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class Commandtpdeny extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
final User player = user.getTeleportRequest();
|
final User player = ess.getUser(user.getTeleportRequest());
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
throw new Exception(_("noPendingRequest"));
|
throw new Exception(_("noPendingRequest"));
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IConf
|
||||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||||
File databaseFile;
|
File databaseFile;
|
||||||
File dataFolder;
|
File dataFolder;
|
||||||
EssentialsConf config;
|
final EssentialsConf config;
|
||||||
private final transient IEssentials ess;
|
private final transient IEssentials ess;
|
||||||
|
|
||||||
public EssentialsGeoIPPlayerListener(File dataFolder, IEssentials ess)
|
public EssentialsGeoIPPlayerListener(File dataFolder, IEssentials ess)
|
||||||
|
|
Loading…
Reference in a new issue