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

View File

@ -2,7 +2,7 @@ package com.alttd;
import com.alttd.GUI.GUIListener; import com.alttd.GUI.GUIListener;
import com.alttd.commands.CommandManager; 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.Config;
import com.alttd.config.VillagerConfig; import com.alttd.config.VillagerConfig;
import com.alttd.config.WorthConfig; import com.alttd.config.WorthConfig;

View File

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

View File

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