Some more adjustments for MC 1.20.1

This commit is contained in:
GeorgH93 2023-07-15 22:50:29 +02:00
parent cf7a6c0617
commit a87b198632
No known key found for this signature in database
GPG Key ID: D1630D37F9E4B3C8
6 changed files with 25 additions and 18 deletions

View File

@ -121,14 +121,14 @@ public abstract class Database implements Listener
catch(IllegalStateException ignored) {} catch(IllegalStateException ignored) {}
catch(Exception e) catch(Exception e)
{ {
e.printStackTrace(); plugin.getLogger().log(Level.SEVERE, "Failed to initialize database.", e);
} }
return null; return null;
} }
public void backup(@NotNull Backpack backpack) public void backup(@NotNull Backpack backpack)
{ {
writeBackup(backpack.getOwner().getName(), getPlayerFormattedUUID(backpack.getOwner()), itsSerializer.getUsedSerializer(), itsSerializer.serialize(backpack.getInventory())); writeBackup(backpack.getOwner().getName(), getPlayerFormattedUUID(backpack.getOwnerId()), itsSerializer.getUsedSerializer(), itsSerializer.serialize(backpack.getInventory()));
} }
protected void writeBackup(@Nullable String userName, @NotNull String userIdentifier, final int usedSerializer, final byte[] data) protected void writeBackup(@Nullable String userName, @NotNull String userIdentifier, final int usedSerializer, final byte[] data)
@ -172,7 +172,12 @@ public abstract class Database implements Listener
protected String getPlayerFormattedUUID(OfflinePlayer player) protected String getPlayerFormattedUUID(OfflinePlayer player)
{ {
return (useUUIDSeparators) ? player.getUniqueId().toString() : player.getUniqueId().toString().replace("-", ""); return getPlayerFormattedUUID(player.getUniqueId());
}
protected String getPlayerFormattedUUID(UUID uuid)
{
return (useUUIDSeparators) ? uuid.toString() : uuid.toString().replace("-", "");
} }
public @NotNull Collection<Backpack> getLoadedBackpacks() public @NotNull Collection<Backpack> getLoadedBackpacks()
@ -238,7 +243,6 @@ public abstract class Database implements Listener
public void unloadBackpack(Backpack backpack) public void unloadBackpack(Backpack backpack)
{ {
plugin.getLogger().log(Level.INFO, "Unloading backpack of {0} ({1})", new Object[] {backpack.getOwner().getName(), backpack.getOwner().getUniqueId()});
if (forceSaveOnUnload) if (forceSaveOnUnload)
{ {
backpack.forceSave(); backpack.forceSave();
@ -247,7 +251,7 @@ public abstract class Database implements Listener
{ {
backpack.save(); backpack.save();
} }
backpacks.remove(backpack.getOwner().getUniqueId()); backpacks.remove(backpack.getOwnerId());
} }
public void asyncLoadBackpack(final OfflinePlayer player) public void asyncLoadBackpack(final OfflinePlayer player)

View File

@ -30,6 +30,8 @@ import org.jetbrains.annotations.Nullable;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class Files extends Database public class Files extends Database
@ -68,13 +70,13 @@ public class Files extends Database
if(allFiles == null) return; if(allFiles == null) return;
for (File file : allFiles) for (File file : allFiles)
{ {
if(maxAge > 0 && System.currentTimeMillis() - file.lastModified() > maxAge) // Check if the file is older then x days if(maxAge > 0 && System.currentTimeMillis() - file.lastModified() > maxAge) // Check if the file is older than x days
{ {
if(!file.delete()) if(!file.delete())
{ {
plugin.getLogger().warning("Failed to delete file (" + file.getAbsolutePath() + ")."); plugin.getLogger().warning("Failed to delete file (" + file.getAbsolutePath() + ").");
} }
continue; // We don't have to check if the file name is correct cause we have the deleted the file continue; // We don't have to check if the file name is correct because we have the deleted the file
} }
int len = file.getName().length() - EXT.length(); int len = file.getName().length() - EXT.length();
if(len <= 16) // It's a player name if(len <= 16) // It's a player name
@ -110,16 +112,16 @@ public class Files extends Database
} }
} }
private String getFileName(OfflinePlayer player) private String getFileName(UUID uuid)
{ {
return getPlayerFormattedUUID(player) + EXT; return getPlayerFormattedUUID(uuid) + EXT;
} }
// DB Functions // DB Functions
@Override @Override
public void saveBackpack(Backpack backpack) public void saveBackpack(Backpack backpack)
{ {
File save = new File(saveFolder, getFileName(backpack.getOwner())); File save = new File(saveFolder, getFileName(backpack.getOwnerId()));
try(FileOutputStream fos = new FileOutputStream(save)) try(FileOutputStream fos = new FileOutputStream(save))
{ {
fos.write(itsSerializer.getUsedSerializer()); fos.write(itsSerializer.getUsedSerializer());
@ -128,7 +130,7 @@ public class Files extends Database
} }
catch(Exception e) catch(Exception e)
{ {
e.printStackTrace(); plugin.getLogger().log(Level.SEVERE, "Failed to save backpack.", e);
} }
} }
@ -161,7 +163,7 @@ public class Files extends Database
} }
catch(Exception e) catch(Exception e)
{ {
e.printStackTrace(); logger.log(Level.WARNING, "Failed to read backpack.", e);
} }
} }
return null; return null;

