start requested changes

got a bit stuck with an annoying issue
This commit is contained in:
xsmeths 2025-02-24 23:18:57 +00:00
parent 6e8aaecf8c
commit 8b15ecbb61
4 changed files with 32 additions and 12 deletions

View File

@ -18,6 +18,7 @@ import com.craftaro.epicfarming.commands.CommandGiveFarmItem;
import com.craftaro.epicfarming.commands.CommandReload;
import com.craftaro.epicfarming.commands.CommandSettings;
import com.craftaro.epicfarming.database.migrations._1_InitialMigration;
import com.craftaro.epicfarming.database.migrations._2_subsequentMigration;
import com.craftaro.epicfarming.farming.Farm;
import com.craftaro.epicfarming.farming.FarmManager;
import com.craftaro.epicfarming.farming.FarmType;
@ -129,7 +130,7 @@ public class EpicFarming extends SongodaPlugin {
);
// Database stuff.
initDatabase(Collections.singletonList(new _1_InitialMigration()));
initDatabase(new _1_InitialMigration(), new _2_subsequentMigration());
DataHelper.init(this);
this.loadLevelManager();
@ -253,23 +254,20 @@ public class EpicFarming extends SongodaPlugin {
if (converted) {
Bukkit.getConsoleSender().sendMessage("[" + getDescription().getName() + "] " + ChatColor.GREEN + "Conversion complete :)");
}
this.farmManager.addFarms(this.dataManager.loadBatch(Farm.class, "active_farms"));
this.boostManager.addBoosts(this.dataManager.loadBatch(BoostData.class, "boosted_players"));
});
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
List<Farm> farms = this.dataManager.loadBatch(Farm.class, "active_farms");
//System.out.println("Loaded " + farms.size() + " farms from database."); // Debugging
getLogger().info("Loaded " + farms.size() + " farms from database.");
for (Farm farm : farms) {
//System.out.println("Farm ID: " + farm.getId() + " | Location: " + farm.getLocation()); // Debugging
getLogger().info("Farm ID: " + farm.getId() + " | Location: " + farm.getLocation()); // Debugging
List<ItemStack> items = DataHelper.loadItemsForFarm(farm.getId());
farm.setItems(items);
//System.out.println("Farm ID " + farm.getId() + " has " + items.size() + " items."); // Debugging
getLogger().info("Farm ID " + farm.getId() + " has " + items.size() + " items. first item is: " + items.get(0).toString()); // Debugging
}
this.farmManager.addFarms(farms);

View File

@ -12,7 +12,7 @@ import java.sql.Statement;
public class _1_InitialMigration extends DataMigration {
public _1_InitialMigration() {
super(1);
super(2);
}
@Override

View File

@ -0,0 +1,23 @@
package com.craftaro.epicfarming.database.migrations;
import com.craftaro.core.database.DataMigration;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class _2_subsequentMigration extends DataMigration {
public _2_subsequentMigration() {
super(2);
}
@Override
public void migrate(Connection connection, String tablePrefix) throws SQLException {
// Edit items.
try (Statement statement = connection.createStatement()) {
// Change the data type of the 'item' column in the 'items' table
statement.execute("ALTER TABLE " + tablePrefix + "items ALTER COLUMN item SET DATA TYPE TEXT");
}
}
}

View File

@ -86,11 +86,10 @@ public class DataHelper {
if (deserializedItems != null && !deserializedItems.isEmpty()) {
items.addAll(deserializedItems);
} else {
System.err.println("❌ Failed to deserialize item: " + serializedItem);
plugin.getLogger().severe("❌ Failed to deserialize item: " + serializedItem);
}
} catch (Exception e) {
System.err.println("❌ Error decoding Base64 item: " + serializedItem);
e.printStackTrace();
plugin.getLogger().severe("❌ Error decoding Base64 item: " + serializedItem);
}
}
});