napojeni-database #11
Merged
jakub
merged 9 commits from napojeni-database into tpwCommand 1 year ago
11 changed files with 298 additions and 8 deletions
@ -1,12 +1,14 @@ |
|||||||
package xyz.soukup.mineconomiaCoreV2.core; |
package xyz.soukup.mineconomiaCoreV2.core; |
||||||
|
|
||||||
|
import org.bukkit.Bukkit; |
||||||
import org.bukkit.configuration.file.FileConfiguration; |
import org.bukkit.configuration.file.FileConfiguration; |
||||||
|
import org.bukkit.plugin.java.JavaPlugin; |
||||||
import xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2; |
import xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2; |
||||||
|
|
||||||
import java.util.logging.Logger; |
import java.util.logging.Logger; |
||||||
|
|
||||||
public class sharedValues { |
public class sharedValues { |
||||||
public static MineconomiaCoreV2 plugin = MineconomiaCoreV2.getPlugin(MineconomiaCoreV2.class); |
public static MineconomiaCoreV2 plugin = MineconomiaCoreV2.getInstance(); |
||||||
public static FileConfiguration config = plugin.getConfig(); |
public static FileConfiguration config = plugin.getConfig(); |
||||||
public static Logger logger = plugin.getLogger(); |
public static Logger logger = plugin.getLogger(); |
||||||
} |
} |
||||||
|
|||||||
@ -0,0 +1,113 @@ |
|||||||
|
package xyz.soukup.mineconomiaCoreV2.database; |
||||||
|
|
||||||
|
import jakarta.persistence.Query; |
||||||
|
import jakarta.persistence.criteria.CriteriaBuilder; |
||||||
|
import jakarta.persistence.criteria.CriteriaQuery; |
||||||
|
import org.bukkit.scoreboard.Criteria; |
||||||
|
import org.hibernate.Session; |
||||||
|
import org.hibernate.SessionFactory; |
||||||
|
import org.hibernate.Transaction; |
||||||
|
import org.hibernate.boot.MetadataSources; |
||||||
|
import org.hibernate.boot.model.internal.QueryBinder; |
||||||
|
import org.hibernate.boot.registry.StandardServiceRegistry; |
||||||
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; |
||||||
|
import xyz.soukup.mineconomiaCoreV2.core.sharedValues; |
||||||
|
import xyz.soukup.mineconomiaCoreV2.variables.PlayerData; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Objects; |
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; |
||||||
|
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.logger; |
||||||
|
|
||||||
|
public class HibernateUtil { |
||||||
|
private static SessionFactory sessionFactory; |
||||||
|
|
||||||
|
static { |
||||||
|
|
||||||
|
try { |
||||||
|
|
||||||
|
StandardServiceRegistry registry = new StandardServiceRegistryBuilder() |
||||||
|
.applySettings(getHibernateProperties()) |
||||||
|
.build(); |
||||||
|
|
||||||
|
sessionFactory = new MetadataSources(registry) |
||||||
|
.addAnnotatedClass(PlayerData.class) |
||||||
|
.buildMetadata() |
||||||
|
.buildSessionFactory(); |
||||||
|
|
||||||
|
} catch (Exception e) { |
||||||
|
|
||||||
|
sharedValues.logger.warning(e.toString()); |
||||||
|
|
||||||
|
if (sessionFactory != null) { |
||||||
|
sessionFactory.close(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private static Properties getHibernateProperties() { |
||||||
|
|
||||||
|
String host = config.getString("database.host"); |
||||||
|
String port = config.getString("database.port"); |
||||||
|
String user = config.getString("database.user"); |
||||||
|
String password = config.getString("database.password"); |
||||||
|
String database = config.getString("database.database"); |
||||||
|
|
||||||
|
String jdbcString = "jdbc:mysql://" + host + ":" + port + "/" + database; |
||||||
|
|
||||||
|
Properties properties = new Properties(); |
||||||
|
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); |
||||||
|
properties.put("hibernate.connection.driver_class", "com.mysql.cj.jdbc.Driver"); |
||||||
|
properties.put("hibernate.connection.url", jdbcString); |
||||||
|
properties.put("hibernate.connection.username", user); |
||||||
|
properties.put("hibernate.connection.password", password); |
||||||
|
properties.put("hibernate.hbm2ddl.auto", "update"); |
||||||
|
properties.put("hibernate.show_sql", "true"); |
||||||
|
return properties; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public static SessionFactory getSessionFactory() { |
||||||
|
return sessionFactory; |
||||||
|
} |
||||||
|
|
||||||
|
public static Session newSession(){ |
||||||
|
return getSessionFactory().openSession(); |
||||||
|
} |
||||||
|
|
||||||
|
public static void shutdown() { |
||||||
|
if (sessionFactory != null) { |
||||||
|
sessionFactory.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public static void saveToDatabase(Object object){ |
||||||
|
|
||||||
|
Session session = HibernateUtil.newSession(); |
||||||
|
Transaction transaction = null; |
||||||
|
|
||||||
|
try { |
||||||
|
|
||||||
|
transaction = session.beginTransaction(); |
||||||
|
session.persist(object); |
||||||
|
transaction.commit(); |
||||||
|
session.close(); |
||||||
|
|
||||||
|
}catch (Exception e){ |
||||||
|
|
||||||
|
if (transaction != null) { |
||||||
|
transaction.rollback(); // Rollback if something goes wrong
|
||||||
|
} |
||||||
|
|
||||||
|
logger.warning(e.toString()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
package xyz.soukup.mineconomiaCoreV2.database; |
||||||
|
|
||||||
|
import jakarta.persistence.criteria.CriteriaBuilder; |
||||||
|
import xyz.soukup.mineconomiaCoreV2.variables.PlayerData; |
||||||
|
|
||||||
|
|
||||||
|
public class PlayerDataDatabase { |
||||||
|
|
||||||
|
public static void savePlayerDataToDatabase(PlayerData playerData){ |
||||||
|
HibernateUtil.saveToDatabase(playerData); |
||||||
|
} |
||||||
|
|
||||||
|
public static PlayerData getPlayerDataFromDatabase(String nickname){ |
||||||
|
CriteriaBuilder criteriaBuilder = HibernateUtil.newSession().getCriteriaBuilder(); |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,5 @@ |
|||||||
|
package xyz.soukup.mineconomiaCoreV2.database; |
||||||
|
|
||||||
|
public class PlayerInit { |
||||||
|
public static void onJoin(){} |
||||||
|
} |
||||||
@ -1,13 +1,14 @@ |
|||||||
package xyz.soukup.mineconomiaCoreV2.core; |
package xyz.soukup.mineconomiaCoreV2.tools; |
||||||
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration; |
import org.bukkit.configuration.file.YamlConfiguration; |
||||||
|
|
||||||
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; |
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; |
||||||
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin; |
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin; |
||||||
|
|
||||||
public class MsgRetriever { |
public class LangManager { |
||||||
|
|
||||||
public static YamlConfiguration lang = null; |
public static YamlConfiguration lang = null; |
||||||
public static void loadLang(){ |
public static void loadLang(){ |
||||||
String langPath = "lang/" + config.getString("lang"); |
String langPath = "lang/" + config.getString("lang"); |
||||||
plugin.saveResource(langPath, false); |
plugin.saveResource(langPath, false); |
||||||
//lang = YamlConfiguration.loadConfiguration(plugin.getResource(langPath));
|
//lang = YamlConfiguration.loadConfiguration(plugin.getResource(langPath));
|
||||||
@ -0,0 +1,30 @@ |
|||||||
|
package xyz.soukup.mineconomiaCoreV2.tools; |
||||||
|
|
||||||
|
import org.bukkit.inventory.Inventory; |
||||||
|
import org.bukkit.inventory.ItemStack; |
||||||
|
|
||||||
|
public class inventoryTools { |
||||||
|
|
||||||
|
// Funkce pro zjištění kolikrát je daný item v inventory. Vrátí int
|
||||||
|
public static int getItemCount(Inventory inventory, ItemStack itemStack) { |
||||||
|
|
||||||
|
int count = 0; |
||||||
|
int invLength = inventory.getSize(); |
||||||
|
int i = 0; |
||||||
|
|
||||||
|
while (i < invLength) { |
||||||
|
|
||||||
|
ItemStack currentItem = inventory.getItem(i); |
||||||
|
|
||||||
|
if (!currentItem.isSimilar(itemStack)) { |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
count += currentItem.getAmount(); |
||||||
|
|
||||||
|
i++; |
||||||
|
} |
||||||
|
|
||||||
|
return count; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,61 @@ |
|||||||
|
package xyz.soukup.mineconomiaCoreV2.variables; |
||||||
|
|
||||||
|
import jakarta.persistence.Entity; |
||||||
|
import jakarta.persistence.GeneratedValue; |
||||||
|
import jakarta.persistence.GenerationType; |
||||||
|
import jakarta.persistence.Id; |
||||||
|
|
||||||
|
//Definování Member classy pro databázi a další manipulace
|
||||||
|
|
||||||
|
@Entity |
||||||
|
public class PlayerData { |
||||||
|
|
||||||
|
@Id |
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY) |
||||||
|
private int id; |
||||||
|
|
||||||
|
private String nickname; |
||||||
|
private String uuid; |
||||||
|
private int online; |
||||||
|
private float money; |
||||||
|
|
||||||
|
public int getId() { |
||||||
|
return id; |
||||||
|
} |
||||||
|
|
||||||
|
public void setId(int id) { |
||||||
|
this.id = id; |
||||||
|
} |
||||||
|
|
||||||
|
public String getNickname() { |
||||||
|
return nickname; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNickname(String nickname) { |
||||||
|
this.nickname = nickname; |
||||||
|
} |
||||||
|
|
||||||
|
public String getUuid() { |
||||||
|
return uuid; |
||||||
|
} |
||||||
|
|
||||||
|
public void setUuid(String uuid) { |
||||||
|
this.uuid = uuid; |
||||||
|
} |
||||||
|
|
||||||
|
public int getOnline() { |
||||||
|
return online; |
||||||
|
} |
||||||
|
|
||||||
|
public void setOnline(int online) { |
||||||
|
this.online = online; |
||||||
|
} |
||||||
|
|
||||||
|
public float getMoney() { |
||||||
|
return money; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMoney(float money) { |
||||||
|
this.money = money; |
||||||
|
} |
||||||
|
} |
||||||
@ -1,2 +1,8 @@ |
|||||||
version: 1.0 |
version: 1.0 |
||||||
language: "czech.yml" |
language: "czech.yml" |
||||||
|
database: |
||||||
|
host: localhost |
||||||
|
port: 3306 |
||||||
|
user: mcore |
||||||
|
password: mcore |
||||||
|
database: mcore |
||||||
Loading…
Reference in new issue