View File

@ -203,7 +203,7 @@ public abstract class SQL extends Database
{ {
final byte[] data = itsSerializer.serialize(backpack.getInventory()); final byte[] data = itsSerializer.serialize(backpack.getInventory());
final int id = backpack.getOwnerDatabaseId(), usedSerializer = itsSerializer.getUsedSerializer(); final int id = backpack.getOwnerDatabaseId(), usedSerializer = itsSerializer.getUsedSerializer();
final String nameOrUUID = getPlayerFormattedUUID(backpack.getOwner()), name = backpack.getOwner().getName(); final String nameOrUUID = getPlayerFormattedUUID(backpack.getOwnerId()), name = backpack.getOwner().getName();
Runnable runnable = () -> { Runnable runnable = () -> {
try(Connection connection = getConnection()) try(Connection connection = getConnection())

View File

@ -37,7 +37,7 @@ public class Interval extends UnCacheStrategy implements Runnable
{ {
for(Backpack backpack : cache.getLoadedBackpacks()) for(Backpack backpack : cache.getLoadedBackpacks())
{ {
if(!backpack.getOwner().isOnline() && !backpack.isOpen()) if(backpack.getOwnerPlayer() == null && !backpack.isOpen())
{ {
this.cache.unloadBackpack(backpack); this.cache.unloadBackpack(backpack);
} }

View File

@ -22,6 +22,7 @@ import at.pcgamingfreaks.Minepacks.Bukkit.Database.Database;
import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks; import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
public class IntervalChecked extends UnCacheStrategy implements Runnable public class IntervalChecked extends UnCacheStrategy implements Runnable
{ {
@ -42,7 +43,8 @@ public class IntervalChecked extends UnCacheStrategy implements Runnable
long currentTime = System.currentTimeMillis() - delay; long currentTime = System.currentTimeMillis() - delay;
for(Backpack backpack : cache.getLoadedBackpacks()) for(Backpack backpack : cache.getLoadedBackpacks())
{ {
if(!backpack.getOwner().isOnline() && backpack.getOwner().getLastPlayed() < currentTime && !backpack.isOpen()) OfflinePlayer owner = backpack.getOwner();
if(!owner.isOnline() && owner.getLastPlayed() < currentTime && !backpack.isOpen())
{ {
this.cache.unloadBackpack(backpack); this.cache.unloadBackpack(backpack);
} }

View File

@ -55,14 +55,13 @@ public class BackpackEventListener extends MinepacksListener
backpack.save(); backpack.save();
} }
backpack.close(closer); backpack.close(closer);
if(event.getPlayer().getUniqueId().equals(backpack.getOwner().getUniqueId())) if(event.getPlayer().getUniqueId().equals(backpack.getOwnerId()))
{ {
messageOwnBackpackClose.send(closer); messageOwnBackpackClose.send(closer);
} }
else else
{ {
OfflinePlayer owner = backpack.getOwner(); messageOtherBackpackClose.send(closer, backpack.getOwner());
messageOtherBackpackClose.send(closer, owner);
} }
if(closeSound != null) if(closeSound != null)
{ {