Merge pull request 'napojeni-database' (#11) from napojeni-database into tpwCommand
Reviewed-on: #11tpwCommand
commit
f25197f6fd
11 changed files with 298 additions and 8 deletions
@ -1,12 +1,14 @@ |
||||
package xyz.soukup.mineconomiaCoreV2.core; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.configuration.file.FileConfiguration; |
||||
import org.bukkit.plugin.java.JavaPlugin; |
||||
import xyz.soukup.mineconomiaCoreV2.MineconomiaCoreV2; |
||||
|
||||
import java.util.logging.Logger; |
||||
|
||||
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 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 static xyz.soukup.mineconomiaCoreV2.core.sharedValues.config; |
||||
import static xyz.soukup.mineconomiaCoreV2.core.sharedValues.plugin; |
||||
|
||||
public class MsgRetriever { |
||||
public class LangManager { |
||||
|
||||
public static YamlConfiguration lang = null; |
||||
public static void loadLang(){ |
||||
public static void loadLang(){ |
||||
String langPath = "lang/" + config.getString("lang"); |
||||
plugin.saveResource(langPath, false); |
||||
//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 |
||||
language: "czech.yml" |
||||
language: "czech.yml" |
||||
database: |
||||
host: localhost |
||||
port: 3306 |
||||
user: mcore |
||||
password: mcore |
||||
database: mcore |
||||
Loading…
Reference in new issue