Fixed never getting users from the database (I don't think we're adding them yet but that's for another time :)))) (im gonna forget and be confused for sure)

This commit is contained in:
Teriuihi 2021-12-18 01:34:42 +01:00
parent 3ccd198b9e
commit c780054f24
5 changed files with 17 additions and 8 deletions

View File

@ -4,6 +4,7 @@ import com.alttd.GUI.GUIMerchant;
import com.alttd.VillagerUI;
import com.alttd.config.Config;
import com.alttd.config.WorthConfig;
import com.alttd.database.Queries;
import com.alttd.events.SpawnShopEvent;
import com.alttd.objects.EconUser;
import com.alttd.objects.Price;
@ -17,6 +18,9 @@ import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Objects;
public class BuyGUI extends GUIMerchant {
private static final MiniMessage miniMessage = MiniMessage.get();
@ -41,8 +45,8 @@ public class BuyGUI extends GUIMerchant {
Economy econ = VillagerUI.getInstance().getEconomy();
double balance = econ.getBalance(player);
int trans_pts = (int) (Math.floor(price.getPrice(amount)/ WorthConfig.POINT_MOD) * amount);
EconUser econUser = EconUser.users.get(player.getUniqueId());
int oldPoints = econUser.getPointsMap().get(villagerType.getName());
EconUser econUser = EconUser.getUser(player.getUniqueId());
int oldPoints = Objects.requireNonNullElse(econUser.getPointsMap().get(villagerType.getName()), 0);
double cost = price.calculatePriceThing(oldPoints, trans_pts);
if (balance < cost) {

View File

@ -40,7 +40,7 @@ public class SellGUI extends GUIMerchant {
private void sell(VillagerType villagerType, Player player, Material material, int amount, Price price) {
Economy econ = VillagerUI.getInstance().getEconomy();
EconUser econUser = EconUser.users.get(player.getUniqueId());
EconUser econUser = EconUser.getUser(player.getUniqueId());
int oldPoints = econUser.getPointsMap().get(villagerType.getName());
int trans_pts = (int) (Math.floor(price.getPrice(amount)/ WorthConfig.POINT_MOD) * amount);
double cost = price.calculatePriceThing(oldPoints, trans_pts);

View File

@ -2,7 +2,7 @@ package com.alttd;
import com.alttd.GUI.GUIListener;
import com.alttd.commands.CommandManager;
import com.alttd.commands.database.Database;
import com.alttd.database.Database;
import com.alttd.config.Config;
import com.alttd.config.VillagerConfig;
import com.alttd.config.WorthConfig;

View File

@ -81,7 +81,7 @@ public class Queries {
* @return success
*/
public static boolean createUserPointsEntry(UUID uuid, String villagerType, int points) {
String sql = "INSERT INTO Points " +
String sql = "INSERT INTO user_points " +
"(uuid, villager_type, points) " +
"(?, ?, ?)";
@ -101,7 +101,7 @@ public class Queries {
}
public static EconUser getEconUser(UUID uuid) {
String sql = "SELECT * FROM POINTS WHERE uuid = ?";
String sql = "SELECT * FROM user_points WHERE uuid = ?";
try {
PreparedStatement preparedStatement = Database.connection.prepareStatement(sql);

View File

@ -1,7 +1,7 @@
package com.alttd.objects;
import com.alttd.VillagerUI;
import com.alttd.commands.database.Queries;
import com.alttd.database.Queries;
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap;
import org.bukkit.scheduler.BukkitRunnable;
@ -9,7 +9,7 @@ import java.util.UUID;
public class EconUser {
public static Object2ObjectArrayMap<UUID, EconUser> users = new Object2ObjectArrayMap<>();
private final static Object2ObjectArrayMap<UUID, EconUser> users = new Object2ObjectArrayMap<>();
private final UUID uuid;
private final Object2ObjectArrayMap<String, Integer> pointsMap;
@ -40,4 +40,9 @@ public class EconUser {
}
}.runTaskAsynchronously(VillagerUI.getInstance());
}
public static EconUser getUser(UUID uuid) {
EconUser user = users.get(uuid);
return (user == null ? Queries.getEconUser(uuid) : user);
}
}