diff --git a/.gitignore b/.gitignore
index 0e13eeb..c58238a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,4 @@
-target/
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-pom.xml.next
-release.properties
-dependency-reduced-pom.xml
-buildNumber.properties
-.mvn/timing.properties
-# https://github.com/takari/maven-wrapper#usage-without-binary-jar
-.mvn/wrapper/maven-wrapper.jar
+target
+.idea
+*.iml
+dependency-reduced-pom.xml
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index eaf91e2..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 8e0d29b..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dictionaries/Nightwolf.xml b/.idea/dictionaries/Nightwolf.xml
deleted file mode 100644
index 0672d05..0000000
--- a/.idea/dictionaries/Nightwolf.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- tebex
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index a468a99..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/OnsetJava_API_0_1.xml b/.idea/libraries/OnsetJava_API_0_1.xml
deleted file mode 100644
index 2f345fb..0000000
--- a/.idea/libraries/OnsetJava_API_0_1.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/com_google_code_gson_gson_2_8_6.xml b/.idea/libraries/com_google_code_gson_gson_2_8_6.xml
deleted file mode 100644
index 99c3b8a..0000000
--- a/.idea/libraries/com_google_code_gson_gson_2_8_6.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/mysql_mysql_connector_java_8_0_19.xml b/.idea/libraries/mysql_mysql_connector_java_8_0_19.xml
deleted file mode 100644
index 447b99e..0000000
--- a/.idea/libraries/mysql_mysql_connector_java_8_0_19.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index f10f358..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index b93ac08..0000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 9661ac7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 3278787..59b6933 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,23 @@
# YRPF Server
-YRPF (YukiRolePlayFramework) is a Framework for Onset (https://playonset.com/)
-This repository is the server side of the Framework.
-This server is written in Java and need the OnsetJavaPlugin (https://github.com/OnfireNetwork/OnsetJavaPlugin)
+YRPF (YukiRolePlayFramework) is a framework for [Onset](https://playonset.com/)
+This repository is the server-side of the framework.
+This server is written in Java and requires the [OnsetJavaPlugin](https://github.com/OnfireNetwork/OnsetJavaPlugin) and [OnsetJava](https://github.com/OnfireNetwork/OnsetJava)

### Install the plugin on your Onset Server
-VIDEO: https://www.youtube.com/watch?v=cA_qUKJSUCU (in french) (Thank Papy Brossard)
+VIDEO: https://www.youtube.com/watch?v=cA_qUKJSUCU (in french) (Thanks Papy Brossard)
- The plugin has only been tested on Windows and Ubuntu 18
-- Install openjdk 11.0.7 on your server or JDK 8 for Windows
+- Install openjdk 8 or higher on your server or Oracle JDK 8 for Windows
- Set up your JAVA_HOME env variables
-- Uncompress the release.zip in your Onset Server directory https://github.com/OALM-Team/YRPF/releases
-- The zip contains the Java Plugin, Support Java libraries for Onset and the YRPF server config directory
+- Uncompress the [release.zip](https://github.com/OALM-Team/YRPF/releases) in your Onset Server directory
+- The zip contains the java plugin, support java libraries for Onset and the YRPF server config directory
- Add "OnsetJavaPlugin" to your server_config of Onset in the plugins node
- Add the "java" package to your server_config of Onset in the packages node
- Configure the server_config.json of YRPF in the "yrpf" directory
-- Uncompress the YRPF_DB.zip https://github.com/OALM-Team/YRPF/releases
+- Uncompress the [YRPF_DB.zip](https://github.com/OALM-Team/YRPF/releases)
- Import the database from the sql file
-- Install the front of the YRPF Framework (https://github.com/OALM-Team/YRPF-Client)
+- Install the [client-side](https://github.com/OALM-Team/YRPF-Client) of the YRPF Framework
- Add the "yrpf" package to your server_config of Onset in the packages node
- Run your server and have fun :)
@@ -28,11 +28,11 @@ https://stackoverflow.com/questions/28462302/libjvm-so-cannot-open-shared-object
https://askubuntu.com/questions/584529/libjvm-so-cannot-open-shared-object-file-no-such-file-or-directory
## Contribute
-You can help us to translate the framework for other language : https://poeditor.com/join/project/FT7CELbHb6
+You can help us to translate the framework into other languages: https://poeditor.com/join/project/FT7CELbHb6
You can also make a PR for adding new features or fixing bugs
## Authors
-Yuki https://github.com/nightwolf93
+[Yuki](https://github.com/nightwolf93)
## Thanks
Talos, JanHolger, the OALM Team
diff --git a/YukiRPFramework.iml b/YukiRPFramework.iml
deleted file mode 100644
index 4098198..0000000
--- a/YukiRPFramework.iml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/libs/OnsetJava-API-0.1.jar b/libs/OnsetJava-API-0.1.jar
deleted file mode 100644
index cb80d9e..0000000
Binary files a/libs/OnsetJava-API-0.1.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
index ee5b0d1..97785e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,24 +8,44 @@
YukiRPFramework
1.0
+
+
+ jitpack.io
+ https://jitpack.io
+
+
+
- net.onfirenetwork
+ com.github.OnfireNetwork.OnsetJava
OnsetJava-API
- 0.1
+ 0cdd3c23a6
provided
+
+ com.github.JanHolger
+ AJORM
+ 7b62c7979a
+ compile
+
mysql
mysql-connector-java
- 8.0.19
+ 5.1.6
+ provided
com.google.code.gson
gson
2.8.6
+ provided
+
+
+ org.projectlombok
+ lombok
+ 1.18.6
+ provided
-
@@ -38,6 +58,19 @@
8
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.0.0
+
+
+ package
+
+ shade
+
+
+
+
diff --git a/src/main/java/fr/yuki/YukiRPFramework/Database.java b/src/main/java/fr/yuki/YukiRPFramework/Database.java
deleted file mode 100644
index 02d6f9e..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/Database.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package fr.yuki.YukiRPFramework;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.utils.ServerConfig;
-import net.onfirenetwork.onsetjava.Onset;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import com.mysql.cj.jdbc.Driver;
-
-public class Database {
- private static Connection connection;
-
- /**
- * Initialize the connection with the database
- */
- public static void init() {
- try {
- ServerConfig serverConfig = WorldManager.getServerConfig();
- connection = DriverManager.getConnection("jdbc:mysql://" + serverConfig.getSqlHost() + "/" + serverConfig.getSqlDb() + "?autoReconnect=true",
- serverConfig.getSqlUsername(), serverConfig.getSqlPassword());
- Onset.print("Connected to the database with success");
- } catch (Exception e) {
- Onset.print("Error with database connection: " + e.toString());
- }
- }
-
- public static Connection getConnection() {
- return connection;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/ATMDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/ATMDAO.java
deleted file mode 100644
index 8f51949..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/ATMDAO.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.model.ATM;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public class ATMDAO {
- public static ArrayList loadATMs() throws SQLException {
- ArrayList atms = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_atm");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- ATM atm = new ATM();
- atm.setId(resultSet.getInt("id_atm"));
- atm.setX(resultSet.getFloat("x"));
- atm.setY(resultSet.getFloat("y"));
- atm.setZ(resultSet.getFloat("z"));
- atms.add(atm);
- }
- return atms;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/AccountDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/AccountDAO.java
deleted file mode 100644
index 516217e..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/AccountDAO.java
+++ /dev/null
@@ -1,206 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.manager.PhoneManager;
-import fr.yuki.YukiRPFramework.manager.WeaponManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.utils.ServerConfig;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Location;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.sql.*;
-
-public class AccountDAO {
- /**
- * Find the account for a player steam id
- * @param steamId The steam id
- * @return The account
- */
- public static Account findAccountBySteamId(String steamId) throws SQLException {
- Account account = null;
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("SELECT * FROM tbl_account WHERE steam_id=?");
- preparedStatement.setString(1, steamId);
- ResultSet resultSet = preparedStatement.executeQuery();
- if(resultSet.next()) {
- account = fetchResultSet(resultSet);
- }
- resultSet.close();
- preparedStatement.close();
- return account;
- }
-
- public static Account findAccountById(int id) throws SQLException {
- Account account = null;
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("SELECT * FROM tbl_account WHERE id_account=?");
- preparedStatement.setInt(1, id);
- ResultSet resultSet = preparedStatement.executeQuery();
- if(resultSet.next()) {
- account = fetchResultSet(resultSet);
- }
- resultSet.close();
- preparedStatement.close();
- return account;
- }
-
- private static Account fetchResultSet(ResultSet resultSet) throws SQLException {
- Account account = null;
- account = new Account();
- account.setId(resultSet.getInt("id_account"));
- account.setSteamName(resultSet.getString("steam_account_name"));
- account.setSteamId(resultSet.getString("steam_id"));
- account.setIsBanned(resultSet.getInt("is_banned"));
- account.setBankMoney(resultSet.getInt("bank_money"));
- account.setSaveX(resultSet.getDouble("save_x"));
- account.setSaveY(resultSet.getDouble("save_y"));
- account.setSaveZ(resultSet.getDouble("save_z"));
- account.setSaveH(resultSet.getDouble("save_h"));
- account.setCharacterCreationRequest(resultSet.getInt("character_creation_request"));
- account.setCharacterStyle(resultSet.getString("character_style"));
- account.setCharacterName(resultSet.getString("character_name"));
- account.setJobLevels(resultSet.getString("job_levels"));
- account.setIsDead(resultSet.getInt("is_dead"));
- account.setLang(resultSet.getString("lang"));
- account.setAdminLevel(resultSet.getInt("admin_level"));
- account.setFoodState(resultSet.getInt("food_state"));
- account.setDrinkState(resultSet.getInt("drink_state"));
- account.setPhoneNumber(resultSet.getString("phone_number"));
- account.setWeapons(resultSet.getString("weapons"));
- account.setBagId(resultSet.getInt("id_bag"));
- account.setCompagnyId(resultSet.getInt("id_compagny"));
- account.setIsInService(resultSet.getInt("is_in_service"));
- account.setOriginalStyle(resultSet.getString("original_style"));
- account.setHealth(resultSet.getDouble("health"));
- account.setCommandLevel(resultSet.getInt("command_level"));
- account.setCreatedAt(resultSet.getDate("created_at"));
- account.setUpdatedAt(resultSet.getDate("updated_at"));
- return account;
- }
-
- public static Account createAccount(Player player) throws SQLException {
- ServerConfig serverConfig = WorldManager.getServerConfig();
-
- // Create the account object
- Account account = new Account();
- account.setSteamName(player.getName());
- account.setSteamId(player.getSteamId());
- account.setIsBanned(0);
- account.setCharacterCreationRequest(1);
- account.setCharacterStyle("");
- account.setCharacterName("Unknown");
- account.setJobLevels("[]");
- account.setIsDead(0);
- account.setAdminLevel(0);
- account.setLang("fr");
- account.setFoodState(100);
- account.setDrinkState(100);
- account.setPhoneNumber("");
- account.setBagId(-1);
- account.setCompagnyId(-1);
- account.setOriginalStyle("");
- account.setIsInService(0);
- account.setHealth(100);
- account.setCommandLevel(0);
- account.setBankMoney(4000);
- account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
- account.setSaveX(serverConfig.getSpawnPointX());
- account.setSaveY(serverConfig.getSpawnPointY());
- account.setSaveZ(serverConfig.getSpawnPointZ());
- account.setSaveH(serverConfig.getSpawnPointH());
- account.setCreatedAt(new java.util.Date());
- account.setUpdatedAt(new java.util.Date());
-
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_account " +
- "(steam_account_name, steam_id, is_banned, created_at, updated_at, character_creation_request," +
- " character_style, character_name, save_x, save_y, save_z, save_h, id_compagny, health, bank_money, phone_number) VALUES " +
- "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setString(1, account.getSteamName());
- preparedStatement.setString(2, account.getSteamId());
- preparedStatement.setInt(3, account.getIsBanned());
- preparedStatement.setDate(4, new Date(account.getCreatedAt().getTime()));
- preparedStatement.setDate(5, new Date(account.getUpdatedAt().getTime()));
- preparedStatement.setInt(6, account.getCharacterCreationRequest());
- preparedStatement.setString(7, account.getCharacterStyle());
- preparedStatement.setString(8, account.getCharacterName());
- preparedStatement.setDouble(9, account.getSaveX());
- preparedStatement.setDouble(10, account.getSaveY());
- preparedStatement.setDouble(11, account.getSaveZ());
- preparedStatement.setDouble(12, account.getSaveH());
- preparedStatement.setInt(13, account.getCompagnyId());
- preparedStatement.setDouble(14, account.getHealth());
- preparedStatement.setInt(15, account.getBankMoney());
- preparedStatement.setString(16, account.getPhoneNumber());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- account.setId(returnId.getInt(1));
- } else {
- return null;
- }
- returnId.close();
- preparedStatement.close();
- return account;
- }
-
- public static void updateAccount(Account account, Player player) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("UPDATE tbl_account SET is_banned=?, bank_money=?, save_x=?, save_y=?, save_z=?, save_h=?, character_creation_request=?," +
- "character_style=?, character_name=?, job_levels=?, is_dead=?, admin_level=?, lang=?," +
- "food_state=?, drink_state=?, phone_number=?, weapons=?, id_bag=?, id_compagny=?, is_in_service=?, original_style=?," +
- "health=?, command_level=? WHERE id_account=?");
- preparedStatement.setInt(1, account.getIsBanned());
- preparedStatement.setInt(2, account.getBankMoney());
- if(player == null) {
- preparedStatement.setDouble(3, account.getSaveX());
- preparedStatement.setDouble(4, account.getSaveY());
- preparedStatement.setDouble(5, account.getSaveZ());
- preparedStatement.setDouble(6, account.getSaveH());
- } else {
- Location loc = player.getLocationAndHeading();
- preparedStatement.setDouble(3, loc.getX());
- preparedStatement.setDouble(4, loc.getY());
- preparedStatement.setDouble(5, loc.getZ());
- preparedStatement.setDouble(6, loc.getHeading());
- }
- preparedStatement.setInt(7, account.getCharacterCreationRequest());
- preparedStatement.setString(8, account.getCharacterStyle());
- preparedStatement.setString(9, account.getCharacterName());
- preparedStatement.setString(10, account.getJobLevels());
- preparedStatement.setInt(11, account.getIsDead());
- preparedStatement.setInt(12, account.getAdminLevel());
- preparedStatement.setString(13, account.getLang());
- preparedStatement.setInt(14, account.getFoodState());
- preparedStatement.setInt(15, account.getDrinkState());
- preparedStatement.setString(16, account.getPhoneNumber());
- if(player == null) {
- preparedStatement.setString(17, account.getWeapons());
- }
- else {
- account.setWeapons(new Gson().toJson(WeaponManager.getPlayerWeapons(player)));
- preparedStatement.setString(17, account.getWeapons());
- }
- preparedStatement.setDouble(18, account.getBagId());
- preparedStatement.setInt(19, account.getCompagnyId());
- preparedStatement.setInt(20, account.getIsInService());
- preparedStatement.setString(21, account.getOriginalStyle());
- if(player == null) {
- preparedStatement.setDouble(22, account.getHealth());
- }
- else {
- preparedStatement.setDouble(22, player.getHealth());
- }
- preparedStatement.setDouble(23, account.getCommandLevel());
- preparedStatement.setDouble(24, account.getId());
- preparedStatement.execute();
- preparedStatement.close();
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/AccountJobWhitelistDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/AccountJobWhitelistDAO.java
deleted file mode 100644
index 735959c..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/AccountJobWhitelistDAO.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-
-import java.sql.*;
-import java.util.ArrayList;
-
-public class AccountJobWhitelistDAO {
- public static ArrayList loadAccountJobWhitelist() throws SQLException {
- ArrayList accountJobWhitelists = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_account_job_whitelist");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- AccountJobWhitelist accountJobWhitelist = new AccountJobWhitelist();
- accountJobWhitelist.setId(resultSet.getInt("id_account_job_whitelist"));
- accountJobWhitelist.setAccountId(resultSet.getInt("id_account"));
- accountJobWhitelist.setJobId(resultSet.getString("id_job"));
- accountJobWhitelist.setJobLevel(resultSet.getInt("job_level"));
- accountJobWhitelists.add(accountJobWhitelist);
- }
- return accountJobWhitelists;
- }
-
- public static void insertAccountJobWhiteList(AccountJobWhitelist accountJobWhitelist) throws SQLException {
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_account_job_whitelist " +
- "(id_account, id_job, job_level) VALUES " +
- "(?,?,?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setInt(1, accountJobWhitelist.getAccountId());
- preparedStatement.setString(2, accountJobWhitelist.getJobId());
- preparedStatement.setInt(3, accountJobWhitelist.getJobLevel());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- accountJobWhitelist.setId(returnId.getInt(1));
- }
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/CompagnyDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/CompagnyDAO.java
deleted file mode 100644
index cc3f2f8..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/CompagnyDAO.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.Compagny;
-import fr.yuki.YukiRPFramework.model.PhoneContact;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-
-public class CompagnyDAO {
- public static ArrayList loadCompagnies() throws SQLException {
- ArrayList compagnies = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_compagny");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- Compagny compagny = new Compagny();
- compagny.setId(resultSet.getInt("id_compagny"));
- compagny.setName(resultSet.getString("name"));
- compagny.setBankCash(resultSet.getInt("bank_cash"));
- compagny.setOwner(resultSet.getString("owner"));
- compagny.setMaxMember(resultSet.getInt("max_member"));
-
- compagnies.add(compagny);
- }
- return compagnies;
- }
-
- public static void insertCompagny(Compagny compagny) throws SQLException {
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_compagny " +
- "(name, bank_cash, owner, max_member) VALUES " +
- "(?,?,?, ?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setString(1, compagny.getName());
- preparedStatement.setInt(2, compagny.getBankCash());
- preparedStatement.setString(3, compagny.getOwner());
- preparedStatement.setInt(4, compagny.getMaxMember());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- compagny.setId(returnId.getInt(1));
- }
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/FuelPointDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/FuelPointDAO.java
deleted file mode 100644
index fd2a378..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/FuelPointDAO.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.FuelPoint;
-import fr.yuki.YukiRPFramework.model.JobOutfit;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class FuelPointDAO {
- public static ArrayList loadFuelPoints() throws SQLException {
- ArrayList fuelPoints = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_fuel_point");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- FuelPoint fuelPoint = new FuelPoint();
- fuelPoint.setId(resultSet.getInt("id_fuel_point"));
- fuelPoint.setX(resultSet.getDouble("x"));
- fuelPoint.setY(resultSet.getDouble("y"));
- fuelPoint.setZ(resultSet.getDouble("z"));
- fuelPoint.setPrice(resultSet.getInt("price"));
-
- fuelPoints.add(fuelPoint);
- }
- return fuelPoints;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/GarageDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/GarageDAO.java
deleted file mode 100644
index 5da8889..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/GarageDAO.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.Garage;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class GarageDAO {
- public static ArrayList loadGarages() throws SQLException {
- ArrayList garages = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_garage");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- Garage garage = new Garage();
- garage.setId(resultSet.getInt("id_garage"));
- garage.setName(resultSet.getString("name"));
- garage.setCostToUse(resultSet.getInt("cost_to_use"));
- garage.setX(resultSet.getDouble("x"));
- garage.setY(resultSet.getDouble("y"));
- garage.setZ(resultSet.getDouble("z"));
- garages.add(garage);
- }
- return garages;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/GrowboxDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/GrowboxDAO.java
deleted file mode 100644
index 108d986..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/GrowboxDAO.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.Compagny;
-import fr.yuki.YukiRPFramework.model.GrowboxModel;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-
-public class GrowboxDAO {
- public static ArrayList loadGrowbox() throws SQLException {
- ArrayList growboxs = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_growbox");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- GrowboxModel growboxModel = new GrowboxModel();
- growboxModel.setId(resultSet.getInt("id_growbox"));
- growboxModel.setX(resultSet.getFloat("x"));
- growboxModel.setY(resultSet.getFloat("y"));
- growboxModel.setZ(resultSet.getFloat("z"));
- growboxModel.setRx(resultSet.getFloat("rx"));
- growboxModel.setRy(resultSet.getFloat("ry"));
- growboxModel.setRz(resultSet.getFloat("rz"));
- growboxs.add(growboxModel);
- }
- return growboxs;
- }
-
- public static void insertGrowbox(GrowboxModel growboxModel) throws SQLException {
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_growbox " +
- "(x, y, z, rx, ry, rz) VALUES " +
- "(?,?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setDouble(1, growboxModel.getX());
- preparedStatement.setDouble(2, growboxModel.getY());
- preparedStatement.setDouble(3, growboxModel.getZ());
- preparedStatement.setDouble(4, growboxModel.getRx());
- preparedStatement.setDouble(5, growboxModel.getRy());
- preparedStatement.setDouble(6, growboxModel.getRz());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- growboxModel.setId(returnId.getInt(1));
- }
- returnId.close();
- }
-
- public static void deleteGrowbox(GrowboxModel growboxModel) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("DELETE FROM tbl_growbox WHERE id_growbox=?");
- preparedStatement.setInt(1, growboxModel.getId());
- preparedStatement.executeUpdate();
- preparedStatement.close();
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/HouseDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/HouseDAO.java
deleted file mode 100644
index d3386aa..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/HouseDAO.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-import fr.yuki.YukiRPFramework.model.House;
-import fr.yuki.YukiRPFramework.model.VehicleGarage;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-
-public class HouseDAO {
- public static ArrayList loadHouses() throws SQLException {
- ArrayList houses = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_house");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- House house = new House();
- house.setId(resultSet.getInt("id_house"));
- house.setAccountId(resultSet.getInt("id_account"));
- house.setPrice(resultSet.getInt("price"));
- house.setName(resultSet.getString("name"));
- house.setSx(resultSet.getDouble("sx"));
- house.setSy(resultSet.getDouble("sy"));
- house.setSz(resultSet.getDouble("sz"));
- house.setEx(resultSet.getDouble("ex"));
- house.setEy(resultSet.getDouble("ey"));
- house.setEz(resultSet.getDouble("ez"));
- houses.add(house);
- }
- return houses;
- }
-
- public static void saveHouse(House house) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("UPDATE tbl_house SET id_account=?, price=?, name=? WHERE id_house=?");
- preparedStatement.setInt(1, house.getAccountId());
- preparedStatement.setInt(2, house.getPrice());
- preparedStatement.setString(3, house.getName());
- preparedStatement.setInt(4, house.getId());
- preparedStatement.execute();
- }
-
- public static void insertHouse(House house) throws SQLException {
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_house " +
- "(id_account, price, name, sx,sy,sz,ex,ey,ez) VALUES " +
- "(?,?,?,?,?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setInt(1, house.getAccountId());
- preparedStatement.setInt(2, house.getPrice());
- preparedStatement.setString(3, house.getName());
- preparedStatement.setDouble(4, house.getSx());
- preparedStatement.setDouble(5, house.getSy());
- preparedStatement.setDouble(6, house.getSz());
- preparedStatement.setDouble(7, house.getEx());
- preparedStatement.setDouble(8, house.getEy());
- preparedStatement.setDouble(9, house.getEz());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- house.setId(returnId.getInt(1));
- }
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/HouseItemDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/HouseItemDAO.java
deleted file mode 100644
index 4500e56..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/HouseItemDAO.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.House;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-
-import java.sql.*;
-import java.util.ArrayList;
-
-public class HouseItemDAO {
- public static ArrayList loadHouseItems() throws SQLException {
- ArrayList houseItemObjects = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_house_item");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- HouseItemObject houseItemObject = new HouseItemObject();
- houseItemObject.setId(resultSet.getInt("id_house_item"));
- houseItemObject.setModelId(resultSet.getInt("model_id"));
- houseItemObject.setFunctionId(resultSet.getInt("function_id"));
- houseItemObject.setX(resultSet.getDouble("x"));
- houseItemObject.setY(resultSet.getDouble("y"));
- houseItemObject.setZ(resultSet.getDouble("z"));
- houseItemObject.setRx(resultSet.getDouble("rx"));
- houseItemObject.setRy(resultSet.getDouble("ry"));
- houseItemObject.setRz(resultSet.getDouble("rz"));
- houseItemObjects.add(houseItemObject);
- }
- return houseItemObjects;
- }
-
- public static void insertHouseItem(HouseItemObject houseItemObject) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_house_item " +
- "(model_id, function_id, id_house, x, y, z, rx, ry, rz) VALUES " +
- "(?,?,?,?,?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
- preparedStatement.setInt(1, houseItemObject.getModelId());
- preparedStatement.setInt(2, houseItemObject.getFunctionId());
- preparedStatement.setInt(3, houseItemObject.getHouse().getId());
- preparedStatement.setDouble(4, houseItemObject.getX());
- preparedStatement.setDouble(5, houseItemObject.getY());
- preparedStatement.setDouble(6, houseItemObject.getZ());
- preparedStatement.setDouble(7, houseItemObject.getRx());
- preparedStatement.setDouble(8, houseItemObject.getRy());
- preparedStatement.setDouble(9, houseItemObject.getRz());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- houseItemObject.setId(returnId.getInt(1));
- }
- }
-
- public static void deleteHouseItem(HouseItemObject houseItemObject) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("DELETE FROM tbl_house_item WHERE id_house_item=?");
- preparedStatement.setInt(1, houseItemObject.getId());
- preparedStatement.executeUpdate();
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/InventoryDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/InventoryDAO.java
deleted file mode 100644
index 4121ed8..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/InventoryDAO.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-
-public class InventoryDAO {
-
- /**
- * Create a new inventory empty
- * @return The inventory
- */
- public static Inventory createInventory() throws SQLException {
- // Create the object
- Inventory inventory = new Inventory();
- inventory.setInventoryType(-1);
- inventory.setInventoryItemType(-1);
- inventory.setCharacterId(-1);
- inventory.setVehicleId(-1);
- inventory.setContent("[]");
-
- // Insert the inventory
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_inventory " +
- "(inventory_type, inventory_item_type, character_id, vehicle_id, content) VALUES " +
- "(?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
- preparedStatement.setInt(1, inventory.getInventoryType());
- preparedStatement.setInt(2, inventory.getInventoryItemType());
- preparedStatement.setInt(3, inventory.getCharacterId());
- preparedStatement.setInt(4, inventory.getVehicleId());
- preparedStatement.setString(5, inventory.getContent());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- inventory.setId(returnId.getInt(1));
- } else {
- return null;
- }
- returnId.close();
- preparedStatement.close();
- return inventory;
- }
-
- /**
- * Update the inventory in the database
- * @param inventory The inventory
- * @throws SQLException The error
- */
- public static void updateInventory(Inventory inventory) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("UPDATE tbl_inventory SET inventory_type=?, inventory_item_type=?, " +
- "character_id=?, vehicle_id=?, content=? WHERE id_inventory=?");
- preparedStatement.setInt(1, inventory.getInventoryType());
- preparedStatement.setInt(2, inventory.getInventoryItemType());
- preparedStatement.setInt(3, inventory.getCharacterId());
- preparedStatement.setInt(4, inventory.getVehicleId());
- preparedStatement.setString(5, inventory.getContent());
- preparedStatement.setInt(6, inventory.getId());
- preparedStatement.execute();
-
- preparedStatement.close();
- }
-
- public static HashMap loadInventories() throws SQLException {
- HashMap inventoryHashMap = new HashMap();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_inventory");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- Inventory inventory = new Inventory();
- inventory.setId(resultSet.getInt("id_inventory"));
- inventory.setInventoryType(resultSet.getInt("inventory_type"));
- inventory.setInventoryType(resultSet.getInt("inventory_item_type"));
- inventory.setCharacterId(resultSet.getInt("character_id"));
- inventory.setVehicleId(resultSet.getInt("vehicle_id"));
- inventory.setContent(resultSet.getString("content"));
- inventory.parseContent();
- inventoryHashMap.put(inventory.getId(), inventory);
- }
- resultSet.close();
- preparedStatement.close();
- return inventoryHashMap;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/ItemTemplateDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/ItemTemplateDAO.java
deleted file mode 100644
index 24ee9a8..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/ItemTemplateDAO.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.HashMap;
-
-public class ItemTemplateDAO {
- public static HashMap getItemTemplates() throws SQLException {
- HashMap itemTemplateHashMap = new HashMap();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_item_template");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- ItemTemplate itemTemplate = new ItemTemplate();
- itemTemplate.setId(resultSet.getInt("id_item_template"));
- itemTemplate.setName(resultSet.getString("name"));
- itemTemplate.setDescription(resultSet.getString("description"));
- itemTemplate.setWeight(resultSet.getFloat("weight"));
- itemTemplate.setPictureName(resultSet.getString("picture_name"));
- itemTemplate.setItemType(resultSet.getInt("item_type"));
- itemTemplate.setModelId(resultSet.getInt("model_id"));
- itemTemplate.setModelScale(resultSet.getDouble("model_scale"));
- itemTemplate.setFoodValue(resultSet.getInt("food_value"));
- itemTemplate.setDrinkValue(resultSet.getInt("drink_value"));
- itemTemplate.setWeaponId(resultSet.getInt("id_weapon"));
- itemTemplate.setAmmoPerRecharge(resultSet.getInt("ammo_per_recharge"));
- itemTemplate.setMaskId(resultSet.getInt("id_mask"));
- itemTemplate.setBagId(resultSet.getInt("id_bag"));
- itemTemplateHashMap.put(itemTemplate.getId(), itemTemplate);
- }
- return itemTemplateHashMap;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/JobLevelDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/JobLevelDAO.java
deleted file mode 100644
index b7c684d..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/JobLevelDAO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.JobLevel;
-import fr.yuki.YukiRPFramework.model.JobTool;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class JobLevelDAO {
- public static ArrayList loadJobLevels() throws SQLException {
- ArrayList jobLevels = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_job_level");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- JobLevel jobLevel = new JobLevel();
-
- jobLevel.setId(resultSet.getInt("id_job_level"));
- jobLevel.setJobId(resultSet.getString("id_job"));
- jobLevel.setName(resultSet.getString("name"));
- jobLevel.setLevel(resultSet.getInt("level"));
- jobLevel.setExpFloor(resultSet.getInt("exp_floor"));
-
- jobLevels.add(jobLevel);
- }
- return jobLevels;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/JobNPCDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/JobNPCDAO.java
deleted file mode 100644
index 9e689df..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/JobNPCDAO.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.JobNPC;
-import fr.yuki.YukiRPFramework.model.JobNPCListItem;
-import fr.yuki.YukiRPFramework.model.SellListItem;
-import fr.yuki.YukiRPFramework.model.VehicleSeller;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class JobNPCDAO {
- public static ArrayList loadJobNPCS() throws SQLException {
- ArrayList jobNPCS = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_job_npc");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- JobNPC jobNPC = new JobNPC();
-
- jobNPC.setId(resultSet.getInt("id_job_npc"));
- jobNPC.setJobId(resultSet.getString("id_job"));
- jobNPC.setName(resultSet.getString("name"));
- jobNPC.setX(resultSet.getDouble("x"));
- jobNPC.setY(resultSet.getDouble("y"));
- jobNPC.setZ(resultSet.getDouble("z"));
- jobNPC.setH(resultSet.getDouble("h"));
- jobNPC.setNpcClothing(resultSet.getInt("npc_clothing"));
- jobNPC.setBuyList(new Gson().fromJson(resultSet.getString("buy_list"),
- new TypeToken>(){}.getType()));
- jobNPC.setSellList(new Gson().fromJson(resultSet.getString("sell_list"),
- new TypeToken>(){}.getType()));
-
- jobNPCS.add(jobNPC);
- }
- return jobNPCS;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/JobOutfitDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/JobOutfitDAO.java
deleted file mode 100644
index 53f3231..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/JobOutfitDAO.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-import fr.yuki.YukiRPFramework.model.JobOutfit;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class JobOutfitDAO {
- public static ArrayList loadJobOutfits() throws SQLException {
- ArrayList jobOutfits = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_job_outfit");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- JobOutfit jobOutfit = new JobOutfit();
- jobOutfit.setId(resultSet.getInt("id_job_outfit"));
- jobOutfit.setJobId(resultSet.getString("id_job"));
- jobOutfit.setLevelRequired(resultSet.getInt("level_required"));
- jobOutfit.setName(resultSet.getString("name"));
- jobOutfit.setOutfit(resultSet.getString("outfit"));
- jobOutfit.setX(resultSet.getDouble("x"));
- jobOutfit.setY(resultSet.getDouble("y"));
- jobOutfit.setZ(resultSet.getDouble("z"));
-
- jobOutfits.add(jobOutfit);
- }
- return jobOutfits;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/JobToolDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/JobToolDAO.java
deleted file mode 100644
index d63ddcb..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/JobToolDAO.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.JobNPC;
-import fr.yuki.YukiRPFramework.model.JobNPCListItem;
-import fr.yuki.YukiRPFramework.model.JobTool;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class JobToolDAO {
- public static ArrayList loadJobTools() throws SQLException {
- ArrayList jobTools = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_job_tool");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- JobTool jobTool = new JobTool();
-
- jobTool.setId(resultSet.getInt("id_job_tool"));
- jobTool.setModelId(resultSet.getInt("model_id"));
- jobTool.setName(resultSet.getString("name"));
- jobTool.setJobType(resultSet.getString("job_type"));
- jobTool.setLevelRequired(resultSet.getInt("level_required"));
- jobTool.setJobToolType(resultSet.getString("job_tool_type"));
- jobTool.setReward(resultSet.getInt("reward"));
- jobTool.setX(resultSet.getDouble("x"));
- jobTool.setY(resultSet.getDouble("y"));
- jobTool.setZ(resultSet.getDouble("z"));
- jobTool.setRx(resultSet.getDouble("r_x"));
- jobTool.setRy(resultSet.getDouble("r_y"));
- jobTool.setRz(resultSet.getDouble("r_z"));
- jobTool.setSx(resultSet.getDouble("s_x"));
- jobTool.setSy(resultSet.getDouble("s_y"));
- jobTool.setSz(resultSet.getDouble("s_z"));
-
- jobTools.add(jobTool);
- }
- return jobTools;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/JobVehicleRentalDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/JobVehicleRentalDAO.java
deleted file mode 100644
index e873cb0..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/JobVehicleRentalDAO.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.JobLevel;
-import fr.yuki.YukiRPFramework.model.JobVehicleRental;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class JobVehicleRentalDAO {
- public static ArrayList loadJobVehicleRental() throws SQLException {
- ArrayList jobVehicleRentals = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_job_vehicle_rental");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- JobVehicleRental jobVehicleRental = new JobVehicleRental();
-
- jobVehicleRental.setId(resultSet.getInt("id_job_vehicle_rental"));
- jobVehicleRental.setJobId(resultSet.getString("id_job"));
- jobVehicleRental.setLevelRequired(resultSet.getInt("level_required"));
- jobVehicleRental.setName(resultSet.getString("name"));
- jobVehicleRental.setVehicleModelId(resultSet.getInt("vehicle_model_id"));
- jobVehicleRental.setCost(resultSet.getInt("cost"));
- jobVehicleRental.setX(resultSet.getDouble("x"));
- jobVehicleRental.setY(resultSet.getDouble("y"));
- jobVehicleRental.setZ(resultSet.getDouble("z"));
- jobVehicleRental.setSpawnX(resultSet.getDouble("spawn_x"));
- jobVehicleRental.setSpawnY(resultSet.getDouble("spawn_y"));
- jobVehicleRental.setSpawnZ(resultSet.getDouble("spawn_z"));
- jobVehicleRental.setColor(resultSet.getString("color"));
- jobVehicleRentals.add(jobVehicleRental);
- }
- return jobVehicleRentals;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/OutfitPointDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/OutfitPointDAO.java
deleted file mode 100644
index a3cfcea..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/OutfitPointDAO.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.FuelPoint;
-import fr.yuki.YukiRPFramework.model.OutfitPoint;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class OutfitPointDAO {
- public static ArrayList loadOutfitPoint() throws SQLException {
- ArrayList outfitPoints = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_outfit_point");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- OutfitPoint outfitPoint = new OutfitPoint();
- outfitPoint.setId(resultSet.getInt("id_outfit_point"));
- outfitPoint.setX(resultSet.getDouble("x"));
- outfitPoint.setY(resultSet.getDouble("y"));
- outfitPoint.setZ(resultSet.getDouble("z"));
-
- outfitPoints.add(outfitPoint);
- }
- return outfitPoints;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/PhoneContactDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/PhoneContactDAO.java
deleted file mode 100644
index 46f9a2b..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/PhoneContactDAO.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-import fr.yuki.YukiRPFramework.model.FuelPoint;
-import fr.yuki.YukiRPFramework.model.PhoneContact;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-
-public class PhoneContactDAO {
- public static ArrayList loadPhoneContacts() throws SQLException {
- ArrayList phoneContacts = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_phone_contact");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- PhoneContact phoneContact = new PhoneContact();
- phoneContact.setId(resultSet.getInt("id_phone_contact"));
- phoneContact.setAccountId(resultSet.getInt("id_account"));
- phoneContact.setName(resultSet.getString("name"));
- phoneContact.setNumber(resultSet.getString("phone_number"));
-
- phoneContacts.add(phoneContact);
- }
- return phoneContacts;
- }
-
- public static void insertPhoneContact(PhoneContact phoneContact) throws SQLException {
- // Execute the query
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_phone_contact " +
- "(id_account, name, phone_number) VALUES " +
- "(?,?,?)", Statement.RETURN_GENERATED_KEYS);
-
- preparedStatement.setInt(1, phoneContact.getAccountId());
- preparedStatement.setString(2, phoneContact.getName());
- preparedStatement.setString(3, phoneContact.getNumber());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- phoneContact.setId(returnId.getInt(1));
- }
- returnId.close();
- preparedStatement.close();
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/SellerDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/SellerDAO.java
deleted file mode 100644
index f360b3b..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/SellerDAO.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.JobNPC;
-import fr.yuki.YukiRPFramework.model.JobNPCListItem;
-import fr.yuki.YukiRPFramework.model.Seller;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class SellerDAO {
- public static ArrayList loadSellers() throws SQLException {
- ArrayList sellers = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_seller");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- Seller seller = new Seller();
-
- seller.setId(resultSet.getInt("id_seller"));
- seller.setName(resultSet.getString("name"));
- seller.setX(resultSet.getDouble("x"));
- seller.setY(resultSet.getDouble("y"));
- seller.setZ(resultSet.getDouble("z"));
- seller.setH(resultSet.getDouble("h"));
- seller.setNpcClothing(resultSet.getInt("npc_clothing"));
- seller.setItemList(resultSet.getString("item_list"));
- seller.setJobRequired(resultSet.getString("job_required"));
- seller.setJobLevelRequired(resultSet.getInt("job_level_required"));
-
- sellers.add(seller);
- }
- preparedStatement.close();
- resultSet.close();
- return sellers;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleGarageDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleGarageDAO.java
deleted file mode 100644
index 1de7772..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleGarageDAO.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.VehicleGarage;
-
-import java.sql.*;
-import java.util.ArrayList;
-
-public class VehicleGarageDAO {
- public static VehicleGarage createVehicleGarage(VehicleGarage vehicleGarage) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("INSERT INTO tbl_vehicle_garage " +
- "(id_garage, id_last_garage, id_model, damage, licence_plate, color, created_at, updated_at, uuid, owner, health) VALUES " +
- "(?,?,?,?,?,?,?,?,?,?,?)", Statement.RETURN_GENERATED_KEYS);
- preparedStatement.setInt(1, vehicleGarage.getGarageId());
- preparedStatement.setInt(2, vehicleGarage.getGarageLastId());
- preparedStatement.setInt(3, vehicleGarage.getModelId());
- preparedStatement.setString(4, vehicleGarage.getDamage());
- preparedStatement.setString(5, vehicleGarage.getLicencePlate());
- preparedStatement.setString(6, vehicleGarage.getColor());
- preparedStatement.setDate(7, new Date(new java.util.Date().getTime()));
- preparedStatement.setDate(8, new Date(new java.util.Date().getTime()));
- preparedStatement.setString(9, vehicleGarage.getUuid());
- preparedStatement.setInt(10, vehicleGarage.getOwner());
- preparedStatement.setDouble(11, vehicleGarage.getHealth());
- preparedStatement.executeUpdate();
-
- ResultSet returnId = preparedStatement.getGeneratedKeys();
- if(returnId.next()) {
- vehicleGarage.setVehicleGarageId(returnId.getInt(1));
- } else {
- return null;
- }
- returnId.close();
- preparedStatement.close();
- return vehicleGarage;
- }
-
- public static ArrayList loadVehiclesGarage() throws SQLException {
- ArrayList vehicleGarages = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_vehicle_garage");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- VehicleGarage vehicleGarage = new VehicleGarage();
-
- vehicleGarage.setVehicleGarageId(resultSet.getInt("id_vehicle_garage"));
- vehicleGarage.setOwner(resultSet.getInt("owner"));
- vehicleGarage.setUuid(resultSet.getString("uuid"));
- vehicleGarage.setGarageId(resultSet.getInt("id_garage"));
- vehicleGarage.setGarageLastId(resultSet.getInt("id_last_garage"));
- vehicleGarage.setModelId(resultSet.getInt("id_model"));
- vehicleGarage.setDamage(resultSet.getString("damage"));
- vehicleGarage.setHealth(resultSet.getDouble("health"));
- vehicleGarage.setLicencePlate(resultSet.getString("licence_plate"));
- vehicleGarage.setColor(resultSet.getString("color"));
- vehicleGarage.setCreatedAt(resultSet.getDate("created_at"));
- vehicleGarage.setUpdateAt(resultSet.getDate("updated_at"));
-
- vehicleGarages.add(vehicleGarage);
- }
- preparedStatement.close();
- resultSet.close();
- return vehicleGarages;
- }
-
- public static void saveVehicleGarage(VehicleGarage vehicleGarage) throws SQLException {
- PreparedStatement preparedStatement = Database.getConnection()
- .prepareStatement("UPDATE tbl_vehicle_garage SET id_garage=?, id_last_garage=?, color=?, licence_plate=?, damage=?, health=? WHERE id_vehicle_garage=?");
- preparedStatement.setInt(1, vehicleGarage.getGarageId());
- preparedStatement.setInt(2, vehicleGarage.getGarageLastId());
- preparedStatement.setString(3, vehicleGarage.getColor());
- preparedStatement.setString(4, vehicleGarage.getLicencePlate());
- preparedStatement.setString(5, vehicleGarage.getDamage());
- preparedStatement.setDouble(6, vehicleGarage.getHealth());
- preparedStatement.setInt(7, vehicleGarage.getVehicleGarageId());
- preparedStatement.execute();
- preparedStatement.close();
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleSellerDAO.java b/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleSellerDAO.java
deleted file mode 100644
index 0a61196..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/dao/VehicleSellerDAO.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package fr.yuki.YukiRPFramework.dao;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.Database;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.model.SellListItem;
-import fr.yuki.YukiRPFramework.model.VehicleGarage;
-import fr.yuki.YukiRPFramework.model.VehicleSeller;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class VehicleSellerDAO {
-
- public static ArrayList loadVehicleSellers() throws SQLException {
- ArrayList vehicleSellers = new ArrayList<>();
- PreparedStatement preparedStatement = Database.getConnection().prepareStatement("SELECT * FROM tbl_vehicle_seller");
- ResultSet resultSet = preparedStatement.executeQuery();
- while(resultSet.next()) {
- VehicleSeller vehicleSeller = new VehicleSeller();
-
- vehicleSeller.setId(resultSet.getInt("id_vehicle_seller"));
- vehicleSeller.setName(resultSet.getString("name"));
- vehicleSeller.setNpcClothing(resultSet.getInt("npc_clothing"));
- vehicleSeller.setX(resultSet.getDouble("x"));
- vehicleSeller.setY(resultSet.getDouble("y"));
- vehicleSeller.setZ(resultSet.getDouble("z"));
- vehicleSeller.setH(resultSet.getDouble("h"));
- vehicleSeller.setsX(resultSet.getDouble("s_x"));
- vehicleSeller.setsY(resultSet.getDouble("s_y"));
- vehicleSeller.setsZ(resultSet.getDouble("s_z"));
- vehicleSeller.setsH(resultSet.getDouble("s_h"));
- vehicleSeller.setSellList(new Gson().fromJson(resultSet.getString("sell_list"),
- new TypeToken>(){}.getType()));
-
- vehicleSellers.add(vehicleSeller);
- }
- preparedStatement.close();
- resultSet.close();
- return vehicleSellers;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/enums/JobEnum.java b/src/main/java/fr/yuki/YukiRPFramework/enums/JobEnum.java
deleted file mode 100644
index 37b2ebc..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/enums/JobEnum.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package fr.yuki.YukiRPFramework.enums;
-
-public enum JobEnum {
- LUMBERJACK("LUMBERJACK"),
- DELIVERY("DELIVERY"),
- MINER("MINER"),
- FISHER("FISHER"),
- POLICE("POLICE"),
- WEED("WEED"),
- GARBAGE("GARBAGE"),
- EMS("EMS");
-
- public final String type;
- private JobEnum(String type) {
- this.type = type;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/AccountManager.java b/src/main/java/fr/yuki/YukiRPFramework/manager/AccountManager.java
deleted file mode 100644
index c094222..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/AccountManager.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import fr.yuki.YukiRPFramework.dao.AccountJobWhitelistDAO;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-import net.onfirenetwork.onsetjava.Onset;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class AccountManager {
- private static ArrayList accountJobWhitelists;
-
- public static void init() throws SQLException {
- accountJobWhitelists = AccountJobWhitelistDAO.loadAccountJobWhitelist();
- Onset.print("Loaded " + accountJobWhitelists.size() + " account job whitelist(s) from database");
- }
-
- public static ArrayList getAccountJobWhitelists() {
- return accountJobWhitelists;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/ATM.java b/src/main/java/fr/yuki/YukiRPFramework/model/ATM.java
deleted file mode 100644
index a4d149e..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/ATM.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Pickup;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class ATM {
- private int id;
- private float x;
- private float y;
- private float z;
- private Pickup pickup;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public float getX() {
- return x;
- }
-
- public void setX(float x) {
- this.x = x;
- }
-
- public float getY() {
- return y;
- }
-
- public void setY(float y) {
- this.y = y;
- }
-
- public float getZ() {
- return z;
- }
-
- public void setZ(float z) {
- this.z = z;
- }
-
- public Pickup getPickup() {
- return pickup;
- }
-
- public void setPickup(Pickup pickup) {
- this.pickup = pickup;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 150) {
- return true;
- }
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/Account.java b/src/main/java/fr/yuki/YukiRPFramework/model/Account.java
deleted file mode 100644
index 6383db9..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/Account.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.character.CharacterJobLevel;
-import fr.yuki.YukiRPFramework.character.CharacterStyle;
-import fr.yuki.YukiRPFramework.net.payload.RequestBuyVehiclePayload;
-
-import java.util.ArrayList;
-import java.util.Date;
-
-public class Account {
- private int id;
- private int adminLevel;
- private String steamName;
- private String steamId;
- private Date createdAt;
- private Date updatedAt;
- private int isBanned;
- private int bankMoney;
- private double saveX;
- private double saveY;
- private double saveZ;
- private double saveH;
- private int characterCreationRequest;
- private String characterStyle;
- private String characterName;
- private String jobLevels;
- private int isDead;
- private String lang;
- private int foodState;
- private int drinkState;
- private String phoneNumber;
- private String weapons;
- private int bagId;
- private int compagnyId;
- private int isInService;
- private String originalStyle;
- private double health;
- private int commandLevel;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getSteamName() {
- return steamName;
- }
-
- public void setSteamName(String steamName) {
- this.steamName = steamName;
- }
-
- public String getSteamId() {
- return steamId;
- }
-
- public void setSteamId(String steamId) {
- this.steamId = steamId;
- }
-
- public Date getCreatedAt() {
- return createdAt;
- }
-
- public void setCreatedAt(Date createdAt) {
- this.createdAt = createdAt;
- }
-
- public Date getUpdatedAt() {
- return updatedAt;
- }
-
- public void setUpdatedAt(Date updatedAt) {
- this.updatedAt = updatedAt;
- }
-
- public int getIsBanned() {
- return isBanned;
- }
-
- public void setIsBanned(int isBanned) {
- this.isBanned = isBanned;
- }
-
- public int getBankMoney() {
- return bankMoney;
- }
-
- public void setBankMoney(int bankMoney) {
- this.bankMoney = bankMoney;
- }
-
- public double getSaveX() {
- return saveX;
- }
-
- public void setSaveX(double saveX) {
- this.saveX = saveX;
- }
-
- public double getSaveY() {
- return saveY;
- }
-
- public void setSaveY(double saveY) {
- this.saveY = saveY;
- }
-
- public double getSaveZ() {
- return saveZ;
- }
-
- public void setSaveZ(double saveZ) {
- this.saveZ = saveZ;
- }
-
- public double getSaveH() {
- return saveH;
- }
-
- public void setSaveH(double saveH) {
- this.saveH = saveH;
- }
-
- public int getFoodState() {
- return foodState;
- }
-
- public void setFoodState(int foodState) {
- this.foodState = foodState;
- }
-
- public int getDrinkState() {
- return drinkState;
- }
-
- public void setDrinkState(int drinkState) {
- this.drinkState = drinkState;
- }
-
- public int getCharacterCreationRequest() {
- return characterCreationRequest;
- }
-
- public void setCharacterCreationRequest(int characterCreationRequest) {
- this.characterCreationRequest = characterCreationRequest;
- }
-
- public String getCharacterStyle() {
- return characterStyle;
- }
-
- public void setCharacterStyle(String characterStyle) {
- this.characterStyle = characterStyle;
- }
-
- public void setCharacterStyle(CharacterStyle characterStyle) {
- this.characterStyle = new Gson().toJson(characterStyle);
- }
-
- public CharacterStyle decodeCharacterStyle() {
- if(this.characterStyle.equals("")) return new CharacterStyle();
- return new Gson().fromJson(this.characterStyle, CharacterStyle.class);
- }
-
- public CharacterStyle decodeOriginalCharacterStyle() {
- if(this.originalStyle.equals("")) return new CharacterStyle();
- return new Gson().fromJson(this.originalStyle, CharacterStyle.class);
- }
-
- public void setJobLevels(ArrayList jobLevels) {
- this.jobLevels = new Gson().toJson(jobLevels);
- }
-
- public ArrayList decodeCharacterJob() {
- if(this.jobLevels.equals("")) return new ArrayList<>();
- return new Gson().fromJson(this.jobLevels, new TypeToken>(){}.getType());
- }
-
- public String getCharacterName() {
- return characterName;
- }
-
- public void setCharacterName(String characterName) {
- this.characterName = characterName;
- }
-
- public String getJobLevels() {
- return jobLevels;
- }
-
- public void setJobLevels(String jobLevels) {
- this.jobLevels = jobLevels;
- }
-
- public int getIsDead() {
- return isDead;
- }
-
- public void setIsDead(int isDead) {
- this.isDead = isDead;
- }
-
- public int getAdminLevel() {
- return adminLevel;
- }
-
- public void setAdminLevel(int adminLevel) {
- this.adminLevel = adminLevel;
- }
-
- public String getLang() {
- return lang;
- }
-
- public void setLang(String lang) {
- this.lang = lang;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getWeapons() {
- return weapons;
- }
-
- public void setWeapons(String weapons) {
- this.weapons = weapons;
- }
-
- public int getBagId() {
- return bagId;
- }
-
- public void setBagId(int bagId) {
- this.bagId = bagId;
- }
-
- public int getCompagnyId() {
- return compagnyId;
- }
-
- public void setCompagnyId(int compagnyId) {
- this.compagnyId = compagnyId;
- }
-
- public int getIsInService() {
- return isInService;
- }
-
- public void setIsInService(int isInService) {
- this.isInService = isInService;
- }
-
- public String getOriginalStyle() {
- return originalStyle;
- }
-
- public void setOriginalStyle(String originalStyle) {
- this.originalStyle = originalStyle;
- }
-
- public double getHealth() {
- return health;
- }
-
- public void setHealth(double health) {
- this.health = health;
- }
-
- public int getCommandLevel() {
- return commandLevel;
- }
-
- public void setCommandLevel(int commandLevel) {
- this.commandLevel = commandLevel;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/AccountJobWhitelist.java b/src/main/java/fr/yuki/YukiRPFramework/model/AccountJobWhitelist.java
deleted file mode 100644
index d15b4da..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/AccountJobWhitelist.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-public class AccountJobWhitelist {
- private int id;
- private int accountId;
- private String jobId;
- private int jobLevel;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public int getAccountId() {
- return accountId;
- }
-
- public void setAccountId(int accountId) {
- this.accountId = accountId;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public int getJobLevel() {
- return jobLevel;
- }
-
- public void setJobLevel(int jobLevel) {
- this.jobLevel = jobLevel;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/Compagny.java b/src/main/java/fr/yuki/YukiRPFramework/model/Compagny.java
deleted file mode 100644
index b7d1b4e..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/Compagny.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class Compagny {
- private int id;
- private String name;
- private int bankCash;
- private String owner;
- private int maxMember;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getBankCash() {
- return bankCash;
- }
-
- public void setBankCash(int bankCash) {
- this.bankCash = bankCash;
- }
-
- public String getOwner() {
- return owner;
- }
-
- public void setOwner(String owner) {
- this.owner = owner;
- }
-
- public int getMaxMember() {
- return maxMember;
- }
-
- public void setMaxMember(int maxMember) {
- this.maxMember = maxMember;
- }
-
- public boolean isOwner(Player player) {
- return this.owner.equals(player.getSteamId());
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/FuelPoint.java b/src/main/java/fr/yuki/YukiRPFramework/model/FuelPoint.java
deleted file mode 100644
index 358e0d7..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/FuelPoint.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class FuelPoint {
- private int id;
- private double x;
- private double y;
- private double z;
- private int price;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public int getPrice() {
- return price;
- }
-
- public void setPrice(int price) {
- this.price = price;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 200) return true;
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/Garage.java b/src/main/java/fr/yuki/YukiRPFramework/model/Garage.java
deleted file mode 100644
index 6b04f43..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/Garage.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class Garage {
- private int id;
- private String name;
- private int costToUse;
- private double x;
- private double y;
- private double z;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getCostToUse() {
- return costToUse;
- }
-
- public void setCostToUse(int costToUse) {
- this.costToUse = costToUse;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 200) {
- return true;
- }
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/GrowboxModel.java b/src/main/java/fr/yuki/YukiRPFramework/model/GrowboxModel.java
deleted file mode 100644
index 6244f98..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/GrowboxModel.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-public class GrowboxModel {
- private int id;
- private double x;
- private double y;
- private double z;
- private double rx;
- private double ry;
- private double rz;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public double getRx() {
- return rx;
- }
-
- public void setRx(double rx) {
- this.rx = rx;
- }
-
- public double getRy() {
- return ry;
- }
-
- public void setRy(double ry) {
- this.ry = ry;
- }
-
- public double getRz() {
- return rz;
- }
-
- public void setRz(double rz) {
- this.rz = rz;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/House.java b/src/main/java/fr/yuki/YukiRPFramework/model/House.java
deleted file mode 100644
index 95d5209..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/House.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import fr.yuki.YukiRPFramework.modding.Line3D;
-
-import java.util.ArrayList;
-
-public class House {
- private int id;
- private int accountId;
- private int price;
- private String name;
- private double sx;
- private double sy;
- private double sz;
- private double ex;
- private double ey;
- private double ez;
-
- private boolean locked = true;
- private ArrayList allowedPlayers = new ArrayList<>();
- private ArrayList houseItemObjects = new ArrayList<>();
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public int getAccountId() {
- return accountId;
- }
-
- public void setAccountId(int accountId) {
- this.accountId = accountId;
- }
-
- public int getPrice() {
- return price;
- }
-
- public void setPrice(int price) {
- this.price = price;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public double getSx() {
- return sx;
- }
-
- public void setSx(double sx) {
- this.sx = sx;
- }
-
- public double getSy() {
- return sy;
- }
-
- public void setSy(double sy) {
- this.sy = sy;
- }
-
- public double getSz() {
- return sz;
- }
-
- public void setSz(double sz) {
- this.sz = sz;
- }
-
- public double getEx() {
- return ex;
- }
-
- public void setEx(double ex) {
- this.ex = ex;
- }
-
- public double getEy() {
- return ey;
- }
-
- public void setEy(double ey) {
- this.ey = ey;
- }
-
- public double getEz() {
- return ez;
- }
-
- public void setEz(double ez) {
- this.ez = ez;
- }
-
- public Line3D getLine3D() {
- return new Line3D(this.sx, this.sy, this.sz, this.ex, this.ey, this.ez, 5);
- }
-
- public boolean isLocked() {
- return locked;
- }
-
- public void setLocked(boolean locked) {
- this.locked = locked;
- }
-
- public ArrayList getHouseItemObjects() {
- return houseItemObjects;
- }
-
- public void setHouseItemObjects(ArrayList houseItemObjects) {
- this.houseItemObjects = houseItemObjects;
- }
-
- public ArrayList getAllowedPlayers() {
- return allowedPlayers;
- }
-
- public void setAllowedPlayers(ArrayList allowedPlayers) {
- this.allowedPlayers = allowedPlayers;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/ItemTemplate.java b/src/main/java/fr/yuki/YukiRPFramework/model/ItemTemplate.java
deleted file mode 100644
index 6cf438e..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/ItemTemplate.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-public class ItemTemplate {
- private int id;
- private String name;
- private String description;
- private float weight;
- private String pictureName;
- private int itemType;
- private int modelId;
- private double modelScale;
- private int foodValue;
- private int drinkValue;
- private int weaponId;
- private int ammoPerRecharge;
- private int maskId;
- private int bagId;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public float getWeight() {
- return weight;
- }
-
- public void setWeight(float weight) {
- this.weight = weight;
- }
-
- public String getPictureName() {
- return pictureName;
- }
-
- public void setPictureName(String pictureName) {
- this.pictureName = pictureName;
- }
-
- public int getItemType() {
- return itemType;
- }
-
- public void setItemType(int itemType) {
- this.itemType = itemType;
- }
-
- public int getModelId() {
- return modelId;
- }
-
- public void setModelId(int modelId) {
- this.modelId = modelId;
- }
-
- public double getModelScale() {
- return modelScale;
- }
-
- public void setModelScale(double modelScale) {
- this.modelScale = modelScale;
- }
-
- public int getFoodValue() {
- return foodValue;
- }
-
- public void setFoodValue(int foodValue) {
- this.foodValue = foodValue;
- }
-
- public int getDrinkValue() {
- return drinkValue;
- }
-
- public void setDrinkValue(int drinkValue) {
- this.drinkValue = drinkValue;
- }
-
- public int getWeaponId() {
- return weaponId;
- }
-
- public void setWeaponId(int weaponId) {
- this.weaponId = weaponId;
- }
-
- public int getAmmoPerRecharge() {
- return ammoPerRecharge;
- }
-
- public void setAmmoPerRecharge(int ammoPerRecharge) {
- this.ammoPerRecharge = ammoPerRecharge;
- }
-
- public int getMaskId() {
- return maskId;
- }
-
- public void setMaskId(int maskId) {
- this.maskId = maskId;
- }
-
- public int getBagId() {
- return bagId;
- }
-
- public void setBagId(int bagId) {
- this.bagId = bagId;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/JobLevel.java b/src/main/java/fr/yuki/YukiRPFramework/model/JobLevel.java
deleted file mode 100644
index 70aabbf..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/JobLevel.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-public class JobLevel {
- private int id;
- private String jobId;
- private String name;
- private int level;
- private int expFloor;
-
- public String getTranslateName() {
- return name.toLowerCase().replaceAll(" ", "_");
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getLevel() {
- return level;
- }
-
- public void setLevel(int level) {
- this.level = level;
- }
-
- public int getExpFloor() {
- return expFloor;
- }
-
- public void setExpFloor(int expFloor) {
- this.expFloor = expFloor;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/JobNPC.java b/src/main/java/fr/yuki/YukiRPFramework/model/JobNPC.java
deleted file mode 100644
index d9eb0d6..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/JobNPC.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.NPC;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public class JobNPC {
- private int id;
- private String jobId;
- private String name;
- private double x;
- private double y;
- private double z;
- private double h;
- private int npcClothing;
- private ArrayList buyList;
- private ArrayList sellList;
- private NPC npc;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public ArrayList getBuyList() {
- return buyList;
- }
-
- public void setBuyList(ArrayList buyList) {
- this.buyList = buyList;
- }
-
- public ArrayList getSellList() {
- return sellList;
- }
-
- public void setSellList(ArrayList sellList) {
- this.sellList = sellList;
- }
-
- public double getH() {
- return h;
- }
-
- public void setH(double h) {
- this.h = h;
- }
-
- public int getNpcClothing() {
- return npcClothing;
- }
-
- public void setNpcClothing(int npcClothing) {
- this.npcClothing = npcClothing;
- }
-
- public JobNPCListItem getBuyItemByWearableItem(WearableWorldObject wearableWorldObject) {
- JobNPCListItem jobNPCListItem = null;
- for(JobNPCListItem item : this.buyList) {
- if(item.getType().toLowerCase().equals("worlditem") && item.getItemId() == wearableWorldObject.getModelId()) {
- return item;
- }
- }
- return null;
- }
-
- public boolean isNear(Player player) {
- return new Vector(x,y,z).distance(player.getLocation()) < 200;
- }
-
- public NPC getNpc() {
- return npc;
- }
-
- public void setNpc(NPC npc) {
- this.npc = npc;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/JobOutfit.java b/src/main/java/fr/yuki/YukiRPFramework/model/JobOutfit.java
deleted file mode 100644
index 5feef08..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/JobOutfit.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public class JobOutfit {
- private int id;
- private String jobId;
- private int levelRequired;
- private String name;
- private String outfit;
- private double x;
- private double y;
- private double z;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public int getLevelRequired() {
- return levelRequired;
- }
-
- public void setLevelRequired(int levelRequired) {
- this.levelRequired = levelRequired;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getOutfit() {
- return outfit;
- }
-
- public void setOutfit(String outfit) {
- this.outfit = outfit;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 250) return true;
- return false;
- }
-
- public ArrayList decodeOutfit() {
- return new Gson().fromJson(this.outfit, new TypeToken>(){}.getType());
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/JobVehicleRental.java b/src/main/java/fr/yuki/YukiRPFramework/model/JobVehicleRental.java
deleted file mode 100644
index d48a646..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/JobVehicleRental.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class JobVehicleRental {
- private int id;
- private String jobId;
- private int levelRequired;
- private String name;
- private int vehicleModelId;
- private int cost;
- private double x;
- private double y;
- private double z;
- private double spawnX;
- private double spawnY;
- private double spawnZ;
- private String color;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public int getVehicleModelId() {
- return vehicleModelId;
- }
-
- public void setVehicleModelId(int vehicleModelId) {
- this.vehicleModelId = vehicleModelId;
- }
-
- public int getCost() {
- return cost;
- }
-
- public void setCost(int cost) {
- this.cost = cost;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public double getSpawnX() {
- return spawnX;
- }
-
- public void setSpawnX(double spawnX) {
- this.spawnX = spawnX;
- }
-
- public double getSpawnY() {
- return spawnY;
- }
-
- public void setSpawnY(double spawnY) {
- this.spawnY = spawnY;
- }
-
- public double getSpawnZ() {
- return spawnZ;
- }
-
- public void setSpawnZ(double spawnZ) {
- this.spawnZ = spawnZ;
- }
-
- public boolean isNear(Player player) {
- return new Vector(this.x, this.y, this.z).distance(player.getLocation()) < 350;
- }
-
- public int getLevelRequired() {
- return levelRequired;
- }
-
- public void setLevelRequired(int levelRequired) {
- this.levelRequired = levelRequired;
- }
-
- public String getColor() {
- return color;
- }
-
- public void setColor(String color) {
- this.color = color;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/OutfitPoint.java b/src/main/java/fr/yuki/YukiRPFramework/model/OutfitPoint.java
deleted file mode 100644
index 92b01ab..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/OutfitPoint.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class OutfitPoint {
- private int id;
- private double x;
- private double y;
- private double z;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 250) {
- return true;
- }
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/PhoneContact.java b/src/main/java/fr/yuki/YukiRPFramework/model/PhoneContact.java
deleted file mode 100644
index 3c78da7..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/PhoneContact.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-public class PhoneContact {
- private int id;
- private int accountId;
- private String name;
- private String number;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public int getAccountId() {
- return accountId;
- }
-
- public void setAccountId(int accountId) {
- this.accountId = accountId;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getNumber() {
- return number;
- }
-
- public void setNumber(String number) {
- this.number = number;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/Seller.java b/src/main/java/fr/yuki/YukiRPFramework/model/Seller.java
deleted file mode 100644
index f3b8c9d..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/Seller.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.NPC;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public class Seller {
- private int id;
- private String name;
- private double x;
- private double y;
- private double z;
- private double h;
- private int npcClothing;
- private String itemList;
- private String jobRequired;
- private int jobLevelRequired;
- private NPC npc;
-
- public ArrayList decodeItems() {
- return new Gson().fromJson(this.itemList,
- new TypeToken>(){}.getType());
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public double getH() {
- return h;
- }
-
- public void setH(double h) {
- this.h = h;
- }
-
- public int getNpcClothing() {
- return npcClothing;
- }
-
- public void setNpcClothing(int npcClothing) {
- this.npcClothing = npcClothing;
- }
-
- public String getItemList() {
- return itemList;
- }
-
- public void setItemList(String itemList) {
- this.itemList = itemList;
- }
-
- public NPC getNpc() {
- return npc;
- }
-
- public void setNpc(NPC npc) {
- this.npc = npc;
- }
-
- public String getJobRequired() {
- return jobRequired;
- }
-
- public void setJobRequired(String jobRequired) {
- this.jobRequired = jobRequired;
- }
-
- public int getJobLevelRequired() {
- return jobLevelRequired;
- }
-
- public void setJobLevelRequired(int jobLevelRequired) {
- this.jobLevelRequired = jobLevelRequired;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 250) {
- return true;
- }
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/VehicleGarage.java b/src/main/java/fr/yuki/YukiRPFramework/model/VehicleGarage.java
deleted file mode 100644
index 8366f7f..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/VehicleGarage.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.dao.VehicleGarageDAO;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-
-public class VehicleGarage {
- private int vehicleGarageId;
- private String uuid;
- private int owner;
- private int garageId;
- private int garageLastId;
- private int modelId;
- private String damage;
- private double health;
- private String licencePlate;
- private String color;
- private Date createdAt;
- private Date updateAt;
- private boolean isRental;
-
- public int getVehicleGarageId() {
- return vehicleGarageId;
- }
-
- public void setVehicleGarageId(int vehicleGarageId) {
- this.vehicleGarageId = vehicleGarageId;
- }
-
- public int getGarageId() {
- return garageId;
- }
-
- public void setGarageId(int garageId) {
- this.garageId = garageId;
- }
-
- public int getGarageLastId() {
- return garageLastId;
- }
-
- public void setGarageLastId(int garageLastId) {
- this.garageLastId = garageLastId;
- }
-
- public int getModelId() {
- return modelId;
- }
-
- public void setModelId(int modelId) {
- this.modelId = modelId;
- }
-
- public String getDamage() {
- return damage;
- }
-
- public void setDamage(String damage) {
- this.damage = damage;
- }
-
- public String getLicencePlate() {
- return licencePlate;
- }
-
- public void setLicencePlate(String licencePlate) {
- this.licencePlate = licencePlate;
- }
-
- public String getColor() {
- return color;
- }
-
- public void setColor(String color) {
- this.color = color;
- }
-
- public Date getCreatedAt() {
- return createdAt;
- }
-
- public void setCreatedAt(Date createdAt) {
- this.createdAt = createdAt;
- }
-
- public Date getUpdateAt() {
- return updateAt;
- }
-
- public void setUpdateAt(Date updateAt) {
- this.updateAt = updateAt;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public void setUuid(String uuid) {
- this.uuid = uuid;
- }
-
- public int getOwner() {
- return owner;
- }
-
- public void setOwner(int owner) {
- this.owner = owner;
- }
-
- public void save() {
- try {
- if(!isRental) VehicleGarageDAO.saveVehicleGarage(this);
- } catch (Exception ex) {
- Onset.print("Can't save vehicle: " + ex.toString());
- }
- }
-
- public boolean isRental() {
- return isRental;
- }
-
- public void setRental(boolean rental) {
- isRental = rental;
- }
-
- public void destroy() {
- for(Vehicle vehicle : Onset.getVehicles()) {
- if(vehicle.getPropertyString("uuid").equals(this.getUuid())) {
- vehicle.destroy();
- return;
- }
- }
- }
-
- public Vehicle getVehicle() {
- for(Vehicle vehicle : Onset.getVehicles()) {
- if(vehicle.getPropertyString("uuid").equals(this.getUuid())) {
- return vehicle;
- }
- }
- return null;
- }
-
- public void applyDamages(Vehicle vehicle) {
- ArrayList damages = new Gson().fromJson(this.damage, new TypeToken>(){}.getType());
- for(int i = 0; i < damages.size(); i++) {
- vehicle.setDamage(i + 1, damages.get(i));
- }
- vehicle.setHealth(this.health);
- }
-
- public void computeDamages(Vehicle vehicle) {
- this.health = vehicle.getHealth();
- ArrayList damages = new ArrayList<>();
- for(int i = 0; i < 8; i++) {
- damages.add(vehicle.getDamage(i + 1));
- }
- this.damage = new Gson().toJson(damages);
- }
-
- public double getHealth() {
- return health;
- }
-
- public void setHealth(double health) {
- this.health = health;
- }
-}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/model/VehicleSeller.java b/src/main/java/fr/yuki/YukiRPFramework/model/VehicleSeller.java
deleted file mode 100644
index 40b8004..0000000
--- a/src/main/java/fr/yuki/YukiRPFramework/model/VehicleSeller.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package fr.yuki.YukiRPFramework.model;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public class VehicleSeller {
- private int id;
- private String name;
- private int npcClothing;
- private double x;
- private double y;
- private double z;
- private double h;
- private double sX;
- private double sY;
- private double sZ;
- private double sH;
- private ArrayList sellList;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getNpcClothing() {
- return npcClothing;
- }
-
- public void setNpcClothing(int npcClothing) {
- this.npcClothing = npcClothing;
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public ArrayList getSellList() {
- return sellList;
- }
-
- public void setSellList(ArrayList sellList) {
- this.sellList = sellList;
- }
-
- public double getH() {
- return h;
- }
-
- public void setH(double h) {
- this.h = h;
- }
-
- public double getsX() {
- return sX;
- }
-
- public void setsX(double sX) {
- this.sX = sX;
- }
-
- public double getsY() {
- return sY;
- }
-
- public void setsY(double sY) {
- this.sY = sY;
- }
-
- public double getsZ() {
- return sZ;
- }
-
- public void setsZ(double sZ) {
- this.sZ = sZ;
- }
-
- public double getsH() {
- return sH;
- }
-
- public void setsH(double sH) {
- this.sH = sH;
- }
-
- public boolean isNear(Player player) {
- if(player.getLocation().distance(new Vector(this.x, this.y, this.z)) < 250) {
- return true;
- }
- return false;
- }
-}
diff --git a/src/main/java/fr/yuki/yrpf/Database.java b/src/main/java/fr/yuki/yrpf/Database.java
new file mode 100644
index 0000000..b1ec60a
--- /dev/null
+++ b/src/main/java/fr/yuki/yrpf/Database.java
@@ -0,0 +1,57 @@
+package fr.yuki.yrpf;
+
+import eu.bebendorf.ajorm.AJORM;
+import eu.bebendorf.ajorm.AJORMConfig;
+import eu.bebendorf.ajorm.wrapper.MySQL;
+import eu.bebendorf.ajorm.wrapper.SQL;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.*;
+import fr.yuki.yrpf.utils.ServerConfig;
+import net.onfirenetwork.onsetjava.Onset;
+
+public class Database {
+
+ private static SQL sql;
+
+ public static SQL getRaw() {
+ return sql;
+ }
+
+ /**
+ * Initialize the connection with the database
+ */
+ public static void init() {
+ try {
+ ServerConfig serverConfig = WorldManager.getServerConfig();
+ sql = new MySQL(serverConfig.getSqlHost(), 3306, serverConfig.getSqlDb(), serverConfig.getSqlUsername(), serverConfig.getSqlPassword());
+ AJORMConfig config = new AJORMConfig()
+ .setDefaultSize(255);
+ // @Yuki you can optionally add .migrate() behind the register calls to enable migration
+ AJORM.register(Account.class, sql, config);
+ AJORM.register(ATM.class, sql, config);
+ AJORM.register(AccountJobWhitelist.class, sql, config);
+ AJORM.register(Company.class, sql, config);
+ AJORM.register(VehicleSeller.class, sql, config);
+ AJORM.register(Garage.class, sql, config);
+ AJORM.register(House.class, sql, config);
+ AJORM.register(HouseItemObject.class, sql, config);
+ AJORM.register(FuelPoint.class, sql, config);
+ AJORM.register(Seller.class, sql, config);
+ AJORM.register(PhoneContact.class, sql, config);
+ AJORM.register(VehicleGarage.class, sql, config);
+ AJORM.register(Inventory.class, sql, config);
+ AJORM.register(JobNPC.class, sql, config);
+ AJORM.register(JobLevel.class, sql, config);
+ AJORM.register(ItemTemplate.class, sql, config);
+ AJORM.register(OutfitPoint.class, sql, config);
+ AJORM.register(GrowboxModel.class, sql, config);
+ AJORM.register(JobTool.class, sql, config);
+ AJORM.register(JobVehicleRental.class, sql, config);
+ AJORM.register(JobOutfit.class, sql, config);
+ Onset.print("Connected to the database with success");
+ } catch (Exception e) {
+ Onset.print("Error with database connection: " + e.toString());
+ }
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/YukiRPFrameworkPlugin.java b/src/main/java/fr/yuki/yrpf/YukiRPFrameworkPlugin.java
similarity index 92%
rename from src/main/java/fr/yuki/YukiRPFramework/YukiRPFrameworkPlugin.java
rename to src/main/java/fr/yuki/yrpf/YukiRPFrameworkPlugin.java
index d9e3913..f2e3f32 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/YukiRPFrameworkPlugin.java
+++ b/src/main/java/fr/yuki/yrpf/YukiRPFrameworkPlugin.java
@@ -1,664 +1,672 @@
-package fr.yuki.YukiRPFramework;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.luaapi.LuaAPIManager;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.commands.*;
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.dao.InventoryDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.modding.ModdingCustomModel;
-import fr.yuki.YukiRPFramework.model.*;
-import fr.yuki.YukiRPFramework.net.payload.*;
-import fr.yuki.YukiRPFramework.utils.ServerConfig;
-import fr.yuki.YukiRPFramework.world.RestrictedZone;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Location;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.data.Weapon;
-import net.onfirenetwork.onsetjava.plugin.Plugin;
-import net.onfirenetwork.onsetjava.plugin.event.EventHandler;
-import net.onfirenetwork.onsetjava.plugin.event.player.*;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.Map;
-
-@Plugin(name = "YukiRPFramework", author = "Yuki")
-public class YukiRPFrameworkPlugin {
-
- public void onEnable() {
- try {
- WorldManager.initServerConfig();
- I18n.init();
- Database.init();
- Onset.registerListener(this);
- ModdingManager.init();
- MapManager.init();
- InventoryManager.init();
- ItemManager.init();
- CharacterManager.init();
- VehicleManager.init();
- GarageManager.init();
- SoundManager.init();
- WorldManager.init();
- JobManager.init();
- AccountManager.init();
- GrowboxManager.init();
- FuelManager.init();
- PhoneManager.init();
- HouseManager.init();
- TimeManager.init();
- CompagnyManager.init();
- TebexManager.init();
- LuaAPIManager.init();
-
- // Register commands
- Onset.registerCommand("item", new ItemCommand());
- Onset.registerCommand("loc", new LocCommand());
- Onset.registerCommand("v", new VCommand());
- Onset.registerCommand("vmove", new MoveCommand());
- Onset.registerCommand("dv", new DVCommand());
- Onset.registerCommand("addgatheritem", new AddGatherItemCommand());
- Onset.registerCommand("listgatheritem", new ShowGatherItemListCommand());
- Onset.registerCommand("dct", new DebugCharacterToolCommand());
- Onset.registerCommand("dvsl", new DebugVehicleStorageLayoutCommand());
- Onset.registerCommand("adddelivery", new AddDeliveryPointCommand());
- Onset.registerCommand("setadmin", new SetAdminLevelCommand());
- Onset.registerCommand("ban", new BanCommand());
- Onset.registerCommand("goto", new GotoCommand());
- Onset.registerCommand("bring", new BringCommand());
- Onset.registerCommand("flip", new FlipCommand());
- Onset.registerCommand("lang", new SetLangCommand());
- Onset.registerCommand("dop", new DebugObjectPlacementCommand());
- Onset.registerCommand("setwhitelist", new SetWhitelistCommand());
- Onset.registerCommand("cuff", new CuffCommand());
- Onset.registerCommand("revive", new ReviveCommand());
- Onset.registerCommand("nitro", new NitroCommand());
- Onset.registerCommand("dhouse", new DebugHouseCommand());
- Onset.registerCommand("chouse", new CreateHouseCommand());
- Onset.registerCommand("fhouse", new FreeHouseCommand());
- Onset.registerCommand("houseprops", new SetHousePropsCommand());
- Onset.registerCommand("givehousekey", new GiveHouseKeyCommand());
- Onset.registerCommand("settime", new SetTimeCommand());
- Onset.registerCommand("getid", new GetIdCommand());
- Onset.registerCommand("setcommandlevel", new SetCommandLevelCommand());
- Onset.registerCommand("requestcreation", new RequestCharacterCreationCommand());
- Onset.registerCommand("invis", new InvisCommand());
- Onset.registerCommand("regenphone", new RegenPhoneNumberCommand());
- Onset.registerCommand("ann", new AnnCommand());
- Onset.registerCommand("itemall", new AddItemAllCommand());
- Onset.registerCommand("fgc", new ForceGarbageCommand());
- Onset.registerCommand("debugtest", new DebugTestCommand());
- Onset.registerCommand("kick", new KickCommand());
- Onset.registerCommand("setclothe", new SetClotheCommand());
- Onset.registerCommand("setcharacterscale", new SetCharacterScaleCommand());
-
- // Register remote events
- Onset.registerRemoteEvent("GlobalUI:ToogleWindow");
- Onset.registerRemoteEvent("Inventory:RequestContent");
- Onset.registerRemoteEvent("Inventory:UseItem");
- Onset.registerRemoteEvent("Object:Interact");
- Onset.registerRemoteEvent("ATM:Deposit");
- Onset.registerRemoteEvent("ATM:Withdraw");
- Onset.registerRemoteEvent("Vehicle:RequestLockToogle");
- Onset.registerRemoteEvent("Garage:RequestVehicle");
- Onset.registerRemoteEvent("Garage:BuyVehicle");
- Onset.registerRemoteEvent("Character:Style:SavePart");
- Onset.registerRemoteEvent("Character:Style:CustomDone");
- Onset.registerRemoteEvent("Global:UIReady");
- Onset.registerRemoteEvent("Job:WearObject");
- Onset.registerRemoteEvent("Job:CharacterJobRequest");
- Onset.registerRemoteEvent("Character:RequestWearFromVehicleChest");
- Onset.registerRemoteEvent("Inventory:ThrowItem");
- Onset.registerRemoteEvent("Seller:BuySellItem");
- Onset.registerRemoteEvent("Object:EditPlacementCancel");
- Onset.registerRemoteEvent("Object:EditPlacement");
- Onset.registerRemoteEvent("Object:EditPlacementDone");
- Onset.registerRemoteEvent("Job:UseJobTool");
- Onset.registerRemoteEvent("Growbox:FillWaterPot");
- Onset.registerRemoteEvent("Growbox:FillSeedPot");
- Onset.registerRemoteEvent("Growbox:HarvestPot");
- Onset.registerRemoteEvent("Growbox:TakePot");
- Onset.registerRemoteEvent("Phone:AddContact");
- Onset.registerRemoteEvent("Phone:RequestContacts");
- Onset.registerRemoteEvent("Phone:RequestSendMessage");
- Onset.registerRemoteEvent("Phone:RequestConversation");
- Onset.registerRemoteEvent("Phone:RequestConversationsList");
- Onset.registerRemoteEvent("House:RequestHouseMenu");
- Onset.registerRemoteEvent("House:RequestBuy");
- Onset.registerRemoteEvent("Object:EditExistingPlacement");
- Onset.registerRemoteEvent("Phone:RequestBuyItemShop");
- Onset.registerRemoteEvent("Weapon:StoreWeapon");
- Onset.registerRemoteEvent("Growbox:Destroy");
- Onset.registerRemoteEvent("ATM:GetInfos");
- Onset.registerRemoteEvent("Phone:RequestCall");
- Onset.registerRemoteEvent("Phone:RequestAnswer");
- Onset.registerRemoteEvent("Phone:RequestEndCall");
- Onset.registerRemoteEvent("Phone:RequestAttachPhone");
- Onset.registerRemoteEvent("SetPlayerEditor");
- Onset.registerRemoteEvent("Phone:RequestUrgency");
- Onset.registerRemoteEvent("Phone:RequestListUrgency");
- Onset.registerRemoteEvent("Phone:SolveUrgency");
- Onset.registerRemoteEvent("Compagny:Create");
- Onset.registerRemoteEvent("Compagny:InviteEmployee");
- Onset.registerRemoteEvent("Compagny:AcceptInvitation");
- Onset.registerRemoteEvent("Compagny:DeclineInvitation");
- Onset.registerRemoteEvent("Compagny:KickEmployee");
- Onset.registerRemoteEvent("Character:Interact");
- Onset.registerRemoteEvent("Character:InspectCharacter");
- Onset.registerRemoteEvent("GenericMenu:Dismiss");
- Onset.registerRemoteEvent("Character:GiveHouseKey");
- } catch (Exception ex) {
- ex.printStackTrace();
- Onset.print("Can't start the plugin because : " + ex.toString());
- }
- }
-
- @EventHandler
- public void onJoin(PlayerSteamAuthEvent evt) {
- // Create or update the account
- try {
- Onset.print("Player joining steamId=" + evt.getPlayer().getSteamId());
- Account account = AccountDAO.findAccountBySteamId(evt.getPlayer().getSteamId());
- ServerConfig serverConfig = WorldManager.getServerConfig();
-
- // Clear state
- CharacterState state = CharacterManager.getCharacterStateByPlayer(evt.getPlayer());
- if(state != null) {
- state.setCurrentPhoneCall(null);
- state.setCurrentObjectPlacementInstance(null);
- state.setCuffed(false);
- }
-
- // Create the account if doesnt exist
- if(account == null) {
- Onset.print("Create the account for the steamId=" + evt.getPlayer().getSteamId());
- account = AccountDAO.createAccount(evt.getPlayer());
- WorldManager.getAccounts().put(account.getId(), account);
-
- // Set spawn location
- evt.getPlayer().setSpawnLocation(new Vector(serverConfig.getSpawnPointX(),
- serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()), serverConfig.getSpawnPointH());
- evt.getPlayer().setLocation(new Vector(serverConfig.getSpawnPointX(),
- serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()));
- evt.getPlayer().setHeading(serverConfig.getSpawnPointH());
- CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(serverConfig.getSpawnPointX(),
- serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ(), serverConfig.getSpawnPointH()));
-
- // Create the default inventory for character
- Inventory inventory = InventoryDAO.createInventory();
- Onset.print("Inventory created id=" + inventory.getId());
- inventory.setInventoryType(1);
- inventory.setCharacterId(account.getId());
- InventoryManager.getInventories().put(inventory.getId(), inventory);
- inventory.save();
-
- // Set properties for the player
- evt.getPlayer().setProperty("accountId", account.getId(), true);
- }
- else {
- if(account.getIsBanned()==1) {
- evt.getPlayer().kick("You have been banned, bye bye");
- return;
- }
-
- // Set properties for the player
- evt.getPlayer().setProperty("accountId", account.getId(), true);
-
- // evt.getPlayer().setLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()));
- CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(account.getSaveX(),
- account.getSaveY(),
- account.getSaveZ() + 50,
- account.getSaveH()));
-
- if(account.getCharacterName().equals("Unknown")) { // Recovery
- account.setCharacterCreationRequest(1);
- account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
- account.setBankMoney(4000);
- Onset.print("Phone number generated : " + account.getPhoneNumber());
-
- evt.getPlayer().setSpawnLocation(new Vector(serverConfig.getSpawnPointX(),
- serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()), 0);
- CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(serverConfig.getSpawnPointX(),
- serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ(), serverConfig.getSpawnPointH()));
- } else {
- evt.getPlayer().setSpawnLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()), 0);
- //Onset.broadcast("" + account.getCharacterName() + " est de retour !>");
- }
-
- if(account.getOriginalStyle().equals("")) {
- account.setOriginalStyle(account.getCharacterStyle());
- }
- // Set weapons
- for(Map.Entry weaponEntry :
- ((HashMap)new Gson().fromJson(account.getWeapons(), new TypeToken>(){}.getType())).entrySet()) {
- evt.getPlayer().setWeapon(weaponEntry.getKey(), weaponEntry.getValue());
- }
- }
-
- // Insert the account in the cache if not exist
- if(!WorldManager.getAccounts().containsKey(account.getId())) {
- WorldManager.getAccounts().put(account.getId(), account);
- }
-
- JobManager.initCharacterJobs(evt.getPlayer());
- if(CharacterManager.getCharacterStateByPlayer(evt.getPlayer()) == null)
- CharacterManager.getCharacterStates().put(evt.getPlayer().getSteamId(), new CharacterState());
-
- // Generate a phone number for the player
- if(account.getPhoneNumber().trim().equals("")) {
- account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
- AccountDAO.updateAccount(account, null);
- Onset.print("Phone number generated : " + account.getPhoneNumber());
- }
-
- // Attach bag
- if(account.getBagId() != -1) {
- Account finalAccount = account;
- Bag bag = ItemManager.bags.stream().filter(x -> x.getModelId() == finalAccount.getBagId())
- .findFirst().orElse(null);
- state.attachBag(bag, evt.getPlayer());
- }
-
- // If the player is dead
- if(account.getIsDead() == 1) {
- evt.getPlayer().setHealth(0);
- } else {
- evt.getPlayer().setHealth(account.getHealth());
- }
-
- // Set current time
- TimeManager.setCurrentHourForPlayer(evt.getPlayer());
-
- // Set modding objects
- for(ModdingCustomModel customModel : ModdingManager.getModdingFile().getCustomModels()) {
- evt.getPlayer().callRemoteEvent("Modding:AddCustomObject", customModel.getId(), customModel.getPath());
- }
- } catch (Exception e) {
- e.printStackTrace();
- evt.getPlayer().kick("There is a error for retrieving your account: " + e.toString());
- }
- }
-
- @EventHandler
- public void onQuit(PlayerQuitEvent evt) {
- Onset.print("Player quit steamId=" + evt.getPlayer().getSteamId());
- WorldManager.handleObjectEditPlacementCancel(evt.getPlayer());
- Account account = WorldManager.getPlayerAccount(evt.getPlayer());
- Location location = evt.getPlayer().getLocationAndHeading();
- account.setSaveX(location.getX());
- account.setSaveY(location.getY());
- account.setSaveZ(location.getZ());
- account.setSaveH(location.getHeading());
- CharacterState state = CharacterManager.getCharacterStateByPlayer(evt.getPlayer());
- if(state != null) {
- if(state.getCurrentPhoneCall() != null ){
- state.getCurrentPhoneCall().end();
- }
- CharacterManager.getCharacterStates().remove(evt.getPlayer().getSteamId());
- }
- WorldManager.savePlayer(evt.getPlayer());
- }
-
- @EventHandler
- public void onRemoteEvent(PlayerRemoteEvent evt) {
- try {
- Onset.print("Receive remote event name=" + evt.getName());
- switch (evt.getName()) {
- case "Inventory:RequestContent":
- InventoryManager.handleRequestContent(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- RequestInventoryContentPayload.class));
- break;
-
- case "Inventory:UseItem":
- ItemManager.handleItemUse(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- RequestUseItemPayload.class));
- break;
-
- case "GlobalUI:ToogleWindow":
- UIStateManager.handleUIToogle(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Object:Interact":
- WorldManager.handleInteract(evt.getPlayer());
- break;
-
- case "ATM:Deposit":
- ATMManager.handleATMDeposit(evt.getPlayer(), (int)Float.parseFloat((evt.getArgs()[0]).toString()));
- break;
-
- case "ATM:Withdraw":
- ATMManager.handleATMWithdraw(evt.getPlayer(), (int)Float.parseFloat((evt.getArgs()[0]).toString()));
- break;
-
- case "ATM:GetInfos":
- ATMManager.handleATMGetInfos(evt.getPlayer());
- break;
-
- case "Vehicle:RequestLockToogle":
- VehicleManager.handleVehicleLockRequest(evt.getPlayer());
- break;
-
- case "Garage:RequestVehicle":
- GarageManager.handleRequestVehicle(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Garage:BuyVehicle":
- GarageManager.handleRequestBuyVehicle(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- RequestBuyVehiclePayload.class));
- break;
-
- case "Character:Style:SavePart":
- CharacterManager.handleStyleSavePart(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- StyleSavePartPayload.class));
- break;
-
- case "Character:Style:CustomDone":
- CharacterManager.handleCharacterCustomDone(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Global:UIReady":
- UIStateManager.handleUIReady(evt.getPlayer());
- break;
-
- case "Job:WearObject":
- JobManager.handleWearObjectRequest(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Character:RequestWearFromVehicleChest":
- VehicleManager.handleRequestWearFromVehicleChest(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Inventory:ThrowItem":
- InventoryManager.handleThrowItem(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- RequestThrowItemPayload.class));
- break;
-
- case "Job:CharacterJobRequest":
- JobManager.handleRequestCharacterJobs(evt.getPlayer());
- break;
-
- case "Seller:BuySellItem":
- WorldManager.handleBuySellItemSeller(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- BuySellItemRequestPayload.class));
- break;
-
- case "Object:EditPlacement":
- WorldManager.handleObjectRequestPlacement(evt.getPlayer());
- break;
-
- case "Object:EditPlacementCancel":
- WorldManager.handleObjectEditPlacementCancel(evt.getPlayer());
- break;
-
- case "Object:EditPlacementDone":
- WorldManager.handleObjectPlacementDone(evt.getPlayer(),
- new Vector(Double.parseDouble((evt.getArgs()[0]).toString()),
- Double.parseDouble((evt.getArgs()[1]).toString()), Double.parseDouble((evt.getArgs()[2]).toString())),
- new Vector(Double.parseDouble((evt.getArgs()[3]).toString()),
- Double.parseDouble((evt.getArgs()[4]).toString()), Double.parseDouble((evt.getArgs()[5]).toString())));
- break;
-
- case "Job:UseJobTool":
- JobManager.handleUseJobTool(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Growbox:Destroy":
- GrowboxManager.handleGrowboxDestroy(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Growbox:FillWaterPot":
- GrowboxManager.handleGrowboxFillWaterPot(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- GrowboxFillWaterPotPayload.class));
- break;
-
- case "Growbox:FillSeedPot":
- GrowboxManager.handleGrowboxFillSeedPot(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- GrowboxFillWaterPotPayload.class));
- break;
-
- case "Growbox:HarvestPot":
- GrowboxManager.handleGrowboxHarvestRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- GrowboxFillWaterPotPayload.class));
- break;
-
- case "Growbox:TakePot":
- GrowboxManager.handleGrowboxTakePotRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- GrowboxFillWaterPotPayload.class));
- break;
-
- case "Phone:RequestContacts":
- PhoneManager.handleRequestPhoneContacts(evt.getPlayer());
- break;
-
- case "Phone:AddContact":
- PhoneManager.handleAddPhoneContact(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- PhoneAddContactPayload.class));
- break;
-
- case "Phone:RequestSendMessage":
- PhoneManager.handleRequestSendMessage(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- RequestPhoneSendMessagePayload.class));
- break;
-
- case "Phone:RequestConversation":
- PhoneManager.handleRequestConversation(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Phone:RequestConversationsList":
- PhoneManager.handleRequestConversationsList(evt.getPlayer());
- break;
-
- case "House:RequestHouseMenu":
- HouseManager.handleHouseMenu(evt.getPlayer(), evt.getPlayer().getLocation());
- break;
-
- case "House:RequestBuy":
- HouseManager.handleBuyHouseRequest(evt.getPlayer());
- break;
-
- case "Object:EditExistingPlacement":
- WorldManager.handleEditExistingPlacement(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
- break;
-
- case "Phone:RequestBuyItemShop":
- HouseManager.handleRequestBuyItemShop(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
- break;
-
- case "Weapon:StoreWeapon":
- WeaponManager.storeWeapon(evt.getPlayer());
- break;
-
- case "Phone:RequestCall":
- PhoneManager.handleRequestCall(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Phone:RequestAnswer":
- PhoneManager.handleCallAnswer(evt.getPlayer());
- break;
-
- case "Phone:RequestEndCall":
- PhoneManager.handleCallEnd(evt.getPlayer());
- break;
-
- case "Phone:RequestAttachPhone":
- PhoneManager.handleAttachPhone(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "SetPlayerEditor":
- ModdingManager.onEditorOpen(evt.getPlayer());
- break;
-
- case "Phone:RequestUrgency":
- PhoneManager.handleUrgencyRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- UrgencyRequestPayload.class));
- break;
-
- case "Phone:RequestListUrgency":
- PhoneManager.handleUrgencyListRequest(evt.getPlayer());
- break;
-
- case "Phone:SolveUrgency":
- PhoneManager.handleUrgencySolveRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
- SolveUrgencyPayload.class));
- break;
-
- case "Compagny:Create":
- CompagnyManager.handleCreateRequest(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Compagny:InviteEmployee":
- CompagnyManager.handleInviteEmployee(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Compagny:AcceptInvitation":
- CompagnyManager.handleAcceptInvitation(evt.getPlayer());
- break;
-
- case "Compagny:DeclineInvitation":
- CompagnyManager.handleDeclineInvitation(evt.getPlayer());
- break;
-
- case "Compagny:KickEmployee":
- CompagnyManager.handleKickEmployee(evt.getPlayer(), (evt.getArgs()[0]).toString());
- break;
-
- case "Character:Interact":
- CharacterManager.handleCharacterInteract(evt.getPlayer());
- break;
-
- case "GenericMenu:Dismiss":
- CharacterManager.handleGenericMenuDismiss(evt.getPlayer());
- break;
-
- case "Character:InspectCharacter":
- CharacterManager.handleInspectCharacter(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
- break;
-
- case "Character:GiveHouseKey":
- HouseManager.handleGiveHouseKey(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
- break;
- }
- }
- catch (Exception ex) {
- StringWriter sw = new StringWriter();
- ex.printStackTrace(new PrintWriter(sw));
- Onset.print(sw.toString());
- }
- }
-
- @EventHandler
- public void onPlayerVehicleEnter(PlayerEnterVehicleEvent evt) {
- Onset.print("Player entered in the vehicle seat="+evt.getSeat());
- VehicleManager.onPlayerEnterVehicle(evt.getPlayer(), evt.getVehicle(), evt.getSeat());
- }
-
- @EventHandler
- public void onPlayerVehicleExit(PlayerExitVehicleEvent evt) {
- Onset.print("Player exit in the vehicle seat="+evt.getSeat());
- VehicleManager.onPlayerVehicleExit(evt.getPlayer(), evt.getVehicle(), evt.getSeat());
- }
-
- @EventHandler
- public void onPlayerInteractDoor(PlayerInteractDoorEvent evt) {
- House house = HouseManager.getHouseAtLocation(evt.getDoor().getLocation());
- if(house != null) {
- Account account = WorldManager.getPlayerAccount(evt.getPlayer());
- if(house.getAccountId() == -1) {
- HouseManager.handleHouseMenu(evt.getPlayer(), evt.getDoor().getLocation());
- return;
- }
- if(!HouseManager.canBuildInHouse(evt.getPlayer(), house) && house.isLocked()) {
- SoundManager.playSound3D("sounds/toctoc.mp3", evt.getPlayer().getLocation(), 800, 1);
- UIStateManager.sendNotification(evt.getPlayer(), ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.dont_own_it"));
- return;
- }
- }
-
- // Check Restricted Zone
- for(RestrictedZone restrictedZone : WorldManager.getRestrictedZones()) {
- if(!restrictedZone.canInteractWithDoor(evt.getPlayer(), evt.getDoor())) {
- UIStateManager.sendNotification(evt.getPlayer(), ToastTypeEnum.ERROR, "Vous n'avez pas le droit d'intéragir avec cette porte");
- return;
- }
- }
-
- if(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation()) != null) {
- if(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation())
- .getLocation().distance(evt.getPlayer().getLocation()) < VehicleManager.getInteractionDistance(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation()))) {
- return;
- } else {
-
- evt.getDoor().setOpen(evt.getDoor().isOpen() ? false : true);
- }
- } else {
- evt.getDoor().setOpen(evt.getDoor().isOpen() ? false : true);
- }
- }
-
- @EventHandler
- public void onPlayerDead(PlayerDeathEvent evt) {
- Account account = WorldManager.getPlayerAccount(evt.getPlayer());
- Location location = evt.getPlayer().getLocationAndHeading();
- account.setSaveX(location.getX());
- account.setSaveY(location.getY());
- account.setSaveZ(location.getZ());
- account.setSaveH(location.getHeading());
-
- CharacterManager.onPlayerDeath(evt.getPlayer(), evt.getKiller());
- }
-
- @EventHandler
- public void onPlayerSpawn(PlayerSpawnEvent evt) {
- Onset.print("Player spawn steamid="+evt.getPlayer().getSteamId());
- CharacterManager.onPlayerSpawn(evt.getPlayer());
- }
-
- @EventHandler
- public void onPlayerChatMessage(PlayerChatEvent evt) {
- Onset.print("Player chat message="+evt.getMessage());
- Account account = WorldManager.getPlayerAccount(evt.getPlayer());
- if(account.getAdminLevel() > 0) {
- String color = "ff0000";
- String name = "Staff";
- switch (account.getCommandLevel()) {
- case 1:
- color = "984fff";
- name = "Helpeur";
- break;
-
- case 2:
- color = "0c42f2";
- name = "Modérateur";
- break;
-
- case 3:
- color = "577eff";
- name = "Modérateur+";
- break;
-
- case 4:
- color = "fc0097";
- name = "Administrateur";
- break;
-
- case 5:
- color = "00ff2a";
- name = "Fondateur";
- break;
- }
- Onset.broadcast("[" + name + "] " + account.getCharacterName() + "(" + evt.getPlayer().getId() + ")>: "
- + evt.getMessage());
- } else {
- Onset.broadcast("[Citoyen] " + account.getCharacterName() + "(" + evt.getPlayer().getId() + ")>: "
- + evt.getMessage());
- }
- }
-}
+package fr.yuki.yrpf;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.luaapi.LuaAPIManager;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.commands.*;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.modding.ModdingCustomModel;
+import fr.yuki.yrpf.model.*;
+import fr.yuki.yrpf.net.payload.*;
+import fr.yuki.yrpf.utils.ServerConfig;
+import fr.yuki.yrpf.world.RestrictedZone;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Location;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.data.Weapon;
+import net.onfirenetwork.onsetjava.plugin.Plugin;
+import net.onfirenetwork.onsetjava.plugin.event.EventHandler;
+import net.onfirenetwork.onsetjava.plugin.event.player.*;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Map;
+
+@Plugin(name = "YukiRPFramework", author = "Yuki")
+public class YukiRPFrameworkPlugin {
+
+ public void onEnable() {
+ try {
+ WorldManager.initServerConfig();
+ I18n.init();
+ Database.init();
+ Onset.registerListener(this);
+ ModdingManager.init();
+ MapManager.init();
+ InventoryManager.init();
+ ItemManager.init();
+ CharacterManager.init();
+ VehicleManager.init();
+ GarageManager.init();
+ SoundManager.init();
+ WorldManager.init();
+ JobManager.init();
+ AccountManager.init();
+ GrowboxManager.init();
+ FuelManager.init();
+ PhoneManager.init();
+ HouseManager.init();
+ TimeManager.init();
+ CompanyManager.init();
+ TebexManager.init();
+ LuaAPIManager.init();
+
+ // Register commands
+ Onset.registerCommand("item", new ItemCommand());
+ Onset.registerCommand("loc", new LocCommand());
+ Onset.registerCommand("v", new VCommand());
+ Onset.registerCommand("vmove", new MoveCommand());
+ Onset.registerCommand("dv", new DVCommand());
+ Onset.registerCommand("addgatheritem", new AddGatherItemCommand());
+ Onset.registerCommand("listgatheritem", new ShowGatherItemListCommand());
+ Onset.registerCommand("dct", new DebugCharacterToolCommand());
+ Onset.registerCommand("dvsl", new DebugVehicleStorageLayoutCommand());
+ Onset.registerCommand("adddelivery", new AddDeliveryPointCommand());
+ Onset.registerCommand("setadmin", new SetAdminLevelCommand());
+ Onset.registerCommand("ban", new BanCommand());
+ Onset.registerCommand("goto", new GotoCommand());
+ Onset.registerCommand("bring", new BringCommand());
+ Onset.registerCommand("flip", new FlipCommand());
+ Onset.registerCommand("lang", new SetLangCommand());
+ Onset.registerCommand("dop", new DebugObjectPlacementCommand());
+ Onset.registerCommand("setwhitelist", new SetWhitelistCommand());
+ Onset.registerCommand("cuff", new CuffCommand());
+ Onset.registerCommand("revive", new ReviveCommand());
+ Onset.registerCommand("nitro", new NitroCommand());
+ Onset.registerCommand("dhouse", new DebugHouseCommand());
+ Onset.registerCommand("chouse", new CreateHouseCommand());
+ Onset.registerCommand("fhouse", new FreeHouseCommand());
+ Onset.registerCommand("houseprops", new SetHousePropsCommand());
+ Onset.registerCommand("givehousekey", new GiveHouseKeyCommand());
+ Onset.registerCommand("settime", new SetTimeCommand());
+ Onset.registerCommand("getid", new GetIdCommand());
+ Onset.registerCommand("setcommandlevel", new SetCommandLevelCommand());
+ Onset.registerCommand("requestcreation", new RequestCharacterCreationCommand());
+ Onset.registerCommand("invis", new InvisCommand());
+ Onset.registerCommand("regenphone", new RegenPhoneNumberCommand());
+ Onset.registerCommand("ann", new AnnCommand());
+ Onset.registerCommand("itemall", new AddItemAllCommand());
+ Onset.registerCommand("fgc", new ForceGarbageCommand());
+ Onset.registerCommand("debugtest", new DebugTestCommand());
+ Onset.registerCommand("kick", new KickCommand());
+ Onset.registerCommand("setclothe", new SetClotheCommand());
+ Onset.registerCommand("setcharacterscale", new SetCharacterScaleCommand());
+
+ // Register remote events
+ Onset.registerRemoteEvent("GlobalUI:ToogleWindow");
+ Onset.registerRemoteEvent("Inventory:RequestContent");
+ Onset.registerRemoteEvent("Inventory:UseItem");
+ Onset.registerRemoteEvent("Object:Interact");
+ Onset.registerRemoteEvent("ATM:Deposit");
+ Onset.registerRemoteEvent("ATM:Withdraw");
+ Onset.registerRemoteEvent("Vehicle:RequestLockToogle");
+ Onset.registerRemoteEvent("Garage:RequestVehicle");
+ Onset.registerRemoteEvent("Garage:BuyVehicle");
+ Onset.registerRemoteEvent("Character:Style:SavePart");
+ Onset.registerRemoteEvent("Character:Style:CustomDone");
+ Onset.registerRemoteEvent("Global:UIReady");
+ Onset.registerRemoteEvent("Job:WearObject");
+ Onset.registerRemoteEvent("Job:CharacterJobRequest");
+ Onset.registerRemoteEvent("Character:RequestWearFromVehicleChest");
+ Onset.registerRemoteEvent("Inventory:ThrowItem");
+ Onset.registerRemoteEvent("Seller:BuySellItem");
+ Onset.registerRemoteEvent("Object:EditPlacementCancel");
+ Onset.registerRemoteEvent("Object:EditPlacement");
+ Onset.registerRemoteEvent("Object:EditPlacementDone");
+ Onset.registerRemoteEvent("Job:UseJobTool");
+ Onset.registerRemoteEvent("Growbox:FillWaterPot");
+ Onset.registerRemoteEvent("Growbox:FillSeedPot");
+ Onset.registerRemoteEvent("Growbox:HarvestPot");
+ Onset.registerRemoteEvent("Growbox:TakePot");
+ Onset.registerRemoteEvent("Phone:AddContact");
+ Onset.registerRemoteEvent("Phone:RequestContacts");
+ Onset.registerRemoteEvent("Phone:RequestSendMessage");
+ Onset.registerRemoteEvent("Phone:RequestConversation");
+ Onset.registerRemoteEvent("Phone:RequestConversationsList");
+ Onset.registerRemoteEvent("House:RequestHouseMenu");
+ Onset.registerRemoteEvent("House:RequestBuy");
+ Onset.registerRemoteEvent("Object:EditExistingPlacement");
+ Onset.registerRemoteEvent("Phone:RequestBuyItemShop");
+ Onset.registerRemoteEvent("Weapon:StoreWeapon");
+ Onset.registerRemoteEvent("Growbox:Destroy");
+ Onset.registerRemoteEvent("ATM:GetInfos");
+ Onset.registerRemoteEvent("Phone:RequestCall");
+ Onset.registerRemoteEvent("Phone:RequestAnswer");
+ Onset.registerRemoteEvent("Phone:RequestEndCall");
+ Onset.registerRemoteEvent("Phone:RequestAttachPhone");
+ Onset.registerRemoteEvent("SetPlayerEditor");
+ Onset.registerRemoteEvent("Phone:RequestUrgency");
+ Onset.registerRemoteEvent("Phone:RequestListUrgency");
+ Onset.registerRemoteEvent("Phone:SolveUrgency");
+ Onset.registerRemoteEvent("Compagny:Create");
+ Onset.registerRemoteEvent("Compagny:InviteEmployee");
+ Onset.registerRemoteEvent("Compagny:AcceptInvitation");
+ Onset.registerRemoteEvent("Compagny:DeclineInvitation");
+ Onset.registerRemoteEvent("Compagny:KickEmployee");
+ Onset.registerRemoteEvent("Character:Interact");
+ Onset.registerRemoteEvent("Character:InspectCharacter");
+ Onset.registerRemoteEvent("GenericMenu:Dismiss");
+ Onset.registerRemoteEvent("Character:GiveHouseKey");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ Onset.print("Can't start the plugin because : " + ex.toString());
+ }
+ }
+
+ @EventHandler
+ public void onJoin(PlayerSteamAuthEvent evt) {
+ // Create or update the account
+ try {
+ Onset.print("Player joining steamId=" + evt.getPlayer().getSteamId());
+ Account account = Repo.get(Account.class).where("steamId", evt.getPlayer().getSteamId()).get();
+ ServerConfig serverConfig = WorldManager.getServerConfig();
+
+ // Clear state
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(evt.getPlayer());
+ if(state != null) {
+ state.setCurrentPhoneCall(null);
+ state.setCurrentObjectPlacementInstance(null);
+ state.setCuffed(false);
+ }
+
+ // Create the account if doesnt exist
+ if(account == null) {
+ Onset.print("Create the account for the steamId=" + evt.getPlayer().getSteamId());
+
+ account = new Account();
+ account.setSteamName(evt.getPlayer().getName());
+ account.setSteamId(evt.getPlayer().getSteamId());
+ account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
+ account.setSaveX(serverConfig.getSpawnPointX());
+ account.setSaveY(serverConfig.getSpawnPointY());
+ account.setSaveZ(serverConfig.getSpawnPointZ());
+ account.setSaveH(serverConfig.getSpawnPointH());
+ account.save();
+ WorldManager.getAccounts().put(account.getId(), account);
+
+ // Set spawn location
+ evt.getPlayer().setSpawnLocation(new Vector(serverConfig.getSpawnPointX(),
+ serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()), serverConfig.getSpawnPointH());
+ evt.getPlayer().setLocation(new Vector(serverConfig.getSpawnPointX(),
+ serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()));
+ evt.getPlayer().setHeading(serverConfig.getSpawnPointH());
+ CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(serverConfig.getSpawnPointX(),
+ serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ(), serverConfig.getSpawnPointH()));
+
+ // Create the default inventory for character
+ Inventory inventory = new Inventory();
+ inventory.save();
+ Onset.print("Inventory created id=" + inventory.getId());
+ inventory.setInventoryType(1);
+ inventory.setCharacterId(account.getId());
+ InventoryManager.getInventories().put(inventory.getId(), inventory);
+ inventory.save();
+
+ // Set properties for the player
+ evt.getPlayer().setProperty("accountId", account.getId(), true);
+ }
+ else {
+ if(account.isBanned()) {
+ evt.getPlayer().kick("You have been banned, bye bye");
+ return;
+ }
+
+ // Set properties for the player
+ evt.getPlayer().setProperty("accountId", account.getId(), true);
+
+ // evt.getPlayer().setLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()));
+ CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(account.getSaveX(),
+ account.getSaveY(),
+ account.getSaveZ() + 50,
+ account.getSaveH()));
+
+ if(account.getCharacterName().equals("Unknown")) { // Recovery
+ account.setCharacterCreationRequest(true);
+ account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
+ account.setBankMoney(4000);
+ Onset.print("Phone number generated : " + account.getPhoneNumber());
+
+ evt.getPlayer().setSpawnLocation(new Vector(serverConfig.getSpawnPointX(),
+ serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ()), 0);
+ CharacterManager.teleportWithLevelLoading(evt.getPlayer(), new Location(serverConfig.getSpawnPointX(),
+ serverConfig.getSpawnPointY(), serverConfig.getSpawnPointZ(), serverConfig.getSpawnPointH()));
+ } else {
+ evt.getPlayer().setSpawnLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()), 0);
+ //Onset.broadcast("" + account.getCharacterName() + " est de retour !>");
+ }
+
+ if(account.getOriginalStyle().equals("")) {
+ account.setOriginalStyle(account.getCharacterStyle());
+ }
+ // Set weapons
+ for(Map.Entry weaponEntry :
+ ((HashMap)new Gson().fromJson(account.getWeapons(), new TypeToken>(){}.getType())).entrySet()) {
+ evt.getPlayer().setWeapon(weaponEntry.getKey(), weaponEntry.getValue());
+ }
+ }
+
+ // Insert the account in the cache if not exist
+ if(!WorldManager.getAccounts().containsKey(account.getId())) {
+ WorldManager.getAccounts().put(account.getId(), account);
+ }
+
+ JobManager.initCharacterJobs(evt.getPlayer());
+ if(CharacterManager.getCharacterStateByPlayer(evt.getPlayer()) == null)
+ CharacterManager.getCharacterStates().put(evt.getPlayer().getSteamId(), new CharacterState());
+
+ // Generate a phone number for the player
+ if(account.getPhoneNumber().trim().equals("")) {
+ account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
+ account.save();
+ Onset.print("Phone number generated : " + account.getPhoneNumber());
+ }
+
+ // Attach bag
+ if(account.getBagId() != -1) {
+ Account finalAccount = account;
+ Bag bag = ItemManager.bags.stream().filter(x -> x.getModelId() == finalAccount.getBagId())
+ .findFirst().orElse(null);
+ state.attachBag(bag, evt.getPlayer());
+ }
+
+ // If the player is dead
+ if(account.isDead()) {
+ evt.getPlayer().setHealth(0);
+ } else {
+ evt.getPlayer().setHealth(account.getHealth());
+ }
+
+ // Set current time
+ TimeManager.setCurrentHourForPlayer(evt.getPlayer());
+
+ // Set modding objects
+ for(ModdingCustomModel customModel : ModdingManager.getModdingFile().getCustomModels()) {
+ evt.getPlayer().callRemoteEvent("Modding:AddCustomObject", customModel.getId(), customModel.getPath());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ evt.getPlayer().kick("There is a error for retrieving your account: " + e.toString());
+ }
+ }
+
+ @EventHandler
+ public void onQuit(PlayerQuitEvent evt) {
+ Onset.print("Player quit steamId=" + evt.getPlayer().getSteamId());
+ WorldManager.handleObjectEditPlacementCancel(evt.getPlayer());
+ Account account = WorldManager.getPlayerAccount(evt.getPlayer());
+ Location location = evt.getPlayer().getLocationAndHeading();
+ account.setSaveX(location.getX());
+ account.setSaveY(location.getY());
+ account.setSaveZ(location.getZ());
+ account.setSaveH(location.getHeading());
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(evt.getPlayer());
+ if(state != null) {
+ if(state.getCurrentPhoneCall() != null ){
+ state.getCurrentPhoneCall().end();
+ }
+ CharacterManager.getCharacterStates().remove(evt.getPlayer().getSteamId());
+ }
+ WorldManager.savePlayer(evt.getPlayer());
+ }
+
+ @EventHandler
+ public void onRemoteEvent(PlayerRemoteEvent evt) {
+ try {
+ Onset.print("Receive remote event name=" + evt.getName());
+ switch (evt.getName()) {
+ case "Inventory:RequestContent":
+ InventoryManager.handleRequestContent(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ RequestInventoryContentPayload.class));
+ break;
+
+ case "Inventory:UseItem":
+ ItemManager.handleItemUse(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ RequestUseItemPayload.class));
+ break;
+
+ case "GlobalUI:ToogleWindow":
+ UIStateManager.handleUIToogle(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Object:Interact":
+ WorldManager.handleInteract(evt.getPlayer());
+ break;
+
+ case "ATM:Deposit":
+ ATMManager.handleATMDeposit(evt.getPlayer(), (int)Float.parseFloat((evt.getArgs()[0]).toString()));
+ break;
+
+ case "ATM:Withdraw":
+ ATMManager.handleATMWithdraw(evt.getPlayer(), (int)Float.parseFloat((evt.getArgs()[0]).toString()));
+ break;
+
+ case "ATM:GetInfos":
+ ATMManager.handleATMGetInfos(evt.getPlayer());
+ break;
+
+ case "Vehicle:RequestLockToogle":
+ VehicleManager.handleVehicleLockRequest(evt.getPlayer());
+ break;
+
+ case "Garage:RequestVehicle":
+ GarageManager.handleRequestVehicle(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Garage:BuyVehicle":
+ GarageManager.handleRequestBuyVehicle(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ RequestBuyVehiclePayload.class));
+ break;
+
+ case "Character:Style:SavePart":
+ CharacterManager.handleStyleSavePart(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ StyleSavePartPayload.class));
+ break;
+
+ case "Character:Style:CustomDone":
+ CharacterManager.handleCharacterCustomDone(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Global:UIReady":
+ UIStateManager.handleUIReady(evt.getPlayer());
+ break;
+
+ case "Job:WearObject":
+ JobManager.handleWearObjectRequest(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Character:RequestWearFromVehicleChest":
+ VehicleManager.handleRequestWearFromVehicleChest(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Inventory:ThrowItem":
+ InventoryManager.handleThrowItem(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ RequestThrowItemPayload.class));
+ break;
+
+ case "Job:CharacterJobRequest":
+ JobManager.handleRequestCharacterJobs(evt.getPlayer());
+ break;
+
+ case "Seller:BuySellItem":
+ WorldManager.handleBuySellItemSeller(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ BuySellItemRequestPayload.class));
+ break;
+
+ case "Object:EditPlacement":
+ WorldManager.handleObjectRequestPlacement(evt.getPlayer());
+ break;
+
+ case "Object:EditPlacementCancel":
+ WorldManager.handleObjectEditPlacementCancel(evt.getPlayer());
+ break;
+
+ case "Object:EditPlacementDone":
+ WorldManager.handleObjectPlacementDone(evt.getPlayer(),
+ new Vector(Double.parseDouble((evt.getArgs()[0]).toString()),
+ Double.parseDouble((evt.getArgs()[1]).toString()), Double.parseDouble((evt.getArgs()[2]).toString())),
+ new Vector(Double.parseDouble((evt.getArgs()[3]).toString()),
+ Double.parseDouble((evt.getArgs()[4]).toString()), Double.parseDouble((evt.getArgs()[5]).toString())));
+ break;
+
+ case "Job:UseJobTool":
+ JobManager.handleUseJobTool(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Growbox:Destroy":
+ GrowboxManager.handleGrowboxDestroy(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Growbox:FillWaterPot":
+ GrowboxManager.handleGrowboxFillWaterPot(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ GrowboxFillWaterPotPayload.class));
+ break;
+
+ case "Growbox:FillSeedPot":
+ GrowboxManager.handleGrowboxFillSeedPot(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ GrowboxFillWaterPotPayload.class));
+ break;
+
+ case "Growbox:HarvestPot":
+ GrowboxManager.handleGrowboxHarvestRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ GrowboxFillWaterPotPayload.class));
+ break;
+
+ case "Growbox:TakePot":
+ GrowboxManager.handleGrowboxTakePotRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ GrowboxFillWaterPotPayload.class));
+ break;
+
+ case "Phone:RequestContacts":
+ PhoneManager.handleRequestPhoneContacts(evt.getPlayer());
+ break;
+
+ case "Phone:AddContact":
+ PhoneManager.handleAddPhoneContact(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ PhoneAddContactPayload.class));
+ break;
+
+ case "Phone:RequestSendMessage":
+ PhoneManager.handleRequestSendMessage(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ RequestPhoneSendMessagePayload.class));
+ break;
+
+ case "Phone:RequestConversation":
+ PhoneManager.handleRequestConversation(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Phone:RequestConversationsList":
+ PhoneManager.handleRequestConversationsList(evt.getPlayer());
+ break;
+
+ case "House:RequestHouseMenu":
+ HouseManager.handleHouseMenu(evt.getPlayer(), evt.getPlayer().getLocation());
+ break;
+
+ case "House:RequestBuy":
+ HouseManager.handleBuyHouseRequest(evt.getPlayer());
+ break;
+
+ case "Object:EditExistingPlacement":
+ WorldManager.handleEditExistingPlacement(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
+ break;
+
+ case "Phone:RequestBuyItemShop":
+ HouseManager.handleRequestBuyItemShop(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
+ break;
+
+ case "Weapon:StoreWeapon":
+ WeaponManager.storeWeapon(evt.getPlayer());
+ break;
+
+ case "Phone:RequestCall":
+ PhoneManager.handleRequestCall(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Phone:RequestAnswer":
+ PhoneManager.handleCallAnswer(evt.getPlayer());
+ break;
+
+ case "Phone:RequestEndCall":
+ PhoneManager.handleCallEnd(evt.getPlayer());
+ break;
+
+ case "Phone:RequestAttachPhone":
+ PhoneManager.handleAttachPhone(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "SetPlayerEditor":
+ ModdingManager.onEditorOpen(evt.getPlayer());
+ break;
+
+ case "Phone:RequestUrgency":
+ PhoneManager.handleUrgencyRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ UrgencyRequestPayload.class));
+ break;
+
+ case "Phone:RequestListUrgency":
+ PhoneManager.handleUrgencyListRequest(evt.getPlayer());
+ break;
+
+ case "Phone:SolveUrgency":
+ PhoneManager.handleUrgencySolveRequest(evt.getPlayer(), new Gson().fromJson((evt.getArgs()[0]).toString(),
+ SolveUrgencyPayload.class));
+ break;
+
+ case "Compagny:Create":
+ CompanyManager.handleCreateRequest(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Compagny:InviteEmployee":
+ CompanyManager.handleInviteEmployee(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Compagny:AcceptInvitation":
+ CompanyManager.handleAcceptInvitation(evt.getPlayer());
+ break;
+
+ case "Compagny:DeclineInvitation":
+ CompanyManager.handleDeclineInvitation(evt.getPlayer());
+ break;
+
+ case "Compagny:KickEmployee":
+ CompanyManager.handleKickEmployee(evt.getPlayer(), (evt.getArgs()[0]).toString());
+ break;
+
+ case "Character:Interact":
+ CharacterManager.handleCharacterInteract(evt.getPlayer());
+ break;
+
+ case "GenericMenu:Dismiss":
+ CharacterManager.handleGenericMenuDismiss(evt.getPlayer());
+ break;
+
+ case "Character:InspectCharacter":
+ CharacterManager.handleInspectCharacter(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
+ break;
+
+ case "Character:GiveHouseKey":
+ HouseManager.handleGiveHouseKey(evt.getPlayer(), Integer.parseInt((evt.getArgs()[0]).toString()));
+ break;
+ }
+ }
+ catch (Exception ex) {
+ StringWriter sw = new StringWriter();
+ ex.printStackTrace(new PrintWriter(sw));
+ Onset.print(sw.toString());
+ }
+ }
+
+ @EventHandler
+ public void onPlayerVehicleEnter(PlayerEnterVehicleEvent evt) {
+ Onset.print("Player entered in the vehicle seat="+evt.getSeat());
+ VehicleManager.onPlayerEnterVehicle(evt.getPlayer(), evt.getVehicle(), evt.getSeat());
+ }
+
+ @EventHandler
+ public void onPlayerVehicleExit(PlayerExitVehicleEvent evt) {
+ Onset.print("Player exit in the vehicle seat="+evt.getSeat());
+ VehicleManager.onPlayerVehicleExit(evt.getPlayer(), evt.getVehicle(), evt.getSeat());
+ }
+
+ @EventHandler
+ public void onPlayerInteractDoor(PlayerInteractDoorEvent evt) {
+ House house = HouseManager.getHouseAtLocation(evt.getDoor().getLocation());
+ if(house != null) {
+ Account account = WorldManager.getPlayerAccount(evt.getPlayer());
+ if(house.getAccountId() == -1) {
+ HouseManager.handleHouseMenu(evt.getPlayer(), evt.getDoor().getLocation());
+ return;
+ }
+ if(!HouseManager.canBuildInHouse(evt.getPlayer(), house) && house.isLocked()) {
+ SoundManager.playSound3D("sounds/toctoc.mp3", evt.getPlayer().getLocation(), 800, 1);
+ UIStateManager.sendNotification(evt.getPlayer(), ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.dont_own_it"));
+ return;
+ }
+ }
+
+ // Check Restricted Zone
+ for(RestrictedZone restrictedZone : WorldManager.getRestrictedZones()) {
+ if(!restrictedZone.canInteractWithDoor(evt.getPlayer(), evt.getDoor())) {
+ UIStateManager.sendNotification(evt.getPlayer(), ToastTypeEnum.ERROR, "Vous n'avez pas le droit d'intéragir avec cette porte");
+ return;
+ }
+ }
+
+ if(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation()) != null) {
+ if(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation())
+ .getLocation().distance(evt.getPlayer().getLocation()) < VehicleManager.getInteractionDistance(VehicleManager.getNearestVehicle(evt.getPlayer().getLocation()))) {
+ return;
+ } else {
+
+ evt.getDoor().setOpen(evt.getDoor().isOpen() ? false : true);
+ }
+ } else {
+ evt.getDoor().setOpen(evt.getDoor().isOpen() ? false : true);
+ }
+ }
+
+ @EventHandler
+ public void onPlayerDead(PlayerDeathEvent evt) {
+ Account account = WorldManager.getPlayerAccount(evt.getPlayer());
+ Location location = evt.getPlayer().getLocationAndHeading();
+ account.setSaveX(location.getX());
+ account.setSaveY(location.getY());
+ account.setSaveZ(location.getZ());
+ account.setSaveH(location.getHeading());
+
+ CharacterManager.onPlayerDeath(evt.getPlayer(), evt.getKiller());
+ }
+
+ @EventHandler
+ public void onPlayerSpawn(PlayerSpawnEvent evt) {
+ Onset.print("Player spawn steamid="+evt.getPlayer().getSteamId());
+ CharacterManager.onPlayerSpawn(evt.getPlayer());
+ }
+
+ @EventHandler
+ public void onPlayerChatMessage(PlayerChatEvent evt) {
+ Onset.print("Player chat message="+evt.getMessage());
+ Account account = WorldManager.getPlayerAccount(evt.getPlayer());
+ if(account.getAdminLevel() > 0) {
+ String color = "ff0000";
+ String name = "Staff";
+ switch (account.getCommandLevel()) {
+ case 1:
+ color = "984fff";
+ name = "Helpeur";
+ break;
+
+ case 2:
+ color = "0c42f2";
+ name = "Modérateur";
+ break;
+
+ case 3:
+ color = "577eff";
+ name = "Modérateur+";
+ break;
+
+ case 4:
+ color = "fc0097";
+ name = "Administrateur";
+ break;
+
+ case 5:
+ color = "00ff2a";
+ name = "Fondateur";
+ break;
+ }
+ Onset.broadcast("[" + name + "] " + account.getCharacterName() + "(" + evt.getPlayer().getId() + ")>: "
+ + evt.getMessage());
+ } else {
+ Onset.broadcast("[Citoyen] " + account.getCharacterName() + "(" + evt.getPlayer().getId() + ")>: "
+ + evt.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterJobLevel.java b/src/main/java/fr/yuki/yrpf/character/CharacterJobLevel.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/character/CharacterJobLevel.java
rename to src/main/java/fr/yuki/yrpf/character/CharacterJobLevel.java
index ff4b0ce..518ad21 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterJobLevel.java
+++ b/src/main/java/fr/yuki/yrpf/character/CharacterJobLevel.java
@@ -1,40 +1,40 @@
-package fr.yuki.YukiRPFramework.character;
-
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.model.JobLevel;
-
-import java.util.ArrayList;
-import java.util.stream.Collectors;
-
-public class CharacterJobLevel {
- private String jobId;
- private int exp;
-
- public String getJobId() {
- return jobId;
- }
-
- public void setJobId(String jobId) {
- this.jobId = jobId;
- }
-
- public int getExp() {
- return exp;
- }
-
- public void setExp(int exp) {
- this.exp = exp;
- }
-
- public JobLevel getJobLevel() {
- ArrayList levels = new ArrayList<>(JobManager.getJobLevels().stream()
- .filter(x -> x.getJobId().equals(this.getJobId())).collect(Collectors.toList()));
- JobLevel level = levels.get(0);
- for(JobLevel l : levels) {
- if(l.getLevel() > level.getLevel() && this.getExp() >= l.getExpFloor()) {
- level = l;
- }
- }
- return level;
- }
-}
+package fr.yuki.yrpf.character;
+
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.model.JobLevel;
+
+import java.util.ArrayList;
+import java.util.stream.Collectors;
+
+public class CharacterJobLevel {
+ private String jobId;
+ private int exp;
+
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ public int getExp() {
+ return exp;
+ }
+
+ public void setExp(int exp) {
+ this.exp = exp;
+ }
+
+ public JobLevel getJobLevel() {
+ ArrayList levels = new ArrayList<>(JobManager.getJobLevels().stream()
+ .filter(x -> x.getJobId().equals(this.getJobId())).collect(Collectors.toList()));
+ JobLevel level = levels.get(0);
+ for(JobLevel l : levels) {
+ if(l.getLevel() > level.getLevel() && this.getExp() >= l.getExpFloor()) {
+ level = l;
+ }
+ }
+ return level;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterLoopAnimation.java b/src/main/java/fr/yuki/yrpf/character/CharacterLoopAnimation.java
similarity index 94%
rename from src/main/java/fr/yuki/YukiRPFramework/character/CharacterLoopAnimation.java
rename to src/main/java/fr/yuki/yrpf/character/CharacterLoopAnimation.java
index 145a86e..b19206a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterLoopAnimation.java
+++ b/src/main/java/fr/yuki/yrpf/character/CharacterLoopAnimation.java
@@ -1,139 +1,139 @@
-package fr.yuki.YukiRPFramework.character;
-
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-public class CharacterLoopAnimation {
- private Player player;
- private String animation;
- private int loopInterval;
- private int loopAmount;
- private String loopSound;
- private boolean isActive = false;
- private CharacterToolAnimation characterToolAnimation;
-
- public CharacterLoopAnimation(String animation, int loopInterval, int loopAmount,
- String loopSound) {
- this.animation = animation;
- this.loopInterval = loopInterval;
- this.loopAmount = loopAmount;
- this.loopSound = loopSound;
- }
-
- public CharacterLoopAnimation(Player player, String animation, int loopInterval, int loopAmount,
- String loopSound) {
- this.player = player;
- this.animation = animation.toString();
- this.loopInterval = loopInterval;
- this.loopAmount = loopAmount;
- this.loopSound = loopSound;
- }
-
- public CharacterLoopAnimation(Player player, Animation animation, int loopInterval, int loopAmount,
- String loopSound) {
- this.player = player;
- this.animation = animation.toString();
- this.loopInterval = loopInterval;
- this.loopAmount = loopAmount;
- this.loopSound = loopSound;
- }
-
- public void start() {
- this.isActive = true;
- if(!loopSound.equals("")) {
- SoundManager.playSound3D(this.loopSound, this.player.getLocation(), 1500, 1);
- }
-
- // Attach the tool
- if(characterToolAnimation != null) {
- this.attachTool();
- }
-
- this.player.setAnimation(this.animation);
- for(int i = 1; i <= loopAmount; i++) {
- int currentI = i;
- Onset.delay(loopInterval * i, () -> {
- if (!this.isActive) return;
- this.player.setAnimation(this.animation);
-
- if(!loopSound.equals("") && currentI != loopAmount) {
- SoundManager.playSound3D(this.loopSound, this.player.getLocation(), 1500, 1);
- }
- });
- }
- }
-
- private void attachTool() {
- this.characterToolAnimation.attach(this.player);
- }
-
- public void setTool(CharacterToolAnimation characterToolAnimation) {
- this.characterToolAnimation = characterToolAnimation;
- }
-
- public void stop() {
- this.isActive = false;
- if(characterToolAnimation != null) {
- this.characterToolAnimation.unAttach();
- }
- this.player.setAnimation(Animation.STOP);
- }
-
- public Player getPlayer() {
- return player;
- }
-
- public void setPlayer(Player player) {
- this.player = player;
- }
-
- public String getAnimation() {
- return animation;
- }
-
- public void setAnimation(String animation) {
- this.animation = animation;
- }
-
- public int getLoopInterval() {
- return loopInterval;
- }
-
- public void setLoopInterval(int loopInterval) {
- this.loopInterval = loopInterval;
- }
-
- public int getLoopAmount() {
- return loopAmount;
- }
-
- public void setLoopAmount(int loopAmount) {
- this.loopAmount = loopAmount;
- }
-
- public String getLoopSound() {
- return loopSound;
- }
-
- public void setLoopSound(String loopSound) {
- this.loopSound = loopSound;
- }
-
- public boolean isActive() {
- return isActive;
- }
-
- public void setActive(boolean active) {
- isActive = active;
- }
-
- public CharacterToolAnimation getCharacterToolAnimation() {
- return characterToolAnimation;
- }
-
- public void setCharacterToolAnimation(CharacterToolAnimation characterToolAnimation) {
- this.characterToolAnimation = characterToolAnimation;
- }
-}
+package fr.yuki.yrpf.character;
+
+import fr.yuki.yrpf.manager.SoundManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+public class CharacterLoopAnimation {
+ private Player player;
+ private String animation;
+ private int loopInterval;
+ private int loopAmount;
+ private String loopSound;
+ private boolean isActive = false;
+ private CharacterToolAnimation characterToolAnimation;
+
+ public CharacterLoopAnimation(String animation, int loopInterval, int loopAmount,
+ String loopSound) {
+ this.animation = animation;
+ this.loopInterval = loopInterval;
+ this.loopAmount = loopAmount;
+ this.loopSound = loopSound;
+ }
+
+ public CharacterLoopAnimation(Player player, String animation, int loopInterval, int loopAmount,
+ String loopSound) {
+ this.player = player;
+ this.animation = animation.toString();
+ this.loopInterval = loopInterval;
+ this.loopAmount = loopAmount;
+ this.loopSound = loopSound;
+ }
+
+ public CharacterLoopAnimation(Player player, Animation animation, int loopInterval, int loopAmount,
+ String loopSound) {
+ this.player = player;
+ this.animation = animation.toString();
+ this.loopInterval = loopInterval;
+ this.loopAmount = loopAmount;
+ this.loopSound = loopSound;
+ }
+
+ public void start() {
+ this.isActive = true;
+ if(!loopSound.equals("")) {
+ SoundManager.playSound3D(this.loopSound, this.player.getLocation(), 1500, 1);
+ }
+
+ // Attach the tool
+ if(characterToolAnimation != null) {
+ this.attachTool();
+ }
+
+ this.player.setAnimation(this.animation);
+ for(int i = 1; i <= loopAmount; i++) {
+ int currentI = i;
+ Onset.delay(loopInterval * i, () -> {
+ if (!this.isActive) return;
+ this.player.setAnimation(this.animation);
+
+ if(!loopSound.equals("") && currentI != loopAmount) {
+ SoundManager.playSound3D(this.loopSound, this.player.getLocation(), 1500, 1);
+ }
+ });
+ }
+ }
+
+ private void attachTool() {
+ this.characterToolAnimation.attach(this.player);
+ }
+
+ public void setTool(CharacterToolAnimation characterToolAnimation) {
+ this.characterToolAnimation = characterToolAnimation;
+ }
+
+ public void stop() {
+ this.isActive = false;
+ if(characterToolAnimation != null) {
+ this.characterToolAnimation.unAttach();
+ }
+ this.player.setAnimation(Animation.STOP);
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public void setPlayer(Player player) {
+ this.player = player;
+ }
+
+ public String getAnimation() {
+ return animation;
+ }
+
+ public void setAnimation(String animation) {
+ this.animation = animation;
+ }
+
+ public int getLoopInterval() {
+ return loopInterval;
+ }
+
+ public void setLoopInterval(int loopInterval) {
+ this.loopInterval = loopInterval;
+ }
+
+ public int getLoopAmount() {
+ return loopAmount;
+ }
+
+ public void setLoopAmount(int loopAmount) {
+ this.loopAmount = loopAmount;
+ }
+
+ public String getLoopSound() {
+ return loopSound;
+ }
+
+ public void setLoopSound(String loopSound) {
+ this.loopSound = loopSound;
+ }
+
+ public boolean isActive() {
+ return isActive;
+ }
+
+ public void setActive(boolean active) {
+ isActive = active;
+ }
+
+ public CharacterToolAnimation getCharacterToolAnimation() {
+ return characterToolAnimation;
+ }
+
+ public void setCharacterToolAnimation(CharacterToolAnimation characterToolAnimation) {
+ this.characterToolAnimation = characterToolAnimation;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterState.java b/src/main/java/fr/yuki/yrpf/character/CharacterState.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/character/CharacterState.java
rename to src/main/java/fr/yuki/yrpf/character/CharacterState.java
index 781fb59..dd01aee 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterState.java
+++ b/src/main/java/fr/yuki/yrpf/character/CharacterState.java
@@ -1,235 +1,225 @@
-package fr.yuki.YukiRPFramework.character;
-
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.modding.Line3D;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.Bag;
-import fr.yuki.YukiRPFramework.model.Mask;
-import fr.yuki.YukiRPFramework.phone.PhoneCall;
-import fr.yuki.YukiRPFramework.ui.GenericMenu;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class CharacterState {
- private WearableWorldObject wearableWorldObject;
- private boolean isDead = false;
- private boolean firstSpawn = true;
- private boolean hasUIReady = false;
- private ObjectPlacementInstance currentObjectPlacementInstance = null;
- private boolean cuffed = false;
- private UIState uiState = null;
- private Line3D currentDisplayedLine3D = null;
- private ArrayList lastLocationsRequest = new ArrayList<>();
- private Mask currentMask = null;
- private WorldObject maskWorldObject = null;
- private Bag currentBag = null;
- private WorldObject bagWorldObject = null;
- private PhoneCall currentPhoneCall = null;
- private int currentCompagnyInvited = -1;
- private CharacterToolAnimation currentPhoneAttached = null;
- private GenericMenu currentGenericMenu = null;
- private boolean isInvisible = false;
-
- public CharacterState() {
- this.uiState = new UIState();
- }
-
- public WearableWorldObject getWearableWorldObject() {
- return wearableWorldObject;
- }
-
- public void setWearableWorldObject(Player player, WearableWorldObject wearableWorldObject) {
- this.wearableWorldObject = wearableWorldObject;
- if(this.wearableWorldObject != null) {
- player.setProperty("wearId", this.wearableWorldObject.getUuid(), true);
- } else {
- player.setProperty("wearId", "", true);
- }
- }
-
- public boolean isDead() {
- return isDead;
- }
-
- public void setDead(boolean dead) {
- isDead = dead;
- }
-
- public boolean isFirstSpawn() {
- return firstSpawn;
- }
-
- public void setFirstSpawn(boolean firstSpawn) {
- Onset.print("FirstSpawn: " + firstSpawn);
- this.firstSpawn = firstSpawn;
- }
-
- public ObjectPlacementInstance getCurrentObjectPlacementInstance() {
- return currentObjectPlacementInstance;
- }
-
- public void setCurrentObjectPlacementInstance(ObjectPlacementInstance currentObjectPlacementInstance) {
- this.currentObjectPlacementInstance = currentObjectPlacementInstance;
- }
-
- public boolean isCuffed() {
- return cuffed;
- }
-
- public void setCuffed(boolean cuffed) {
- this.cuffed = cuffed;
- }
-
- public boolean canInteract() {
- if(this.isDead) return false;
- if(this.cuffed) return false;
- if(this.getCurrentObjectPlacementInstance() != null) return false;
- return true;
- }
-
- public UIState getUiState() {
- return uiState;
- }
-
- public Line3D getCurrentDisplayedLine3D() {
- return currentDisplayedLine3D;
- }
-
- public void setCurrentDisplayedLine3D(Line3D currentDisplayedLine3D) {
- this.currentDisplayedLine3D = currentDisplayedLine3D;
- }
-
- public ArrayList getLastLocationsRequest() {
- return lastLocationsRequest;
- }
-
- public void setLastLocationsRequest(ArrayList lastLocationsRequest) {
- this.lastLocationsRequest = lastLocationsRequest;
- }
-
- public void attachMask(Mask mask, Player player) {
- if(this.maskWorldObject != null) {
- this.maskWorldObject.destroy();
- }
- this.currentMask = mask;
- Onset.print("Attach mask id: " + mask.getModelId());
- this.maskWorldObject = Onset.getServer().createObject(new Vector(0, 0, 0), mask.getModelId());
- this.maskWorldObject.attach(player, new Vector(mask.getX(), mask.getY(), mask.getZ()), new Vector(mask.getRx(), mask.getRy(), mask.getRz()), mask.getSocket());
- if(ModdingManager.isCustomModelId(mask.getModelId())) ModdingManager.assignCustomModel(this.maskWorldObject, mask.getModelId());
- this.maskWorldObject.setScale(new Vector(mask.getSx(), mask.getSy(), mask.getSz()));
- }
-
- public void unattachMask() {
- if(this.maskWorldObject != null) {
- this.maskWorldObject.destroy();
- }
- this.currentMask = null;
- }
-
- public void attachBag(Bag bag, Player player) {
- if(this.bagWorldObject != null) {
- this.bagWorldObject.destroy();
- }
- Account account = WorldManager.getPlayerAccount(player);
- this.currentBag = bag;
- Onset.print("Attach bag id: " + bag.getModelId());
- this.bagWorldObject = Onset.getServer().createObject(new Vector(0, 0, 0), bag.getModelId());
- this.bagWorldObject.attach(player, new Vector(bag.getX(), bag.getY(), bag.getZ()), new Vector(bag.getRx(), bag.getRy(), bag.getRz()), bag.getSocket());
- if(ModdingManager.isCustomModelId(bag.getModelId())) ModdingManager.assignCustomModel(this.bagWorldObject, bag.getModelId());
- this.bagWorldObject.setScale(new Vector(bag.getSx(), bag.getSy(), bag.getSz()));
- account.setBagId(this.currentBag.getModelId());
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
-
- public void unattachBag(Player player) {
- if(this.bagWorldObject != null) {
- this.bagWorldObject.destroy();
- }
- Account account = WorldManager.getPlayerAccount(player);
- this.currentBag = null;
- account.setBagId(-1);
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
-
- public Mask getCurrentMask() {
- return currentMask;
- }
-
- public void setCurrentMask(Mask currentMask) {
- this.currentMask = currentMask;
- }
-
- public Bag getCurrentBag() {
- return currentBag;
- }
-
- public void setCurrentBag(Bag currentBag) {
- this.currentBag = currentBag;
- }
-
- public boolean isHasUIReady() {
- return hasUIReady;
- }
-
- public void setHasUIReady(boolean hasUIReady) {
- this.hasUIReady = hasUIReady;
- }
-
- public PhoneCall getCurrentPhoneCall() {
- return currentPhoneCall;
- }
-
- public void setCurrentPhoneCall(PhoneCall currentPhoneCall) {
- this.currentPhoneCall = currentPhoneCall;
- }
-
- public CharacterToolAnimation getCurrentPhoneAttached() {
- return currentPhoneAttached;
- }
-
- public void setCurrentPhoneAttached(CharacterToolAnimation currentPhoneAttached) {
- this.currentPhoneAttached = currentPhoneAttached;
- }
-
- public int getCurrentCompagnyInvited() {
- return currentCompagnyInvited;
- }
-
- public void setCurrentCompagnyInvited(int currentCompagnyInvited) {
- this.currentCompagnyInvited = currentCompagnyInvited;
- }
-
- public GenericMenu getCurrentGenericMenu() {
- return currentGenericMenu;
- }
-
- public void setCurrentGenericMenu(GenericMenu currentGenericMenu) {
- this.currentGenericMenu = currentGenericMenu;
- }
-
- public boolean isInvisible() {
- return isInvisible;
- }
-
- public void setInvisible(boolean invisible) {
- isInvisible = invisible;
- }
-}
+package fr.yuki.yrpf.character;
+
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.manager.ModdingManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.modding.Line3D;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.Bag;
+import fr.yuki.yrpf.model.Mask;
+import fr.yuki.yrpf.phone.PhoneCall;
+import fr.yuki.yrpf.ui.GenericMenu;
+import fr.yuki.yrpf.ui.UIState;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.ArrayList;
+
+public class CharacterState {
+ private WearableWorldObject wearableWorldObject;
+ private boolean isDead = false;
+ private boolean firstSpawn = true;
+ private boolean hasUIReady = false;
+ private ObjectPlacementInstance currentObjectPlacementInstance = null;
+ private boolean cuffed = false;
+ private UIState uiState = null;
+ private Line3D currentDisplayedLine3D = null;
+ private ArrayList lastLocationsRequest = new ArrayList<>();
+ private Mask currentMask = null;
+ private WorldObject maskWorldObject = null;
+ private Bag currentBag = null;
+ private WorldObject bagWorldObject = null;
+ private PhoneCall currentPhoneCall = null;
+ private int currentCompagnyInvited = -1;
+ private CharacterToolAnimation currentPhoneAttached = null;
+ private GenericMenu currentGenericMenu = null;
+ private boolean isInvisible = false;
+
+ public CharacterState() {
+ this.uiState = new UIState();
+ }
+
+ public WearableWorldObject getWearableWorldObject() {
+ return wearableWorldObject;
+ }
+
+ public void setWearableWorldObject(Player player, WearableWorldObject wearableWorldObject) {
+ this.wearableWorldObject = wearableWorldObject;
+ if(this.wearableWorldObject != null) {
+ player.setProperty("wearId", this.wearableWorldObject.getUuid(), true);
+ } else {
+ player.setProperty("wearId", "", true);
+ }
+ }
+
+ public boolean isDead() {
+ return isDead;
+ }
+
+ public void setDead(boolean dead) {
+ isDead = dead;
+ }
+
+ public boolean isFirstSpawn() {
+ return firstSpawn;
+ }
+
+ public void setFirstSpawn(boolean firstSpawn) {
+ Onset.print("FirstSpawn: " + firstSpawn);
+ this.firstSpawn = firstSpawn;
+ }
+
+ public ObjectPlacementInstance getCurrentObjectPlacementInstance() {
+ return currentObjectPlacementInstance;
+ }
+
+ public void setCurrentObjectPlacementInstance(ObjectPlacementInstance currentObjectPlacementInstance) {
+ this.currentObjectPlacementInstance = currentObjectPlacementInstance;
+ }
+
+ public boolean isCuffed() {
+ return cuffed;
+ }
+
+ public void setCuffed(boolean cuffed) {
+ this.cuffed = cuffed;
+ }
+
+ public boolean canInteract() {
+ if(this.isDead) return false;
+ if(this.cuffed) return false;
+ if(this.getCurrentObjectPlacementInstance() != null) return false;
+ return true;
+ }
+
+ public UIState getUiState() {
+ return uiState;
+ }
+
+ public Line3D getCurrentDisplayedLine3D() {
+ return currentDisplayedLine3D;
+ }
+
+ public void setCurrentDisplayedLine3D(Line3D currentDisplayedLine3D) {
+ this.currentDisplayedLine3D = currentDisplayedLine3D;
+ }
+
+ public ArrayList getLastLocationsRequest() {
+ return lastLocationsRequest;
+ }
+
+ public void setLastLocationsRequest(ArrayList lastLocationsRequest) {
+ this.lastLocationsRequest = lastLocationsRequest;
+ }
+
+ public void attachMask(Mask mask, Player player) {
+ if(this.maskWorldObject != null) {
+ this.maskWorldObject.destroy();
+ }
+ this.currentMask = mask;
+ Onset.print("Attach mask id: " + mask.getModelId());
+ this.maskWorldObject = Onset.getServer().createObject(new Vector(0, 0, 0), mask.getModelId());
+ this.maskWorldObject.attach(player, new Vector(mask.getX(), mask.getY(), mask.getZ()), new Vector(mask.getRx(), mask.getRy(), mask.getRz()), mask.getSocket());
+ if(ModdingManager.isCustomModelId(mask.getModelId())) ModdingManager.assignCustomModel(this.maskWorldObject, mask.getModelId());
+ this.maskWorldObject.setScale(new Vector(mask.getSx(), mask.getSy(), mask.getSz()));
+ }
+
+ public void unattachMask() {
+ if(this.maskWorldObject != null) {
+ this.maskWorldObject.destroy();
+ }
+ this.currentMask = null;
+ }
+
+ public void attachBag(Bag bag, Player player) {
+ if(this.bagWorldObject != null) {
+ this.bagWorldObject.destroy();
+ }
+ Account account = WorldManager.getPlayerAccount(player);
+ this.currentBag = bag;
+ Onset.print("Attach bag id: " + bag.getModelId());
+ this.bagWorldObject = Onset.getServer().createObject(new Vector(0, 0, 0), bag.getModelId());
+ this.bagWorldObject.attach(player, new Vector(bag.getX(), bag.getY(), bag.getZ()), new Vector(bag.getRx(), bag.getRy(), bag.getRz()), bag.getSocket());
+ if(ModdingManager.isCustomModelId(bag.getModelId())) ModdingManager.assignCustomModel(this.bagWorldObject, bag.getModelId());
+ this.bagWorldObject.setScale(new Vector(bag.getSx(), bag.getSy(), bag.getSz()));
+ account.setBagId(this.currentBag.getModelId());
+ account.save();
+ }
+
+ public void unattachBag(Player player) {
+ if(this.bagWorldObject != null) {
+ this.bagWorldObject.destroy();
+ }
+ Account account = WorldManager.getPlayerAccount(player);
+ this.currentBag = null;
+ account.setBagId(-1);
+ account.save();
+ }
+
+ public Mask getCurrentMask() {
+ return currentMask;
+ }
+
+ public void setCurrentMask(Mask currentMask) {
+ this.currentMask = currentMask;
+ }
+
+ public Bag getCurrentBag() {
+ return currentBag;
+ }
+
+ public void setCurrentBag(Bag currentBag) {
+ this.currentBag = currentBag;
+ }
+
+ public boolean isHasUIReady() {
+ return hasUIReady;
+ }
+
+ public void setHasUIReady(boolean hasUIReady) {
+ this.hasUIReady = hasUIReady;
+ }
+
+ public PhoneCall getCurrentPhoneCall() {
+ return currentPhoneCall;
+ }
+
+ public void setCurrentPhoneCall(PhoneCall currentPhoneCall) {
+ this.currentPhoneCall = currentPhoneCall;
+ }
+
+ public CharacterToolAnimation getCurrentPhoneAttached() {
+ return currentPhoneAttached;
+ }
+
+ public void setCurrentPhoneAttached(CharacterToolAnimation currentPhoneAttached) {
+ this.currentPhoneAttached = currentPhoneAttached;
+ }
+
+ public int getCurrentCompagnyInvited() {
+ return currentCompagnyInvited;
+ }
+
+ public void setCurrentCompagnyInvited(int currentCompagnyInvited) {
+ this.currentCompagnyInvited = currentCompagnyInvited;
+ }
+
+ public GenericMenu getCurrentGenericMenu() {
+ return currentGenericMenu;
+ }
+
+ public void setCurrentGenericMenu(GenericMenu currentGenericMenu) {
+ this.currentGenericMenu = currentGenericMenu;
+ }
+
+ public boolean isInvisible() {
+ return isInvisible;
+ }
+
+ public void setInvisible(boolean invisible) {
+ isInvisible = invisible;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterStyle.java b/src/main/java/fr/yuki/yrpf/character/CharacterStyle.java
similarity index 95%
rename from src/main/java/fr/yuki/YukiRPFramework/character/CharacterStyle.java
rename to src/main/java/fr/yuki/yrpf/character/CharacterStyle.java
index 4135425..f9e9a2a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterStyle.java
+++ b/src/main/java/fr/yuki/yrpf/character/CharacterStyle.java
@@ -1,91 +1,91 @@
-package fr.yuki.YukiRPFramework.character;
-
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class CharacterStyle {
- private String gender;
- private String body;
- private String hair;
- private String hairColor;
- private String top;
- private String pant;
- private String shoes;
-
- public void attachStyleToPlayer(Player player) {
- Onset.print("Attach player style to character");
- player.setProperty("gender", this.gender, true);
- player.setProperty("body", this.body, true);
- player.setProperty("hair", this.hair, true);
- player.setProperty("hairColor", this.hairColor.substring(1), true);
- player.setProperty("top", this.top, true);
- player.setProperty("pant", this.pant, true);
- player.setProperty("shoes", this.shoes, true);
-
- for(Player otherPlayer : Onset.getPlayers()) {
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "gender", this.gender);
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "body", this.body);
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "hair", this.hair);
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "hairColor", this.hairColor.substring(1));
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "top", this.top);
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "pant", this.pant);
- otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "shoes", this.shoes);
- }
- }
-
- public String getGender() {
- return gender;
- }
-
- public void setGender(String gender) {
- this.gender = gender;
- }
-
- public String getBody() {
- return body;
- }
-
- public void setBody(String body) {
- this.body = body;
- }
-
- public String getHair() {
- return hair;
- }
-
- public void setHair(String hair) {
- this.hair = hair;
- }
-
- public String getHairColor() {
- return hairColor;
- }
-
- public void setHairColor(String hairColor) {
- this.hairColor = hairColor;
- }
-
- public String getTop() {
- return top;
- }
-
- public void setTop(String top) {
- this.top = top;
- }
-
- public String getPant() {
- return pant;
- }
-
- public void setPant(String pant) {
- this.pant = pant;
- }
-
- public String getShoes() {
- return shoes;
- }
-
- public void setShoes(String shoes) {
- this.shoes = shoes;
- }
-}
+package fr.yuki.yrpf.character;
+
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class CharacterStyle {
+ private String gender;
+ private String body;
+ private String hair;
+ private String hairColor;
+ private String top;
+ private String pant;
+ private String shoes;
+
+ public void attachStyleToPlayer(Player player) {
+ Onset.print("Attach player style to character");
+ player.setProperty("gender", this.gender, true);
+ player.setProperty("body", this.body, true);
+ player.setProperty("hair", this.hair, true);
+ player.setProperty("hairColor", this.hairColor.substring(1), true);
+ player.setProperty("top", this.top, true);
+ player.setProperty("pant", this.pant, true);
+ player.setProperty("shoes", this.shoes, true);
+
+ for(Player otherPlayer : Onset.getPlayers()) {
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "gender", this.gender);
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "body", this.body);
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "hair", this.hair);
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "hairColor", this.hairColor.substring(1));
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "top", this.top);
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "pant", this.pant);
+ otherPlayer.callRemoteEvent("Character:Style:SetPart", player.getId(), "shoes", this.shoes);
+ }
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+ public String getHair() {
+ return hair;
+ }
+
+ public void setHair(String hair) {
+ this.hair = hair;
+ }
+
+ public String getHairColor() {
+ return hairColor;
+ }
+
+ public void setHairColor(String hairColor) {
+ this.hairColor = hairColor;
+ }
+
+ public String getTop() {
+ return top;
+ }
+
+ public void setTop(String top) {
+ this.top = top;
+ }
+
+ public String getPant() {
+ return pant;
+ }
+
+ public void setPant(String pant) {
+ this.pant = pant;
+ }
+
+ public String getShoes() {
+ return shoes;
+ }
+
+ public void setShoes(String shoes) {
+ this.shoes = shoes;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterToolAnimation.java b/src/main/java/fr/yuki/yrpf/character/CharacterToolAnimation.java
similarity index 86%
rename from src/main/java/fr/yuki/YukiRPFramework/character/CharacterToolAnimation.java
rename to src/main/java/fr/yuki/yrpf/character/CharacterToolAnimation.java
index 8c0fde1..cc964ab 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/character/CharacterToolAnimation.java
+++ b/src/main/java/fr/yuki/yrpf/character/CharacterToolAnimation.java
@@ -1,42 +1,41 @@
-package fr.yuki.YukiRPFramework.character;
-
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.AttachType;
-
-public class CharacterToolAnimation {
- private WorldObject toolObject;
- private int modelId;
- private Vector position;
- private Vector rotation;
- private Vector scale;
- private String attachSocket;
-
- public CharacterToolAnimation(int modelId, Vector position, Vector rotation, Vector scale, String attachSocket) {
- this.modelId = modelId;
- this.position = position;
- this.rotation = rotation;
- this.scale = scale;
- this.attachSocket = attachSocket;
- }
-
- public void attach(Player player) {
- this.toolObject = Onset.getServer().createObject(new Vector(0, 0, 0), this.modelId);
- if(ModdingManager.isCustomModelId(this.modelId)) {
- ModdingManager.assignCustomModel(this.toolObject, this.modelId);
- }
- this.toolObject.attach(player, this.position, this.rotation, this.attachSocket);
- this.toolObject.setScale(this.scale);
- }
-
- public void unAttach() {
- this.toolObject.destroy();
- }
-
- public Vector getScale() {
- return scale;
- }
-}
+package fr.yuki.yrpf.character;
+
+import fr.yuki.yrpf.manager.ModdingManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+public class CharacterToolAnimation {
+ private WorldObject toolObject;
+ private int modelId;
+ private Vector position;
+ private Vector rotation;
+ private Vector scale;
+ private String attachSocket;
+
+ public CharacterToolAnimation(int modelId, Vector position, Vector rotation, Vector scale, String attachSocket) {
+ this.modelId = modelId;
+ this.position = position;
+ this.rotation = rotation;
+ this.scale = scale;
+ this.attachSocket = attachSocket;
+ }
+
+ public void attach(Player player) {
+ this.toolObject = Onset.getServer().createObject(new Vector(0, 0, 0), this.modelId);
+ if(ModdingManager.isCustomModelId(this.modelId)) {
+ ModdingManager.assignCustomModel(this.toolObject, this.modelId);
+ }
+ this.toolObject.attach(player, this.position, this.rotation, this.attachSocket);
+ this.toolObject.setScale(this.scale);
+ }
+
+ public void unAttach() {
+ this.toolObject.destroy();
+ }
+
+ public Vector getScale() {
+ return scale;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/AddDeliveryPointCommand.java b/src/main/java/fr/yuki/yrpf/commands/AddDeliveryPointCommand.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/AddDeliveryPointCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/AddDeliveryPointCommand.java
index fbdeb60..3cca456 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/AddDeliveryPointCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/AddDeliveryPointCommand.java
@@ -1,26 +1,26 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.job.JobSpawnPosition;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class AddDeliveryPointCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- JobSpawnPosition jobSpawnPosition = new JobSpawnPosition();
- jobSpawnPosition.setX(player.getLocation().getX());
- jobSpawnPosition.setY(player.getLocation().getY());
- jobSpawnPosition.setZ(player.getLocation().getZ());
- JobManager.getDeliveryPointConfig().getPoints().get(args[0]).add(jobSpawnPosition);
- JobManager.saveDeliveryPoints();
- player.sendMessage("Add new delivery location at this location");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.job.JobSpawnPosition;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class AddDeliveryPointCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ JobSpawnPosition jobSpawnPosition = new JobSpawnPosition();
+ jobSpawnPosition.setX(player.getLocation().getX());
+ jobSpawnPosition.setY(player.getLocation().getY());
+ jobSpawnPosition.setZ(player.getLocation().getZ());
+ JobManager.getDeliveryPointConfig().getPoints().get(args[0]).add(jobSpawnPosition);
+ JobManager.saveDeliveryPoints();
+ player.sendMessage("Add new delivery location at this location");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/AddGatherItemCommand.java b/src/main/java/fr/yuki/yrpf/commands/AddGatherItemCommand.java
similarity index 73%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/AddGatherItemCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/AddGatherItemCommand.java
index 0100af5..5debea9 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/AddGatherItemCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/AddGatherItemCommand.java
@@ -1,37 +1,34 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.JobSpawn;
-import fr.yuki.YukiRPFramework.job.JobSpawnPosition;
-import fr.yuki.YukiRPFramework.job.harvest.HarvestableObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.util.ArrayList;
-import java.util.Map;
-
-public class AddGatherItemCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Job job = new ArrayList(JobManager.getJobs().values()).get(Integer.parseInt(args[0]));
- JobSpawn jobSpawn = job.getJobConfig().getResources().get(Integer.parseInt(args[1]));
- JobSpawnPosition jobSpawnPosition = new JobSpawnPosition();
- Vector playerLocation = player.getLocation();
- jobSpawnPosition.setX(playerLocation.getX());
- jobSpawnPosition.setY(playerLocation.getY());
- jobSpawnPosition.setZ(playerLocation.getZ());
- jobSpawn.getSpawns().add(jobSpawnPosition);
- job.saveConfig();
- player.sendMessage("Added " + jobSpawn.getName() + " at this location");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.job.JobSpawn;
+import fr.yuki.yrpf.job.JobSpawnPosition;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+import java.util.ArrayList;
+
+public class AddGatherItemCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Job job = new ArrayList(JobManager.getJobs().values()).get(Integer.parseInt(args[0]));
+ JobSpawn jobSpawn = job.getJobConfig().getResources().get(Integer.parseInt(args[1]));
+ JobSpawnPosition jobSpawnPosition = new JobSpawnPosition();
+ Vector playerLocation = player.getLocation();
+ jobSpawnPosition.setX(playerLocation.getX());
+ jobSpawnPosition.setY(playerLocation.getY());
+ jobSpawnPosition.setZ(playerLocation.getZ());
+ jobSpawn.getSpawns().add(jobSpawnPosition);
+ job.saveConfig();
+ player.sendMessage("Added " + jobSpawn.getName() + " at this location");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/AddItemAllCommand.java b/src/main/java/fr/yuki/yrpf/commands/AddItemAllCommand.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/AddItemAllCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/AddItemAllCommand.java
index 753264a..ec77995 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/AddItemAllCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/AddItemAllCommand.java
@@ -1,33 +1,30 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class AddItemAllCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- for(Player other : Onset.getPlayers()) {
- try{
- Account otherAccount = WorldManager.getPlayerAccount(other);
- if(otherAccount == null) continue;
- ItemTemplate itemTemplate = InventoryManager.getItemTemplates().get(Integer.parseInt(args[0]));
- InventoryManager.addItemToPlayer(other, String.valueOf(itemTemplate.getId()), Integer.parseInt(args[1]), true);
- player.sendMessage("Added item to " + other.getName());
- }catch (Exception ex) {}
- }
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.ItemTemplate;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class AddItemAllCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ for(Player other : Onset.getPlayers()) {
+ try{
+ Account otherAccount = WorldManager.getPlayerAccount(other);
+ if(otherAccount == null) continue;
+ ItemTemplate itemTemplate = InventoryManager.getItemTemplates().get(Integer.parseInt(args[0]));
+ InventoryManager.addItemToPlayer(other, String.valueOf(itemTemplate.getId()), Integer.parseInt(args[1]), true);
+ player.sendMessage("Added item to " + other.getName());
+ }catch (Exception ex) {}
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/AnnCommand.java b/src/main/java/fr/yuki/yrpf/commands/AnnCommand.java
similarity index 78%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/AnnCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/AnnCommand.java
index 7c74a81..6dd5d24 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/AnnCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/AnnCommand.java
@@ -1,28 +1,28 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class AnnCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- for(Player other : Onset.getPlayers()) {
- try{
- UIStateManager.sendNotification(other, ToastTypeEnum.DEFAULT, "Par " + WorldManager.getPlayerAccount(player).getCharacterName() +
- " : " + String.join(" ", strings));
- SoundManager.playSound2D(other, "notif", "sounds/success_1.mp3", 0.8);
- }catch (Exception ex) {}
- }
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.manager.SoundManager;
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class AnnCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ for(Player other : Onset.getPlayers()) {
+ try{
+ UIStateManager.sendNotification(other, ToastTypeEnum.DEFAULT, "Par " + WorldManager.getPlayerAccount(player).getCharacterName() +
+ " : " + String.join(" ", strings));
+ SoundManager.playSound2D(other, "notif", "sounds/success_1.mp3", 0.8);
+ }catch (Exception ex) {}
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/BanCommand.java b/src/main/java/fr/yuki/yrpf/commands/BanCommand.java
similarity index 83%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/BanCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/BanCommand.java
index e73268f..07f2e03 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/BanCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/BanCommand.java
@@ -1,27 +1,27 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class BanCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- account.setIsBanned(1);
- WorldManager.savePlayer(playerTarget);
- playerTarget.kick("You have been banned, bye bye");
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class BanCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ account.setBanned(true);
+ WorldManager.savePlayer(playerTarget);
+ playerTarget.kick("You have been banned, bye bye");
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/BringCommand.java b/src/main/java/fr/yuki/yrpf/commands/BringCommand.java
similarity index 85%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/BringCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/BringCommand.java
index e828dbb..dd6e575 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/BringCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/BringCommand.java
@@ -1,19 +1,19 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class BringCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- playerTarget.setLocation(player.getLocation());
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class BringCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ playerTarget.setLocation(player.getLocation());
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/CreateHouseCommand.java b/src/main/java/fr/yuki/yrpf/commands/CreateHouseCommand.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/CreateHouseCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/CreateHouseCommand.java
index c7d48bb..fcfa7bf 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/CreateHouseCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/CreateHouseCommand.java
@@ -1,53 +1,46 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.dao.HouseDAO;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.House;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class CreateHouseCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- //if(state.getCurrentDisplayedLine3D() == null) return true;
-
- Vector firstLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 1);
- Vector secondLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 2);
-
- Account account = WorldManager.getPlayerAccount(player);
- House house = new House();
- house.setAccountId(account.getId());
- house.setPrice(2500);
- house.setName("Maison");
- house.setSx(firstLoc.getX());
- house.setSy(firstLoc.getY());
- house.setSz(firstLoc.getZ());
- house.setEx(secondLoc.getX());
- house.setEy(secondLoc.getY());
- house.setEz(secondLoc.getZ());
- HouseManager.getHouses().add(house);
- try {
- HouseDAO.insertHouse(house);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- Onset.print("House created id: " + house.getId());
- player.sendMessage("House created id: " + house.getId());
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.HouseManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.House;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class CreateHouseCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ //if(state.getCurrentDisplayedLine3D() == null) return true;
+
+ Vector firstLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 1);
+ Vector secondLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 2);
+
+ Account account = WorldManager.getPlayerAccount(player);
+ House house = new House();
+ house.setAccountId(account.getId());
+ house.setPrice(2500);
+ house.setName("Maison");
+ house.setSx(firstLoc.getX());
+ house.setSy(firstLoc.getY());
+ house.setSz(firstLoc.getZ());
+ house.setEx(secondLoc.getX());
+ house.setEy(secondLoc.getY());
+ house.setEz(secondLoc.getZ());
+ HouseManager.getHouses().add(house);
+ house.save();
+ Onset.print("House created id: " + house.getId());
+ player.sendMessage("House created id: " + house.getId());
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/CuffCommand.java b/src/main/java/fr/yuki/yrpf/commands/CuffCommand.java
similarity index 81%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/CuffCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/CuffCommand.java
index 6412b6d..a166860 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/CuffCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/CuffCommand.java
@@ -1,28 +1,28 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class CuffCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
-
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- WorldManager.cuffPlayer(playerTarget);
- CharacterManager.setCharacterFreeze(playerTarget, false);
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class CuffCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ WorldManager.cuffPlayer(playerTarget);
+ CharacterManager.setCharacterFreeze(playerTarget, false);
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DVCommand.java b/src/main/java/fr/yuki/yrpf/commands/DVCommand.java
similarity index 79%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DVCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DVCommand.java
index 48dc41e..c990218 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DVCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DVCommand.java
@@ -1,33 +1,33 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.GarageManager;
-import fr.yuki.YukiRPFramework.manager.VehicleManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.VehicleGarage;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class DVCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(vehicle == null) return true;
- VehicleGarage vehicleGarage = GarageManager.getVehicleGarages().stream()
- .filter(x -> x.getUuid().equals(vehicle.getPropertyString("uuid")))
- .findFirst().orElse(null);
- if(vehicleGarage == null) return true;
- if(!vehicleGarage.isRental()) {
- vehicleGarage.setGarageId(vehicleGarage.getGarageLastId());
- vehicleGarage.save();
- }
- if(vehicle.getDriver() != null) vehicle.getDriver().exitVehicle();
-
- Onset.delay(1000, () -> {
- vehicle.destroy();
- });
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.GarageManager;
+import fr.yuki.yrpf.manager.VehicleManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.VehicleGarage;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class DVCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(vehicle == null) return true;
+ VehicleGarage vehicleGarage = GarageManager.getVehicleGarages().stream()
+ .filter(x -> x.getUuid().equals(vehicle.getPropertyString("uuid")))
+ .findFirst().orElse(null);
+ if(vehicleGarage == null) return true;
+ if(!vehicleGarage.isRental()) {
+ vehicleGarage.setGarageId(vehicleGarage.getGarageLastId());
+ vehicleGarage.save();
+ }
+ if(vehicle.getDriver() != null) vehicle.getDriver().exitVehicle();
+
+ Onset.delay(1000, () -> {
+ vehicle.destroy();
+ });
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugCharacterToolCommand.java b/src/main/java/fr/yuki/yrpf/commands/DebugCharacterToolCommand.java
similarity index 86%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DebugCharacterToolCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DebugCharacterToolCommand.java
index 4994844..7c360aa 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugCharacterToolCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DebugCharacterToolCommand.java
@@ -1,27 +1,27 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class DebugCharacterToolCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- CharacterToolAnimation characterToolAnimation =
- new CharacterToolAnimation(Integer.parseInt(args[0]),
- new Vector(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])),
- new Vector(Integer.parseInt(args[4]), Integer.parseInt(args[5]), Integer.parseInt(args[6])),
- new Vector(Double.parseDouble(args[7]), Double.parseDouble(args[8]), Double.parseDouble(args[9])),
- args[10]);
- characterToolAnimation.attach(player);
- player.setAnimation(args[11]);
- Onset.delay(10000, () -> {
- characterToolAnimation.unAttach();
- });
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class DebugCharacterToolCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ CharacterToolAnimation characterToolAnimation =
+ new CharacterToolAnimation(Integer.parseInt(args[0]),
+ new Vector(Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3])),
+ new Vector(Integer.parseInt(args[4]), Integer.parseInt(args[5]), Integer.parseInt(args[6])),
+ new Vector(Double.parseDouble(args[7]), Double.parseDouble(args[8]), Double.parseDouble(args[9])),
+ args[10]);
+ characterToolAnimation.attach(player);
+ player.setAnimation(args[11]);
+ Onset.delay(10000, () -> {
+ characterToolAnimation.unAttach();
+ });
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugHouseCommand.java b/src/main/java/fr/yuki/yrpf/commands/DebugHouseCommand.java
similarity index 78%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DebugHouseCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DebugHouseCommand.java
index 4a171dd..cd8ee3a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugHouseCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DebugHouseCommand.java
@@ -1,46 +1,43 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.modding.Line3D;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.House;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Door;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class DebugHouseCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- Vector firstLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 1);
- Vector secondLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 2);
-
- Line3D line3D = new Line3D(firstLoc.getX(), firstLoc.getY(), firstLoc.getZ(),
- secondLoc.getX(), secondLoc.getY(), secondLoc.getZ(), 5);
- if(state.getCurrentDisplayedLine3D() != null) {
- state.getCurrentDisplayedLine3D().hide(player);
- }
- state.setCurrentDisplayedLine3D(line3D);
- line3D.show(player);
- player.sendMessage("IsInside : " + line3D.isInside(player.getLocation()));
- for(Door door : line3D.getDoorsInside()) {
- player.sendMessage("DoorId: " + door.getId());
- if(!door.isOpen()) {
- door.open();
- } else {
- door.close();
- }
- }
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.modding.Line3D;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Door;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class DebugHouseCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ Vector firstLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 1);
+ Vector secondLoc = state.getLastLocationsRequest().get(state.getLastLocationsRequest().size() - 2);
+
+ Line3D line3D = new Line3D(firstLoc.getX(), firstLoc.getY(), firstLoc.getZ(),
+ secondLoc.getX(), secondLoc.getY(), secondLoc.getZ(), 5);
+ if(state.getCurrentDisplayedLine3D() != null) {
+ state.getCurrentDisplayedLine3D().hide(player);
+ }
+ state.setCurrentDisplayedLine3D(line3D);
+ line3D.show(player);
+ player.sendMessage("IsInside : " + line3D.isInside(player.getLocation()));
+ for(Door door : line3D.getDoorsInside()) {
+ player.sendMessage("DoorId: " + door.getId());
+ if(!door.isOpen()) {
+ door.open();
+ } else {
+ door.close();
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugObjectPlacementCommand.java b/src/main/java/fr/yuki/yrpf/commands/DebugObjectPlacementCommand.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DebugObjectPlacementCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DebugObjectPlacementCommand.java
index 548b55c..c80c1c6 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugObjectPlacementCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DebugObjectPlacementCommand.java
@@ -1,27 +1,26 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.placementObject.GenericPlacementInstance;
-import fr.yuki.YukiRPFramework.job.placementObject.GrowBoxPlacementInstance;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class DebugObjectPlacementCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- ObjectPlacementInstance objectPlacementInstance = new GenericPlacementInstance(player.getLocation(), Integer.parseInt(args[0]), 0);
- characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
- objectPlacementInstance.spawn();
- objectPlacementInstance.setEditableBy(player);
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.placementObject.GenericPlacementInstance;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class DebugObjectPlacementCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ ObjectPlacementInstance objectPlacementInstance = new GenericPlacementInstance(player.getLocation(), Integer.parseInt(args[0]), 0);
+ characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
+ objectPlacementInstance.spawn();
+ objectPlacementInstance.setEditableBy(player);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugTestCommand.java b/src/main/java/fr/yuki/yrpf/commands/DebugTestCommand.java
similarity index 73%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DebugTestCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DebugTestCommand.java
index 3bf0395..1613381 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugTestCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DebugTestCommand.java
@@ -1,27 +1,26 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.JobSpawn;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.util.Map;
-
-public class DebugTestCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- for(Map.Entry job : JobManager.getJobs().entrySet()) {
- player.sendMessage(job.getKey() + " : (" + job.getValue().getWorldHarvestObjects().size() + ")");
- }
- player.sendMessage("States : (" + CharacterManager.getCharacterStates().size() + ")");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+import java.util.Map;
+
+public class DebugTestCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ for(Map.Entry job : JobManager.getJobs().entrySet()) {
+ player.sendMessage(job.getKey() + " : (" + job.getValue().getWorldHarvestObjects().size() + ")");
+ }
+ player.sendMessage("States : (" + CharacterManager.getCharacterStates().size() + ")");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugVehicleStorageLayoutCommand.java b/src/main/java/fr/yuki/yrpf/commands/DebugVehicleStorageLayoutCommand.java
similarity index 81%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/DebugVehicleStorageLayoutCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/DebugVehicleStorageLayoutCommand.java
index 0ef69b3..828cf70 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/DebugVehicleStorageLayoutCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/DebugVehicleStorageLayoutCommand.java
@@ -1,38 +1,37 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.VehicleManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.vehicle.storeLayout.StoreLayoutTransform;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class DebugVehicleStorageLayoutCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject() == null) return true;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
-
- StoreLayoutTransform storeLayoutTransform = new StoreLayoutTransform(0, new Vector(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])),
- new Vector(Integer.parseInt(args[3]), Integer.parseInt(args[4]), Integer.parseInt(args[5])),
- new Vector(Double.parseDouble(args[6]), Double.parseDouble(args[7]), Double.parseDouble(args[8])));
-
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject()
- .storeInVehicle(vehicle, storeLayoutTransform);
-
- Onset.delay(10000, () -> {
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().getWorldObject().destroy();
- });
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.VehicleManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.vehicle.storeLayout.StoreLayoutTransform;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class DebugVehicleStorageLayoutCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject() == null) return true;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+
+ StoreLayoutTransform storeLayoutTransform = new StoreLayoutTransform(0, new Vector(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])),
+ new Vector(Integer.parseInt(args[3]), Integer.parseInt(args[4]), Integer.parseInt(args[5])),
+ new Vector(Double.parseDouble(args[6]), Double.parseDouble(args[7]), Double.parseDouble(args[8])));
+
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject()
+ .storeInVehicle(vehicle, storeLayoutTransform);
+
+ Onset.delay(10000, () -> {
+ CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().getWorldObject().destroy();
+ });
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/FlipCommand.java b/src/main/java/fr/yuki/yrpf/commands/FlipCommand.java
similarity index 83%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/FlipCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/FlipCommand.java
index e811ada..b2c5f55 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/FlipCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/FlipCommand.java
@@ -1,23 +1,23 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.VehicleManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class FlipCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(vehicle == null) return true;
- vehicle.setRotation(new Vector(0 , vehicle.getRotation().getY(),0));
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.VehicleManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class FlipCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(vehicle == null) return true;
+ vehicle.setRotation(new Vector(0 , vehicle.getRotation().getY(),0));
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/ForceGarbageCommand.java b/src/main/java/fr/yuki/yrpf/commands/ForceGarbageCommand.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/ForceGarbageCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/ForceGarbageCommand.java
index 94f6243..a6de58a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/ForceGarbageCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/ForceGarbageCommand.java
@@ -1,20 +1,20 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class ForceGarbageCommand implements CommandExecutor {
-
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- System.gc ();
- System.runFinalization ();
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class ForceGarbageCommand implements CommandExecutor {
+
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ System.gc ();
+ System.runFinalization ();
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/FreeHouseCommand.java b/src/main/java/fr/yuki/yrpf/commands/FreeHouseCommand.java
similarity index 69%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/FreeHouseCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/FreeHouseCommand.java
index 5418553..fe14522 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/FreeHouseCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/FreeHouseCommand.java
@@ -1,43 +1,36 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.HouseDAO;
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.House;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-import net.onfirenetwork.onsetjava.entity.Door;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class FreeHouseCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- House house = HouseManager.getHouseAtLocation(player.getLocation());
- if(house == null) {
- house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
- }
- if(house == null) return true;
- house.setAccountId(-1);
- for(Door door : house.getLine3D().getDoorsInside()) {
- door.close();
- }
- for(HouseItemObject houseItemObject : house.getHouseItemObjects()) {
- houseItemObject.destroy();
- }
- try {
- HouseDAO.saveHouse(house);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
-
- player.sendMessage("This house is free now");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.HouseManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.House;
+import fr.yuki.yrpf.model.HouseItemObject;
+import net.onfirenetwork.onsetjava.entity.Door;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class FreeHouseCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ House house = HouseManager.getHouseAtLocation(player.getLocation());
+ if(house == null) {
+ house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
+ }
+ if(house == null) return true;
+ house.setAccountId(-1);
+ for(Door door : house.getLine3D().getDoorsInside()) {
+ door.close();
+ }
+ for(HouseItemObject houseItemObject : house.getHouseItemObjects()) {
+ houseItemObject.destroy();
+ }
+ house.save();
+
+ player.sendMessage("This house is free now");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/GetIdCommand.java b/src/main/java/fr/yuki/yrpf/commands/GetIdCommand.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/GetIdCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/GetIdCommand.java
index ead82c1..8f80377 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/GetIdCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/GetIdCommand.java
@@ -1,25 +1,25 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class GetIdCommand implements CommandExecutor {
-
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- for(Player p : Onset.getPlayers()) {
- try {
- Account account = WorldManager.getPlayerAccount(p);
- if(account != null) {
- if(account.getCharacterName().toLowerCase().contains(strings[0].toLowerCase())) {
- player.sendMessage(account.getCharacterName() + " -> " + p.getId() + " (" + p.getSteamId() + ")");
- }
- }
- } catch (Exception ex) {}
- }
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class GetIdCommand implements CommandExecutor {
+
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ for(Player p : Onset.getPlayers()) {
+ try {
+ Account account = WorldManager.getPlayerAccount(p);
+ if(account != null) {
+ if(account.getCharacterName().toLowerCase().contains(strings[0].toLowerCase())) {
+ player.sendMessage(account.getCharacterName() + " -> " + p.getId() + " (" + p.getSteamId() + ")");
+ }
+ }
+ } catch (Exception ex) {}
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/GiveHouseKeyCommand.java b/src/main/java/fr/yuki/yrpf/commands/GiveHouseKeyCommand.java
similarity index 78%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/GiveHouseKeyCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/GiveHouseKeyCommand.java
index b267c38..3a1e0b5 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/GiveHouseKeyCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/GiveHouseKeyCommand.java
@@ -1,29 +1,29 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.House;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class GiveHouseKeyCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
-
- House house = HouseManager.getHouseAtLocation(player.getLocation());
- if(house == null) return true;
- if(!HouseManager.canBuildInHouse(player, house)) return true;
- Account targetAccount = WorldManager.getPlayerAccount(playerTarget);
-
- if(house.getAllowedPlayers().contains(targetAccount) || playerTarget.getId() == house.getAccountId()) return true;
-
- house.getAllowedPlayers().add(targetAccount.getId());
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.HouseManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.House;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class GiveHouseKeyCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+
+ House house = HouseManager.getHouseAtLocation(player.getLocation());
+ if(house == null) return true;
+ if(!HouseManager.canBuildInHouse(player, house)) return true;
+ Account targetAccount = WorldManager.getPlayerAccount(playerTarget);
+
+ if(house.getAllowedPlayers().contains(targetAccount) || playerTarget.getId() == house.getAccountId()) return true;
+
+ house.getAllowedPlayers().add(targetAccount.getId());
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/GotoCommand.java b/src/main/java/fr/yuki/yrpf/commands/GotoCommand.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/GotoCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/GotoCommand.java
index a5b4275..d3f08ab 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/GotoCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/GotoCommand.java
@@ -1,20 +1,19 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class GotoCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- player.setLocation(playerTarget.getLocation());
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class GotoCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ player.setLocation(playerTarget.getLocation());
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/InvisCommand.java b/src/main/java/fr/yuki/yrpf/commands/InvisCommand.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/InvisCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/InvisCommand.java
index e76a1a1..a76b65f 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/InvisCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/InvisCommand.java
@@ -1,45 +1,45 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterStyle;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class InvisCommand implements CommandExecutor {
-
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Account account = WorldManager.getPlayerAccount(player);
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
-
- if(state.isInvisible()) {
- player.sendMessage("You are now visible");
- CharacterStyle characterStyle = account.decodeOriginalCharacterStyle();
- account.setCharacterStyle(characterStyle);
- characterStyle.attachStyleToPlayer(player);
- player.setProperty("isInvisible", "false", true);
- state.setInvisible(false);
- } else {
- player.sendMessage("You are now invisible");
- CharacterStyle characterStyle = account.decodeCharacterStyle();
- characterStyle.setBody("");
- characterStyle.setHair("");
- characterStyle.setTop("");
- characterStyle.setPant("");
- characterStyle.setShoes("");
- account.setCharacterStyle(characterStyle);
- characterStyle.attachStyleToPlayer(player);
- player.setProperty("isInvisible", "true", true);
- state.setInvisible(true);
- }
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterStyle;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class InvisCommand implements CommandExecutor {
+
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+
+ if(state.isInvisible()) {
+ player.sendMessage("You are now visible");
+ CharacterStyle characterStyle = account.decodeOriginalCharacterStyle();
+ account.setCharacterStyle(characterStyle);
+ characterStyle.attachStyleToPlayer(player);
+ player.setProperty("isInvisible", "false", true);
+ state.setInvisible(false);
+ } else {
+ player.sendMessage("You are now invisible");
+ CharacterStyle characterStyle = account.decodeCharacterStyle();
+ characterStyle.setBody("");
+ characterStyle.setHair("");
+ characterStyle.setTop("");
+ characterStyle.setPant("");
+ characterStyle.setShoes("");
+ account.setCharacterStyle(characterStyle);
+ characterStyle.attachStyleToPlayer(player);
+ player.setProperty("isInvisible", "true", true);
+ state.setInvisible(true);
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/ItemCommand.java b/src/main/java/fr/yuki/yrpf/commands/ItemCommand.java
similarity index 69%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/ItemCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/ItemCommand.java
index 435ed5f..978e006 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/ItemCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/ItemCommand.java
@@ -1,25 +1,22 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import fr.yuki.YukiRPFramework.net.payload.SetWindowStatePayload;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class ItemCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- ItemTemplate itemTemplate = InventoryManager.getItemTemplates().get(Integer.parseInt(args[0]));
- InventoryManager.addItemToPlayer(player, String.valueOf(itemTemplate.getId()), Integer.parseInt(args[1]), true);
- player.sendMessage("Add item " + itemTemplate.getName() + " to your inventory");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.ItemTemplate;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class ItemCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ ItemTemplate itemTemplate = InventoryManager.getItemTemplates().get(Integer.parseInt(args[0]));
+ InventoryManager.addItemToPlayer(player, String.valueOf(itemTemplate.getId()), Integer.parseInt(args[1]), true);
+ player.sendMessage("Add item " + itemTemplate.getName() + " to your inventory");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/KickCommand.java b/src/main/java/fr/yuki/yrpf/commands/KickCommand.java
similarity index 83%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/KickCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/KickCommand.java
index 1c2f476..d627b91 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/KickCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/KickCommand.java
@@ -1,24 +1,23 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class KickCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- playerTarget.kick("Kick : " + String.join(" ", args));
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class KickCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ playerTarget.kick("Kick : " + String.join(" ", args));
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/LocCommand.java b/src/main/java/fr/yuki/yrpf/commands/LocCommand.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/LocCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/LocCommand.java
index 7c4b1cb..67d562e 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/LocCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/LocCommand.java
@@ -1,22 +1,20 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import net.onfirenetwork.onsetjava.data.Location;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class LocCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- Location loc = player.getLocationAndHeading();
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- state.getLastLocationsRequest().add(player.getLocation());
- player.sendMessage("Current loc x=" + loc.getX() + ", y=" + loc.getY() + ", z=" + loc.getZ() + ", h=" + loc.getHeading());
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.data.Location;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class LocCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ Location loc = player.getLocationAndHeading();
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ state.getLastLocationsRequest().add(player.getLocation());
+ player.sendMessage("Current loc x=" + loc.getX() + ", y=" + loc.getY() + ", z=" + loc.getZ() + ", h=" + loc.getHeading());
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/MoveCommand.java b/src/main/java/fr/yuki/yrpf/commands/MoveCommand.java
similarity index 81%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/MoveCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/MoveCommand.java
index 6be3caa..2869d76 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/MoveCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/MoveCommand.java
@@ -1,21 +1,21 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.VehicleManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class MoveCommand implements CommandExecutor {
-
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- vehicle.setLocation(new Vector(player.getLocation().getX() + 250, player.getLocation().getY() + 250, player.getLocation().getZ()));
- Onset.print("Vehicle positon moved");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.VehicleManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class MoveCommand implements CommandExecutor {
+
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ vehicle.setLocation(new Vector(player.getLocation().getX() + 250, player.getLocation().getY() + 250, player.getLocation().getZ()));
+ Onset.print("Vehicle positon moved");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/NitroCommand.java b/src/main/java/fr/yuki/yrpf/commands/NitroCommand.java
similarity index 85%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/NitroCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/NitroCommand.java
index 6f21436..3e4ae38 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/NitroCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/NitroCommand.java
@@ -1,19 +1,19 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class NitroCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- if(player.getVehicle() == null) return true;
- player.getVehicle().setNitro(true);
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class NitroCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ if(player.getVehicle() == null) return true;
+ player.getVehicle().setNitro(true);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/RegenPhoneNumberCommand.java b/src/main/java/fr/yuki/yrpf/commands/RegenPhoneNumberCommand.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/RegenPhoneNumberCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/RegenPhoneNumberCommand.java
index bfc733e..7b36e43 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/RegenPhoneNumberCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/RegenPhoneNumberCommand.java
@@ -1,35 +1,28 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.manager.PhoneManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class RegenPhoneNumberCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- Onset.print("Phone number generated : " + account.getPhoneNumber());
-
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.PhoneManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class RegenPhoneNumberCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ account.setPhoneNumber(PhoneManager.generateRandomPhoneNumber());
+ account.save();
+ Onset.print("Phone number generated : " + account.getPhoneNumber());
+
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/RequestCharacterCreationCommand.java b/src/main/java/fr/yuki/yrpf/commands/RequestCharacterCreationCommand.java
similarity index 64%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/RequestCharacterCreationCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/RequestCharacterCreationCommand.java
index e053782..3d43188 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/RequestCharacterCreationCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/RequestCharacterCreationCommand.java
@@ -1,35 +1,28 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class RequestCharacterCreationCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- account.setCharacterCreationRequest(1);
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
-
- UIStateManager.handleUIToogle(playerTarget, "customCharacter");
- return false;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class RequestCharacterCreationCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ account.setCharacterCreationRequest(true);
+ account.save();
+
+ UIStateManager.handleUIToogle(playerTarget, "customCharacter");
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/ReviveCommand.java b/src/main/java/fr/yuki/yrpf/commands/ReviveCommand.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/ReviveCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/ReviveCommand.java
index 834c69f..8527525 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/ReviveCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/ReviveCommand.java
@@ -1,24 +1,24 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class ReviveCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- WorldManager.revive(player, playerTarget);
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class ReviveCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ WorldManager.revive(player, playerTarget);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetAdminLevelCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetAdminLevelCommand.java
similarity index 86%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetAdminLevelCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetAdminLevelCommand.java
index cc7a4e2..4815574 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetAdminLevelCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetAdminLevelCommand.java
@@ -1,27 +1,27 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class SetAdminLevelCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- account.setAdminLevel(1);
- WorldManager.savePlayer(playerTarget);
-
- player.sendMessage("Set admin " + account.getCharacterName());
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetAdminLevelCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ account.setAdminLevel(1);
+ WorldManager.savePlayer(playerTarget);
+
+ player.sendMessage("Set admin " + account.getCharacterName());
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetCharacterScaleCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetCharacterScaleCommand.java
similarity index 85%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetCharacterScaleCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetCharacterScaleCommand.java
index aee767a..dc8163d 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetCharacterScaleCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetCharacterScaleCommand.java
@@ -1,19 +1,19 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class SetCharacterScaleCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- player.setProperty("characterScale", args[0].toString(), true);
- player.sendMessage("Scale set");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetCharacterScaleCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ player.setProperty("characterScale", args[0].toString(), true);
+ player.sendMessage("Scale set");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetClotheCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetClotheCommand.java
similarity index 83%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetClotheCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetClotheCommand.java
index 7c06a0d..14f0cdf 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetClotheCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetClotheCommand.java
@@ -1,54 +1,54 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterStyle;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class SetClotheCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player targetPlayer = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- Account account = WorldManager.getPlayerAccount(targetPlayer);
- CharacterState state = CharacterManager.getCharacterStateByPlayer(targetPlayer);
- CharacterStyle characterStyle = account.decodeCharacterStyle();
- switch (args[1].toLowerCase().toString()) {
- case "body":
- characterStyle.setBody(args[2]);
- break;
-
- case "top":
- characterStyle.setTop(args[2]);
- break;
-
- case "pant":
- characterStyle.setPant(args[2]);
- break;
-
- case "shoes":
- characterStyle.setShoes(args[2]);
- break;
-
- case "clear":
- characterStyle.setBody("");
- characterStyle.setHair("");
- characterStyle.setTop("");
- characterStyle.setPant("");
- characterStyle.setShoes("");
- break;
- }
- account.setCharacterStyle(characterStyle);
- characterStyle.attachStyleToPlayer(targetPlayer);
- return false;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterStyle;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetClotheCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player targetPlayer = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ Account account = WorldManager.getPlayerAccount(targetPlayer);
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(targetPlayer);
+ CharacterStyle characterStyle = account.decodeCharacterStyle();
+ switch (args[1].toLowerCase().toString()) {
+ case "body":
+ characterStyle.setBody(args[2]);
+ break;
+
+ case "top":
+ characterStyle.setTop(args[2]);
+ break;
+
+ case "pant":
+ characterStyle.setPant(args[2]);
+ break;
+
+ case "shoes":
+ characterStyle.setShoes(args[2]);
+ break;
+
+ case "clear":
+ characterStyle.setBody("");
+ characterStyle.setHair("");
+ characterStyle.setTop("");
+ characterStyle.setPant("");
+ characterStyle.setShoes("");
+ break;
+ }
+ account.setCharacterStyle(characterStyle);
+ characterStyle.attachStyleToPlayer(targetPlayer);
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetCommandLevelCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetCommandLevelCommand.java
similarity index 71%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetCommandLevelCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetCommandLevelCommand.java
index deb3f76..1101561 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetCommandLevelCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetCommandLevelCommand.java
@@ -1,33 +1,26 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class SetCommandLevelCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- account.setCommandLevel(Integer.parseInt(args[1]));
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- player.sendMessage("Command level set to " + args[1] + " for " + account.getCharacterName());
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetCommandLevelCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ account.setCommandLevel(Integer.parseInt(args[1]));
+ account.save();
+ player.sendMessage("Command level set to " + args[1] + " for " + account.getCharacterName());
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetHousePropsCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetHousePropsCommand.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetHousePropsCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetHousePropsCommand.java
index 2ebc555..fdc5b81 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetHousePropsCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetHousePropsCommand.java
@@ -1,37 +1,30 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.HouseDAO;
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.House;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class SetHousePropsCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- House house = HouseManager.getHouseAtLocation(player.getLocation());
- if(house == null) {
- house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
- }
- if(house == null) return true;
-
- house.setPrice(Integer.parseInt(args[0]));
- house.setName(args[1]);
- try {
- HouseDAO.saveHouse(house);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
-
- player.sendMessage("House props set");
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.HouseManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.House;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetHousePropsCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ House house = HouseManager.getHouseAtLocation(player.getLocation());
+ if(house == null) {
+ house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
+ }
+ if(house == null) return true;
+
+ house.setPrice(Integer.parseInt(args[0]));
+ house.setName(args[1]);
+ house.save();
+
+ player.sendMessage("House props set");
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetLangCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetLangCommand.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetLangCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetLangCommand.java
index eb35e93..25aa664 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetLangCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetLangCommand.java
@@ -1,26 +1,24 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class SetLangCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(args.length == 0) {
- player.sendMessage("You must provide a lang FR, EN or DE - /lang [lang]");
- return true;
- }
- if(args[0].toLowerCase().equals("de") || args[0].toLowerCase().equals("fr") || args[0].toLowerCase().equals("en")) {
- UIStateManager.setLang(player, args[0].toLowerCase());
- WorldManager.savePlayer(player);
- return true;
- } else {
- player.sendMessage("Invalide lang, only FR, EN or DE is supported - /lang [lang]");
- return true;
- }
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetLangCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(args.length == 0) {
+ player.sendMessage("You must provide a lang FR, EN or DE - /lang [lang]");
+ return true;
+ }
+ if(args[0].toLowerCase().equals("de") || args[0].toLowerCase().equals("fr") || args[0].toLowerCase().equals("en")) {
+ UIStateManager.setLang(player, args[0].toLowerCase());
+ WorldManager.savePlayer(player);
+ return true;
+ } else {
+ player.sendMessage("Invalide lang, only FR, EN or DE is supported - /lang [lang]");
+ return true;
+ }
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetTimeCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetTimeCommand.java
similarity index 79%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetTimeCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetTimeCommand.java
index b88dc31..ac65cf6 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetTimeCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetTimeCommand.java
@@ -1,19 +1,19 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.TimeManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class SetTimeCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- TimeManager.setCurrentHour(Integer.parseInt(args[0]));
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.TimeManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetTimeCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ TimeManager.setCurrentHour(Integer.parseInt(args[0]));
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/SetWhitelistCommand.java b/src/main/java/fr/yuki/yrpf/commands/SetWhitelistCommand.java
similarity index 74%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/SetWhitelistCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/SetWhitelistCommand.java
index eb1efe5..b6ff29f 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/SetWhitelistCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/SetWhitelistCommand.java
@@ -1,49 +1,42 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.dao.AccountJobWhitelistDAO;
-import fr.yuki.YukiRPFramework.manager.AccountManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.AccountJobWhitelist;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.sql.SQLException;
-
-public class SetWhitelistCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
- .findFirst().orElse(null);
- if(playerTarget == null) return true;
- Account account = WorldManager.getPlayerAccount(playerTarget);
- AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
- .filter(x -> x.getAccountId() == account.getId() && x.getJobId().equals(args[1].toUpperCase()))
- .findFirst().orElse(null);
- if(accountJobWhitelist != null) {
- player.sendMessage("Job already whitelisted for this player");
- return true;
- }
- accountJobWhitelist = new AccountJobWhitelist();
- accountJobWhitelist.setAccountId(account.getId());
- accountJobWhitelist.setJobId(args[1].toUpperCase());
- accountJobWhitelist.setJobLevel(Integer.parseInt(args[2]) <= 1 ? 2 : Integer.parseInt(args[2]));
- AccountManager.getAccountJobWhitelists().add(accountJobWhitelist);
- try {
- AccountJobWhitelistDAO.insertAccountJobWhiteList(accountJobWhitelist);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
-
- player.sendMessage("Job whitelisted for this player");
-
- WorldManager.savePlayer(playerTarget);
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.AccountManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.AccountJobWhitelist;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class SetWhitelistCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 2) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == Integer.parseInt(args[0]))
+ .findFirst().orElse(null);
+ if(playerTarget == null) return true;
+ Account account = WorldManager.getPlayerAccount(playerTarget);
+ AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
+ .filter(x -> x.getAccountId() == account.getId() && x.getJobId().equals(args[1].toUpperCase()))
+ .findFirst().orElse(null);
+ if(accountJobWhitelist != null) {
+ player.sendMessage("Job already whitelisted for this player");
+ return true;
+ }
+ accountJobWhitelist = new AccountJobWhitelist();
+ accountJobWhitelist.setAccountId(account.getId());
+ accountJobWhitelist.setJobId(args[1].toUpperCase());
+ accountJobWhitelist.setJobLevel(Integer.parseInt(args[2]) <= 1 ? 2 : Integer.parseInt(args[2]));
+ AccountManager.getAccountJobWhitelists().add(accountJobWhitelist);
+ accountJobWhitelist.save();
+
+ player.sendMessage("Job whitelisted for this player");
+
+ WorldManager.savePlayer(playerTarget);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/ShowGatherItemListCommand.java b/src/main/java/fr/yuki/yrpf/commands/ShowGatherItemListCommand.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/ShowGatherItemListCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/ShowGatherItemListCommand.java
index bbe5a6e..8d9231d 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/ShowGatherItemListCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/ShowGatherItemListCommand.java
@@ -1,33 +1,30 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.JobSpawn;
-import fr.yuki.YukiRPFramework.job.harvest.HarvestableObject;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-import java.util.Map;
-
-public class ShowGatherItemListCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] strings) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- for(Map.Entry job : JobManager.getJobs().entrySet()) {
- player.sendMessage("=========> " + job.getKey());
- int i2 = 0;
- for(JobSpawn jobSpawn : job.getValue().getJobConfig().getResources()) {
- player.sendMessage(jobSpawn.getName() + " (" + i2 + ")");
- }
- }
- return true;
- }
-
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.job.JobSpawn;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+import java.util.Map;
+
+public class ShowGatherItemListCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] strings) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 5) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ for(Map.Entry job : JobManager.getJobs().entrySet()) {
+ player.sendMessage("=========> " + job.getKey());
+ int i2 = 0;
+ for(JobSpawn jobSpawn : job.getValue().getJobConfig().getResources()) {
+ player.sendMessage(jobSpawn.getName() + " (" + i2 + ")");
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/commands/VCommand.java b/src/main/java/fr/yuki/yrpf/commands/VCommand.java
similarity index 77%
rename from src/main/java/fr/yuki/YukiRPFramework/commands/VCommand.java
rename to src/main/java/fr/yuki/yrpf/commands/VCommand.java
index 42e598c..c4d8c05 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/commands/VCommand.java
+++ b/src/main/java/fr/yuki/yrpf/commands/VCommand.java
@@ -1,22 +1,21 @@
-package fr.yuki.YukiRPFramework.commands;
-
-import fr.yuki.YukiRPFramework.manager.VehicleManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
-
-public class VCommand implements CommandExecutor {
- @Override
- public boolean onCommand(Player player, String s, String[] args) {
- if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
- if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
- player.sendMessage("You don't have the level required for this command");
- return true;
- }
- int modelId = Integer.parseInt(args[0]);
- VehicleManager.createVehicle(modelId, player.getLocation(),
- player.getLocationAndHeading().getHeading(), player, null, false);
- return true;
- }
-}
+package fr.yuki.yrpf.commands;
+
+import fr.yuki.yrpf.manager.VehicleManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.CommandExecutor;
+
+public class VCommand implements CommandExecutor {
+ @Override
+ public boolean onCommand(Player player, String s, String[] args) {
+ if(WorldManager.getPlayerAccount(player).getAdminLevel() == 0) return false;
+ if(WorldManager.getPlayerAccount(player).getCommandLevel() < 3) {
+ player.sendMessage("You don't have the level required for this command");
+ return true;
+ }
+ int modelId = Integer.parseInt(args[0]);
+ VehicleManager.createVehicle(modelId, player.getLocation(),
+ player.getLocationAndHeading().getHeading(), player, null, false);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/enums/ItemTemplateEnum.java b/src/main/java/fr/yuki/yrpf/enums/ItemTemplateEnum.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/enums/ItemTemplateEnum.java
rename to src/main/java/fr/yuki/yrpf/enums/ItemTemplateEnum.java
index f9c587b..91266e0 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/enums/ItemTemplateEnum.java
+++ b/src/main/java/fr/yuki/yrpf/enums/ItemTemplateEnum.java
@@ -1,36 +1,36 @@
-package fr.yuki.YukiRPFramework.enums;
-
-public enum ItemTemplateEnum {
- APPLE("1"),
- CASH("2"),
- VKEY("3"),
- LUMBERJACK_HATCHET_1("4"),
- MINER_PICKAXE_1("5"),
- BANANAS("6"),
- FISHING_ROD("7"),
- SALMON("8"),
- WEED_SEED("9"),
- TICKET_DELIVERY_GROW_BOX("10"),
- POT("11"),
- WATER("12"),
- WEED("13"),
- TICKET_DELIVERY_GENERATOR("14"),
- JERRICAN_FUEL("15"),
- CUFF("16"),
- DEFIBRILATOR("17"),
- LIGHTSABER("18"),
- DESERT_EAGLE("19"),
- AMMO("20"),
- GLOCK("21"),
- SHOTGUN("22"),
- RABBIT_MASK("23"),
- LUFFY_HAT("24"),
- BANDANA("25"),
- TURTLE("26");
-
- public final String id;
-
- private ItemTemplateEnum(String id) {
- this.id = id;
- }
-}
+package fr.yuki.yrpf.enums;
+
+public enum ItemTemplateEnum {
+ APPLE("1"),
+ CASH("2"),
+ VKEY("3"),
+ LUMBERJACK_HATCHET_1("4"),
+ MINER_PICKAXE_1("5"),
+ BANANAS("6"),
+ FISHING_ROD("7"),
+ SALMON("8"),
+ WEED_SEED("9"),
+ TICKET_DELIVERY_GROW_BOX("10"),
+ POT("11"),
+ WATER("12"),
+ WEED("13"),
+ TICKET_DELIVERY_GENERATOR("14"),
+ JERRICAN_FUEL("15"),
+ CUFF("16"),
+ DEFIBRILATOR("17"),
+ LIGHTSABER("18"),
+ DESERT_EAGLE("19"),
+ AMMO("20"),
+ GLOCK("21"),
+ SHOTGUN("22"),
+ RABBIT_MASK("23"),
+ LUFFY_HAT("24"),
+ BANDANA("25"),
+ TURTLE("26");
+
+ public final String id;
+
+ ItemTemplateEnum(String id) {
+ this.id = id;
+ }
+}
diff --git a/src/main/java/fr/yuki/yrpf/enums/JobEnum.java b/src/main/java/fr/yuki/yrpf/enums/JobEnum.java
new file mode 100644
index 0000000..e33671c
--- /dev/null
+++ b/src/main/java/fr/yuki/yrpf/enums/JobEnum.java
@@ -0,0 +1,12 @@
+package fr.yuki.yrpf.enums;
+
+public enum JobEnum {
+ LUMBERJACK,
+ DELIVERY,
+ MINER,
+ FISHER,
+ POLICE,
+ WEED,
+ GARBAGE,
+ EMS
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/enums/ToastTypeEnum.java b/src/main/java/fr/yuki/yrpf/enums/ToastTypeEnum.java
similarity index 67%
rename from src/main/java/fr/yuki/YukiRPFramework/enums/ToastTypeEnum.java
rename to src/main/java/fr/yuki/yrpf/enums/ToastTypeEnum.java
index e44b7a8..53366d1 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/enums/ToastTypeEnum.java
+++ b/src/main/java/fr/yuki/yrpf/enums/ToastTypeEnum.java
@@ -1,15 +1,15 @@
-package fr.yuki.YukiRPFramework.enums;
-
-public enum ToastTypeEnum {
- INFO("info"),
- SUCCESS("success"),
- WARN("warn"),
- ERROR("error"),
- DEFAULT("default");
-
- public final String type;
-
- private ToastTypeEnum(String type) {
- this.type = type;
- }
-}
+package fr.yuki.yrpf.enums;
+
+public enum ToastTypeEnum {
+ INFO("info"),
+ SUCCESS("success"),
+ WARN("warn"),
+ ERROR("error"),
+ DEFAULT("default");
+
+ public final String type;
+
+ ToastTypeEnum(String type) {
+ this.type = type;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ATMBehavior.java b/src/main/java/fr/yuki/yrpf/house/itembehavior/ATMBehavior.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ATMBehavior.java
rename to src/main/java/fr/yuki/yrpf/house/itembehavior/ATMBehavior.java
index 13b38ea..17d87b7 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ATMBehavior.java
+++ b/src/main/java/fr/yuki/yrpf/house/itembehavior/ATMBehavior.java
@@ -1,32 +1,32 @@
-package fr.yuki.YukiRPFramework.house.itembehavior;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-
-public class ATMBehavior extends ItemBehavior {
- private ATM atm;
-
- public ATMBehavior(HouseItemObject houseItemObject) {
- super(houseItemObject);
- }
-
- @Override
- public void onSpawn() {
- this.atm = new ATM();
- atm.setX((float)this.houseItemObject.getX());
- atm.setY((float)this.houseItemObject.getY());
- atm.setZ((float)this.houseItemObject.getZ());
- WorldManager.getAtms().add(atm);
- }
-
- @Override
- public void onDestroy() {
- WorldManager.getAtms().remove(this.atm);
- }
-
- @Override
- public void onInteract() {
-
- }
-}
+package fr.yuki.yrpf.house.itembehavior;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.ATM;
+import fr.yuki.yrpf.model.HouseItemObject;
+
+public class ATMBehavior extends ItemBehavior {
+ private ATM atm;
+
+ public ATMBehavior(HouseItemObject houseItemObject) {
+ super(houseItemObject);
+ }
+
+ @Override
+ public void onSpawn() {
+ this.atm = new ATM();
+ atm.setX((float)this.houseItemObject.getX());
+ atm.setY((float)this.houseItemObject.getY());
+ atm.setZ((float)this.houseItemObject.getZ());
+ WorldManager.getAtms().add(atm);
+ }
+
+ @Override
+ public void onDestroy() {
+ WorldManager.getAtms().remove(this.atm);
+ }
+
+ @Override
+ public void onInteract() {
+
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ItemBehavior.java b/src/main/java/fr/yuki/yrpf/house/itembehavior/ItemBehavior.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ItemBehavior.java
rename to src/main/java/fr/yuki/yrpf/house/itembehavior/ItemBehavior.java
index 7adc84a..61d1fc0 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/ItemBehavior.java
+++ b/src/main/java/fr/yuki/yrpf/house/itembehavior/ItemBehavior.java
@@ -1,15 +1,15 @@
-package fr.yuki.YukiRPFramework.house.itembehavior;
-
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-
-public abstract class ItemBehavior {
- protected HouseItemObject houseItemObject;
-
- public ItemBehavior(HouseItemObject houseItemObject) {
- this.houseItemObject = houseItemObject;
- }
-
- public abstract void onSpawn();
- public abstract void onDestroy();
- public abstract void onInteract();
-}
+package fr.yuki.yrpf.house.itembehavior;
+
+import fr.yuki.yrpf.model.HouseItemObject;
+
+public abstract class ItemBehavior {
+ protected HouseItemObject houseItemObject;
+
+ public ItemBehavior(HouseItemObject houseItemObject) {
+ this.houseItemObject = houseItemObject;
+ }
+
+ public abstract void onSpawn();
+ public abstract void onDestroy();
+ public abstract void onInteract();
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/RadioBehavior.java b/src/main/java/fr/yuki/yrpf/house/itembehavior/RadioBehavior.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/RadioBehavior.java
rename to src/main/java/fr/yuki/yrpf/house/itembehavior/RadioBehavior.java
index f28173d..490acd7 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/house/itembehavior/RadioBehavior.java
+++ b/src/main/java/fr/yuki/yrpf/house/itembehavior/RadioBehavior.java
@@ -1,45 +1,45 @@
-package fr.yuki.YukiRPFramework.house.itembehavior;
-
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.util.UUID;
-
-public class RadioBehavior extends ItemBehavior {
- private String soundId;
- private WorldObject soundObject;
-
- public RadioBehavior(HouseItemObject houseItemObject) {
- super(houseItemObject);
- this.soundId = "radio-" + UUID.randomUUID().toString();
- }
-
- @Override
- public void onSpawn() {
- String songName = "";
- switch (houseItemObject.getModelId()) {
- case 1194:
- songName = "sounds/shop_ambiant2.mp3";
- break;
-
- default:
- songName = "sounds/shop_ambiant.mp3";
- break;
- }
- this.soundObject = SoundManager.createAmbiantSound(this.soundId, songName,
- houseItemObject.getPosition(), 800, 0.3);
- }
-
- @Override
- public void onDestroy() {
- this.soundObject.destroy();
- this.soundObject = null;
- SoundManager.getAmbiantSounds().remove(this.soundId);
- }
-
- @Override
- public void onInteract() {
-
- }
-}
+package fr.yuki.yrpf.house.itembehavior;
+
+import fr.yuki.yrpf.manager.SoundManager;
+import fr.yuki.yrpf.model.HouseItemObject;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.UUID;
+
+public class RadioBehavior extends ItemBehavior {
+ private String soundId;
+ private WorldObject soundObject;
+
+ public RadioBehavior(HouseItemObject houseItemObject) {
+ super(houseItemObject);
+ this.soundId = "radio-" + UUID.randomUUID().toString();
+ }
+
+ @Override
+ public void onSpawn() {
+ String songName = "";
+ switch (houseItemObject.getModelId()) {
+ case 1194:
+ songName = "sounds/shop_ambiant2.mp3";
+ break;
+
+ default:
+ songName = "sounds/shop_ambiant.mp3";
+ break;
+ }
+ this.soundObject = SoundManager.createAmbiantSound(this.soundId, songName,
+ houseItemObject.getPosition(), 800, 0.3);
+ }
+
+ @Override
+ public void onDestroy() {
+ this.soundObject.destroy();
+ this.soundObject = null;
+ SoundManager.getAmbiantSounds().remove(this.soundId);
+ }
+
+ @Override
+ public void onInteract() {
+
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/i18n/I18n.java b/src/main/java/fr/yuki/yrpf/i18n/I18n.java
similarity index 85%
rename from src/main/java/fr/yuki/YukiRPFramework/i18n/I18n.java
rename to src/main/java/fr/yuki/yrpf/i18n/I18n.java
index 50c85ca..7600126 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/i18n/I18n.java
+++ b/src/main/java/fr/yuki/yrpf/i18n/I18n.java
@@ -1,43 +1,40 @@
-package fr.yuki.YukiRPFramework.i18n;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.job.JobConfig;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import net.onfirenetwork.onsetjava.Onset;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.HashMap;
-
-public class I18n {
- private static HashMap> langs;
-
- public static void init() throws IOException {
- langs = new HashMap<>();
- for (final File fileEntry : new File(WorldManager.getServerConfig().getLangPath()).listFiles()) {
- String fileString = new String(Files.readAllBytes(Paths.get(fileEntry.getPath())), StandardCharsets.UTF_8);
-
- Gson gson = new GsonBuilder().disableHtmlEscaping().create();
- langs.put(fileEntry.getName().split("\\.")[0], gson.fromJson(fileString,
- new TypeToken>(){}.getType()));
- }
- Onset.print("Loaded " + langs.size() + " i18n file(s)");
- }
-
- public static String t(String lang, String key, String... params) {
- if(!langs.containsKey(lang)) return key;
- if(!langs.get(lang).containsKey(key)) return key;
- String value = langs.get(lang).get(key);
- for(int i = 0; i < params.length; i++) {
- value = value.replace("{" + i + "}", params[i]);
- }
- return value;
- }
-}
+package fr.yuki.yrpf.i18n;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
+import fr.yuki.yrpf.manager.WorldManager;
+import net.onfirenetwork.onsetjava.Onset;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashMap;
+
+public class I18n {
+ private static HashMap> langs;
+
+ public static void init() throws IOException {
+ langs = new HashMap<>();
+ for (final File fileEntry : new File(WorldManager.getServerConfig().getLangPath()).listFiles()) {
+ String fileString = new String(Files.readAllBytes(Paths.get(fileEntry.getPath())), StandardCharsets.UTF_8);
+
+ Gson gson = new GsonBuilder().disableHtmlEscaping().create();
+ langs.put(fileEntry.getName().split("\\.")[0], gson.fromJson(fileString,
+ new TypeToken>(){}.getType()));
+ }
+ Onset.print("Loaded " + langs.size() + " i18n file(s)");
+ }
+
+ public static String t(String lang, String key, String... params) {
+ if(!langs.containsKey(lang)) return key;
+ if(!langs.get(lang).containsKey(key)) return key;
+ String value = langs.get(lang).get(key);
+ for(int i = 0; i < params.length; i++) {
+ value = value.replace("{" + i + "}", params[i]);
+ }
+ return value;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/inventory/Inventory.java b/src/main/java/fr/yuki/yrpf/inventory/Inventory.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/inventory/Inventory.java
rename to src/main/java/fr/yuki/yrpf/inventory/Inventory.java
index cdb2e5a..5a4112c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/inventory/Inventory.java
+++ b/src/main/java/fr/yuki/yrpf/inventory/Inventory.java
@@ -1,297 +1,245 @@
-package fr.yuki.YukiRPFramework.inventory;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.dao.InventoryDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.ItemManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.Bag;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import fr.yuki.YukiRPFramework.net.payload.AddItemInventoryPayload;
-import fr.yuki.YukiRPFramework.net.payload.RemoteItemInventoryPayload;
-import fr.yuki.YukiRPFramework.net.payload.UpdateInventoryWeightPayload;
-import fr.yuki.YukiRPFramework.net.payload.UpdateItemInventoryPayload;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-import java.util.stream.Collectors;
-
-public class Inventory {
- private int id;
- private int inventoryType;
- private int inventoryItemType;
- private int characterId;
- private int vehicleId;
- private String content;
- private ArrayList inventoryItems;
-
- public Inventory() {
- this.inventoryItems = new ArrayList();
- }
-
- /**
- * Try to add the inventory item to the inventory, return a existing item if its stacked
- * @param inventoryItem The item
- * @return The inventory item affected
- */
- public InventoryItem addItem(InventoryItem inventoryItem) {
- for(InventoryItem inventoryItemEntry : this.inventoryItems) {
- if(inventoryItemEntry.canStack(inventoryItem)) {
- inventoryItemEntry.setAmount
- (inventoryItemEntry.getAmount() + inventoryItem.getAmount());
- this.updateItemPlayerView(inventoryItemEntry);
-
- // Display the notification
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
- Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
- UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
- ToastTypeEnum.SUCCESS,
- "+" + inventoryItem.getAmount() + " " +
- I18n.t(account.getLang(), "item.name." + inventoryItem.getTemplateId()));
- }
-
- return inventoryItemEntry;
- }
- }
- this.inventoryItems.add(inventoryItem);
- this.addItemPlayerView(inventoryItem);
-
- // Display the notification
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
- Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
- UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
- ToastTypeEnum.SUCCESS,
- "+" + inventoryItem.getAmount() + " " +
- I18n.t(account.getLang(), "item.name." + inventoryItem.getTemplateId()));
- }
-
- return inventoryItem;
- }
-
- /**
- * Display the new item to the client
- * @param inventoryItem The item
- */
- public void addItemPlayerView(InventoryItem inventoryItem) {
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) == null) return;
- Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
- if(player == null) return;
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddItemInventoryPayload(inventoryItem)));
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
- }
-
- /**
- * Update a existing item to the client
- * @param inventoryItem The item
- */
- public void updateItemPlayerView(InventoryItem inventoryItem) {
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) == null) return;
- Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
- if(player == null) return;
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateItemInventoryPayload(inventoryItem)));
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
- }
-
- /**
- * Compute the content and save it into the database
- */
- public void save() {
- try {
- if(this.getId() <= 0) return;
- this.content = new Gson().toJson(this.inventoryItems);
- InventoryDAO.updateInventory(this);
- } catch (Exception ex) {
- Onset.print("Can't save the inventory: " + ex.toString());
- }
- }
-
- /**
- * Clean all items that don't need to be loaded.
- */
- public void cleanUnusableItems() {
- for(InventoryItem inventoryItem : this.inventoryItems.stream().collect(Collectors.toList())) {
- if(inventoryItem.getTemplate().getId() == Integer.parseInt(ItemTemplateEnum.VKEY.id)) {
- this.inventoryItems.remove(inventoryItem);
- }
- }
- this.save();
- }
-
- /**
- * Parse the content into a item array list
- */
- public void parseContent() {
- this.inventoryItems = new Gson().fromJson(this.content,
- new TypeToken>(){}.getType());
- this.cleanUnusableItems();
- }
-
- /**
- * Send all the items to the client
- * @param player The player
- */
- public void sendInventoryContent(Player player) {
- for(InventoryItem inventoryItem : this.inventoryItems) {
- this.addItemPlayerView(inventoryItem);
- }
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
- }
-
- /**
- * Get the max weight of the inventory
- * @return The max weight
- */
- public float getMaxWeight() {
- Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- float baseMaxWeight = 55;
- if(state.getCurrentBag() != null) {
- Bag bag = ItemManager.bags.stream().filter(x -> x.getModelId() == state.getCurrentBag().getModelId())
- .findFirst().orElse(null);
- return (float) (baseMaxWeight + bag.getBonusWeight());
- } else {
- return baseMaxWeight;
- }
- }
-
- /**
- * Get the current weight of the inventory
- * @return The current weight
- */
- public float getCurrentWeight() {
- float weight = 0;
- for(InventoryItem inventoryItem : this.inventoryItems) {
- weight += inventoryItem.getTemplate().getWeight() * inventoryItem.getAmount();
- }
- return weight;
- }
-
- /**
- * Find a item by the type
- * @param type Type item id
- * @return The inventory item
- */
- public InventoryItem getItemByType(String type) {
- return this.inventoryItems.stream().filter(x -> x.getTemplateId().equals(type)).findFirst().orElse(null);
- }
-
- public InventoryItem getItem(String id) {
- return this.inventoryItems.stream().filter(x -> x.getId().equals(id)).findFirst().orElse(null);
- }
-
- public ArrayList getItemsByType(String type) {
- return new ArrayList<>(this.inventoryItems.stream().filter(x -> x.getTemplateId().equals(type)).collect(Collectors.toList()));
- }
-
- /**
- * Get the cash amount on the player
- * @return The cash amount
- */
- public int getCashAmount() {
- InventoryItem cashItem = this.getItemByType(ItemTemplateEnum.CASH.id);
- if(cashItem == null) return 0;
- return cashItem.getAmount();
- }
-
- /**
- * Remove item amount to the inventory, delete it if the amount if higher than the item amount
- * @param item The item
- * @param amount The amount
- */
- public void removeItem(InventoryItem item, int amount) {
- if(amount >= item.getAmount()) {
- this.inventoryItems.remove(item);
- this.save();
-
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
- WorldManager.findPlayerByAccountId(this.getCharacterId())
- .callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new RemoteItemInventoryPayload(item.getId())));
- }
- } else {
- item.setAmount(item.getAmount() - amount);
- this.updateItemPlayerView(item);
- this.save();
- }
-
- // Display the notification
- if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
- Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
- WorldManager.findPlayerByAccountId(this.getCharacterId()).callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
- UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
- ToastTypeEnum.WARN,
- "-" + amount + " " + I18n.t(account.getLang(), "item.name." + item.getTemplateId()));
- }
- }
-
- public void updateWeightView() {
- WorldManager.findPlayerByAccountId(this.getCharacterId()).callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
- }
-
- public void throwItem(InventoryItem item, int quantity) {
-
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public int getInventoryType() {
- return inventoryType;
- }
-
- public void setInventoryType(int inventoryType) {
- this.inventoryType = inventoryType;
- }
-
- public int getInventoryItemType() {
- return inventoryItemType;
- }
-
- public void setInventoryItemType(int inventoryItemType) {
- this.inventoryItemType = inventoryItemType;
- }
-
- public int getCharacterId() {
- return characterId;
- }
-
- public void setCharacterId(int characterId) {
- this.characterId = characterId;
- }
-
- public int getVehicleId() {
- return vehicleId;
- }
-
- public void setVehicleId(int vehicleId) {
- this.vehicleId = vehicleId;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public ArrayList getInventoryItems() {
- return inventoryItems;
- }
-
- public void setInventoryItems(ArrayList inventoryItems) {
- this.inventoryItems = inventoryItems;
- }
-}
+package fr.yuki.yrpf.inventory;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import eu.bebendorf.ajorm.Model;
+import eu.bebendorf.ajorm.annotation.Column;
+import eu.bebendorf.ajorm.annotation.Table;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.ItemManager;
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.Bag;
+import fr.yuki.yrpf.net.payload.AddItemInventoryPayload;
+import fr.yuki.yrpf.net.payload.RemoteItemInventoryPayload;
+import fr.yuki.yrpf.net.payload.UpdateInventoryWeightPayload;
+import fr.yuki.yrpf.net.payload.UpdateItemInventoryPayload;
+import lombok.Getter;
+import lombok.Setter;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Getter @Setter @Table("tbl_inventory")
+public class Inventory extends Model {
+ @Column(column = "id_inventory")
+ private int id;
+ @Column
+ private int inventoryType = -1;
+ @Column
+ private int inventoryItemType = -1;
+ @Column
+ private int characterId = -1;
+ @Column
+ private int vehicleId = -1;
+ @Column(size = 0)
+ private String content = "[]";
+
+ private ArrayList inventoryItems = new ArrayList<>();
+
+ /**
+ * Try to add the inventory item to the inventory, return a existing item if its stacked
+ * @param inventoryItem The item
+ * @return The inventory item affected
+ */
+ public InventoryItem addItem(InventoryItem inventoryItem) {
+ for(InventoryItem inventoryItemEntry : this.inventoryItems) {
+ if(inventoryItemEntry.canStack(inventoryItem)) {
+ inventoryItemEntry.setAmount
+ (inventoryItemEntry.getAmount() + inventoryItem.getAmount());
+ this.updateItemPlayerView(inventoryItemEntry);
+
+ // Display the notification
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
+ Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
+ UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
+ ToastTypeEnum.SUCCESS,
+ "+" + inventoryItem.getAmount() + " " +
+ I18n.t(account.getLang(), "item.name." + inventoryItem.getTemplateId()));
+ }
+
+ return inventoryItemEntry;
+ }
+ }
+ this.inventoryItems.add(inventoryItem);
+ this.addItemPlayerView(inventoryItem);
+
+ // Display the notification
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
+ Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
+ UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
+ ToastTypeEnum.SUCCESS,
+ "+" + inventoryItem.getAmount() + " " +
+ I18n.t(account.getLang(), "item.name." + inventoryItem.getTemplateId()));
+ }
+
+ return inventoryItem;
+ }
+
+ /**
+ * Display the new item to the client
+ * @param inventoryItem The item
+ */
+ public void addItemPlayerView(InventoryItem inventoryItem) {
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) == null) return;
+ Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
+ if(player == null) return;
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddItemInventoryPayload(inventoryItem)));
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
+ }
+
+ /**
+ * Update a existing item to the client
+ * @param inventoryItem The item
+ */
+ public void updateItemPlayerView(InventoryItem inventoryItem) {
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) == null) return;
+ Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
+ if(player == null) return;
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateItemInventoryPayload(inventoryItem)));
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
+ }
+
+ /**
+ * Compute the content and save it into the database
+ */
+ public void save() {
+ if(this.getId() < 0) return;
+ this.content = new Gson().toJson(this.inventoryItems);
+ super.save();
+ }
+
+ /**
+ * Clean all items that don't need to be loaded.
+ */
+ public void cleanUnusableItems() {
+ for(InventoryItem inventoryItem : this.inventoryItems.stream().collect(Collectors.toList())) {
+ if(inventoryItem.getTemplate().getId() == Integer.parseInt(ItemTemplateEnum.VKEY.id)) {
+ this.inventoryItems.remove(inventoryItem);
+ }
+ }
+ this.save();
+ }
+
+ /**
+ * Parse the content into a item array list
+ */
+ public void parseContent() {
+ this.inventoryItems = new Gson().fromJson(this.content,
+ new TypeToken>(){}.getType());
+ this.cleanUnusableItems();
+ }
+
+ /**
+ * Send all the items to the client
+ * @param player The player
+ */
+ public void sendInventoryContent(Player player) {
+ for(InventoryItem inventoryItem : this.inventoryItems) {
+ this.addItemPlayerView(inventoryItem);
+ }
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
+ }
+
+ /**
+ * Get the max weight of the inventory
+ * @return The max weight
+ */
+ public float getMaxWeight() {
+ Player player = WorldManager.findPlayerByAccountId(this.getCharacterId());
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ float baseMaxWeight = 55;
+ if(state.getCurrentBag() != null) {
+ Bag bag = ItemManager.bags.stream().filter(x -> x.getModelId() == state.getCurrentBag().getModelId())
+ .findFirst().orElse(null);
+ return (float) (baseMaxWeight + bag.getBonusWeight());
+ } else {
+ return baseMaxWeight;
+ }
+ }
+
+ /**
+ * Get the current weight of the inventory
+ * @return The current weight
+ */
+ public float getCurrentWeight() {
+ float weight = 0;
+ for(InventoryItem inventoryItem : this.inventoryItems) {
+ weight += inventoryItem.getTemplate().getWeight() * inventoryItem.getAmount();
+ }
+ return weight;
+ }
+
+ /**
+ * Find a item by the type
+ * @param type Type item id
+ * @return The inventory item
+ */
+ public InventoryItem getItemByType(String type) {
+ return this.inventoryItems.stream().filter(x -> x.getTemplateId().equals(type)).findFirst().orElse(null);
+ }
+
+ public InventoryItem getItem(String id) {
+ return this.inventoryItems.stream().filter(x -> x.getId().equals(id)).findFirst().orElse(null);
+ }
+
+ public List getItemsByType(String type) {
+ return new ArrayList<>(this.inventoryItems.stream().filter(x -> x.getTemplateId().equals(type)).collect(Collectors.toList()));
+ }
+
+ /**
+ * Get the cash amount on the player
+ * @return The cash amount
+ */
+ public int getCashAmount() {
+ InventoryItem cashItem = this.getItemByType(ItemTemplateEnum.CASH.id);
+ if(cashItem == null) return 0;
+ return cashItem.getAmount();
+ }
+
+ /**
+ * Remove item amount to the inventory, delete it if the amount if higher than the item amount
+ * @param item The item
+ * @param amount The amount
+ */
+ public void removeItem(InventoryItem item, int amount) {
+ if(amount >= item.getAmount()) {
+ this.inventoryItems.remove(item);
+ this.save();
+
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
+ WorldManager.findPlayerByAccountId(this.getCharacterId())
+ .callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new RemoteItemInventoryPayload(item.getId())));
+ }
+ } else {
+ item.setAmount(item.getAmount() - amount);
+ this.updateItemPlayerView(item);
+ this.save();
+ }
+
+ // Display the notification
+ if(WorldManager.findPlayerByAccountId(this.getCharacterId()) != null) {
+ Account account = WorldManager.getPlayerAccount(WorldManager.findPlayerByAccountId(this.getCharacterId()));
+ WorldManager.findPlayerByAccountId(this.getCharacterId()).callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
+ UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(this.getCharacterId()),
+ ToastTypeEnum.WARN,
+ "-" + amount + " " + I18n.t(account.getLang(), "item.name." + item.getTemplateId()));
+ }
+ }
+
+ public void updateWeightView() {
+ WorldManager.findPlayerByAccountId(this.getCharacterId()).callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new UpdateInventoryWeightPayload(this.getCurrentWeight(), this.getMaxWeight())));
+ }
+
+ public void throwItem(InventoryItem item, int quantity) {
+ // TODO
+ }
+
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/inventory/InventoryItem.java b/src/main/java/fr/yuki/yrpf/inventory/InventoryItem.java
similarity index 88%
rename from src/main/java/fr/yuki/YukiRPFramework/inventory/InventoryItem.java
rename to src/main/java/fr/yuki/yrpf/inventory/InventoryItem.java
index 10a37e2..7429a12 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/inventory/InventoryItem.java
+++ b/src/main/java/fr/yuki/yrpf/inventory/InventoryItem.java
@@ -1,70 +1,70 @@
-package fr.yuki.YukiRPFramework.inventory;
-
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-
-import java.util.HashMap;
-import java.util.UUID;
-
-public class InventoryItem {
- private String id;
- private String templateId;
- private int amount;
- private HashMap extraProperties;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getTemplateId() {
- return templateId;
- }
-
- public void setTemplateId(String templateId) {
- this.templateId = templateId;
- }
-
- public int getAmount() {
- return amount;
- }
-
- public void setAmount(int amount) {
- this.amount = amount;
- }
-
- public ItemTemplate getTemplate() {
- return InventoryManager.getItemTemplates().get(Integer.parseInt(this.templateId));
- }
-
- public HashMap getExtraProperties() {
- return extraProperties;
- }
-
- public void setExtraProperties(HashMap extraProperties) {
- this.extraProperties = extraProperties;
- }
-
- /**
- * Check if the inventory item is the same and then can be stacked
- * @param inventoryItem The inventory item to stack
- * @return Can be stack
- */
- public boolean canStack(InventoryItem inventoryItem) {
- if(!templateId.equals(inventoryItem.getTemplateId())) return false;
- if(!this.getExtraProperties().equals(inventoryItem.getExtraProperties())) return false;
- return true;
- }
-
- public InventoryItem copy() {
- InventoryItem inventoryItem = new InventoryItem();
- inventoryItem.setId(UUID.randomUUID().toString());
- inventoryItem.setTemplateId(this.templateId);
- inventoryItem.setAmount(this.amount);
- inventoryItem.setExtraProperties(this.extraProperties);
- return inventoryItem;
- }
-}
+package fr.yuki.yrpf.inventory;
+
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.model.ItemTemplate;
+
+import java.util.HashMap;
+import java.util.UUID;
+
+public class InventoryItem {
+ private String id;
+ private String templateId;
+ private int amount;
+ private HashMap extraProperties;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getTemplateId() {
+ return templateId;
+ }
+
+ public void setTemplateId(String templateId) {
+ this.templateId = templateId;
+ }
+
+ public int getAmount() {
+ return amount;
+ }
+
+ public void setAmount(int amount) {
+ this.amount = amount;
+ }
+
+ public ItemTemplate getTemplate() {
+ return InventoryManager.getItemTemplates().get(Integer.parseInt(this.templateId));
+ }
+
+ public HashMap getExtraProperties() {
+ return extraProperties;
+ }
+
+ public void setExtraProperties(HashMap extraProperties) {
+ this.extraProperties = extraProperties;
+ }
+
+ /**
+ * Check if the inventory item is the same and then can be stacked
+ * @param inventoryItem The inventory item to stack
+ * @return Can be stack
+ */
+ public boolean canStack(InventoryItem inventoryItem) {
+ if(!templateId.equals(inventoryItem.getTemplateId())) return false;
+ if(!this.getExtraProperties().equals(inventoryItem.getExtraProperties())) return false;
+ return true;
+ }
+
+ public InventoryItem copy() {
+ InventoryItem inventoryItem = new InventoryItem();
+ inventoryItem.setId(UUID.randomUUID().toString());
+ inventoryItem.setTemplateId(this.templateId);
+ inventoryItem.setAmount(this.amount);
+ inventoryItem.setExtraProperties(this.extraProperties);
+ return inventoryItem;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/CustomJob.java b/src/main/java/fr/yuki/yrpf/job/CustomJob.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/job/CustomJob.java
rename to src/main/java/fr/yuki/yrpf/job/CustomJob.java
index 2d7d0d7..6325e4c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/CustomJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/CustomJob.java
@@ -1,34 +1,32 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.job.harvest.Garbage;
-
-import java.util.ArrayList;
-
-public class CustomJob extends Job {
- private String jobName;
- private int refillInterval;
-
- public CustomJob(String jobName, int refillInterval) {
- this.jobName = jobName;
- this.refillInterval = refillInterval;
- this.harvestableObjectsTemplate = new ArrayList<>();
- if(this.setup()) {
- this.load();
- }
- }
-
- @Override
- public String getJobType() {
- return this.jobName;
- }
-
- @Override
- public int getRefillInterval() {
- return this.refillInterval;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import java.util.ArrayList;
+
+public class CustomJob extends Job {
+ private String jobName;
+ private int refillInterval;
+
+ public CustomJob(String jobName, int refillInterval) {
+ this.jobName = jobName;
+ this.refillInterval = refillInterval;
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ if(this.setup()) {
+ this.load();
+ }
+ }
+
+ @Override
+ public String getJobType() {
+ return this.jobName;
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return this.refillInterval;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/DeliveryJob.java b/src/main/java/fr/yuki/yrpf/job/DeliveryJob.java
similarity index 67%
rename from src/main/java/fr/yuki/YukiRPFramework/job/DeliveryJob.java
rename to src/main/java/fr/yuki/yrpf/job/DeliveryJob.java
index a18e12c..4ccbc4f 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/DeliveryJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/DeliveryJob.java
@@ -1,36 +1,35 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.DeliveryPackage;
-import fr.yuki.YukiRPFramework.job.harvest.Garbage;
-
-import java.util.ArrayList;
-
-public class DeliveryJob extends Job {
- public DeliveryJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
- this.harvestableObjectsTemplate.add(new DeliveryPackage());
-
- if(this.setup()) {
- this.load();
- }
-
- this.refillHarvestResources();
- }
-
- @Override
- public String getJobType() {
- return JobEnum.DELIVERY.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 60000*5;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.harvest.DeliveryPackage;
+
+import java.util.ArrayList;
+
+public class DeliveryJob extends Job {
+ public DeliveryJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ this.harvestableObjectsTemplate.add(new DeliveryPackage());
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ this.refillHarvestResources();
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.DELIVERY.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 60000*5;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/DeliveryPointConfig.java b/src/main/java/fr/yuki/yrpf/job/DeliveryPointConfig.java
similarity index 87%
rename from src/main/java/fr/yuki/YukiRPFramework/job/DeliveryPointConfig.java
rename to src/main/java/fr/yuki/yrpf/job/DeliveryPointConfig.java
index ad5feae..c507223 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/DeliveryPointConfig.java
+++ b/src/main/java/fr/yuki/yrpf/job/DeliveryPointConfig.java
@@ -1,17 +1,17 @@
-package fr.yuki.YukiRPFramework.job;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public class DeliveryPointConfig {
- private HashMap> points;
-
-
- public HashMap> getPoints() {
- return points;
- }
-
- public void setPoints(HashMap> points) {
- this.points = points;
- }
-}
+package fr.yuki.yrpf.job;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+public class DeliveryPointConfig {
+ private HashMap> points;
+
+
+ public HashMap> getPoints() {
+ return points;
+ }
+
+ public void setPoints(HashMap> points) {
+ this.points = points;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/EMSJob.java b/src/main/java/fr/yuki/yrpf/job/EMSJob.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/job/EMSJob.java
rename to src/main/java/fr/yuki/yrpf/job/EMSJob.java
index 3ce963a..0eebde4 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/EMSJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/EMSJob.java
@@ -1,32 +1,32 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-
-import java.util.ArrayList;
-
-public class EMSJob extends Job {
-
- public EMSJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
-
- if(this.setup()) {
- this.load();
- }
- }
-
- @Override
- public String getJobType() {
- return JobEnum.EMS.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 0;
- }
-
- @Override
- public boolean isWhitelisted() {
- return true;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+
+import java.util.ArrayList;
+
+public class EMSJob extends Job {
+
+ public EMSJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+
+ if(this.setup()) {
+ this.load();
+ }
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.EMS.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 0;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/FisherJob.java b/src/main/java/fr/yuki/yrpf/job/FisherJob.java
similarity index 66%
rename from src/main/java/fr/yuki/YukiRPFramework/job/FisherJob.java
rename to src/main/java/fr/yuki/yrpf/job/FisherJob.java
index fa538cc..efc455c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/FisherJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/FisherJob.java
@@ -1,39 +1,38 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.CooperOre;
-import fr.yuki.YukiRPFramework.job.harvest.Salmon;
-import fr.yuki.YukiRPFramework.job.harvest.Turtle;
-
-import java.util.ArrayList;
-
-public class FisherJob extends Job {
- public FisherJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
- this.harvestableObjectsTemplate.add(new Salmon());
- this.harvestableObjectsTemplate.add(new Turtle());
-
- if(this.setup()) {
- this.load();
- }
-
- this.refillHarvestResources();
- }
-
-
- @Override
- public String getJobType() {
- return JobEnum.FISHER.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 60000 * 3;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.harvest.Salmon;
+import fr.yuki.yrpf.job.harvest.Turtle;
+
+import java.util.ArrayList;
+
+public class FisherJob extends Job {
+ public FisherJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ this.harvestableObjectsTemplate.add(new Salmon());
+ this.harvestableObjectsTemplate.add(new Turtle());
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ this.refillHarvestResources();
+ }
+
+
+ @Override
+ public String getJobType() {
+ return JobEnum.FISHER.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 60000 * 3;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/GarbageJob.java b/src/main/java/fr/yuki/yrpf/job/GarbageJob.java
similarity index 67%
rename from src/main/java/fr/yuki/YukiRPFramework/job/GarbageJob.java
rename to src/main/java/fr/yuki/yrpf/job/GarbageJob.java
index 1c68969..6269bd7 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/GarbageJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/GarbageJob.java
@@ -1,36 +1,35 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.Garbage;
-import fr.yuki.YukiRPFramework.job.harvest.LumberjackTreeCommon;
-
-import java.util.ArrayList;
-
-public class GarbageJob extends Job {
- public GarbageJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
- this.harvestableObjectsTemplate.add(new Garbage());
-
- if(this.setup()) {
- this.load();
- }
-
- this.refillHarvestResources();
- }
-
- @Override
- public String getJobType() {
- return JobEnum.GARBAGE.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 60000 * 10;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.harvest.Garbage;
+
+import java.util.ArrayList;
+
+public class GarbageJob extends Job {
+ public GarbageJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ this.harvestableObjectsTemplate.add(new Garbage());
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ this.refillHarvestResources();
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.GARBAGE.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 60000 * 10;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/Job.java b/src/main/java/fr/yuki/yrpf/job/Job.java
similarity index 91%
rename from src/main/java/fr/yuki/YukiRPFramework/job/Job.java
rename to src/main/java/fr/yuki/yrpf/job/Job.java
index 8df2e37..b004ab4 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/Job.java
+++ b/src/main/java/fr/yuki/yrpf/job/Job.java
@@ -1,185 +1,180 @@
-package fr.yuki.YukiRPFramework.job;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.HarvestableObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import fr.yuki.YukiRPFramework.model.JobNPC;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Location;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.NPC;
-import net.onfirenetwork.onsetjava.entity.Pickup;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.stream.Collectors;
-
-public abstract class Job {
- public abstract String getJobType();
- public abstract int getRefillInterval();
- public abstract boolean isWhitelisted();
-
- protected ArrayList harvestableObjectsTemplate;
- protected JobConfig jobConfig;
- protected ArrayList worldHarvestObjects;
- protected ArrayList jobTools;
-
- public Job() {
- this.worldHarvestObjects = new ArrayList<>();
- this.spawnNpcs();
- this.spawnTools();
-
- if(this.getRefillInterval() > 0) {
- Onset.timer(this.getRefillInterval(), () -> {
- refillHarvestResources();
- });
- }
- }
-
- /**
- * Spawn npcs for this job
- */
- private void spawnNpcs() {
- for(JobNPC jobNPC : JobManager.getJobNPCS().stream().filter(x -> x.getJobId().equals(this.getJobType())).collect(Collectors.toList())) {
- NPC npc = Onset.getServer().createNPC(new Vector(jobNPC.getX(), jobNPC.getY(), jobNPC.getZ()), jobNPC.getH());
- Onset.getServer().createText3D(jobNPC.getName() + " [Utiliser]", 20, jobNPC.getX(),
- jobNPC.getY(), jobNPC.getZ() + 150, 0 , 0 ,0);
- npc.setProperty("clothing", jobNPC.getNpcClothing(), true);
- npc.setRespawnTime(1);
- npc.setHealth(999999);
- jobNPC.setNpc(npc);
- }
- }
-
- /**
- * Spawn tools for the job
- */
- private void spawnTools() {
- this.jobTools = new ArrayList<>(JobManager.getJobTools().stream()
- .filter(x -> x.getJobType().equals(this.getJobType())).collect(Collectors.toList()));
- for(JobTool tool : this.jobTools) {
- tool.spawn(this);
- }
- }
-
- /**
- * Setup the job
- * @return If the job has been setuo
- */
- protected boolean setup() {
- try {
- new File("yrpf").mkdir();
- if(new File("yrpf/" + this.getJobType() + ".json").exists()) return true;
- new File("yrpf/" + this.getJobType() + ".json").createNewFile();
- FileWriter fileWriter = new FileWriter("yrpf/" + this.getJobType() + ".json");
-
- // Create job config file first
- this.jobConfig = new JobConfig();
- for(HarvestableObject harvestableObject : this.harvestableObjectsTemplate) {
- Onset.print("Add " + harvestableObject.getName() + " to job config file");
- JobSpawn jobSpawn = new JobSpawn();
- jobSpawn.setName(harvestableObject.getName());
- this.jobConfig.getResources().add(jobSpawn);
- }
- fileWriter.write(new Gson().toJson(this.jobConfig));
- fileWriter.close();
- return false;
- } catch (Exception e) {
- e.printStackTrace();
- Onset.print("Can't create job cache: " + e.toString());
- return false;
- }
- }
-
- /**
- * Load resources for the job and the config
- */
- protected void load() {
- try {
- new File("yrpf").mkdir();
- this.jobConfig = new Gson().fromJson(new FileReader("yrpf/" + this.getJobType() + ".json"), JobConfig.class);
- for(JobSpawn jobSpawn : this.jobConfig.getResources()) {
- Onset.print("Loaded " + jobSpawn.getName() + " from the job file " + this.getJobType() + " with " + jobSpawn.getSpawns().size() + " spawn point(s)");
- }
-
- // Check missing ressources with new update
- for(HarvestableObject harvestableObject : this.harvestableObjectsTemplate) {
- if(this.jobConfig.getResources().stream()
- .filter(x -> x.getName().equals(harvestableObject.getName())).findFirst().orElse(null) == null) {
- JobSpawn jobSpawn = new JobSpawn();
- jobSpawn.setName(harvestableObject.getName());
- this.jobConfig.getResources().add(jobSpawn);
- this.saveConfig();
- Onset.print("Add missing job ressource: " + harvestableObject.getName());
- }
- }
- } catch (Exception e) {
- Onset.print("Can't load job cache: " + e.toString());
- }
- }
-
- /**
- * Save the job config as a json file
- */
- public void saveConfig() {
- try {
- FileWriter fileWriter = new FileWriter("yrpf/" + this.getJobType() + ".json");
- fileWriter.write(new Gson().toJson(this.jobConfig));
- fileWriter.close();
- } catch (Exception e) {
- Onset.print("Can't save the job config: " + e.toString());
- }
- }
-
- /**
- * Refill all resources for this job
- */
- public void refillHarvestResources() {
- Onset.print("Refill resources for job=" + this.getJobType());
- for(JobSpawn jobSpawn : this.jobConfig.getResources()) {
- HarvestableObject harvestableObject = this.harvestableObjectsTemplate.stream()
- .filter(x -> x.getName().equals(jobSpawn.getName())).findFirst().orElse(null);
- for(JobSpawnPosition jobSpawnPosition : jobSpawn.getSpawns()) {
- if(this.worldHarvestObjects.stream().filter(x -> x.getJobSpawnPosition().getUuid().equals(jobSpawnPosition.getUuid()))
- .findFirst().orElse(null) != null) {
- continue;
- }
- WorldObject worldObject = Onset.getServer().createObject(new Vector(jobSpawnPosition.getX(),
- jobSpawnPosition.getY(), jobSpawnPosition.getZ() - 100), harvestableObject.getModelId());
- worldObject.setScale(harvestableObject.getScale());
- worldObject.setProperty("harvestable", 1, true);
- worldObject.setProperty("harvestableResourceName", harvestableObject.getName(), true);
- worldObject.setProperty("harvestableInteractDistance", harvestableObject.distanceToInteract(), true);
- if(ModdingManager.isCustomModelId(harvestableObject.getModelId()))
- ModdingManager.assignCustomModel(worldObject, harvestableObject.getModelId());
- WorldHarvestObject worldHarvestObject = new WorldHarvestObject(jobSpawn, jobSpawnPosition,
- harvestableObject, worldObject, this);
- this.worldHarvestObjects.add(worldHarvestObject);
- }
- }
- }
-
- public ArrayList getWorldHarvestObjects() {
- return worldHarvestObjects;
- }
-
- public ArrayList getHarvestableObjectsTemplate() {
- return harvestableObjectsTemplate;
- }
-
- public JobConfig getJobConfig() {
- return jobConfig;
- }
-
- public ArrayList getJobTools() {
- return jobTools;
- }
-}
+package fr.yuki.yrpf.job;
+
+import com.google.gson.Gson;
+import fr.yuki.yrpf.job.harvest.HarvestableObject;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.manager.ModdingManager;
+import fr.yuki.yrpf.model.JobNPC;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.NPC;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.stream.Collectors;
+
+public abstract class Job {
+ public abstract String getJobType();
+ public abstract int getRefillInterval();
+ public abstract boolean isWhitelisted();
+
+ protected ArrayList harvestableObjectsTemplate;
+ protected JobConfig jobConfig;
+ protected ArrayList worldHarvestObjects;
+ protected ArrayList jobTools;
+
+ public Job() {
+ this.worldHarvestObjects = new ArrayList<>();
+ this.spawnNpcs();
+ this.spawnTools();
+
+ if(this.getRefillInterval() > 0) {
+ Onset.timer(this.getRefillInterval(), () -> {
+ refillHarvestResources();
+ });
+ }
+ }
+
+ /**
+ * Spawn npcs for this job
+ */
+ private void spawnNpcs() {
+ for(JobNPC jobNPC : JobManager.getJobNPCS().stream().filter(x -> x.getJobId().equals(this.getJobType())).collect(Collectors.toList())) {
+ NPC npc = Onset.getServer().createNPC(new Vector(jobNPC.getX(), jobNPC.getY(), jobNPC.getZ()), jobNPC.getH());
+ Onset.getServer().createText3D(jobNPC.getName() + " [Utiliser]", 20, jobNPC.getX(),
+ jobNPC.getY(), jobNPC.getZ() + 150, 0 , 0 ,0);
+ npc.setProperty("clothing", jobNPC.getNpcClothing(), true);
+ npc.setRespawnTime(1);
+ npc.setHealth(999999);
+ jobNPC.setNpc(npc);
+ }
+ }
+
+ /**
+ * Spawn tools for the job
+ */
+ private void spawnTools() {
+ this.jobTools = new ArrayList<>(JobManager.getJobTools().stream()
+ .filter(x -> x.getJobType().equals(this.getJobType())).collect(Collectors.toList()));
+ for(JobTool tool : this.jobTools) {
+ tool.spawn(this);
+ }
+ }
+
+ /**
+ * Setup the job
+ * @return If the job has been setuo
+ */
+ protected boolean setup() {
+ try {
+ new File("yrpf").mkdir();
+ if(new File("yrpf/" + this.getJobType() + ".json").exists()) return true;
+ new File("yrpf/" + this.getJobType() + ".json").createNewFile();
+ FileWriter fileWriter = new FileWriter("yrpf/" + this.getJobType() + ".json");
+
+ // Create job config file first
+ this.jobConfig = new JobConfig();
+ for(HarvestableObject harvestableObject : this.harvestableObjectsTemplate) {
+ Onset.print("Add " + harvestableObject.getName() + " to job config file");
+ JobSpawn jobSpawn = new JobSpawn();
+ jobSpawn.setName(harvestableObject.getName());
+ this.jobConfig.getResources().add(jobSpawn);
+ }
+ fileWriter.write(new Gson().toJson(this.jobConfig));
+ fileWriter.close();
+ return false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ Onset.print("Can't create job cache: " + e.toString());
+ return false;
+ }
+ }
+
+ /**
+ * Load resources for the job and the config
+ */
+ protected void load() {
+ try {
+ new File("yrpf").mkdir();
+ this.jobConfig = new Gson().fromJson(new FileReader("yrpf/" + this.getJobType() + ".json"), JobConfig.class);
+ for(JobSpawn jobSpawn : this.jobConfig.getResources()) {
+ Onset.print("Loaded " + jobSpawn.getName() + " from the job file " + this.getJobType() + " with " + jobSpawn.getSpawns().size() + " spawn point(s)");
+ }
+
+ // Check missing ressources with new update
+ for(HarvestableObject harvestableObject : this.harvestableObjectsTemplate) {
+ if(this.jobConfig.getResources().stream()
+ .filter(x -> x.getName().equals(harvestableObject.getName())).findFirst().orElse(null) == null) {
+ JobSpawn jobSpawn = new JobSpawn();
+ jobSpawn.setName(harvestableObject.getName());
+ this.jobConfig.getResources().add(jobSpawn);
+ this.saveConfig();
+ Onset.print("Add missing job ressource: " + harvestableObject.getName());
+ }
+ }
+ } catch (Exception e) {
+ Onset.print("Can't load job cache: " + e.toString());
+ }
+ }
+
+ /**
+ * Save the job config as a json file
+ */
+ public void saveConfig() {
+ try {
+ FileWriter fileWriter = new FileWriter("yrpf/" + this.getJobType() + ".json");
+ fileWriter.write(new Gson().toJson(this.jobConfig));
+ fileWriter.close();
+ } catch (Exception e) {
+ Onset.print("Can't save the job config: " + e.toString());
+ }
+ }
+
+ /**
+ * Refill all resources for this job
+ */
+ public void refillHarvestResources() {
+ Onset.print("Refill resources for job=" + this.getJobType());
+ for(JobSpawn jobSpawn : this.jobConfig.getResources()) {
+ HarvestableObject harvestableObject = this.harvestableObjectsTemplate.stream()
+ .filter(x -> x.getName().equals(jobSpawn.getName())).findFirst().orElse(null);
+ for(JobSpawnPosition jobSpawnPosition : jobSpawn.getSpawns()) {
+ if(this.worldHarvestObjects.stream().filter(x -> x.getJobSpawnPosition().getUuid().equals(jobSpawnPosition.getUuid()))
+ .findFirst().orElse(null) != null) {
+ continue;
+ }
+ WorldObject worldObject = Onset.getServer().createObject(new Vector(jobSpawnPosition.getX(),
+ jobSpawnPosition.getY(), jobSpawnPosition.getZ() - 100), harvestableObject.getModelId());
+ worldObject.setScale(harvestableObject.getScale());
+ worldObject.setProperty("harvestable", 1, true);
+ worldObject.setProperty("harvestableResourceName", harvestableObject.getName(), true);
+ worldObject.setProperty("harvestableInteractDistance", harvestableObject.distanceToInteract(), true);
+ if(ModdingManager.isCustomModelId(harvestableObject.getModelId()))
+ ModdingManager.assignCustomModel(worldObject, harvestableObject.getModelId());
+ WorldHarvestObject worldHarvestObject = new WorldHarvestObject(jobSpawn, jobSpawnPosition,
+ harvestableObject, worldObject, this);
+ this.worldHarvestObjects.add(worldHarvestObject);
+ }
+ }
+ }
+
+ public ArrayList getWorldHarvestObjects() {
+ return worldHarvestObjects;
+ }
+
+ public ArrayList getHarvestableObjectsTemplate() {
+ return harvestableObjectsTemplate;
+ }
+
+ public JobConfig getJobConfig() {
+ return jobConfig;
+ }
+
+ public ArrayList getJobTools() {
+ return jobTools;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/JobConfig.java b/src/main/java/fr/yuki/yrpf/job/JobConfig.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/job/JobConfig.java
rename to src/main/java/fr/yuki/yrpf/job/JobConfig.java
index b8911be..a2544fd 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/JobConfig.java
+++ b/src/main/java/fr/yuki/yrpf/job/JobConfig.java
@@ -1,22 +1,19 @@
-package fr.yuki.YukiRPFramework.job;
-
-import net.onfirenetwork.onsetjava.data.Vector;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public class JobConfig {
- private ArrayList resources;
-
- public JobConfig() {
- this.resources = new ArrayList<>();
- }
-
- public ArrayList getResources() {
- return resources;
- }
-
- public void setResources(ArrayList resources) {
- this.resources = resources;
- }
-}
+package fr.yuki.yrpf.job;
+
+import java.util.ArrayList;
+
+public class JobConfig {
+ private ArrayList resources;
+
+ public JobConfig() {
+ this.resources = new ArrayList<>();
+ }
+
+ public ArrayList getResources() {
+ return resources;
+ }
+
+ public void setResources(ArrayList resources) {
+ this.resources = resources;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/JobSpawn.java b/src/main/java/fr/yuki/yrpf/job/JobSpawn.java
similarity index 87%
rename from src/main/java/fr/yuki/YukiRPFramework/job/JobSpawn.java
rename to src/main/java/fr/yuki/yrpf/job/JobSpawn.java
index 2654c5b..507eb89 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/JobSpawn.java
+++ b/src/main/java/fr/yuki/yrpf/job/JobSpawn.java
@@ -1,34 +1,33 @@
-package fr.yuki.YukiRPFramework.job;
-
-import java.util.ArrayList;
-import java.util.UUID;
-
-public class JobSpawn {
- private String name;
- private ArrayList spawns;
-
- public JobSpawn() {
- this.spawns = new ArrayList<>();
- }
-
- public JobSpawn(String name, ArrayList spawns) {
- this.name = name;
- this.spawns = spawns;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public ArrayList getSpawns() {
- return spawns;
- }
-
- public void setSpawns(ArrayList spawns) {
- this.spawns = spawns;
- }
-}
+package fr.yuki.yrpf.job;
+
+import java.util.ArrayList;
+
+public class JobSpawn {
+ private String name;
+ private ArrayList spawns;
+
+ public JobSpawn() {
+ this.spawns = new ArrayList<>();
+ }
+
+ public JobSpawn(String name, ArrayList spawns) {
+ this.name = name;
+ this.spawns = spawns;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ArrayList getSpawns() {
+ return spawns;
+ }
+
+ public void setSpawns(ArrayList spawns) {
+ this.spawns = spawns;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/JobSpawnPosition.java b/src/main/java/fr/yuki/yrpf/job/JobSpawnPosition.java
similarity index 88%
rename from src/main/java/fr/yuki/YukiRPFramework/job/JobSpawnPosition.java
rename to src/main/java/fr/yuki/yrpf/job/JobSpawnPosition.java
index 4657848..49924b3 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/JobSpawnPosition.java
+++ b/src/main/java/fr/yuki/yrpf/job/JobSpawnPosition.java
@@ -1,42 +1,42 @@
-package fr.yuki.YukiRPFramework.job;
-
-import java.util.UUID;
-
-public class JobSpawnPosition {
- private final String uuid;
- private double x;
- private double y;
- private double z;
-
- public JobSpawnPosition() {
- this.uuid = UUID.randomUUID().toString();
- }
-
- public double getX() {
- return x;
- }
-
- public void setX(double x) {
- this.x = x;
- }
-
- public double getY() {
- return y;
- }
-
- public void setY(double y) {
- this.y = y;
- }
-
- public double getZ() {
- return z;
- }
-
- public void setZ(double z) {
- this.z = z;
- }
-
- public String getUuid() {
- return uuid;
- }
-}
+package fr.yuki.yrpf.job;
+
+import java.util.UUID;
+
+public class JobSpawnPosition {
+ private final String uuid;
+ private double x;
+ private double y;
+ private double z;
+
+ public JobSpawnPosition() {
+ this.uuid = UUID.randomUUID().toString();
+ }
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+
+ public double getZ() {
+ return z;
+ }
+
+ public void setZ(double z) {
+ this.z = z;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/LumberjackJob.java b/src/main/java/fr/yuki/yrpf/job/LumberjackJob.java
similarity index 74%
rename from src/main/java/fr/yuki/YukiRPFramework/job/LumberjackJob.java
rename to src/main/java/fr/yuki/yrpf/job/LumberjackJob.java
index ebf847c..7e81a9c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/LumberjackJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/LumberjackJob.java
@@ -1,44 +1,44 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.LumberjackTreeCommon;
-import java.util.ArrayList;
-
-/**
- * Lumberjack job
- */
-public class LumberjackJob extends Job {
-
- public LumberjackJob() {
- super();
-
- this.harvestableObjectsTemplate = new ArrayList<>();
- this.harvestableObjectsTemplate.add(new LumberjackTreeCommon());
-
- if(this.setup()) {
- this.load();
- }
-
- this.spawnNpc();
- this.refillHarvestResources();
- }
-
- private static void spawnNpc() {
-
- }
-
- @Override
- public String getJobType() {
- return JobEnum.LUMBERJACK.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 60000 * 5;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.harvest.LumberjackTreeCommon;
+import java.util.ArrayList;
+
+/**
+ * Lumberjack job
+ */
+public class LumberjackJob extends Job {
+
+ public LumberjackJob() {
+ super();
+
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ this.harvestableObjectsTemplate.add(new LumberjackTreeCommon());
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ this.spawnNpc();
+ this.refillHarvestResources();
+ }
+
+ private static void spawnNpc() {
+
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.LUMBERJACK.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 60000 * 5;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/MinerJob.java b/src/main/java/fr/yuki/yrpf/job/MinerJob.java
similarity index 65%
rename from src/main/java/fr/yuki/YukiRPFramework/job/MinerJob.java
rename to src/main/java/fr/yuki/yrpf/job/MinerJob.java
index 600897d..6232d5f 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/MinerJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/MinerJob.java
@@ -1,39 +1,38 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.harvest.CooperOre;
-import fr.yuki.YukiRPFramework.job.harvest.DeliveryPackage;
-import fr.yuki.YukiRPFramework.job.harvest.IronOre;
-
-import java.util.ArrayList;
-
-public class MinerJob extends Job {
- public MinerJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
- this.harvestableObjectsTemplate.add(new CooperOre());
- this.harvestableObjectsTemplate.add(new IronOre());
-
- if(this.setup()) {
- this.load();
- }
-
- this.refillHarvestResources();
- }
-
-
- @Override
- public String getJobType() {
- return JobEnum.MINER.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 60000 * 10;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.harvest.CooperOre;
+import fr.yuki.yrpf.job.harvest.IronOre;
+
+import java.util.ArrayList;
+
+public class MinerJob extends Job {
+ public MinerJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+ this.harvestableObjectsTemplate.add(new CooperOre());
+ this.harvestableObjectsTemplate.add(new IronOre());
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ this.refillHarvestResources();
+ }
+
+
+ @Override
+ public String getJobType() {
+ return JobEnum.MINER.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 60000 * 10;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/ObjectPlacementInstance.java b/src/main/java/fr/yuki/yrpf/job/ObjectPlacementInstance.java
similarity index 91%
rename from src/main/java/fr/yuki/YukiRPFramework/job/ObjectPlacementInstance.java
rename to src/main/java/fr/yuki/yrpf/job/ObjectPlacementInstance.java
index 3c303a6..4d09a67 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/ObjectPlacementInstance.java
+++ b/src/main/java/fr/yuki/yrpf/job/ObjectPlacementInstance.java
@@ -1,50 +1,50 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.util.UUID;
-
-public abstract class ObjectPlacementInstance {
- private String uuid;
- private WorldObject worldObject;
- private int modelId;
- private Vector spawnPoint;
-
- public ObjectPlacementInstance(int modelId, Vector spawnPoint) {
- this.uuid = UUID.randomUUID().toString();
- this.modelId = modelId;
- this.spawnPoint = spawnPoint;
- }
-
- public void spawn() {
- this.worldObject = Onset.getServer().createObject(this.spawnPoint, this.modelId);
- if(ModdingManager.isCustomModelId(this.modelId)){
- ModdingManager.assignCustomModel(this.worldObject, this.modelId);
- }
- }
-
- public void setEditableBy(Player player) {
- this.worldObject.setProperty("editable", 1, true);
- this.worldObject.setProperty("editable_by", player.getId(), true);
- this.worldObject.setProperty("no_collision", 1, true);
- this.worldObject.setProperty("uuid", this.uuid, true);
- }
-
- public abstract void onPlacementDone(Player player, Vector position, Vector rotation);
-
- public void destroy() {
- this.worldObject.destroy();
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public int getModelId() {
- return modelId;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.manager.ModdingManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.UUID;
+
+public abstract class ObjectPlacementInstance {
+ private String uuid;
+ private WorldObject worldObject;
+ private int modelId;
+ private Vector spawnPoint;
+
+ public ObjectPlacementInstance(int modelId, Vector spawnPoint) {
+ this.uuid = UUID.randomUUID().toString();
+ this.modelId = modelId;
+ this.spawnPoint = spawnPoint;
+ }
+
+ public void spawn() {
+ this.worldObject = Onset.getServer().createObject(this.spawnPoint, this.modelId);
+ if(ModdingManager.isCustomModelId(this.modelId)){
+ ModdingManager.assignCustomModel(this.worldObject, this.modelId);
+ }
+ }
+
+ public void setEditableBy(Player player) {
+ this.worldObject.setProperty("editable", 1, true);
+ this.worldObject.setProperty("editable_by", player.getId(), true);
+ this.worldObject.setProperty("no_collision", 1, true);
+ this.worldObject.setProperty("uuid", this.uuid, true);
+ }
+
+ public abstract void onPlacementDone(Player player, Vector position, Vector rotation);
+
+ public void destroy() {
+ this.worldObject.destroy();
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public int getModelId() {
+ return modelId;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/PoliceJob.java b/src/main/java/fr/yuki/yrpf/job/PoliceJob.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/job/PoliceJob.java
rename to src/main/java/fr/yuki/yrpf/job/PoliceJob.java
index 1bd679e..1133073 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/PoliceJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/PoliceJob.java
@@ -1,31 +1,31 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-
-import java.util.ArrayList;
-
-public class PoliceJob extends Job {
- public PoliceJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
-
- if(this.setup()) {
- this.load();
- }
- }
-
- @Override
- public String getJobType() {
- return JobEnum.POLICE.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 0;
- }
-
- @Override
- public boolean isWhitelisted() {
- return true;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+
+import java.util.ArrayList;
+
+public class PoliceJob extends Job {
+ public PoliceJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+
+ if(this.setup()) {
+ this.load();
+ }
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.POLICE.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 0;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/WearableWorldObject.java b/src/main/java/fr/yuki/yrpf/job/WearableWorldObject.java
similarity index 90%
rename from src/main/java/fr/yuki/YukiRPFramework/job/WearableWorldObject.java
rename to src/main/java/fr/yuki/yrpf/job/WearableWorldObject.java
index 21e88cf..45d0b0c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/WearableWorldObject.java
+++ b/src/main/java/fr/yuki/yrpf/job/WearableWorldObject.java
@@ -1,234 +1,233 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.character.CharacterJobLevel;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.job.customGoal.DeliveryPointGoal;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import fr.yuki.YukiRPFramework.vehicle.storeLayout.StoreLayoutTransform;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-import java.util.UUID;
-
-
-public class WearableWorldObject {
- private String uuid;
- private int modelId;
- private boolean isPhysicEnable;
- private Animation wearAnimation;
- private CharacterToolAnimation toolAnimation;
- private Vector position;
- private WorldObject worldObject;
- private String vehicleUUID;
- private int vehicleStorageLayoutIndex;
- private DeliveryPointGoal deliveryPointGoal;
- private Vector originPosition;
- private long lastInteractionAt;
-
- public WearableWorldObject(int modelId, boolean isPhysicEnable, Animation wearAnimation, CharacterToolAnimation toolAnimation, Vector position) {
- this.uuid = UUID.randomUUID().toString();
- this.modelId = modelId;
- this.isPhysicEnable = isPhysicEnable;
- this.wearAnimation = wearAnimation;
- this.toolAnimation = toolAnimation;
- this.position = position;
- this.vehicleUUID = "";
- this.originPosition = position;
- this.lastInteractionAt = System.currentTimeMillis();
- this.createWorldObject();
- }
-
- private void createWorldObject() {
- this.worldObject = Onset.getServer().createObject(this.position, this.modelId);
- this.worldObject.setScale(this.toolAnimation.getScale());
- if(this.isPhysicEnable)
- this.worldObject.setProperty("enablePhysic", 1, true);
- if(ModdingManager.isCustomModelId(this.modelId))
- ModdingManager.assignCustomModel(this.worldObject, this.modelId);
- this.worldObject.setProperty("uuid", this.uuid, true);
- this.worldObject.setProperty("canBeWear", 1, true);
- }
-
- public boolean isWeared() {
- return this.worldObject == null;
- }
-
- /**
- * Wear the object on the player and play the animation
- * @param player The player
- */
- public void requestWear(Player player) {
- CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, this);
- this.toolAnimation.attach(player);
- player.setAnimation(this.wearAnimation);
- this.worldObject.destroy();
- Account account = WorldManager.getPlayerAccount(player);
-
- this.lastInteractionAt = System.currentTimeMillis();
-
- // Set the delivery location
- if(deliveryPointGoal != null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.delivery.need_to_be_delivered"));
- player.callRemoteEvent("Map:AddWaypoint", I18n.t(account.getLang(), "toast.delivery.delivery_point"), deliveryPointGoal.getWearableWorldObject().getUuid(),
- deliveryPointGoal.getPosition().getX(), deliveryPointGoal.getPosition().getY(),
- deliveryPointGoal.getPosition().getZ());
- }
- }
-
- /**
- * Throw the object on the ground and recreate the world object properly
- * @param player The player
- */
- public void requestUnwear(Player player, boolean delete) {
- Account account = WorldManager.getPlayerAccount(player);
- try {
- // Put this resource in the chest
- if(!delete) {
- Vehicle nearbyVehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(nearbyVehicle != null) {
- if(nearbyVehicle.getLocation().distance(player.getLocation()) < VehicleManager.getInteractionDistance(nearbyVehicle)) {
- /**if(!VehicleManager.canStoreWorldWearableObject(nearbyVehicle)) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Impossible car ce véhicule ne le permet pas");
- return;
- }*/
- if(nearbyVehicle.getPropertyInt("locked") == 1) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.locked"));
- return;
- }
-
- if(!VehicleManager.storeWorldWearableObject(nearbyVehicle, this)) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.vehicle.no_space_left"));
- return;
- }
-
- // Unattach the item
- this.position = player.getLocation();
- this.toolAnimation.unAttach();
- player.setAnimation(Animation.STOP);
- CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
-
- if(deliveryPointGoal != null)
- player.callRemoteEvent("Map:RemoveWaypoint", deliveryPointGoal.getWearableWorldObject().getUuid());
-
- return;
- }
- }
- }
-
- // Delivery reward
- if(deliveryPointGoal != null) {
- if(deliveryPointGoal.isNear(player)) {
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(JobEnum.DELIVERY.type)).findFirst().orElse(null);
-
- int rewardPerDistance = (int)Math.floor(((originPosition.distance(player.getLocation()) / 1000) / 2.5));
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, rewardPerDistance, false);
- SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 1);
- delete = true;
- JobManager.addExp(player, JobEnum.DELIVERY.type, 15);
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.delivery.shipped",
- String.valueOf(rewardPerDistance), String.valueOf(Math.floor(originPosition.distance(player.getLocation()) / 100))));
- }
- player.callRemoteEvent("Map:RemoveWaypoint", deliveryPointGoal.getWearableWorldObject().getUuid());
- }
-
- // Throw on ground
- this.position = player.getLocation();
- this.toolAnimation.unAttach();
- if(!delete) this.createWorldObject();
- player.setAnimation(Animation.STOP);
- CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
- this.lastInteractionAt = System.currentTimeMillis();
-
- if(delete) JobManager.getWearableWorldObjects().remove(this);
- }
- catch (Exception ex) {
- ex.printStackTrace();
- CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
- }
- }
-
- public void deleteObject() {
- if(this.worldObject != null) this.worldObject.destroy();
- JobManager.getWearableWorldObjects().remove(this);
- }
-
- public boolean isExpired() {
- if(lastInteractionAt + (60000*5) < System.currentTimeMillis()) {
- return true;
- }
- return false;
- }
-
- /**
- * Store this in the chest of a vehicle at a specific location
- * @param vehicle The vehicle
- * @param storeLayoutTransform The position to store
- */
- public void storeInVehicle(Vehicle vehicle, StoreLayoutTransform storeLayoutTransform) {
- this.worldObject = Onset.getServer().createObject(this.position, this.modelId);
- this.worldObject.attach(vehicle, storeLayoutTransform.getPosition(), storeLayoutTransform.getRotation(), "");
- this.worldObject.setScale(storeLayoutTransform.getScale());
- this.setVehicleUUID(vehicle.getPropertyString("uuid"));
- this.setVehicleStorageLayoutIndex(storeLayoutTransform.getIndex());
- if(ModdingManager.isCustomModelId(this.modelId))
- ModdingManager.assignCustomModel(this.worldObject, this.modelId);
- }
-
- public void removeFromVehicle() {
- this.setVehicleUUID("");
- this.setVehicleStorageLayoutIndex(-1);
- this.worldObject.destroy();
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public Vector getPosition() {
- return position;
- }
-
- public int getModelId() {
- return modelId;
- }
-
- public String getVehicleUUID() {
- return vehicleUUID;
- }
-
- public void setVehicleUUID(String vehicleUUID) {
- this.vehicleUUID = vehicleUUID;
- }
-
- public WorldObject getWorldObject() {
- return worldObject;
- }
-
- public int getVehicleStorageLayoutIndex() {
- return vehicleStorageLayoutIndex;
- }
-
- public void setVehicleStorageLayoutIndex(int vehicleStorageLayoutIndex) {
- this.vehicleStorageLayoutIndex = vehicleStorageLayoutIndex;
- }
-
- public DeliveryPointGoal getDeliveryPointGoal() {
- return deliveryPointGoal;
- }
-
- public void setDeliveryPointGoal(DeliveryPointGoal deliveryPointGoal) {
- this.deliveryPointGoal = deliveryPointGoal;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.character.CharacterJobLevel;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.job.customGoal.DeliveryPointGoal;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.vehicle.storeLayout.StoreLayoutTransform;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+
+public class WearableWorldObject {
+ private String uuid;
+ private int modelId;
+ private boolean isPhysicEnable;
+ private Animation wearAnimation;
+ private CharacterToolAnimation toolAnimation;
+ private Vector position;
+ private WorldObject worldObject;
+ private String vehicleUUID;
+ private int vehicleStorageLayoutIndex;
+ private DeliveryPointGoal deliveryPointGoal;
+ private Vector originPosition;
+ private long lastInteractionAt;
+
+ public WearableWorldObject(int modelId, boolean isPhysicEnable, Animation wearAnimation, CharacterToolAnimation toolAnimation, Vector position) {
+ this.uuid = UUID.randomUUID().toString();
+ this.modelId = modelId;
+ this.isPhysicEnable = isPhysicEnable;
+ this.wearAnimation = wearAnimation;
+ this.toolAnimation = toolAnimation;
+ this.position = position;
+ this.vehicleUUID = "";
+ this.originPosition = position;
+ this.lastInteractionAt = System.currentTimeMillis();
+ this.createWorldObject();
+ }
+
+ private void createWorldObject() {
+ this.worldObject = Onset.getServer().createObject(this.position, this.modelId);
+ this.worldObject.setScale(this.toolAnimation.getScale());
+ if(this.isPhysicEnable)
+ this.worldObject.setProperty("enablePhysic", 1, true);
+ if(ModdingManager.isCustomModelId(this.modelId))
+ ModdingManager.assignCustomModel(this.worldObject, this.modelId);
+ this.worldObject.setProperty("uuid", this.uuid, true);
+ this.worldObject.setProperty("canBeWear", 1, true);
+ }
+
+ public boolean isWeared() {
+ return this.worldObject == null;
+ }
+
+ /**
+ * Wear the object on the player and play the animation
+ * @param player The player
+ */
+ public void requestWear(Player player) {
+ CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, this);
+ this.toolAnimation.attach(player);
+ player.setAnimation(this.wearAnimation);
+ this.worldObject.destroy();
+ Account account = WorldManager.getPlayerAccount(player);
+
+ this.lastInteractionAt = System.currentTimeMillis();
+
+ // Set the delivery location
+ if(deliveryPointGoal != null) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.delivery.need_to_be_delivered"));
+ player.callRemoteEvent("Map:AddWaypoint", I18n.t(account.getLang(), "toast.delivery.delivery_point"), deliveryPointGoal.getWearableWorldObject().getUuid(),
+ deliveryPointGoal.getPosition().getX(), deliveryPointGoal.getPosition().getY(),
+ deliveryPointGoal.getPosition().getZ());
+ }
+ }
+
+ /**
+ * Throw the object on the ground and recreate the world object properly
+ * @param player The player
+ */
+ public void requestUnwear(Player player, boolean delete) {
+ Account account = WorldManager.getPlayerAccount(player);
+ try {
+ // Put this resource in the chest
+ if(!delete) {
+ Vehicle nearbyVehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(nearbyVehicle != null) {
+ if(nearbyVehicle.getLocation().distance(player.getLocation()) < VehicleManager.getInteractionDistance(nearbyVehicle)) {
+ /**if(!VehicleManager.canStoreWorldWearableObject(nearbyVehicle)) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Impossible car ce véhicule ne le permet pas");
+ return;
+ }*/
+ if(nearbyVehicle.getPropertyInt("locked") == 1) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.locked"));
+ return;
+ }
+
+ if(!VehicleManager.storeWorldWearableObject(nearbyVehicle, this)) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.vehicle.no_space_left"));
+ return;
+ }
+
+ // Unattach the item
+ this.position = player.getLocation();
+ this.toolAnimation.unAttach();
+ player.setAnimation(Animation.STOP);
+ CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
+
+ if(deliveryPointGoal != null)
+ player.callRemoteEvent("Map:RemoveWaypoint", deliveryPointGoal.getWearableWorldObject().getUuid());
+
+ return;
+ }
+ }
+ }
+
+ // Delivery reward
+ if(deliveryPointGoal != null) {
+ if(deliveryPointGoal.isNear(player)) {
+ ArrayList characterJobLevels = account.decodeCharacterJob();
+ CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(JobEnum.DELIVERY.name())).findFirst().orElse(null);
+
+ int rewardPerDistance = (int)Math.floor(((originPosition.distance(player.getLocation()) / 1000) / 2.5));
+ InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, rewardPerDistance, false);
+ SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 1);
+ delete = true;
+ JobManager.addExp(player, JobEnum.DELIVERY.name(), 15);
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.delivery.shipped",
+ String.valueOf(rewardPerDistance), String.valueOf(Math.floor(originPosition.distance(player.getLocation()) / 100))));
+ }
+ player.callRemoteEvent("Map:RemoveWaypoint", deliveryPointGoal.getWearableWorldObject().getUuid());
+ }
+
+ // Throw on ground
+ this.position = player.getLocation();
+ this.toolAnimation.unAttach();
+ if(!delete) this.createWorldObject();
+ player.setAnimation(Animation.STOP);
+ CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
+ this.lastInteractionAt = System.currentTimeMillis();
+
+ if(delete) JobManager.getWearableWorldObjects().remove(this);
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ CharacterManager.getCharacterStateByPlayer(player).setWearableWorldObject(player, null);
+ }
+ }
+
+ public void deleteObject() {
+ if(this.worldObject != null) this.worldObject.destroy();
+ JobManager.getWearableWorldObjects().remove(this);
+ }
+
+ public boolean isExpired() {
+ if(lastInteractionAt + (60000*5) < System.currentTimeMillis()) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Store this in the chest of a vehicle at a specific location
+ * @param vehicle The vehicle
+ * @param storeLayoutTransform The position to store
+ */
+ public void storeInVehicle(Vehicle vehicle, StoreLayoutTransform storeLayoutTransform) {
+ this.worldObject = Onset.getServer().createObject(this.position, this.modelId);
+ this.worldObject.attach(vehicle, storeLayoutTransform.getPosition(), storeLayoutTransform.getRotation(), "");
+ this.worldObject.setScale(storeLayoutTransform.getScale());
+ this.setVehicleUUID(vehicle.getPropertyString("uuid"));
+ this.setVehicleStorageLayoutIndex(storeLayoutTransform.getIndex());
+ if(ModdingManager.isCustomModelId(this.modelId))
+ ModdingManager.assignCustomModel(this.worldObject, this.modelId);
+ }
+
+ public void removeFromVehicle() {
+ this.setVehicleUUID("");
+ this.setVehicleStorageLayoutIndex(-1);
+ this.worldObject.destroy();
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public Vector getPosition() {
+ return position;
+ }
+
+ public int getModelId() {
+ return modelId;
+ }
+
+ public String getVehicleUUID() {
+ return vehicleUUID;
+ }
+
+ public void setVehicleUUID(String vehicleUUID) {
+ this.vehicleUUID = vehicleUUID;
+ }
+
+ public WorldObject getWorldObject() {
+ return worldObject;
+ }
+
+ public int getVehicleStorageLayoutIndex() {
+ return vehicleStorageLayoutIndex;
+ }
+
+ public void setVehicleStorageLayoutIndex(int vehicleStorageLayoutIndex) {
+ this.vehicleStorageLayoutIndex = vehicleStorageLayoutIndex;
+ }
+
+ public DeliveryPointGoal getDeliveryPointGoal() {
+ return deliveryPointGoal;
+ }
+
+ public void setDeliveryPointGoal(DeliveryPointGoal deliveryPointGoal) {
+ this.deliveryPointGoal = deliveryPointGoal;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/WeedJob.java b/src/main/java/fr/yuki/yrpf/job/WeedJob.java
similarity index 81%
rename from src/main/java/fr/yuki/YukiRPFramework/job/WeedJob.java
rename to src/main/java/fr/yuki/yrpf/job/WeedJob.java
index f541170..22d3d19 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/WeedJob.java
+++ b/src/main/java/fr/yuki/yrpf/job/WeedJob.java
@@ -1,46 +1,46 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.util.ArrayList;
-
-public class WeedJob extends Job {
- private WorldObject dealerBoat;
-
- public WeedJob() {
- super();
- this.harvestableObjectsTemplate = new ArrayList<>();
-
- if(this.setup()) {
- this.load();
- }
-
- // Create dealer boat
- createDealerBoat();
- }
-
- private void createDealerBoat() {
- this.dealerBoat = Onset.getServer().createObject(new Vector(35336, 195898, -250), 50006);
- this.dealerBoat.setRotation(new Vector(0, 90, 0));
- ModdingManager.assignCustomModel(this.dealerBoat, 50006);
- }
-
- @Override
- public String getJobType() {
- return JobEnum.WEED.type;
- }
-
- @Override
- public int getRefillInterval() {
- return 0;
- }
-
- @Override
- public boolean isWhitelisted() {
- return false;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.manager.ModdingManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.ArrayList;
+
+public class WeedJob extends Job {
+ private WorldObject dealerBoat;
+
+ public WeedJob() {
+ super();
+ this.harvestableObjectsTemplate = new ArrayList<>();
+
+ if(this.setup()) {
+ this.load();
+ }
+
+ // Create dealer boat
+ createDealerBoat();
+ }
+
+ private void createDealerBoat() {
+ this.dealerBoat = Onset.getServer().createObject(new Vector(35336, 195898, -250), 50006);
+ this.dealerBoat.setRotation(new Vector(0, 90, 0));
+ ModdingManager.assignCustomModel(this.dealerBoat, 50006);
+ }
+
+ @Override
+ public String getJobType() {
+ return JobEnum.WEED.name();
+ }
+
+ @Override
+ public int getRefillInterval() {
+ return 0;
+ }
+
+ @Override
+ public boolean isWhitelisted() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/WorldHarvestObject.java b/src/main/java/fr/yuki/yrpf/job/WorldHarvestObject.java
similarity index 87%
rename from src/main/java/fr/yuki/YukiRPFramework/job/WorldHarvestObject.java
rename to src/main/java/fr/yuki/yrpf/job/WorldHarvestObject.java
index 92e9038..4e446c2 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/WorldHarvestObject.java
+++ b/src/main/java/fr/yuki/yrpf/job/WorldHarvestObject.java
@@ -1,132 +1,130 @@
-package fr.yuki.YukiRPFramework.job;
-
-import fr.yuki.YukiRPFramework.character.CharacterJobLevel;
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.job.harvest.HarvestableObject;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-import java.util.UUID;
-
-public class WorldHarvestObject {
- private String uuid;
- private JobSpawn spawn;
- private JobSpawnPosition jobSpawnPosition;
- private HarvestableObject harvestableObject;
- private WorldObject worldObject;
- private boolean available;
- private Job job;
-
- public WorldHarvestObject(JobSpawn spawn, JobSpawnPosition jobSpawnPosition,
- HarvestableObject harvestableObject, WorldObject worldObject, Job job) {
- this.job = job;
- this.uuid = UUID.randomUUID().toString();
- this.spawn = spawn;
- this.jobSpawnPosition = jobSpawnPosition;
- this.harvestableObject = harvestableObject;
- this.worldObject = worldObject;
- this.setAvailable(true);
- }
-
- /**
- * Check if this resource is near the player
- * @param player The player
- * @return Is near
- */
- public boolean isNear(Player player) {
- if(this.worldObject.getLocation().distance(player.getLocation()) <= this.harvestableObject.distanceToInteract()) {
- return true;
- }
- return false;
- }
-
- /**
- * Harvest the resource
- * @param player The player
- */
- public void harvest(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- if(!this.harvestableObject.checkRequirements(player)) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR,
- I18n.t(account.getLang(), "toast.job.requirement_unrespected"));
- return;
- }
- if(!this.available) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR,
- I18n.t(account.getLang(), "toast.job.already_used"));
- return;
- }
-
- // Check resources level
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(this.job.getJobType()))
- .findFirst().orElse(null);
- if(characterJobLevel == null) return;
- if(characterJobLevel.getJobLevel().getLevel() < this.harvestableObject.getLevelRequired()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.no_level_required"));
- return;
- }
-
- Onset.print("Harvest " + this.harvestableObject.getName() + " with a duration of " + this.harvestableObject.getBaseHarvestTime() + "ms");
- this.setAvailable(false);
- CharacterManager.setCharacterFreeze(player, true);
- CharacterLoopAnimation characterLoopAnimation = harvestableObject.getCharacterLoopHarvestAnimation(player);
- characterLoopAnimation.start();
- Onset.delay(this.harvestableObject.getBaseHarvestTime(), () -> {
- try {
- characterLoopAnimation.stop();
- CharacterManager.setCharacterFreeze(player, false);
-
- //UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS,
- // "Vous avez récolté " + this.harvestableObject.getName() + " en " + (this.harvestableObject.getBaseHarvestTime() / 1000) + "s");
-
- JobManager.addExp(player, job.getJobType(), this.harvestableObject.getXp());
- this.harvestableObject.onHarvestDone(player, this);
-
- }catch (Exception ex) {
- Onset.print("Error when harvesting the object: " + ex.toString());
- }
- this.delete();
- });
- }
-
- /**
- * Delete the resource
- */
- public void delete() {
- this.worldObject.destroy();
- this.job.getWorldHarvestObjects().remove(this);
- }
-
- public boolean isAvailable() {
- return available;
- }
-
- public void setAvailable(boolean available) {
- this.available = available;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public HarvestableObject getHarvestableObject() {
- return harvestableObject;
- }
-
- public Job getJob() {
- return job;
- }
-
- public JobSpawnPosition getJobSpawnPosition() {
- return jobSpawnPosition;
- }
-}
+package fr.yuki.yrpf.job;
+
+import fr.yuki.yrpf.character.CharacterJobLevel;
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.job.harvest.HarvestableObject;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+public class WorldHarvestObject {
+ private String uuid;
+ private JobSpawn spawn;
+ private JobSpawnPosition jobSpawnPosition;
+ private HarvestableObject harvestableObject;
+ private WorldObject worldObject;
+ private boolean available;
+ private Job job;
+
+ public WorldHarvestObject(JobSpawn spawn, JobSpawnPosition jobSpawnPosition,
+ HarvestableObject harvestableObject, WorldObject worldObject, Job job) {
+ this.job = job;
+ this.uuid = UUID.randomUUID().toString();
+ this.spawn = spawn;
+ this.jobSpawnPosition = jobSpawnPosition;
+ this.harvestableObject = harvestableObject;
+ this.worldObject = worldObject;
+ this.setAvailable(true);
+ }
+
+ /**
+ * Check if this resource is near the player
+ * @param player The player
+ * @return Is near
+ */
+ public boolean isNear(Player player) {
+ if(this.worldObject.getLocation().distance(player.getLocation()) <= this.harvestableObject.distanceToInteract()) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Harvest the resource
+ * @param player The player
+ */
+ public void harvest(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(!this.harvestableObject.checkRequirements(player)) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR,
+ I18n.t(account.getLang(), "toast.job.requirement_unrespected"));
+ return;
+ }
+ if(!this.available) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR,
+ I18n.t(account.getLang(), "toast.job.already_used"));
+ return;
+ }
+
+ // Check resources level
+ ArrayList characterJobLevels = account.decodeCharacterJob();
+ CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(this.job.getJobType()))
+ .findFirst().orElse(null);
+ if(characterJobLevel == null) return;
+ if(characterJobLevel.getJobLevel().getLevel() < this.harvestableObject.getLevelRequired()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.no_level_required"));
+ return;
+ }
+
+ Onset.print("Harvest " + this.harvestableObject.getName() + " with a duration of " + this.harvestableObject.getBaseHarvestTime() + "ms");
+ this.setAvailable(false);
+ CharacterManager.setCharacterFreeze(player, true);
+ CharacterLoopAnimation characterLoopAnimation = harvestableObject.getCharacterLoopHarvestAnimation(player);
+ characterLoopAnimation.start();
+ Onset.delay(this.harvestableObject.getBaseHarvestTime(), () -> {
+ try {
+ characterLoopAnimation.stop();
+ CharacterManager.setCharacterFreeze(player, false);
+
+ //UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS,
+ // "Vous avez récolté " + this.harvestableObject.getName() + " en " + (this.harvestableObject.getBaseHarvestTime() / 1000) + "s");
+
+ JobManager.addExp(player, job.getJobType(), this.harvestableObject.getXp());
+ this.harvestableObject.onHarvestDone(player, this);
+
+ }catch (Exception ex) {
+ Onset.print("Error when harvesting the object: " + ex.toString());
+ }
+ this.delete();
+ });
+ }
+
+ /**
+ * Delete the resource
+ */
+ public void delete() {
+ this.worldObject.destroy();
+ this.job.getWorldHarvestObjects().remove(this);
+ }
+
+ public boolean isAvailable() {
+ return available;
+ }
+
+ public void setAvailable(boolean available) {
+ this.available = available;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public HarvestableObject getHarvestableObject() {
+ return harvestableObject;
+ }
+
+ public Job getJob() {
+ return job;
+ }
+
+ public JobSpawnPosition getJobSpawnPosition() {
+ return jobSpawnPosition;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/customGoal/DeliveryPointGoal.java b/src/main/java/fr/yuki/yrpf/job/customGoal/DeliveryPointGoal.java
similarity index 76%
rename from src/main/java/fr/yuki/YukiRPFramework/job/customGoal/DeliveryPointGoal.java
rename to src/main/java/fr/yuki/yrpf/job/customGoal/DeliveryPointGoal.java
index 2054e79..d1a4ca3 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/customGoal/DeliveryPointGoal.java
+++ b/src/main/java/fr/yuki/yrpf/job/customGoal/DeliveryPointGoal.java
@@ -1,29 +1,28 @@
-package fr.yuki.YukiRPFramework.job.customGoal;
-
-import fr.yuki.YukiRPFramework.job.DeliveryPointConfig;
-import fr.yuki.YukiRPFramework.job.JobSpawnPosition;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class DeliveryPointGoal {
- private JobSpawnPosition position;
- private WearableWorldObject wearableWorldObject;
-
- public DeliveryPointGoal(JobSpawnPosition position, WearableWorldObject wearableWorldObject) {
- this.position = position;
- this.wearableWorldObject = wearableWorldObject;
- }
-
- public JobSpawnPosition getPosition() {
- return position;
- }
-
- public WearableWorldObject getWearableWorldObject() {
- return wearableWorldObject;
- }
-
- public boolean isNear(Player player) {
- return player.getLocation().distance(new Vector(this.position.getX(), this.position.getY(), this.position.getZ())) <= 200;
- }
-}
+package fr.yuki.yrpf.job.customGoal;
+
+import fr.yuki.yrpf.job.JobSpawnPosition;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class DeliveryPointGoal {
+ private JobSpawnPosition position;
+ private WearableWorldObject wearableWorldObject;
+
+ public DeliveryPointGoal(JobSpawnPosition position, WearableWorldObject wearableWorldObject) {
+ this.position = position;
+ this.wearableWorldObject = wearableWorldObject;
+ }
+
+ public JobSpawnPosition getPosition() {
+ return position;
+ }
+
+ public WearableWorldObject getWearableWorldObject() {
+ return wearableWorldObject;
+ }
+
+ public boolean isNear(Player player) {
+ return player.getLocation().distance(new Vector(this.position.getX(), this.position.getY(), this.position.getZ())) <= 200;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/DeliveryPackage.java b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/DeliveryPackage.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/DeliveryPackage.java
rename to src/main/java/fr/yuki/yrpf/job/deliveryPackage/DeliveryPackage.java
index 3d1a04c..4573def 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/DeliveryPackage.java
+++ b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/DeliveryPackage.java
@@ -1,53 +1,52 @@
-package fr.yuki.YukiRPFramework.job.deliveryPackage;
-
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-public abstract class DeliveryPackage {
- private Player player;
- protected Vector position;
- protected Vector rotation;
- protected WorldObject worldObject;
-
- public DeliveryPackage(Player player, Vector position, Vector rotation) {
- this.player = player;
- this.position = position;
- this.rotation = rotation;
- }
-
- public abstract Vector getPackageScale();
- public abstract int getModelId();
- public abstract int getTimeForDelivery();
- public abstract void onDelivered();
-
- public void spawn() {
- Account account = WorldManager.getPlayerAccount(this.player);
- UIStateManager.sendNotification(this.player, ToastTypeEnum.SUCCESS,
- I18n.t(account.getLang(), "toast.shipping.time_before_shipped",
- String.valueOf(Math.floor(this.getTimeForDelivery() / 1000)) + "s"));
- this.worldObject = Onset.getServer().createObject(this.position, this.getModelId());
- if(ModdingManager.isCustomModelId(this.getModelId())) ModdingManager.assignCustomModel(this.worldObject, this.getModelId());
- this.worldObject.setRotation(this.rotation);
- this.worldObject.setProperty("no_collision", 1, true);
-
- Onset.delay(this.getTimeForDelivery(), () -> {
- Onset.print("Delivery shipped");
- if(WorldManager.findPlayerByAccountId(account.getId()) != null) {
- UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(account.getId()),
- ToastTypeEnum.SUCCESS,
- I18n.t(account.getLang(), "toast.shipping.shipped"));
- }
- this.worldObject.destroy();
- this.onDelivered();
- });
- }
-}
+package fr.yuki.yrpf.job.deliveryPackage;
+
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.manager.ModdingManager;
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+public abstract class DeliveryPackage {
+ private Player player;
+ protected Vector position;
+ protected Vector rotation;
+ protected WorldObject worldObject;
+
+ public DeliveryPackage(Player player, Vector position, Vector rotation) {
+ this.player = player;
+ this.position = position;
+ this.rotation = rotation;
+ }
+
+ public abstract Vector getPackageScale();
+ public abstract int getModelId();
+ public abstract int getTimeForDelivery();
+ public abstract void onDelivered();
+
+ public void spawn() {
+ Account account = WorldManager.getPlayerAccount(this.player);
+ UIStateManager.sendNotification(this.player, ToastTypeEnum.SUCCESS,
+ I18n.t(account.getLang(), "toast.shipping.time_before_shipped",
+ String.valueOf(Math.floor(this.getTimeForDelivery() / 1000)) + "s"));
+ this.worldObject = Onset.getServer().createObject(this.position, this.getModelId());
+ if(ModdingManager.isCustomModelId(this.getModelId())) ModdingManager.assignCustomModel(this.worldObject, this.getModelId());
+ this.worldObject.setRotation(this.rotation);
+ this.worldObject.setProperty("no_collision", 1, true);
+
+ Onset.delay(this.getTimeForDelivery(), () -> {
+ Onset.print("Delivery shipped");
+ if(WorldManager.findPlayerByAccountId(account.getId()) != null) {
+ UIStateManager.sendNotification(WorldManager.findPlayerByAccountId(account.getId()),
+ ToastTypeEnum.SUCCESS,
+ I18n.t(account.getLang(), "toast.shipping.shipped"));
+ }
+ this.worldObject.destroy();
+ this.onDelivered();
+ });
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GeneratorDeliveryPackage.java b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GeneratorDeliveryPackage.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GeneratorDeliveryPackage.java
rename to src/main/java/fr/yuki/yrpf/job/deliveryPackage/GeneratorDeliveryPackage.java
index 6368bcb..41207f5 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GeneratorDeliveryPackage.java
+++ b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GeneratorDeliveryPackage.java
@@ -1,53 +1,53 @@
-package fr.yuki.YukiRPFramework.job.deliveryPackage;
-
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class GeneratorDeliveryPackage extends DeliveryPackage {
- public GeneratorDeliveryPackage(Player player, Vector position, Vector rotation) {
- super(player, position, rotation);
- }
-
- @Override
- public Vector getPackageScale() {
- return new Vector(1.3, 1.3, 1.3);
- }
-
- @Override
- public int getModelId() {
- return 505;
- }
-
- @Override
- public int getTimeForDelivery() {
- return 5000;
- //return (1000*60) * 2;
- }
-
- @Override
- public void onDelivered() {
- // Init a new job tool
- JobTool jobTool = new JobTool();
- jobTool.setId(-1);
- jobTool.setModelId(581);
- jobTool.setName("Generateur");
- jobTool.setJobType("WEED");
- jobTool.setLevelRequired(1);
- jobTool.setReward(0);
- jobTool.setX(this.position.getX());
- jobTool.setY(this.position.getY());
- jobTool.setZ(this.position.getZ());
- jobTool.setRx(this.rotation.getX());
- jobTool.setRy(this.rotation.getY());
- jobTool.setRz(this.rotation.getZ());
- jobTool.setSx(1);
- jobTool.setSy(1);
- jobTool.setSz(1);
- jobTool.setJobToolType("GENERATOR");
- JobManager.getJobTools().add(jobTool);
- jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED));
- }
-}
+package fr.yuki.yrpf.job.deliveryPackage;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GeneratorDeliveryPackage extends DeliveryPackage {
+ public GeneratorDeliveryPackage(Player player, Vector position, Vector rotation) {
+ super(player, position, rotation);
+ }
+
+ @Override
+ public Vector getPackageScale() {
+ return new Vector(1.3, 1.3, 1.3);
+ }
+
+ @Override
+ public int getModelId() {
+ return 505;
+ }
+
+ @Override
+ public int getTimeForDelivery() {
+ return 5000;
+ //return (1000*60) * 2;
+ }
+
+ @Override
+ public void onDelivered() {
+ // Init a new job tool
+ JobTool jobTool = new JobTool();
+ jobTool.setId(-1);
+ jobTool.setModelId(581);
+ jobTool.setName("Generateur");
+ jobTool.setJobType("WEED");
+ jobTool.setLevelRequired(1);
+ jobTool.setReward(0);
+ jobTool.setX(this.position.getX());
+ jobTool.setY(this.position.getY());
+ jobTool.setZ(this.position.getZ());
+ jobTool.setRX(this.rotation.getX());
+ jobTool.setRY(this.rotation.getY());
+ jobTool.setRZ(this.rotation.getZ());
+ jobTool.setSX(1);
+ jobTool.setSY(1);
+ jobTool.setSZ(1);
+ jobTool.setJobToolType("GENERATOR");
+ JobManager.getJobTools().add(jobTool);
+ jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED));
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GenericDeliveryPackage.java b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GenericDeliveryPackage.java
similarity index 57%
rename from src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GenericDeliveryPackage.java
rename to src/main/java/fr/yuki/yrpf/job/deliveryPackage/GenericDeliveryPackage.java
index cab045c..d2d0511 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GenericDeliveryPackage.java
+++ b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GenericDeliveryPackage.java
@@ -1,64 +1,52 @@
-package fr.yuki.YukiRPFramework.job.deliveryPackage;
-
-import fr.yuki.YukiRPFramework.dao.HouseItemDAO;
-import fr.yuki.YukiRPFramework.manager.HouseManager;
-import fr.yuki.YukiRPFramework.model.House;
-import fr.yuki.YukiRPFramework.model.HouseItemObject;
-import fr.yuki.YukiRPFramework.model.ItemShopObject;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-
-public class GenericDeliveryPackage extends DeliveryPackage {
- private int modelId;
-
- public GenericDeliveryPackage(Player player, Vector position, Vector rotation, int modelId) {
- super(player, position, rotation);
- this.modelId = modelId;
- }
-
- @Override
- public Vector getPackageScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public int getModelId() {
- return 505;
- }
-
- @Override
- public int getTimeForDelivery() {
- return 10000;
- }
-
- @Override
- public void onDelivered() {
- ItemShopObject itemShopObject = HouseManager.getItemShopObjects().stream()
- .filter(x -> x.getModelId() == this.modelId).findFirst().orElse(null);
-
- HouseItemObject houseItemObject = new HouseItemObject();
- houseItemObject.setId(-1);
- houseItemObject.setModelId(this.modelId);
- houseItemObject.setFunctionId(itemShopObject == null ? -1 : itemShopObject.getFunctionId());
- houseItemObject.setX(this.position.getX());
- houseItemObject.setY(this.position.getY());
- houseItemObject.setZ(this.position.getZ());
- houseItemObject.setRx(this.rotation.getX());
- houseItemObject.setRy(this.rotation.getY());
- houseItemObject.setRz(this.rotation.getZ());
- House house = HouseManager.getHouseAtLocation(this.position);
- house.getHouseItemObjects().add(houseItemObject);
- houseItemObject.setHouse(house);
-
- try {
- HouseItemDAO.insertHouseItem(houseItemObject);
- } catch (SQLException ex) {
- Onset.print("Can't insert the house item: " + ex.toString());
- }
-
- houseItemObject.spawn();
- }
-}
+package fr.yuki.yrpf.job.deliveryPackage;
+
+import fr.yuki.yrpf.manager.HouseManager;
+import fr.yuki.yrpf.model.House;
+import fr.yuki.yrpf.model.HouseItemObject;
+import fr.yuki.yrpf.model.ItemShopObject;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GenericDeliveryPackage extends DeliveryPackage {
+ private int modelId;
+
+ public GenericDeliveryPackage(Player player, Vector position, Vector rotation, int modelId) {
+ super(player, position, rotation);
+ this.modelId = modelId;
+ }
+
+ @Override
+ public Vector getPackageScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public int getModelId() {
+ return 505;
+ }
+
+ @Override
+ public int getTimeForDelivery() {
+ return 10000;
+ }
+
+ @Override
+ public void onDelivered() {
+ ItemShopObject itemShopObject = HouseManager.getItemShopObjects().stream()
+ .filter(x -> x.getModelId() == this.modelId).findFirst().orElse(null);
+
+ HouseItemObject houseItemObject = new HouseItemObject();
+ houseItemObject.setId(-1);
+ houseItemObject.setModelId(this.modelId);
+ houseItemObject.setFunctionId(itemShopObject == null ? -1 : itemShopObject.getFunctionId());
+ houseItemObject.setPosition(position);
+ houseItemObject.setRotation(rotation);
+ House house = HouseManager.getHouseAtLocation(this.position);
+ house.getHouseItemObjects().add(houseItemObject);
+ houseItemObject.setHouse(house);
+
+ houseItemObject.save();
+
+ houseItemObject.spawn();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GrowBoxDeliveryPackage.java b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GrowBoxDeliveryPackage.java
similarity index 64%
rename from src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GrowBoxDeliveryPackage.java
rename to src/main/java/fr/yuki/yrpf/job/deliveryPackage/GrowBoxDeliveryPackage.java
index 73b6090..957101d 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/deliveryPackage/GrowBoxDeliveryPackage.java
+++ b/src/main/java/fr/yuki/yrpf/job/deliveryPackage/GrowBoxDeliveryPackage.java
@@ -1,74 +1,67 @@
-package fr.yuki.YukiRPFramework.job.deliveryPackage;
-
-import fr.yuki.YukiRPFramework.dao.GrowboxDAO;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.tools.GrowBox;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.model.GrowboxModel;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-
-public class GrowBoxDeliveryPackage extends DeliveryPackage {
- public GrowBoxDeliveryPackage(Player player, Vector position, Vector rotation) {
- super(player, position, rotation);
- }
-
- @Override
- public Vector getPackageScale() {
- return new Vector(2, 2, 2);
- }
-
- @Override
- public int getModelId() {
- return 505;
- }
-
- @Override
- public int getTimeForDelivery() {
- return 5000;
- //return (1000*60) * 3;
- }
-
- @Override
- public void onDelivered() {
- // Init a new job tool
- JobTool jobTool = new JobTool();
- jobTool.setId(-1);
- jobTool.setModelId(50007);
- jobTool.setName("GrowBox");
- jobTool.setJobType("WEED");
- jobTool.setLevelRequired(1);
- jobTool.setReward(0);
- jobTool.setX(this.position.getX());
- jobTool.setY(this.position.getY());
- jobTool.setZ(this.position.getZ());
- jobTool.setRx(this.rotation.getX());
- jobTool.setRy(this.rotation.getY());
- jobTool.setRz(this.rotation.getZ());
- jobTool.setSx(1);
- jobTool.setSy(1);
- jobTool.setSz(1);
- jobTool.setJobToolType("GROWBOX");
- JobManager.getJobTools().add(jobTool);
- jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED));
-
- // Insert new growbox
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- GrowboxModel growboxModel = new GrowboxModel();
- growboxModel.setX(this.position.getX());
- growboxModel.setY(this.position.getY());
- growboxModel.setZ(this.position.getZ());
- growboxModel.setRx(this.rotation.getX());
- growboxModel.setRy(this.rotation.getY());
- growboxModel.setRz(this.rotation.getZ());
- growBox.setGrowboxModel(growboxModel);
- try {
- GrowboxDAO.insertGrowbox(growboxModel);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
-}
+package fr.yuki.yrpf.job.deliveryPackage;
+
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.tools.GrowBox;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.model.GrowboxModel;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GrowBoxDeliveryPackage extends DeliveryPackage {
+ public GrowBoxDeliveryPackage(Player player, Vector position, Vector rotation) {
+ super(player, position, rotation);
+ }
+
+ @Override
+ public Vector getPackageScale() {
+ return new Vector(2, 2, 2);
+ }
+
+ @Override
+ public int getModelId() {
+ return 505;
+ }
+
+ @Override
+ public int getTimeForDelivery() {
+ return 5000;
+ //return (1000*60) * 3;
+ }
+
+ @Override
+ public void onDelivered() {
+ // Init a new job tool
+ JobTool jobTool = new JobTool();
+ jobTool.setId(-1);
+ jobTool.setModelId(50007);
+ jobTool.setName("GrowBox");
+ jobTool.setJobType("WEED");
+ jobTool.setLevelRequired(1);
+ jobTool.setReward(0);
+ jobTool.setX(this.position.getX());
+ jobTool.setY(this.position.getY());
+ jobTool.setZ(this.position.getZ());
+ jobTool.setRX(this.rotation.getX());
+ jobTool.setRY(this.rotation.getY());
+ jobTool.setRZ(this.rotation.getZ());
+ jobTool.setSX(1);
+ jobTool.setSY(1);
+ jobTool.setSZ(1);
+ jobTool.setJobToolType("GROWBOX");
+ JobManager.getJobTools().add(jobTool);
+ jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED.name()));
+
+ // Insert new growbox
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ GrowboxModel growboxModel = new GrowboxModel();
+ growboxModel.setX(this.position.getX());
+ growboxModel.setY(this.position.getY());
+ growboxModel.setZ(this.position.getZ());
+ growboxModel.setRx(this.rotation.getX());
+ growboxModel.setRy(this.rotation.getY());
+ growboxModel.setRz(this.rotation.getZ());
+ growBox.setGrowboxModel(growboxModel);
+ growboxModel.save();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/CooperOre.java b/src/main/java/fr/yuki/yrpf/job/harvest/CooperOre.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/CooperOre.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/CooperOre.java
index 337ff2a..8313f7e 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/CooperOre.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/CooperOre.java
@@ -1,94 +1,94 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class CooperOre implements HarvestableObject {
- @Override
- public String getName() {
- return "Mineraie de cuivre";
- }
-
- @Override
- public int getXp() {
- return 15;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 20000;
- }
-
- @Override
- public int getLevelRequired() {
- return 0;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return true;
- }
-
- @Override
- public int getModelId() {
- return 156;
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return ItemTemplateEnum.MINER_PICKAXE_1;
- }
-
- @Override
- public int distanceToInteract() {
- return 300;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(this.getItemRequired().id) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 5000, 4,
- "sounds/pickaxe_hit.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(50003, new Vector(-8,5,20),
- new Vector(-90,90,0), new Vector(2, 2, 2), "hand_r"));
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- WearableWorldObject wearableWorldObject = new WearableWorldObject(156, true, Animation.CARRY_IDLE,
- new CharacterToolAnimation(156, new Vector(0,15,0), new Vector(90,-90,0), new Vector(0.55,0.55,0.55), "hand_r"),
- new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
- worldHarvestObject.getJobSpawnPosition().getZ()));
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class CooperOre implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Mineraie de cuivre";
+ }
+
+ @Override
+ public int getXp() {
+ return 15;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 20000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 0;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return true;
+ }
+
+ @Override
+ public int getModelId() {
+ return 156;
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return ItemTemplateEnum.MINER_PICKAXE_1;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 300;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(this.getItemRequired().id) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 5000, 4,
+ "sounds/pickaxe_hit.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(50003, new Vector(-8,5,20),
+ new Vector(-90,90,0), new Vector(2, 2, 2), "hand_r"));
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(156, true, Animation.CARRY_IDLE,
+ new CharacterToolAnimation(156, new Vector(0,15,0), new Vector(90,-90,0), new Vector(0.55,0.55,0.55), "hand_r"),
+ new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
+ worldHarvestObject.getJobSpawnPosition().getZ()));
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/CustomHarvestableObject.java b/src/main/java/fr/yuki/yrpf/job/harvest/CustomHarvestableObject.java
similarity index 85%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/CustomHarvestableObject.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/CustomHarvestableObject.java
index ba91c78..64c2352 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/CustomHarvestableObject.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/CustomHarvestableObject.java
@@ -1,127 +1,125 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-import net.onfirenetwork.onsetjava.plugin.event.Event;
-
-import java.util.ArrayList;
-
-public class CustomHarvestableObject implements HarvestableObject {
- private final String name;
- private final int xp;
- private final int baseHarvestTime;
- private final int levelRequired;
- private final int modelId;
- private final int distanceToInteract;
- private CharacterLoopAnimation characterLoopAnimation = null;
-
- private int requiredItem = -1;
-
- public CustomHarvestableObject(String name, int xp, int baseHarvestTime,
- int levelRequired, int modelId, int distanceToInteract) {
- this.name = name;
- this.xp = xp;
- this.baseHarvestTime = baseHarvestTime;
- this.levelRequired = levelRequired;
- this.modelId = modelId;
- this.distanceToInteract = distanceToInteract;
- }
-
- @Override
- public String getName() {
- return this.name;
- }
-
- @Override
- public int getXp() {
- return this.xp;
- }
-
- @Override
- public ArrayList getSpawns() {
- return null;
- }
-
- @Override
- public int getBaseHarvestTime() {
- return this.baseHarvestTime;
- }
-
- @Override
- public int getLevelRequired() {
- return this.levelRequired;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return false;
- }
-
- @Override
- public int getModelId() {
- return this.modelId;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return null;
- }
-
- @Override
- public int distanceToInteract() {
- return this.distanceToInteract;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- if(this.requiredItem != -1) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(String.valueOf(this.requiredItem)) == null) {
- return false;
- }
- }
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation newLoop = new CharacterLoopAnimation(player, this.characterLoopAnimation.getAnimation(),
- this.characterLoopAnimation.getLoopInterval(), this.characterLoopAnimation.getLoopAmount(),
- this.characterLoopAnimation.getLoopSound());
- return newLoop;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- Onset.getServer().callLuaEvent("YRPF:JobAPI:OnHarvestDone", player.getId(),
- worldHarvestObject.getJob().getJobType(), worldHarvestObject.getHarvestableObject().getName(), worldHarvestObject.getUuid());
- }
-
- public int getRequiredItem() {
- return requiredItem;
- }
-
- public void setRequiredItem(int requiredItem) {
- this.requiredItem = requiredItem;
- }
-
- public CharacterLoopAnimation getCharacterLoopAnimation() {
- return characterLoopAnimation;
- }
-
- public void setCharacterLoopAnimation(CharacterLoopAnimation characterLoopAnimation) {
- this.characterLoopAnimation = characterLoopAnimation;
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.ArrayList;
+
+public class CustomHarvestableObject implements HarvestableObject {
+ private final String name;
+ private final int xp;
+ private final int baseHarvestTime;
+ private final int levelRequired;
+ private final int modelId;
+ private final int distanceToInteract;
+ private CharacterLoopAnimation characterLoopAnimation = null;
+
+ private int requiredItem = -1;
+
+ public CustomHarvestableObject(String name, int xp, int baseHarvestTime,
+ int levelRequired, int modelId, int distanceToInteract) {
+ this.name = name;
+ this.xp = xp;
+ this.baseHarvestTime = baseHarvestTime;
+ this.levelRequired = levelRequired;
+ this.modelId = modelId;
+ this.distanceToInteract = distanceToInteract;
+ }
+
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ @Override
+ public int getXp() {
+ return this.xp;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return null;
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return this.baseHarvestTime;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return this.levelRequired;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return false;
+ }
+
+ @Override
+ public int getModelId() {
+ return this.modelId;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return null;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return this.distanceToInteract;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ if(this.requiredItem != -1) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(String.valueOf(this.requiredItem)) == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation newLoop = new CharacterLoopAnimation(player, this.characterLoopAnimation.getAnimation(),
+ this.characterLoopAnimation.getLoopInterval(), this.characterLoopAnimation.getLoopAmount(),
+ this.characterLoopAnimation.getLoopSound());
+ return newLoop;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ Onset.getServer().callLuaEvent("YRPF:JobAPI:OnHarvestDone", player.getId(),
+ worldHarvestObject.getJob().getJobType(), worldHarvestObject.getHarvestableObject().getName(), worldHarvestObject.getUuid());
+ }
+
+ public int getRequiredItem() {
+ return requiredItem;
+ }
+
+ public void setRequiredItem(int requiredItem) {
+ this.requiredItem = requiredItem;
+ }
+
+ public CharacterLoopAnimation getCharacterLoopAnimation() {
+ return characterLoopAnimation;
+ }
+
+ public void setCharacterLoopAnimation(CharacterLoopAnimation characterLoopAnimation) {
+ this.characterLoopAnimation = characterLoopAnimation;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/DeliveryPackage.java b/src/main/java/fr/yuki/yrpf/job/harvest/DeliveryPackage.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/DeliveryPackage.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/DeliveryPackage.java
index 5450087..7d815b5 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/DeliveryPackage.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/DeliveryPackage.java
@@ -1,99 +1,99 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.job.JobSpawnPosition;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.job.customGoal.DeliveryPointGoal;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.utils.Basic;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class DeliveryPackage implements HarvestableObject {
- @Override
- public String getName() {
- return "Colis";
- }
-
- @Override
- public int getXp() {
- return 0;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 1000;
- }
-
- @Override
- public int getLevelRequired() {
- return 1;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public boolean needItemToHarvest() {
- return false;
- }
-
- @Override
- public int getModelId() {
- return 508;
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return null;
- }
-
- @Override
- public int distanceToInteract() {
- return 200;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.CARRY_SETDOWN, 1000, 1,
- "");
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- WearableWorldObject wearableWorldObject = new WearableWorldObject(this.getModelId(),
- true, Animation.CARRY_IDLE,
- new CharacterToolAnimation(this.getModelId(), new Vector(-40,35,0), new Vector(-90,0,0),
- new Vector(0.6,0.6,0.6), "hand_r"),
- new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
- worldHarvestObject.getJobSpawnPosition().getZ()));
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
-
- // Assign a random delivery location place
- ArrayList housesDeliveryLocation = JobManager.getDeliveryPointConfig().getPoints().get("houses");
- JobSpawnPosition deliveryPointPosition = housesDeliveryLocation.get(Basic.randomNumber(0, housesDeliveryLocation.size() -1));
- DeliveryPointGoal deliveryPointGoal = new DeliveryPointGoal(deliveryPointPosition, wearableWorldObject);
- wearableWorldObject.setDeliveryPointGoal(deliveryPointGoal);
-
- JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.job.JobSpawnPosition;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.job.customGoal.DeliveryPointGoal;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.utils.Basic;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class DeliveryPackage implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Colis";
+ }
+
+ @Override
+ public int getXp() {
+ return 0;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 1000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 1;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return false;
+ }
+
+ @Override
+ public int getModelId() {
+ return 508;
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return null;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 200;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.CARRY_SETDOWN, 1000, 1,
+ "");
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(this.getModelId(),
+ true, Animation.CARRY_IDLE,
+ new CharacterToolAnimation(this.getModelId(), new Vector(-40,35,0), new Vector(-90,0,0),
+ new Vector(0.6,0.6,0.6), "hand_r"),
+ new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
+ worldHarvestObject.getJobSpawnPosition().getZ()));
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+
+ // Assign a random delivery location place
+ ArrayList housesDeliveryLocation = JobManager.getDeliveryPointConfig().getPoints().get("houses");
+ JobSpawnPosition deliveryPointPosition = housesDeliveryLocation.get(Basic.randomNumber(0, housesDeliveryLocation.size() -1));
+ DeliveryPointGoal deliveryPointGoal = new DeliveryPointGoal(deliveryPointPosition, wearableWorldObject);
+ wearableWorldObject.setDeliveryPointGoal(deliveryPointGoal);
+
+ JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Garbage.java b/src/main/java/fr/yuki/yrpf/job/harvest/Garbage.java
similarity index 81%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/Garbage.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/Garbage.java
index 18c0bea..d129465 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Garbage.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/Garbage.java
@@ -1,88 +1,88 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class Garbage implements HarvestableObject {
- @Override
- public String getName() {
- return "Sac poubelle";
- }
-
- @Override
- public int getXp() {
- return 0;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 1000;
- }
-
- @Override
- public int getLevelRequired() {
- return 1;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return false;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public int getModelId() {
- return 514;
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return null;
- }
-
- @Override
- public int distanceToInteract() {
- return 200;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.CARRY_SETDOWN, 1000, 1,
- "");
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- WearableWorldObject wearableWorldObject = new WearableWorldObject(this.getModelId(),
- true, Animation.CARRY_IDLE,
- new CharacterToolAnimation(this.getModelId(), new Vector(-40,35,0), new Vector(-90,0,0), new Vector(1,1,1), "hand_r"),
- new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
- worldHarvestObject.getJobSpawnPosition().getZ()));
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class Garbage implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Sac poubelle";
+ }
+
+ @Override
+ public int getXp() {
+ return 0;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 1000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 1;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return false;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public int getModelId() {
+ return 514;
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return null;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 200;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.CARRY_SETDOWN, 1000, 1,
+ "");
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(this.getModelId(),
+ true, Animation.CARRY_IDLE,
+ new CharacterToolAnimation(this.getModelId(), new Vector(-40,35,0), new Vector(-90,0,0), new Vector(1,1,1), "hand_r"),
+ new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
+ worldHarvestObject.getJobSpawnPosition().getZ()));
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/HarvestableObject.java b/src/main/java/fr/yuki/yrpf/job/harvest/HarvestableObject.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/HarvestableObject.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/HarvestableObject.java
index f188c2e..78c8825 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/HarvestableObject.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/HarvestableObject.java
@@ -1,25 +1,25 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public interface HarvestableObject {
- String getName();
- int getXp();
- ArrayList getSpawns();
- int getBaseHarvestTime();
- int getLevelRequired();
- boolean needItemToHarvest();
- int getModelId();
- Vector getScale();
- ItemTemplateEnum getItemRequired();
- int distanceToInteract();
- boolean checkRequirements(Player player);
- CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player);
- void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject);
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.ArrayList;
+
+public interface HarvestableObject {
+ String getName();
+ int getXp();
+ ArrayList getSpawns();
+ int getBaseHarvestTime();
+ int getLevelRequired();
+ boolean needItemToHarvest();
+ int getModelId();
+ Vector getScale();
+ ItemTemplateEnum getItemRequired();
+ int distanceToInteract();
+ boolean checkRequirements(Player player);
+ CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player);
+ void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject);
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/IronOre.java b/src/main/java/fr/yuki/yrpf/job/harvest/IronOre.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/IronOre.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/IronOre.java
index 1a5ad09..2f4a86a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/IronOre.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/IronOre.java
@@ -1,94 +1,94 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class IronOre implements HarvestableObject {
- @Override
- public String getName() {
- return "Fer Brute";
- }
-
- @Override
- public int getXp() {
- return 20;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 25000;
- }
-
- @Override
- public int getLevelRequired() {
- return 2;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return true;
- }
-
- @Override
- public int getModelId() {
- return 154;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(0.1, 0.1, 0.1);
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return ItemTemplateEnum.MINER_PICKAXE_1;
- }
-
- @Override
- public int distanceToInteract() {
- return 300;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(this.getItemRequired().id) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 5000, 4,
- "sounds/pickaxe_hit.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(50003, new Vector(-8,5,20),
- new Vector(-90,90,0), new Vector(2, 2, 2), "hand_r"));
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- WearableWorldObject wearableWorldObject = new WearableWorldObject(156, true, Animation.CARRY_IDLE,
- new CharacterToolAnimation(154, new Vector(0,15,0), new Vector(90,-90,0), new Vector(0.09,0.09,0.09), "hand_r"),
- new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
- worldHarvestObject.getJobSpawnPosition().getZ()));
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class IronOre implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Fer Brute";
+ }
+
+ @Override
+ public int getXp() {
+ return 20;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 25000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 2;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return true;
+ }
+
+ @Override
+ public int getModelId() {
+ return 154;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(0.1, 0.1, 0.1);
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return ItemTemplateEnum.MINER_PICKAXE_1;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 300;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(this.getItemRequired().id) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 5000, 4,
+ "sounds/pickaxe_hit.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(50003, new Vector(-8,5,20),
+ new Vector(-90,90,0), new Vector(2, 2, 2), "hand_r"));
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(156, true, Animation.CARRY_IDLE,
+ new CharacterToolAnimation(154, new Vector(0,15,0), new Vector(90,-90,0), new Vector(0.09,0.09,0.09), "hand_r"),
+ new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
+ worldHarvestObject.getJobSpawnPosition().getZ()));
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/LumberjackTreeCommon.java b/src/main/java/fr/yuki/yrpf/job/harvest/LumberjackTreeCommon.java
similarity index 76%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/LumberjackTreeCommon.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/LumberjackTreeCommon.java
index df31bef..e770440 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/LumberjackTreeCommon.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/LumberjackTreeCommon.java
@@ -1,97 +1,94 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.manager.ModdingManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class LumberjackTreeCommon implements HarvestableObject {
- @Override
- public String getName() {
- return "Arbre commun";
- }
-
- @Override
- public int getXp() {
- return 10;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 20000;
- }
-
- @Override
- public int getLevelRequired() {
- return 1;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return true;
- }
-
- @Override
- public int getModelId() {
- return 143;
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return ItemTemplateEnum.LUMBERJACK_HATCHET_1;
- }
-
- @Override
- public int distanceToInteract() {
- return 200;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(this.getItemRequired().id) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 4000, 5,
- "sounds/chop_wood.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(50000, new Vector(-45,-6,20),
- new Vector(0,0,0), new Vector(0.5, 0.5, 0.5), "hand_r"));
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- WearableWorldObject wearableWorldObject = new WearableWorldObject(50001, true, Animation.CARRY_SHOULDER_IDLE,
- new CharacterToolAnimation(50001, new Vector(5,8,0), new Vector(0,0,90), new Vector(0.5,0.5,0.5), "hand_r"),
- new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
- worldHarvestObject.getJobSpawnPosition().getZ()));
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class LumberjackTreeCommon implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Arbre commun";
+ }
+
+ @Override
+ public int getXp() {
+ return 10;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 20000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 1;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return true;
+ }
+
+ @Override
+ public int getModelId() {
+ return 143;
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return ItemTemplateEnum.LUMBERJACK_HATCHET_1;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 200;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(this.getItemRequired().id) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.PICKAXE_SWING, 4000, 5,
+ "sounds/chop_wood.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(50000, new Vector(-45,-6,20),
+ new Vector(0,0,0), new Vector(0.5, 0.5, 0.5), "hand_r"));
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(50001, true, Animation.CARRY_SHOULDER_IDLE,
+ new CharacterToolAnimation(50001, new Vector(5,8,0), new Vector(0,0,90), new Vector(0.5,0.5,0.5), "hand_r"),
+ new Vector(worldHarvestObject.getJobSpawnPosition().getX(), worldHarvestObject.getJobSpawnPosition().getY(),
+ worldHarvestObject.getJobSpawnPosition().getZ()));
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Salmon.java b/src/main/java/fr/yuki/yrpf/job/harvest/Salmon.java
similarity index 79%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/Salmon.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/Salmon.java
index f85fdc9..3647d40 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Salmon.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/Salmon.java
@@ -1,89 +1,89 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.utils.Basic;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class Salmon implements HarvestableObject {
- @Override
- public String getName() {
- return "Saumon";
- }
-
- @Override
- public int getXp() {
- return 15;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 15000;
- }
-
- @Override
- public int getLevelRequired() {
- return 0;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return true;
- }
-
- @Override
- public int getModelId() {
- return 50004;
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return ItemTemplateEnum.FISHING_ROD;
- }
-
- @Override
- public int distanceToInteract() {
- return 2500;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(this.getItemRequired().id) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 5000, 1,
- "sounds/fishing_1.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(1111, new Vector(-10,10,-20),
- new Vector(0,0,0), new Vector(1, 1, 1), "hand_r"));
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.SALMON.id, Basic.randomNumber(1, 4), true);
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.utils.Basic;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class Salmon implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Saumon";
+ }
+
+ @Override
+ public int getXp() {
+ return 15;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 15000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 0;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return true;
+ }
+
+ @Override
+ public int getModelId() {
+ return 50004;
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return ItemTemplateEnum.FISHING_ROD;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 2500;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(this.getItemRequired().id) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 5000, 1,
+ "sounds/fishing_1.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(1111, new Vector(-10,10,-20),
+ new Vector(0,0,0), new Vector(1, 1, 1), "hand_r"));
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ InventoryManager.addItemToPlayer(player, ItemTemplateEnum.SALMON.id, Basic.randomNumber(1, 4), true);
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Turtle.java b/src/main/java/fr/yuki/yrpf/job/harvest/Turtle.java
similarity index 79%
rename from src/main/java/fr/yuki/YukiRPFramework/job/harvest/Turtle.java
rename to src/main/java/fr/yuki/yrpf/job/harvest/Turtle.java
index 99e76dd..5a801ca 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/harvest/Turtle.java
+++ b/src/main/java/fr/yuki/yrpf/job/harvest/Turtle.java
@@ -1,89 +1,88 @@
-package fr.yuki.YukiRPFramework.job.harvest;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.WorldHarvestObject;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.utils.Basic;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class Turtle implements HarvestableObject {
- @Override
- public String getName() {
- return "Tortue";
- }
-
- @Override
- public int getXp() {
- return 30;
- }
-
- @Override
- public ArrayList getSpawns() {
- return new ArrayList<>();
- }
-
- @Override
- public int getBaseHarvestTime() {
- return 25000;
- }
-
- @Override
- public int getLevelRequired() {
- return 2;
- }
-
- @Override
- public boolean needItemToHarvest() {
- return true;
- }
-
- @Override
- public int getModelId() {
- return 50004;
- }
-
- @Override
- public ItemTemplateEnum getItemRequired() {
- return ItemTemplateEnum.FISHING_ROD;
- }
-
- @Override
- public int distanceToInteract() {
- return 2500;
- }
-
- @Override
- public boolean checkRequirements(Player player) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getItemByType(this.getItemRequired().id) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 5000, 1,
- "sounds/fishing_1.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(1111, new Vector(-10,10,-20),
- new Vector(0,0,0), new Vector(1, 1, 1), "hand_r"));
- return characterLoopAnimation;
- }
-
- @Override
- public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.TURTLE.id, 1, true);
- }
-
- @Override
- public Vector getScale() {
- return new Vector(1, 1, 1);
- }
-}
+package fr.yuki.yrpf.job.harvest;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.WorldHarvestObject;
+import fr.yuki.yrpf.manager.InventoryManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class Turtle implements HarvestableObject {
+ @Override
+ public String getName() {
+ return "Tortue";
+ }
+
+ @Override
+ public int getXp() {
+ return 30;
+ }
+
+ @Override
+ public ArrayList getSpawns() {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public int getBaseHarvestTime() {
+ return 25000;
+ }
+
+ @Override
+ public int getLevelRequired() {
+ return 2;
+ }
+
+ @Override
+ public boolean needItemToHarvest() {
+ return true;
+ }
+
+ @Override
+ public int getModelId() {
+ return 50004;
+ }
+
+ @Override
+ public ItemTemplateEnum getItemRequired() {
+ return ItemTemplateEnum.FISHING_ROD;
+ }
+
+ @Override
+ public int distanceToInteract() {
+ return 2500;
+ }
+
+ @Override
+ public boolean checkRequirements(Player player) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getItemByType(this.getItemRequired().id) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public CharacterLoopAnimation getCharacterLoopHarvestAnimation(Player player) {
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 5000, 1,
+ "sounds/fishing_1.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(1111, new Vector(-10,10,-20),
+ new Vector(0,0,0), new Vector(1, 1, 1), "hand_r"));
+ return characterLoopAnimation;
+ }
+
+ @Override
+ public void onHarvestDone(Player player, WorldHarvestObject worldHarvestObject) {
+ InventoryManager.addItemToPlayer(player, ItemTemplateEnum.TURTLE.id, 1, true);
+ }
+
+ @Override
+ public Vector getScale() {
+ return new Vector(1, 1, 1);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GeneratorPlacementInstance.java b/src/main/java/fr/yuki/yrpf/job/placementObject/GeneratorPlacementInstance.java
similarity index 61%
rename from src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GeneratorPlacementInstance.java
rename to src/main/java/fr/yuki/yrpf/job/placementObject/GeneratorPlacementInstance.java
index dc5e7cd..8e6bd64 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GeneratorPlacementInstance.java
+++ b/src/main/java/fr/yuki/yrpf/job/placementObject/GeneratorPlacementInstance.java
@@ -1,35 +1,33 @@
-package fr.yuki.YukiRPFramework.job.placementObject;
-
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.deliveryPackage.GeneratorDeliveryPackage;
-import fr.yuki.YukiRPFramework.job.deliveryPackage.GrowBoxDeliveryPackage;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class GeneratorPlacementInstance extends ObjectPlacementInstance {
- public GeneratorPlacementInstance(Vector spawnPoint) {
- super(581, spawnPoint);
- }
-
- @Override
- public void onPlacementDone(Player player, Vector position, Vector rotation) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- InventoryItem inventoryItem = inventory.getItemByType(ItemTemplateEnum.TICKET_DELIVERY_GENERATOR.id);
- if(inventoryItem == null) {
- return;
- }
- if(inventoryItem.getAmount() <= 0) {
- return;
- }
-
- inventory.removeItem(inventoryItem, 1);
-
- GeneratorDeliveryPackage generatorDeliveryPackage = new GeneratorDeliveryPackage(player, position, rotation);
- generatorDeliveryPackage.spawn();
- }
-}
+package fr.yuki.yrpf.job.placementObject;
+
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.deliveryPackage.GeneratorDeliveryPackage;
+import fr.yuki.yrpf.manager.InventoryManager;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GeneratorPlacementInstance extends ObjectPlacementInstance {
+ public GeneratorPlacementInstance(Vector spawnPoint) {
+ super(581, spawnPoint);
+ }
+
+ @Override
+ public void onPlacementDone(Player player, Vector position, Vector rotation) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ InventoryItem inventoryItem = inventory.getItemByType(ItemTemplateEnum.TICKET_DELIVERY_GENERATOR.id);
+ if(inventoryItem == null) {
+ return;
+ }
+ if(inventoryItem.getAmount() <= 0) {
+ return;
+ }
+
+ inventory.removeItem(inventoryItem, 1);
+
+ GeneratorDeliveryPackage generatorDeliveryPackage = new GeneratorDeliveryPackage(player, position, rotation);
+ generatorDeliveryPackage.spawn();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GenericPlacementInstance.java b/src/main/java/fr/yuki/yrpf/job/placementObject/GenericPlacementInstance.java
similarity index 58%
rename from src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GenericPlacementInstance.java
rename to src/main/java/fr/yuki/yrpf/job/placementObject/GenericPlacementInstance.java
index 85932b2..3e9e8fa 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GenericPlacementInstance.java
+++ b/src/main/java/fr/yuki/yrpf/job/placementObject/GenericPlacementInstance.java
@@ -1,38 +1,36 @@
-package fr.yuki.YukiRPFramework.job.placementObject;
-
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.deliveryPackage.GeneratorDeliveryPackage;
-import fr.yuki.YukiRPFramework.job.deliveryPackage.GenericDeliveryPackage;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class GenericPlacementInstance extends ObjectPlacementInstance {
- private int price;
-
- public GenericPlacementInstance(Vector spawnPoint, int modelId, int price) {
- super(modelId, spawnPoint);
- this.price = price;
- }
-
- @Override
- public void onPlacementDone(Player player, Vector position, Vector rotation) {
- Account account = WorldManager.getPlayerAccount(player);
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(price > inventory.getCashAmount()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
- return;
- }
- inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), price);
- GenericDeliveryPackage genericDeliveryPackage = new GenericDeliveryPackage(player, position, rotation, this.getModelId());
- genericDeliveryPackage.spawn();
- }
-}
+package fr.yuki.yrpf.job.placementObject;
+
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.deliveryPackage.GenericDeliveryPackage;
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GenericPlacementInstance extends ObjectPlacementInstance {
+ private int price;
+
+ public GenericPlacementInstance(Vector spawnPoint, int modelId, int price) {
+ super(modelId, spawnPoint);
+ this.price = price;
+ }
+
+ @Override
+ public void onPlacementDone(Player player, Vector position, Vector rotation) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(price > inventory.getCashAmount()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
+ return;
+ }
+ inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), price);
+ GenericDeliveryPackage genericDeliveryPackage = new GenericDeliveryPackage(player, position, rotation, this.getModelId());
+ genericDeliveryPackage.spawn();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GrowBoxPlacementInstance.java b/src/main/java/fr/yuki/yrpf/job/placementObject/GrowBoxPlacementInstance.java
similarity index 68%
rename from src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GrowBoxPlacementInstance.java
rename to src/main/java/fr/yuki/yrpf/job/placementObject/GrowBoxPlacementInstance.java
index 1e4060d..dd20206 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/placementObject/GrowBoxPlacementInstance.java
+++ b/src/main/java/fr/yuki/yrpf/job/placementObject/GrowBoxPlacementInstance.java
@@ -1,37 +1,36 @@
-package fr.yuki.YukiRPFramework.job.placementObject;
-
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.deliveryPackage.GrowBoxDeliveryPackage;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class GrowBoxPlacementInstance extends ObjectPlacementInstance {
- public GrowBoxPlacementInstance(int modelId, Vector spawnPoint) {
- super(modelId, spawnPoint);
- }
-
- @Override
- public void onPlacementDone(Player player, Vector position, Vector rotation) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- InventoryItem inventoryItem = inventory.getItemByType(ItemTemplateEnum.TICKET_DELIVERY_GROW_BOX.id);
- if(inventoryItem == null) {
- Onset.print("Item not found");
- return;
- }
- if(inventoryItem.getAmount() <= 0) {
- Onset.print("Not amount: " + inventoryItem.getAmount());
- return;
- }
-
- inventory.removeItem(inventoryItem, 1);
-
- GrowBoxDeliveryPackage growBoxDeliveryPackage = new GrowBoxDeliveryPackage(player, position, rotation);
- growBoxDeliveryPackage.spawn();
- }
-}
+package fr.yuki.yrpf.job.placementObject;
+
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.deliveryPackage.GrowBoxDeliveryPackage;
+import fr.yuki.yrpf.manager.InventoryManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GrowBoxPlacementInstance extends ObjectPlacementInstance {
+ public GrowBoxPlacementInstance(int modelId, Vector spawnPoint) {
+ super(modelId, spawnPoint);
+ }
+
+ @Override
+ public void onPlacementDone(Player player, Vector position, Vector rotation) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ InventoryItem inventoryItem = inventory.getItemByType(ItemTemplateEnum.TICKET_DELIVERY_GROW_BOX.id);
+ if(inventoryItem == null) {
+ Onset.print("Item not found");
+ return;
+ }
+ if(inventoryItem.getAmount() <= 0) {
+ Onset.print("Not amount: " + inventoryItem.getAmount());
+ return;
+ }
+
+ inventory.removeItem(inventoryItem, 1);
+
+ GrowBoxDeliveryPackage growBoxDeliveryPackage = new GrowBoxDeliveryPackage(player, position, rotation);
+ growBoxDeliveryPackage.spawn();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/GarbageBin.java b/src/main/java/fr/yuki/yrpf/job/tools/GarbageBin.java
similarity index 65%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/GarbageBin.java
rename to src/main/java/fr/yuki/yrpf/job/tools/GarbageBin.java
index d40f863..aa1581d 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/GarbageBin.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/GarbageBin.java
@@ -1,64 +1,58 @@
-package fr.yuki.YukiRPFramework.job.tools;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-public class GarbageBin implements JobToolHandler {
- private JobTool jobTool;
-
- public GarbageBin(JobTool jobTool) {
- this.jobTool = jobTool;
- }
-
- @Override
- public boolean canInteract(Player player) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() == null) return false;
- if(state.getWearableWorldObject().getModelId() != 514) return false;
- return true;
- }
-
- @Override
- public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
- JobManager.addExp(player, JobEnum.GARBAGE.type, 20);
-
- int reward = this.jobTool.getReward();
- if(JobManager.getJobLevelForPlayer(player, this.jobTool.getJobType()) == 2) {
- reward = (int)Math.floor(reward * 1.5d);
- }
-
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, reward, true);
- SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 1);
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().requestUnwear(player, true);
-
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Vous avez vendu votre ressource pour " + reward + "$");
- return false;
- }
-
- @Override
- public boolean hasLevelRequired(Player player) {
- return true;
- }
-
- @Override
- public boolean onUse(Player player) {
- return true;
- }
-
- @Override
- public boolean canBeUse() {
- return false;
- }
-}
+package fr.yuki.yrpf.job.tools;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class GarbageBin implements JobToolHandler {
+ private JobTool jobTool;
+
+ public GarbageBin(JobTool jobTool) {
+ this.jobTool = jobTool;
+ }
+
+ @Override
+ public boolean canInteract(Player player) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() == null) return false;
+ if(state.getWearableWorldObject().getModelId() != 514) return false;
+ return true;
+ }
+
+ @Override
+ public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
+ JobManager.addExp(player, JobEnum.GARBAGE.name(), 20);
+
+ int reward = this.jobTool.getReward();
+ if(JobManager.getJobLevelForPlayer(player, this.jobTool.getJobType()) == 2) {
+ reward = (int)Math.floor(reward * 1.5d);
+ }
+
+ InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, reward, true);
+ SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 1);
+ CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().requestUnwear(player, true);
+
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Vous avez vendu votre ressource pour " + reward + "$");
+ return false;
+ }
+
+ @Override
+ public boolean hasLevelRequired(Player player) {
+ return true;
+ }
+
+ @Override
+ public boolean onUse(Player player) {
+ return true;
+ }
+
+ @Override
+ public boolean canBeUse() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/Generator.java b/src/main/java/fr/yuki/yrpf/job/tools/Generator.java
similarity index 74%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/Generator.java
rename to src/main/java/fr/yuki/yrpf/job/tools/Generator.java
index d7605ec..2b93f8a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/Generator.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/Generator.java
@@ -1,97 +1,94 @@
-package fr.yuki.YukiRPFramework.job.tools;
-
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.manager.CharacterManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.modding.LoopSound3D;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.util.ArrayList;
-
-public class Generator implements JobToolHandler {
- private final JobTool jobTool;
- private final LoopSound3D loopSound3D;
- private boolean isOn;
- private int fuel;
-
- public Generator(JobTool jobTool) {
- this.jobTool = jobTool;
- this.fuel = 0;
- this.isOn = false;
- this.loopSound3D = new LoopSound3D("sounds/power_generator.mp3",
- new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()), 2000, 0.05,
- 1000*90);
- }
-
- @Override
- public boolean canInteract(Player player) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() == null) return false;
- return true;
- }
-
- @Override
- public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
- return false;
- }
-
- @Override
- public boolean hasLevelRequired(Player player) {
- return true;
- }
-
- @Override
- public boolean onUse(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- if(!this.isOn) {
- if(this.fuel > 0)
- this.setOn(true);
- else
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.generator.no_fuel"));
- } else {
- this.setOn(false);
- }
- return true;
- }
-
- @Override
- public boolean canBeUse() {
- return true;
- }
-
- public void tickFuel() {
- if(!this.isOn) return;
-
- this.fuel -= 1;
- if(this.fuel <= 0) this.setOn(false);
- }
-
- public boolean isOn() {
- return isOn;
- }
-
- public void setOn(boolean on) {
- isOn = on;
- if(isOn) {
- this.loopSound3D.start();
- } else {
- this.loopSound3D.stop();
- }
- }
-
- public int getFuel() {
- return fuel;
- }
-
- public void setFuel(int fuel) {
- this.fuel = fuel;
- }
-}
+package fr.yuki.yrpf.job.tools;
+
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.manager.CharacterManager;
+import fr.yuki.yrpf.manager.UIStateManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.modding.LoopSound3D;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class Generator implements JobToolHandler {
+ private final JobTool jobTool;
+ private final LoopSound3D loopSound3D;
+ private boolean isOn;
+ private int fuel;
+
+ public Generator(JobTool jobTool) {
+ this.jobTool = jobTool;
+ this.fuel = 0;
+ this.isOn = false;
+ this.loopSound3D = new LoopSound3D("sounds/power_generator.mp3",
+ new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()), 2000, 0.05,
+ 1000*90);
+ }
+
+ @Override
+ public boolean canInteract(Player player) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() == null) return false;
+ return true;
+ }
+
+ @Override
+ public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
+ return false;
+ }
+
+ @Override
+ public boolean hasLevelRequired(Player player) {
+ return true;
+ }
+
+ @Override
+ public boolean onUse(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(!this.isOn) {
+ if(this.fuel > 0)
+ this.setOn(true);
+ else
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.generator.no_fuel"));
+ } else {
+ this.setOn(false);
+ }
+ return true;
+ }
+
+ @Override
+ public boolean canBeUse() {
+ return true;
+ }
+
+ public void tickFuel() {
+ if(!this.isOn) return;
+
+ this.fuel -= 1;
+ if(this.fuel <= 0) this.setOn(false);
+ }
+
+ public boolean isOn() {
+ return isOn;
+ }
+
+ public void setOn(boolean on) {
+ isOn = on;
+ if(isOn) {
+ this.loopSound3D.start();
+ } else {
+ this.loopSound3D.stop();
+ }
+ }
+
+ public int getFuel() {
+ return fuel;
+ }
+
+ public void setFuel(int fuel) {
+ this.fuel = fuel;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/GrowBox.java b/src/main/java/fr/yuki/yrpf/job/tools/GrowBox.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/GrowBox.java
rename to src/main/java/fr/yuki/yrpf/job/tools/GrowBox.java
index 49cf17c..4ab7fbd 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/GrowBox.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/GrowBox.java
@@ -1,247 +1,239 @@
-package fr.yuki.YukiRPFramework.job.tools;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.dao.GrowboxDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.tools.growbox.Pot;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.modding.LoopSound3D;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.GrowboxModel;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import fr.yuki.YukiRPFramework.net.payload.AddGrowboxMenuItemPayload;
-import fr.yuki.YukiRPFramework.net.payload.AddToastPayload;
-import fr.yuki.YukiRPFramework.net.payload.SetGrowboxPayload;
-import fr.yuki.YukiRPFramework.vehicle.storeLayout.StoreLayoutTransform;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.UUID;
-
-public class GrowBox implements JobToolHandler {
- private JobTool jobTool;
- private ArrayList pots;
- private ArrayList layoutTransforms;
- private LoopSound3D loopSound3D;
- private GrowboxModel growboxModel;
-
- public GrowBox(JobTool jobTool) {
- this.jobTool = jobTool;
- this.pots = new ArrayList<>();
- this.loopSound3D = new LoopSound3D("sounds/white_noise.mp3",
- new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()), 1000, 0.10,
- 1000*60);
-
- this.layoutTransforms = new ArrayList<>();
- this.layoutTransforms.add(new StoreLayoutTransform(0, new Vector(0, 0, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- this.layoutTransforms.add(new StoreLayoutTransform(1, new Vector(50, 0, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- this.layoutTransforms.add(new StoreLayoutTransform(2, new Vector(0, 50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(50, 50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(0, -50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(50, -50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
- }
-
- private void resyncPots() {
- for(int i = 0; i < this.pots.size(); i++) {
- this.pots.get(i).destroyWorldObject();
- this.pots.get(i).spawnWorldObject(this.layoutTransforms.get(i));
- }
- }
-
- public int getMaxPots() {
- return 6;
- }
-
- @Override
- public boolean canInteract(Player player) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() == null) return false;
- if(state.getWearableWorldObject().getModelId() != 554) return false;
- return true;
- }
-
- @Override
- public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
- switch (wearableWorldObject.getModelId()) {
- case 554: // Pot
- return this.addPot(player, wearableWorldObject);
- }
- return false;
- }
-
- @Override
- public boolean hasLevelRequired(Player player) {
- return true;
- }
-
- @Override
- public boolean onUse(Player player) {
- if(!UIStateManager.handleUIToogle(player, "growboxmenu")) {
- CharacterManager.setCharacterFreeze(player, false);
- return true;
- }
- CharacterManager.setCharacterFreeze(player, true);
- this.handlePotsRequest(player);
- return true;
- }
-
- public void handlePotsRequest(Player player) {
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetGrowboxPayload(this.jobTool.getUuid())));
- for(Pot pot : this.pots) {
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
- 554, pot.getWater(), pot.getState(), pot.isSeed())));
- }
- }
-
- @Override
- public boolean canBeUse() {
- return true;
- }
-
- public void destroy(Player player) {
- if(player != null) {
- UIStateManager.handleUIToogle(player, "growboxmenu");
- CharacterManager.setCharacterFreeze(player, false);
- }
-
- // Destroy pots
- for(Pot pot : this.pots) {
- pot.destroyWorldObject();
- }
- pots.clear();
-
- // Destroy growbox
- this.jobTool.destroy();
- try {
- GrowboxDAO.deleteGrowbox(this.growboxModel);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- }
-
- public boolean addPot(Player player, WearableWorldObject wearableWorldObject) {
- Onset.print("Add pot request for the growbox");
- Account account = WorldManager.getPlayerAccount(player);
- if(this.pots.size() + 1 > this.getMaxPots()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.vehicle.no_space_left"));
- return false;
- }
-
- Pot pot = new Pot(this);
- this.pots.add(pot);
-
- this.resyncPots();
- return true;
- }
-
- public void fillPotWater(Player player, String potId) {
- Account account = WorldManager.getPlayerAccount(player);
- Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
- if(pot == null) {
- return;
- }
- Inventory inventory = InventoryManager.getMainInventory(player);
- InventoryItem waterItem = inventory.getItemByType(ItemTemplateEnum.WATER.id);
- if(waterItem == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.growbox.no_water"));
- return;
- }
- if(pot.getWater() == 100) return;
- pot.setWater(100);
- inventory.removeItem(waterItem, 1);
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
- 554, pot.getWater(), pot.getState(), pot.isSeed())));
- }
-
- public void fillPotSeed(Player player, String potId) {
- Account account = WorldManager.getPlayerAccount(player);
- Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
- if(pot == null) {
- return;
- }
- Inventory inventory = InventoryManager.getMainInventory(player);
- InventoryItem seedItem = inventory.getItemByType(ItemTemplateEnum.WEED_SEED.id);
- if(seedItem == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.growbox.no_seed"));
- return;
- }
- if(pot.isSeed()) return;
- pot.setSeed(true);
- pot.spawnSeed();
- inventory.removeItem(seedItem, 1);
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
- 554, pot.getWater(), pot.getState(), pot.isSeed())));
- JobManager.addExp(player, JobEnum.WEED.type, 15);
- }
-
- public void harvestPot(Player player, String potId) {
- Account account = WorldManager.getPlayerAccount(player);
- Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
- if(pot == null) {
- return;
- }
- if(pot.getState() < 100) return;
- if(InventoryManager.addItemToPlayer(player, ItemTemplateEnum.WEED.id, 1, true) == null) {
- return;
- }
- pot.removeSeed();
-
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
- 554, pot.getWater(), pot.getState(), pot.isSeed())));
- }
-
- public void takePot(Player player, String potId) {
- Account account = WorldManager.getPlayerAccount(player);
- Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
- if(pot == null) {
- return;
- }
- if(InventoryManager.addItemToPlayer(player, ItemTemplateEnum.POT.id, 1, true) == null) {
- return;
- }
- pot.destroyWorldObject();
- this.pots.remove(pot);
- CharacterManager.setCharacterFreeze(player, false);
- UIStateManager.handleUIToogle(player, "growboxmenu");
- }
-
- public void tickGrow() {
- Generator generator = GrowboxManager.getGeneratorOnNearby(new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()),
- 1500);
- if(generator == null) {
- if(this.loopSound3D.isActive()) this.loopSound3D.stop();
- return;
- } else {
- if(!this.loopSound3D.isActive()) this.loopSound3D.start();
- }
- for(Pot pot : this.pots) {
- pot.grow();
- }
- }
-
- public JobTool getJobTool() {
- return jobTool;
- }
-
- public LoopSound3D getLoopSound3D() {
- return loopSound3D;
- }
-
- public GrowboxModel getGrowboxModel() {
- return growboxModel;
- }
-
- public void setGrowboxModel(GrowboxModel growboxModel) {
- this.growboxModel = growboxModel;
- }
-}
+package fr.yuki.yrpf.job.tools;
+
+import com.google.gson.Gson;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.tools.growbox.Pot;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.modding.LoopSound3D;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.GrowboxModel;
+import fr.yuki.yrpf.model.JobTool;
+import fr.yuki.yrpf.net.payload.AddGrowboxMenuItemPayload;
+import fr.yuki.yrpf.net.payload.SetGrowboxPayload;
+import fr.yuki.yrpf.vehicle.storeLayout.StoreLayoutTransform;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.ArrayList;
+
+public class GrowBox implements JobToolHandler {
+ private JobTool jobTool;
+ private ArrayList pots;
+ private ArrayList layoutTransforms;
+ private LoopSound3D loopSound3D;
+ private GrowboxModel growboxModel;
+
+ public GrowBox(JobTool jobTool) {
+ this.jobTool = jobTool;
+ this.pots = new ArrayList<>();
+ this.loopSound3D = new LoopSound3D("sounds/white_noise.mp3",
+ new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()), 1000, 0.10,
+ 1000*60);
+
+ this.layoutTransforms = new ArrayList<>();
+ this.layoutTransforms.add(new StoreLayoutTransform(0, new Vector(0, 0, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ this.layoutTransforms.add(new StoreLayoutTransform(1, new Vector(50, 0, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ this.layoutTransforms.add(new StoreLayoutTransform(2, new Vector(0, 50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(50, 50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(0, -50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ this.layoutTransforms.add(new StoreLayoutTransform(3, new Vector(50, -50, 0), new Vector(0, 0, 0), new Vector(1.50, 1.50, 2.40)));
+ }
+
+ private void resyncPots() {
+ for(int i = 0; i < this.pots.size(); i++) {
+ this.pots.get(i).destroyWorldObject();
+ this.pots.get(i).spawnWorldObject(this.layoutTransforms.get(i));
+ }
+ }
+
+ public int getMaxPots() {
+ return 6;
+ }
+
+ @Override
+ public boolean canInteract(Player player) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() == null) return false;
+ if(state.getWearableWorldObject().getModelId() != 554) return false;
+ return true;
+ }
+
+ @Override
+ public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
+ switch (wearableWorldObject.getModelId()) {
+ case 554: // Pot
+ return this.addPot(player, wearableWorldObject);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean hasLevelRequired(Player player) {
+ return true;
+ }
+
+ @Override
+ public boolean onUse(Player player) {
+ if(!UIStateManager.handleUIToogle(player, "growboxmenu")) {
+ CharacterManager.setCharacterFreeze(player, false);
+ return true;
+ }
+ CharacterManager.setCharacterFreeze(player, true);
+ this.handlePotsRequest(player);
+ return true;
+ }
+
+ public void handlePotsRequest(Player player) {
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetGrowboxPayload(this.jobTool.getUuid())));
+ for(Pot pot : this.pots) {
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
+ 554, pot.getWater(), pot.getState(), pot.isSeed())));
+ }
+ }
+
+ @Override
+ public boolean canBeUse() {
+ return true;
+ }
+
+ public void destroy(Player player) {
+ if(player != null) {
+ UIStateManager.handleUIToogle(player, "growboxmenu");
+ CharacterManager.setCharacterFreeze(player, false);
+ }
+
+ // Destroy pots
+ for(Pot pot : this.pots) {
+ pot.destroyWorldObject();
+ }
+ pots.clear();
+
+ // Destroy growbox
+ this.jobTool.destroy();
+ this.growboxModel.delete();
+ }
+
+ public boolean addPot(Player player, WearableWorldObject wearableWorldObject) {
+ Onset.print("Add pot request for the growbox");
+ Account account = WorldManager.getPlayerAccount(player);
+ if(this.pots.size() + 1 > this.getMaxPots()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.vehicle.no_space_left"));
+ return false;
+ }
+
+ Pot pot = new Pot(this);
+ this.pots.add(pot);
+
+ this.resyncPots();
+ return true;
+ }
+
+ public void fillPotWater(Player player, String potId) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
+ if(pot == null) {
+ return;
+ }
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ InventoryItem waterItem = inventory.getItemByType(ItemTemplateEnum.WATER.id);
+ if(waterItem == null) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.growbox.no_water"));
+ return;
+ }
+ if(pot.getWater() == 100) return;
+ pot.setWater(100);
+ inventory.removeItem(waterItem, 1);
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
+ 554, pot.getWater(), pot.getState(), pot.isSeed())));
+ }
+
+ public void fillPotSeed(Player player, String potId) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
+ if(pot == null) {
+ return;
+ }
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ InventoryItem seedItem = inventory.getItemByType(ItemTemplateEnum.WEED_SEED.id);
+ if(seedItem == null) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.growbox.no_seed"));
+ return;
+ }
+ if(pot.isSeed()) return;
+ pot.setSeed(true);
+ pot.spawnSeed();
+ inventory.removeItem(seedItem, 1);
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
+ 554, pot.getWater(), pot.getState(), pot.isSeed())));
+ JobManager.addExp(player, JobEnum.WEED.name(), 15);
+ }
+
+ public void harvestPot(Player player, String potId) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
+ if(pot == null) {
+ return;
+ }
+ if(pot.getState() < 100) return;
+ if(InventoryManager.addItemToPlayer(player, ItemTemplateEnum.WEED.id, 1, true) == null) {
+ return;
+ }
+ pot.removeSeed();
+
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddGrowboxMenuItemPayload(pot.getUuid(),
+ 554, pot.getWater(), pot.getState(), pot.isSeed())));
+ }
+
+ public void takePot(Player player, String potId) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Pot pot = this.pots.stream().filter(x -> x.getUuid().equals(potId)).findFirst().orElse(null);
+ if(pot == null) {
+ return;
+ }
+ if(InventoryManager.addItemToPlayer(player, ItemTemplateEnum.POT.id, 1, true) == null) {
+ return;
+ }
+ pot.destroyWorldObject();
+ this.pots.remove(pot);
+ CharacterManager.setCharacterFreeze(player, false);
+ UIStateManager.handleUIToogle(player, "growboxmenu");
+ }
+
+ public void tickGrow() {
+ Generator generator = GrowboxManager.getGeneratorOnNearby(new Vector(this.jobTool.getX(), this.jobTool.getY(), this.jobTool.getZ()),
+ 1500);
+ if(generator == null) {
+ if(this.loopSound3D.isActive()) this.loopSound3D.stop();
+ return;
+ } else {
+ if(!this.loopSound3D.isActive()) this.loopSound3D.start();
+ }
+ for(Pot pot : this.pots) {
+ pot.grow();
+ }
+ }
+
+ public JobTool getJobTool() {
+ return jobTool;
+ }
+
+ public LoopSound3D getLoopSound3D() {
+ return loopSound3D;
+ }
+
+ public GrowboxModel getGrowboxModel() {
+ return growboxModel;
+ }
+
+ public void setGrowboxModel(GrowboxModel growboxModel) {
+ this.growboxModel = growboxModel;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/JobToolHandler.java b/src/main/java/fr/yuki/yrpf/job/tools/JobToolHandler.java
similarity index 73%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/JobToolHandler.java
rename to src/main/java/fr/yuki/yrpf/job/tools/JobToolHandler.java
index 00255af..d139e60 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/JobToolHandler.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/JobToolHandler.java
@@ -1,12 +1,12 @@
-package fr.yuki.YukiRPFramework.job.tools;
-
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public interface JobToolHandler {
- boolean canInteract(Player player);
- boolean onUnwear(Player player, WearableWorldObject wearableWorldObject);
- boolean hasLevelRequired(Player player);
- boolean onUse(Player player);
- boolean canBeUse();
-}
+package fr.yuki.yrpf.job.tools;
+
+import fr.yuki.yrpf.job.WearableWorldObject;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public interface JobToolHandler {
+ boolean canInteract(Player player);
+ boolean onUnwear(Player player, WearableWorldObject wearableWorldObject);
+ boolean hasLevelRequired(Player player);
+ boolean onUse(Player player);
+ boolean canBeUse();
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/Sawmill.java b/src/main/java/fr/yuki/yrpf/job/tools/Sawmill.java
similarity index 79%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/Sawmill.java
rename to src/main/java/fr/yuki/yrpf/job/tools/Sawmill.java
index 514f3ac..eca8a8b 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/Sawmill.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/Sawmill.java
@@ -1,87 +1,87 @@
-package fr.yuki.YukiRPFramework.job.tools;
-
-import fr.yuki.YukiRPFramework.character.CharacterJobLevel;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.manager.*;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.util.ArrayList;
-
-public class Sawmill implements JobToolHandler {
- private JobTool jobTool;
- private boolean isAvailable;
-
- public Sawmill(JobTool jobTool) {
- this.jobTool = jobTool;
- this.isAvailable = true;
- }
-
- @Override
- public boolean canInteract(Player player) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() == null) return false;
- if(state.getWearableWorldObject().getModelId() != 50001) return false;
- return true;
- }
-
- @Override
- public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
- Account account = WorldManager.getPlayerAccount(player);
- if(!this.isAvailable) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.already_used"));
- return false;
- }
- this.isAvailable = false;
- WorldObject worldObject = Onset.getServer().createObject(new Vector(0,0,0), wearableWorldObject.getModelId());
- if(ModdingManager.isCustomModelId(wearableWorldObject.getModelId()))
- ModdingManager.assignCustomModel(worldObject, wearableWorldObject.getModelId());
- SoundManager.playSound3D("sounds/saw_mill_cut.mp3", player.getLocation(), 1000, 0.8);
- JobManager.addExp(player, JobEnum.LUMBERJACK.type, 20);
- worldObject.attach(this.jobTool.getWorldObject(), new Vector(0, 0,160), new Vector(0, 0, 0), "");
- Onset.delay(8000, () -> {
- worldObject.destroy();
- this.isAvailable = true;
-
- // Create the plank
- WearableWorldObject woodPlank = new WearableWorldObject(1574, true,
- Animation.CARRY_SHOULDER_IDLE,
- new CharacterToolAnimation(1574, new Vector(10, 10 ,20),
- new Vector(0, 0, 90), new Vector(0.5, 0.5, 0.5), "hand_r"),
- new Vector(this.jobTool.getX() + 100, this.jobTool.getY() + 100, this.jobTool.getZ() + 50));
- JobManager.getWearableWorldObjects().add(woodPlank);
- });
- return true;
- }
-
- @Override
- public boolean hasLevelRequired(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(JobEnum.LUMBERJACK.type))
- .findFirst().orElse(null);
- if(characterJobLevel == null) return false;
- if(characterJobLevel.getJobLevel().getLevel() < 2) return false;
- return true;
- }
-
- @Override
- public boolean onUse(Player player) {
- return false;
- }
-
- @Override
- public boolean canBeUse() {
- return false;
- }
-}
+package fr.yuki.yrpf.job.tools;
+
+import fr.yuki.yrpf.character.CharacterJobLevel;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.manager.*;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.JobTool;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.ArrayList;
+
+public class Sawmill implements JobToolHandler {
+ private JobTool jobTool;
+ private boolean isAvailable;
+
+ public Sawmill(JobTool jobTool) {
+ this.jobTool = jobTool;
+ this.isAvailable = true;
+ }
+
+ @Override
+ public boolean canInteract(Player player) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() == null) return false;
+ if(state.getWearableWorldObject().getModelId() != 50001) return false;
+ return true;
+ }
+
+ @Override
+ public boolean onUnwear(Player player, WearableWorldObject wearableWorldObject) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(!this.isAvailable) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.already_used"));
+ return false;
+ }
+ this.isAvailable = false;
+ WorldObject worldObject = Onset.getServer().createObject(new Vector(0,0,0), wearableWorldObject.getModelId());
+ if(ModdingManager.isCustomModelId(wearableWorldObject.getModelId()))
+ ModdingManager.assignCustomModel(worldObject, wearableWorldObject.getModelId());
+ SoundManager.playSound3D("sounds/saw_mill_cut.mp3", player.getLocation(), 1000, 0.8);
+ JobManager.addExp(player, JobEnum.LUMBERJACK.name(), 20);
+ worldObject.attach(this.jobTool.getWorldObject(), new Vector(0, 0,160), new Vector(0, 0, 0), "");
+ Onset.delay(8000, () -> {
+ worldObject.destroy();
+ this.isAvailable = true;
+
+ // Create the plank
+ WearableWorldObject woodPlank = new WearableWorldObject(1574, true,
+ Animation.CARRY_SHOULDER_IDLE,
+ new CharacterToolAnimation(1574, new Vector(10, 10 ,20),
+ new Vector(0, 0, 90), new Vector(0.5, 0.5, 0.5), "hand_r"),
+ new Vector(this.jobTool.getX() + 100, this.jobTool.getY() + 100, this.jobTool.getZ() + 50));
+ JobManager.getWearableWorldObjects().add(woodPlank);
+ });
+ return true;
+ }
+
+ @Override
+ public boolean hasLevelRequired(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ ArrayList characterJobLevels = account.decodeCharacterJob();
+ CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(JobEnum.LUMBERJACK.name()))
+ .findFirst().orElse(null);
+ if(characterJobLevel == null) return false;
+ if(characterJobLevel.getJobLevel().getLevel() < 2) return false;
+ return true;
+ }
+
+ @Override
+ public boolean onUse(Player player) {
+ return false;
+ }
+
+ @Override
+ public boolean canBeUse() {
+ return false;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/job/tools/growbox/Pot.java b/src/main/java/fr/yuki/yrpf/job/tools/growbox/Pot.java
similarity index 91%
rename from src/main/java/fr/yuki/YukiRPFramework/job/tools/growbox/Pot.java
rename to src/main/java/fr/yuki/yrpf/job/tools/growbox/Pot.java
index c965a23..6f68627 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/job/tools/growbox/Pot.java
+++ b/src/main/java/fr/yuki/yrpf/job/tools/growbox/Pot.java
@@ -1,114 +1,114 @@
-package fr.yuki.YukiRPFramework.job.tools.growbox;
-
-import fr.yuki.YukiRPFramework.job.tools.GrowBox;
-import fr.yuki.YukiRPFramework.vehicle.storeLayout.StoreLayoutTransform;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.WorldObject;
-
-import java.util.UUID;
-
-public class Pot {
- private String uuid;
- private GrowBox growBox;
- private WorldObject worldObject;
- private int water;
- private int state;
- private boolean seed;
- private int currentRate;
- private WorldObject seedObject;
-
- public Pot(GrowBox growBox) {
- this.uuid = UUID.randomUUID().toString();
- this.growBox = growBox;
- this.water = 0;
- this.state = 0;
- this.currentRate = 1;
- this.seed = false;
- }
-
- public void spawnWorldObject(StoreLayoutTransform transform) {
- this.worldObject = Onset.getServer().createObject(new Vector(0, 0,0), 554);
- this.worldObject.attach(this.growBox.getJobTool().getWorldObject(), transform.getPosition(), transform.getRotation());
- this.worldObject.setScale(transform.getScale());
- this.spawnSeed();
- }
-
- public void destroyWorldObject() {
- if(this.worldObject != null) {
- this.worldObject.destroy();
- this.worldObject = null;
- if(this.seedObject != null) {
- this.seedObject.destroy();
- this.seedObject = null;
- }
- }
- }
-
- public void spawnSeed() {
- if(this.seedObject != null) return;
- this.seedObject = Onset.getServer().createObject(new Vector(0, 0, 0), 63);
- this.seedObject.attach(this.worldObject, new Vector(0, 0, 18), new Vector(0, 0, 0), "None");
- double scaleRate = ((double)this.state / 100d);
- this.seedObject.setScale(new Vector(scaleRate, scaleRate, scaleRate));
- }
-
- public void removeSeed() {
- if(this.seedObject == null) return;
- this.seed = false;
- this.state = 0;
- this.seedObject.destroy();
- this.seedObject = null;
- }
-
- public boolean grow() {
- if(this.water <= 0) return false;
- if(!this.seed) return false;
- if(this.state >= 100) return false;
- if(this.seedObject == null) return false;
- this.water -= 2;
- if(this.water < 0) this.water = 0;
- this.state += this.currentRate;
- if(this.state > 100) this.state = 100;
-
- double scaleRate = ((double)this.state / 100d);
- this.seedObject.setScale(new Vector(scaleRate, scaleRate, scaleRate));
- return true;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public int getWater() {
- return water;
- }
-
- public int getState() {
- return state;
- }
-
- public void setWater(int water) {
- this.water = water;
- }
-
- public void setState(int state) {
- this.state = state;
- }
-
- public boolean isSeed() {
- return seed;
- }
-
- public void setSeed(boolean seed) {
- this.seed = seed;
- }
-
- public int getCurrentRate() {
- return currentRate;
- }
-
- public void setCurrentRate(int currentRate) {
- this.currentRate = currentRate;
- }
-}
+package fr.yuki.yrpf.job.tools.growbox;
+
+import fr.yuki.yrpf.job.tools.GrowBox;
+import fr.yuki.yrpf.vehicle.storeLayout.StoreLayoutTransform;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.WorldObject;
+
+import java.util.UUID;
+
+public class Pot {
+ private String uuid;
+ private GrowBox growBox;
+ private WorldObject worldObject;
+ private int water;
+ private int state;
+ private boolean seed;
+ private int currentRate;
+ private WorldObject seedObject;
+
+ public Pot(GrowBox growBox) {
+ this.uuid = UUID.randomUUID().toString();
+ this.growBox = growBox;
+ this.water = 0;
+ this.state = 0;
+ this.currentRate = 1;
+ this.seed = false;
+ }
+
+ public void spawnWorldObject(StoreLayoutTransform transform) {
+ this.worldObject = Onset.getServer().createObject(new Vector(0, 0,0), 554);
+ this.worldObject.attach(this.growBox.getJobTool().getWorldObject(), transform.getPosition(), transform.getRotation());
+ this.worldObject.setScale(transform.getScale());
+ this.spawnSeed();
+ }
+
+ public void destroyWorldObject() {
+ if(this.worldObject != null) {
+ this.worldObject.destroy();
+ this.worldObject = null;
+ if(this.seedObject != null) {
+ this.seedObject.destroy();
+ this.seedObject = null;
+ }
+ }
+ }
+
+ public void spawnSeed() {
+ if(this.seedObject != null) return;
+ this.seedObject = Onset.getServer().createObject(new Vector(0, 0, 0), 63);
+ this.seedObject.attach(this.worldObject, new Vector(0, 0, 18), new Vector(0, 0, 0), "None");
+ double scaleRate = ((double)this.state / 100d);
+ this.seedObject.setScale(new Vector(scaleRate, scaleRate, scaleRate));
+ }
+
+ public void removeSeed() {
+ if(this.seedObject == null) return;
+ this.seed = false;
+ this.state = 0;
+ this.seedObject.destroy();
+ this.seedObject = null;
+ }
+
+ public boolean grow() {
+ if(this.water <= 0) return false;
+ if(!this.seed) return false;
+ if(this.state >= 100) return false;
+ if(this.seedObject == null) return false;
+ this.water -= 2;
+ if(this.water < 0) this.water = 0;
+ this.state += this.currentRate;
+ if(this.state > 100) this.state = 100;
+
+ double scaleRate = ((double)this.state / 100d);
+ this.seedObject.setScale(new Vector(scaleRate, scaleRate, scaleRate));
+ return true;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public int getWater() {
+ return water;
+ }
+
+ public int getState() {
+ return state;
+ }
+
+ public void setWater(int water) {
+ this.water = water;
+ }
+
+ public void setState(int state) {
+ this.state = state;
+ }
+
+ public boolean isSeed() {
+ return seed;
+ }
+
+ public void setSeed(boolean seed) {
+ this.seed = seed;
+ }
+
+ public int getCurrentRate() {
+ return currentRate;
+ }
+
+ public void setCurrentRate(int currentRate) {
+ this.currentRate = currentRate;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddAmbiantSoundEF.java b/src/main/java/fr/yuki/yrpf/luaapi/AddAmbiantSoundEF.java
similarity index 88%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/AddAmbiantSoundEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/AddAmbiantSoundEF.java
index 7698101..114fc1c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddAmbiantSoundEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/AddAmbiantSoundEF.java
@@ -1,23 +1,23 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddAmbiantSoundEF implements ExportFunction {
-
- @Override
- public Object call(Object[] objects) {
- String fileName = objects[1].toString();
- String name = objects[0].toString();
- double x = Double.parseDouble(objects[2].toString());
- double y = Double.parseDouble(objects[3].toString());
- double z = Double.parseDouble(objects[4].toString());
- int radius = Integer.parseInt(objects[5].toString());
- double volume = Double.parseDouble(objects[6].toString());
- Onset.print(x + "," + y + ", " + z + ", " + fileName + ", " + name + ", " + radius + ", " + volume);
- SoundManager.createAmbiantSound(name, fileName, new Vector(x,y,z), radius, volume);
- return null;
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.manager.SoundManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddAmbiantSoundEF implements ExportFunction {
+
+ @Override
+ public Object call(Object[] objects) {
+ String fileName = objects[1].toString();
+ String name = objects[0].toString();
+ double x = Double.parseDouble(objects[2].toString());
+ double y = Double.parseDouble(objects[3].toString());
+ double z = Double.parseDouble(objects[4].toString());
+ int radius = Integer.parseInt(objects[5].toString());
+ double volume = Double.parseDouble(objects[6].toString());
+ Onset.print(x + "," + y + ", " + z + ", " + fileName + ", " + name + ", " + radius + ", " + volume);
+ SoundManager.createAmbiantSound(name, fileName, new Vector(x,y,z), radius, volume);
+ return null;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddItemEF.java b/src/main/java/fr/yuki/yrpf/luaapi/AddItemEF.java
similarity index 70%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/AddItemEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/AddItemEF.java
index 3d8220a..1d8cbdb 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddItemEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/AddItemEF.java
@@ -1,21 +1,20 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.manager.InventoryManager;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddItemEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Player player = Onset.getPlayer(Integer.parseInt(objects[0].toString()));
- if(player == null) return false;
- Account account = WorldManager.getPlayerAccount(player);
- if(account == null) return false;
- InventoryManager.addItemToPlayer(player, objects[1].toString(), Integer.parseInt(objects[2].toString()), true);
- return true;
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.manager.InventoryManager;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddItemEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Player player = Onset.getPlayer(Integer.parseInt(objects[0].toString()));
+ if(player == null) return false;
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account == null) return false;
+ InventoryManager.addItemToPlayer(player, objects[1].toString(), Integer.parseInt(objects[2].toString()), true);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddRestrictedZoneEF.java b/src/main/java/fr/yuki/yrpf/luaapi/AddRestrictedZoneEF.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/AddRestrictedZoneEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/AddRestrictedZoneEF.java
index a64a169..840f9d7 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/AddRestrictedZoneEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/AddRestrictedZoneEF.java
@@ -1,25 +1,25 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.modding.Line3D;
-import fr.yuki.YukiRPFramework.world.RestrictedZone;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddRestrictedZoneEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Onset.print("New restricted zone added from lua : " + objects[0].toString());
- RestrictedZone restrictedZone = new RestrictedZone(new Line3D(
- Double.parseDouble(objects[1].toString()),
- Double.parseDouble(objects[2].toString()),
- Double.parseDouble(objects[3].toString()),
- Double.parseDouble(objects[4].toString()),
- Double.parseDouble(objects[5].toString()),
- Double.parseDouble(objects[6].toString()),
- 6
- ), objects[0].toString());
- WorldManager.getRestrictedZones().add(restrictedZone);
- return true;
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.modding.Line3D;
+import fr.yuki.yrpf.world.RestrictedZone;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddRestrictedZoneEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Onset.print("New restricted zone added from lua : " + objects[0].toString());
+ RestrictedZone restrictedZone = new RestrictedZone(new Line3D(
+ Double.parseDouble(objects[1].toString()),
+ Double.parseDouble(objects[2].toString()),
+ Double.parseDouble(objects[3].toString()),
+ Double.parseDouble(objects[4].toString()),
+ Double.parseDouble(objects[5].toString()),
+ Double.parseDouble(objects[6].toString()),
+ 6
+ ), objects[0].toString());
+ WorldManager.getRestrictedZones().add(restrictedZone);
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAccountEF.java b/src/main/java/fr/yuki/yrpf/luaapi/GetAccountEF.java
similarity index 74%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAccountEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/GetAccountEF.java
index d3b5d8e..1be1db8 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAccountEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/GetAccountEF.java
@@ -1,16 +1,16 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class GetAccountEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Account account = WorldManager.getPlayerAccount(Onset.getPlayer(Integer.parseInt(objects[0].toString())));
- if(account == null) return null;
- return new Gson().toJson(account);
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import com.google.gson.Gson;
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class GetAccountEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Account account = WorldManager.getPlayerAccount(Onset.getPlayer(Integer.parseInt(objects[0].toString())));
+ if(account == null) return null;
+ return new Gson().toJson(account);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAdminLevelEF.java b/src/main/java/fr/yuki/yrpf/luaapi/GetAdminLevelEF.java
similarity index 73%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAdminLevelEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/GetAdminLevelEF.java
index eebf802..2020eed 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/GetAdminLevelEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/GetAdminLevelEF.java
@@ -1,15 +1,15 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.manager.WorldManager;
-import fr.yuki.YukiRPFramework.model.Account;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class GetAdminLevelEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Account account = WorldManager.getPlayerAccount(Onset.getPlayer(Integer.parseInt(objects[0].toString())));
- if(account == null) return -1;
- return account.getAdminLevel();
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.manager.WorldManager;
+import fr.yuki.yrpf.model.Account;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class GetAdminLevelEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Account account = WorldManager.getPlayerAccount(Onset.getPlayer(Integer.parseInt(objects[0].toString())));
+ if(account == null) return -1;
+ return account.getAdminLevel();
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/LuaAPIManager.java b/src/main/java/fr/yuki/yrpf/luaapi/LuaAPIManager.java
similarity index 90%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/LuaAPIManager.java
rename to src/main/java/fr/yuki/yrpf/luaapi/LuaAPIManager.java
index ca9b529..f49956a 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/LuaAPIManager.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/LuaAPIManager.java
@@ -1,23 +1,23 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.luaapi.job.*;
-import net.onfirenetwork.onsetjava.Onset;
-
-public class LuaAPIManager {
- public static void init() {
- Onset.getServer().addFunctionExport("GetAdminLevel", new GetAdminLevelEF());
- Onset.getServer().addFunctionExport("GetAccount", new GetAccountEF());
- Onset.getServer().addFunctionExport("AddAmbiantSound", new AddAmbiantSoundEF());
- Onset.getServer().addFunctionExport("SendToast", new SendToastEF());
- Onset.getServer().addFunctionExport("AddItem", new AddItemEF());
- Onset.getServer().addFunctionExport("AddRestrictedZone", new AddRestrictedZoneEF());
-
- // Job API
- Onset.getServer().addFunctionExport("CreateJob", new CreateJobEF());
- Onset.getServer().addFunctionExport("AddJobLevel", new AddJobLevelEF());
- Onset.getServer().addFunctionExport("AddJobResource", new AddJobResourceEF());
- Onset.getServer().addFunctionExport("AddItemResourceRequirement", new AddItemResourceRequirementEF());
- Onset.getServer().addFunctionExport("SetHarvestAnimation", new SetHarvestAnimationEF());
-
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.luaapi.job.*;
+import net.onfirenetwork.onsetjava.Onset;
+
+public class LuaAPIManager {
+ public static void init() {
+ Onset.getServer().addFunctionExport("GetAdminLevel", new GetAdminLevelEF());
+ Onset.getServer().addFunctionExport("GetAccount", new GetAccountEF());
+ Onset.getServer().addFunctionExport("AddAmbiantSound", new AddAmbiantSoundEF());
+ Onset.getServer().addFunctionExport("SendToast", new SendToastEF());
+ Onset.getServer().addFunctionExport("AddItem", new AddItemEF());
+ Onset.getServer().addFunctionExport("AddRestrictedZone", new AddRestrictedZoneEF());
+
+ // Job API
+ Onset.getServer().addFunctionExport("CreateJob", new CreateJobEF());
+ Onset.getServer().addFunctionExport("AddJobLevel", new AddJobLevelEF());
+ Onset.getServer().addFunctionExport("AddJobResource", new AddJobResourceEF());
+ Onset.getServer().addFunctionExport("AddItemResourceRequirement", new AddItemResourceRequirementEF());
+ Onset.getServer().addFunctionExport("SetHarvestAnimation", new SetHarvestAnimationEF());
+
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/SendToastEF.java b/src/main/java/fr/yuki/yrpf/luaapi/SendToastEF.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/SendToastEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/SendToastEF.java
index cd85b33..823fa9f 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/SendToastEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/SendToastEF.java
@@ -1,22 +1,20 @@
-package fr.yuki.YukiRPFramework.luaapi;
-
-import fr.yuki.YukiRPFramework.manager.SoundManager;
-import fr.yuki.YukiRPFramework.manager.UIStateManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class SendToastEF implements ExportFunction {
-
- @Override
- public Object call(Object[] objects) {
- Player player = Onset.getPlayer(Integer.parseInt(objects[0].toString()));
- if(player == null) return null;
- String type = objects[1].toString();
- String text = objects[2].toString();
- UIStateManager.sendNotification(player, type, text);
-
- return null;
- }
-}
+package fr.yuki.yrpf.luaapi;
+
+import fr.yuki.yrpf.manager.UIStateManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class SendToastEF implements ExportFunction {
+
+ @Override
+ public Object call(Object[] objects) {
+ Player player = Onset.getPlayer(Integer.parseInt(objects[0].toString()));
+ if(player == null) return null;
+ String type = objects[1].toString();
+ String text = objects[2].toString();
+ UIStateManager.sendNotification(player, type, text);
+
+ return null;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddItemResourceRequirementEF.java b/src/main/java/fr/yuki/yrpf/luaapi/job/AddItemResourceRequirementEF.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddItemResourceRequirementEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/job/AddItemResourceRequirementEF.java
index 35a6fc4..9f92d7c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddItemResourceRequirementEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/job/AddItemResourceRequirementEF.java
@@ -1,19 +1,19 @@
-package fr.yuki.YukiRPFramework.luaapi.job;
-
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.harvest.CustomHarvestableObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddItemResourceRequirementEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Job job = JobManager.getJobs().get(objects[0].toString());
- if(job == null) return false;
- CustomHarvestableObject harvestableObject = (CustomHarvestableObject)job.getHarvestableObjectsTemplate().stream().filter(x ->
- x.getName().equals(objects[1].toString())).findFirst().orElse(null);
- if(harvestableObject == null) return false;
- harvestableObject.setRequiredItem(Integer.parseInt(objects[2].toString()));
- return true;
- }
-}
+package fr.yuki.yrpf.luaapi.job;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.job.harvest.CustomHarvestableObject;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddItemResourceRequirementEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Job job = JobManager.getJobs().get(objects[0].toString());
+ if(job == null) return false;
+ CustomHarvestableObject harvestableObject = (CustomHarvestableObject)job.getHarvestableObjectsTemplate().stream().filter(x ->
+ x.getName().equals(objects[1].toString())).findFirst().orElse(null);
+ if(harvestableObject == null) return false;
+ harvestableObject.setRequiredItem(Integer.parseInt(objects[2].toString()));
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobLevelEF.java b/src/main/java/fr/yuki/yrpf/luaapi/job/AddJobLevelEF.java
similarity index 76%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobLevelEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/job/AddJobLevelEF.java
index cba2ac4..fb85c56 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobLevelEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/job/AddJobLevelEF.java
@@ -1,27 +1,26 @@
-package fr.yuki.YukiRPFramework.luaapi.job;
-
-import fr.yuki.YukiRPFramework.job.CustomJob;
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import fr.yuki.YukiRPFramework.model.JobLevel;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddJobLevelEF implements ExportFunction {
- public static int tempJobLevelId = -1;
-
- @Override
- public Object call(Object[] objects) {
- Job job = JobManager.getJobs().get(objects[0].toString());
- if(job == null) return false;
- JobLevel jobLevel = new JobLevel();
- jobLevel.setId(tempJobLevelId--);
- jobLevel.setJobId(objects[0].toString());
- jobLevel.setName(objects[1].toString());
- jobLevel.setLevel(Integer.parseInt(objects[2].toString()));
- jobLevel.setExpFloor(Integer.parseInt(objects[3].toString()));
- JobManager.getJobLevels().add(jobLevel);
- Onset.print("Added new job level for job="+jobLevel.getJobId());
- return true;
- }
-}
+package fr.yuki.yrpf.luaapi.job;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.manager.JobManager;
+import fr.yuki.yrpf.model.JobLevel;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddJobLevelEF implements ExportFunction {
+ public static int tempJobLevelId = -1;
+
+ @Override
+ public Object call(Object[] objects) {
+ Job job = JobManager.getJobs().get(objects[0].toString());
+ if(job == null) return false;
+ JobLevel jobLevel = new JobLevel();
+ jobLevel.setId(tempJobLevelId--);
+ jobLevel.setJobId(objects[0].toString());
+ jobLevel.setName(objects[1].toString());
+ jobLevel.setLevel(Integer.parseInt(objects[2].toString()));
+ jobLevel.setExpFloor(Integer.parseInt(objects[3].toString()));
+ JobManager.getJobLevels().add(jobLevel);
+ Onset.print("Added new job level for job="+jobLevel.getJobId());
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobResourceEF.java b/src/main/java/fr/yuki/yrpf/luaapi/job/AddJobResourceEF.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobResourceEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/job/AddJobResourceEF.java
index ea1f1f7..872b724 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/AddJobResourceEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/job/AddJobResourceEF.java
@@ -1,31 +1,31 @@
-package fr.yuki.YukiRPFramework.luaapi.job;
-
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.JobSpawn;
-import fr.yuki.YukiRPFramework.job.harvest.CustomHarvestableObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class AddJobResourceEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Job job = JobManager.getJobs().get(objects[0].toString());
- if(job == null) return false;
- CustomHarvestableObject customHarvestableObject = new CustomHarvestableObject(
- objects[1].toString(), Integer.parseInt(objects[2].toString()), Integer.parseInt(objects[3].toString()),
- Integer.parseInt(objects[4].toString()), Integer.parseInt(objects[5].toString()), Integer.parseInt(objects[6].toString())
- );
- job.getHarvestableObjectsTemplate().add(customHarvestableObject);
- if(job.getJobConfig().getResources().stream().filter(x -> x.getName().equals(customHarvestableObject.getName()))
- .findFirst().orElse(null) == null) {
- JobSpawn jobSpawn = new JobSpawn();
- jobSpawn.setName(customHarvestableObject.getName());
- job.getJobConfig().getResources().add(jobSpawn);
- }
- job.refillHarvestResources();
-
- Onset.print("Add harvestable object for job="+job.getJobType()+" name=" + customHarvestableObject.getName());
- return true;
- }
-}
+package fr.yuki.yrpf.luaapi.job;
+
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.job.JobSpawn;
+import fr.yuki.yrpf.job.harvest.CustomHarvestableObject;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class AddJobResourceEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Job job = JobManager.getJobs().get(objects[0].toString());
+ if(job == null) return false;
+ CustomHarvestableObject customHarvestableObject = new CustomHarvestableObject(
+ objects[1].toString(), Integer.parseInt(objects[2].toString()), Integer.parseInt(objects[3].toString()),
+ Integer.parseInt(objects[4].toString()), Integer.parseInt(objects[5].toString()), Integer.parseInt(objects[6].toString())
+ );
+ job.getHarvestableObjectsTemplate().add(customHarvestableObject);
+ if(job.getJobConfig().getResources().stream().filter(x -> x.getName().equals(customHarvestableObject.getName()))
+ .findFirst().orElse(null) == null) {
+ JobSpawn jobSpawn = new JobSpawn();
+ jobSpawn.setName(customHarvestableObject.getName());
+ job.getJobConfig().getResources().add(jobSpawn);
+ }
+ job.refillHarvestResources();
+
+ Onset.print("Add harvestable object for job="+job.getJobType()+" name=" + customHarvestableObject.getName());
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/CreateJobEF.java b/src/main/java/fr/yuki/yrpf/luaapi/job/CreateJobEF.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/job/CreateJobEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/job/CreateJobEF.java
index 2c9f713..ce26e60 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/CreateJobEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/job/CreateJobEF.java
@@ -1,17 +1,17 @@
-package fr.yuki.YukiRPFramework.luaapi.job;
-
-import fr.yuki.YukiRPFramework.job.CustomJob;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class CreateJobEF implements ExportFunction {
-
- @Override
- public Object call(Object[] objects) {
- CustomJob customJob = new CustomJob(objects[0].toString(), Integer.parseInt(objects[1].toString()));
- JobManager.getJobs().put(objects[0].toString(), customJob);
- Onset.print("New job created from lua name="+customJob.getJobType());
- return null;
- }
-}
+package fr.yuki.yrpf.luaapi.job;
+
+import fr.yuki.yrpf.job.CustomJob;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class CreateJobEF implements ExportFunction {
+
+ @Override
+ public Object call(Object[] objects) {
+ CustomJob customJob = new CustomJob(objects[0].toString(), Integer.parseInt(objects[1].toString()));
+ JobManager.getJobs().put(objects[0].toString(), customJob);
+ Onset.print("New job created from lua name="+customJob.getJobType());
+ return null;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/SetHarvestAnimationEF.java b/src/main/java/fr/yuki/yrpf/luaapi/job/SetHarvestAnimationEF.java
similarity index 75%
rename from src/main/java/fr/yuki/YukiRPFramework/luaapi/job/SetHarvestAnimationEF.java
rename to src/main/java/fr/yuki/yrpf/luaapi/job/SetHarvestAnimationEF.java
index d52866d..04945e2 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/luaapi/job/SetHarvestAnimationEF.java
+++ b/src/main/java/fr/yuki/yrpf/luaapi/job/SetHarvestAnimationEF.java
@@ -1,23 +1,23 @@
-package fr.yuki.YukiRPFramework.luaapi.job;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.job.Job;
-import fr.yuki.YukiRPFramework.job.harvest.CustomHarvestableObject;
-import fr.yuki.YukiRPFramework.manager.JobManager;
-import net.onfirenetwork.onsetjava.plugin.ExportFunction;
-
-public class SetHarvestAnimationEF implements ExportFunction {
- @Override
- public Object call(Object[] objects) {
- Job job = JobManager.getJobs().get(objects[0].toString());
- if(job == null) return false;
- CustomHarvestableObject harvestableObject = (CustomHarvestableObject)job.getHarvestableObjectsTemplate().stream().filter(x ->
- x.getName().equals(objects[1].toString())).findFirst().orElse(null);
- if(harvestableObject == null) return false;
-
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(objects[2].toString(),
- Integer.parseInt(objects[3].toString()), Integer.parseInt(objects[4].toString()), objects[5].toString());
- harvestableObject.setCharacterLoopAnimation(characterLoopAnimation);
- return null;
- }
-}
+package fr.yuki.yrpf.luaapi.job;
+
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.job.Job;
+import fr.yuki.yrpf.job.harvest.CustomHarvestableObject;
+import fr.yuki.yrpf.manager.JobManager;
+import net.onfirenetwork.onsetjava.plugin.ExportFunction;
+
+public class SetHarvestAnimationEF implements ExportFunction {
+ @Override
+ public Object call(Object[] objects) {
+ Job job = JobManager.getJobs().get(objects[0].toString());
+ if(job == null) return false;
+ CustomHarvestableObject harvestableObject = (CustomHarvestableObject)job.getHarvestableObjectsTemplate().stream().filter(x ->
+ x.getName().equals(objects[1].toString())).findFirst().orElse(null);
+ if(harvestableObject == null) return false;
+
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(objects[2].toString(),
+ Integer.parseInt(objects[3].toString()), Integer.parseInt(objects[4].toString()), objects[5].toString());
+ harvestableObject.setCharacterLoopAnimation(characterLoopAnimation);
+ return null;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/ATMManager.java b/src/main/java/fr/yuki/yrpf/manager/ATMManager.java
similarity index 87%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/ATMManager.java
rename to src/main/java/fr/yuki/yrpf/manager/ATMManager.java
index 8a2bbe5..4fabcb5 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/ATMManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/ATMManager.java
@@ -1,99 +1,98 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.model.ATM;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.net.payload.AddToastPayload;
-import fr.yuki.YukiRPFramework.net.payload.SetBankCashAmount;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-public class ATMManager {
- /**
- * Check the interaction request with a atm, check if is nearby a atm
- * @param player The player
- */
- public static boolean handleATMInteract(Player player) {
- for(ATM atm : WorldManager.getAtms()) {
- try {
- if(atm.isNear(player)) {
- openATM(player, atm);
- return true;
- }
- }catch (Exception ex) {}
- }
- return false;
- }
-
- /**
- * Open the atm for the player
- * @param player The player
- * @param atm The ATM
- */
- public static void openATM(Player player, ATM atm) {
- if(UIStateManager.handleUIToogle(player, "atm")) {
- SoundManager.playSound3D("sounds/atm_sound_in.mp3", player.getLocation(), 200, 0.4);
- }
- }
-
- /**
- * Handle deposit request from player
- * @param player The player
- * @param value The amount to deposit
- */
- public static void handleATMDeposit(Player player, int value) {
- Onset.print("Request to deposit money="+value);
- Inventory inventory = InventoryManager.getMainInventory(player);;
- Account account = WorldManager.getPlayerAccount(player);
- if(inventory.getCashAmount() < value) {
- Onset.print("Player don't have the cash required on him amount="+inventory.getCashAmount());
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_on_me"));
- return;
- }
-
- // Add the bank money and save the player
- inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), value);
- account.setBankMoney(account.getBankMoney() + value);
- WorldManager.savePlayer(player);
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.atm.success_deposit", String.valueOf(value)));
- }
-
- /**
- * Withdraw money from the bank account
- * @param player The player
- * @param value The amount to withdraw
- */
- public static void handleATMWithdraw(Player player, int value) {
- Onset.print("Request to deposit money="+value);
- Inventory inventory = InventoryManager.getMainInventory(player);
- Account account = WorldManager.getPlayerAccount(player);
- if(account.getBankMoney() < value) {
- Onset.print("Player don't have the cash required in bank amount="+inventory.getCashAmount());
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_in_bank"));
- return;
- }
-
- // Add the bank money and save the player
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, value, false);
- account.setBankMoney(account.getBankMoney() - value);
- WorldManager.savePlayer(player);
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.atm.success_withdraw", String.valueOf(value)));
- }
-
- public static void handleATMGetInfos(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- Inventory inventory = InventoryManager.getMainInventory(player);;
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetBankCashAmount(account.getBankMoney(), inventory.getCashAmount())));
- }
-
- public static void removeCashFromBank(Player player, int amount) {
- Account account = WorldManager.getPlayerAccount(player);
- if(amount > account.getBankMoney()) return;
- account.setBankMoney(account.getBankMoney() - amount);
- WorldManager.savePlayer(player);
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.model.ATM;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.net.payload.SetBankCashAmount;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+public class ATMManager {
+ /**
+ * Check the interaction request with a atm, check if is nearby a atm
+ * @param player The player
+ */
+ public static boolean handleATMInteract(Player player) {
+ for(ATM atm : WorldManager.getAtms()) {
+ try {
+ if(atm.isNear(player)) {
+ openATM(player, atm);
+ return true;
+ }
+ }catch (Exception ex) {}
+ }
+ return false;
+ }
+
+ /**
+ * Open the atm for the player
+ * @param player The player
+ * @param atm The ATM
+ */
+ public static void openATM(Player player, ATM atm) {
+ if(UIStateManager.handleUIToogle(player, "atm")) {
+ SoundManager.playSound3D("sounds/atm_sound_in.mp3", player.getLocation(), 200, 0.4);
+ }
+ }
+
+ /**
+ * Handle deposit request from player
+ * @param player The player
+ * @param value The amount to deposit
+ */
+ public static void handleATMDeposit(Player player, int value) {
+ Onset.print("Request to deposit money="+value);
+ Inventory inventory = InventoryManager.getMainInventory(player);;
+ Account account = WorldManager.getPlayerAccount(player);
+ if(inventory.getCashAmount() < value) {
+ Onset.print("Player don't have the cash required on him amount="+inventory.getCashAmount());
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_on_me"));
+ return;
+ }
+
+ // Add the bank money and save the player
+ inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), value);
+ account.setBankMoney(account.getBankMoney() + value);
+ WorldManager.savePlayer(player);
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.atm.success_deposit", String.valueOf(value)));
+ }
+
+ /**
+ * Withdraw money from the bank account
+ * @param player The player
+ * @param value The amount to withdraw
+ */
+ public static void handleATMWithdraw(Player player, int value) {
+ Onset.print("Request to deposit money="+value);
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account.getBankMoney() < value) {
+ Onset.print("Player don't have the cash required in bank amount="+inventory.getCashAmount());
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_in_bank"));
+ return;
+ }
+
+ // Add the bank money and save the player
+ InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, value, false);
+ account.setBankMoney(account.getBankMoney() - value);
+ WorldManager.savePlayer(player);
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.atm.success_withdraw", String.valueOf(value)));
+ }
+
+ public static void handleATMGetInfos(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Inventory inventory = InventoryManager.getMainInventory(player);;
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetBankCashAmount(account.getBankMoney(), inventory.getCashAmount())));
+ }
+
+ public static void removeCashFromBank(Player player, int amount) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(amount > account.getBankMoney()) return;
+ account.setBankMoney(account.getBankMoney() - amount);
+ WorldManager.savePlayer(player);
+ }
+}
diff --git a/src/main/java/fr/yuki/yrpf/manager/AccountManager.java b/src/main/java/fr/yuki/yrpf/manager/AccountManager.java
new file mode 100644
index 0000000..838b1e0
--- /dev/null
+++ b/src/main/java/fr/yuki/yrpf/manager/AccountManager.java
@@ -0,0 +1,19 @@
+package fr.yuki.yrpf.manager;
+
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.model.AccountJobWhitelist;
+import lombok.Getter;
+import net.onfirenetwork.onsetjava.Onset;
+
+import java.sql.SQLException;
+import java.util.List;
+
+public class AccountManager {
+ @Getter
+ private static List accountJobWhitelists;
+
+ public static void init() throws SQLException {
+ accountJobWhitelists = Repo.get(AccountJobWhitelist.class).all();
+ Onset.print("Loaded " + accountJobWhitelists.size() + " account job whitelist(s) from database");
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/CharacterManager.java b/src/main/java/fr/yuki/yrpf/manager/CharacterManager.java
similarity index 88%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/CharacterManager.java
rename to src/main/java/fr/yuki/yrpf/manager/CharacterManager.java
index 353c86c..3d34df1 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/CharacterManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/CharacterManager.java
@@ -1,309 +1,302 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterStyle;
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.net.payload.AddToastPayload;
-import fr.yuki.YukiRPFramework.net.payload.RequestThrowItemPayload;
-import fr.yuki.YukiRPFramework.net.payload.SetFoodPayload;
-import fr.yuki.YukiRPFramework.net.payload.StyleSavePartPayload;
-import fr.yuki.YukiRPFramework.ui.GenericMenu;
-import fr.yuki.YukiRPFramework.ui.GenericMenuItem;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Location;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.stream.Collectors;
-
-public class CharacterManager {
-
- private static HashMap characterStates;
-
- public static void init() {
- characterStates = new HashMap();
-
- // Decrease food
- Onset.timer(60000 * 2, () -> {
- for(Player player : Onset.getPlayers()) {
- if(WorldManager.getPlayerAccount(player) == null) continue;
- applyFoodChange(player, -1);
- }
- });
-
- // Decrease drink
- Onset.timer(40000 * 2, () -> {
- for(Player player : Onset.getPlayers()) {
- if(WorldManager.getPlayerAccount(player) == null) continue;
- applyDrinkChange(player, -1);
- }
- });
- }
-
- public static void applyFoodChange(Player player, int value) {
- Account account = WorldManager.getPlayerAccount(player);
- if(account == null) return;
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.isDead()) return;
- account.setFoodState(account.getFoodState() + value);
- if(account.getFoodState() < 0) account.setFoodState(0);
- if(account.getFoodState() > 100) account.setFoodState(100);
- refreshFood(player);
- if(account.getFoodState() <= 0) {
- player.setHealth(player.getHealth() - 1);
- }
- }
-
- public static void applyDrinkChange(Player player, int value) {
- Account account = WorldManager.getPlayerAccount(player);
- if(account == null) return;
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.isDead()) return;
- account.setDrinkState(account.getDrinkState() + value);
- if(account.getDrinkState() < 0) account.setDrinkState(0);
- if(account.getDrinkState() > 100) account.setDrinkState(100);
- refreshFood(player);
- if(account.getDrinkState() <= 0) {
- player.setHealth(player.getHealth() - 1);
- }
- }
-
- public static CharacterState getCharacterStateByPlayer(Player player) {
- if(!characterStates.containsKey(player.getSteamId())) return null;
- return characterStates.get(player.getSteamId());
- }
-
- /**
- * Save part of the player style
- * @param player The player
- * @param payload The payload
- */
- public static void handleStyleSavePart(Player player, StyleSavePartPayload payload) {
- Onset.print("Update style player part="+ payload.getPartType() + " value=" + payload.getValue());
- Account account = WorldManager.getPlayerAccount(player);
- CharacterStyle characterStyle = account.decodeCharacterStyle();
- switch (payload.getPartType()) {
- case "gender":
- characterStyle.setGender(payload.getValue());
- break;
-
- case "body":
- characterStyle.setBody(payload.getValue());
- break;
-
- case "hair":
- characterStyle.setHair(payload.getValue());
- break;
-
- case "hair_color":
- characterStyle.setHairColor(payload.getValue());
- break;
-
- case "top":
- characterStyle.setTop(payload.getValue());
- break;
-
- case "pant":
- characterStyle.setPant(payload.getValue());
- break;
-
- case "shoes":
- characterStyle.setShoes(payload.getValue());
- break;
-
- case "name":
- account.setCharacterName(payload.getValue());
- String msg = WorldManager.getServerConfig().getWelcomeMessage();
- msg = msg.replace("%name%", account.getCharacterName());
- Onset.broadcast("" + msg + ">");
- break;
- }
- account.setCharacterStyle(characterStyle);
- account.setOriginalStyle(new Gson().toJson(characterStyle));
- WorldManager.savePlayer(player);
- }
-
- public static void handleCharacterCustomDone(Player player, String type) {
- Account account = WorldManager.getPlayerAccount(player);
- CharacterStyle characterStyle = account.decodeCharacterStyle();
- characterStyle.attachStyleToPlayer(player);
-
- player.setName(account.getCharacterName());
- player.setProperty("characterName", account.getCharacterName(), true);
- account.setCharacterCreationRequest(0);
- WorldManager.savePlayer(player);
- if(type.equals("character")) {
- UIStateManager.handleUIToogle(player, "customCharacter");
- } else {
- UIStateManager.handleUIToogle(player, "customOutfit");
- }
- }
-
- /**
- * Freeze/Unfreeze a player
- * @param player The player
- * @param freeze Freeze state
- */
- public static void setCharacterFreeze(Player player, boolean freeze) {
- if(freeze) {
- player.callRemoteEvent("Character:FreezePlayer");
- } else {
- player.callRemoteEvent("Character:UnFreezePlayer");
- }
- }
-
- public static void onPlayerDeath(Player player, Player killer) {
- // Update state
- CharacterState characterState = getCharacterStateByPlayer(player);
- characterState.setDead(true);
- setCharacterFreeze(player, true);
-
- if(characterState.getCurrentBag() != null) {
- characterState.unattachBag(player);
- return;
- }
-
- // Update account
- Account account = WorldManager.getPlayerAccount(player);
- account.setIsDead(1);
- try {
- AccountDAO.updateAccount(account, null);
- } catch (Exception ex) {
- Onset.print("Can't save account: " + ex.toString());
- }
- player.setSpawnLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()), 0);
- UIStateManager.handleUIToogle(player, "death");
- player.setRespawnTime(WorldManager.getServerConfig().getDeathRespawnDelay());
-
- Inventory inventory = InventoryManager.getMainInventory(player);
- for(InventoryItem inventoryItem : inventory.getInventoryItems().stream().collect(Collectors.toList())) {
- if(inventoryItem.getTemplate().getId() == Integer.parseInt(ItemTemplateEnum.VKEY.id)) continue;
- RequestThrowItemPayload throwItemPayload = new RequestThrowItemPayload();
- throwItemPayload.setId(inventoryItem.getId());
- throwItemPayload.setQuantity(inventoryItem.getAmount());
- InventoryManager.handleThrowItem(player, throwItemPayload);
- }
- WeaponManager.clearWeapons(player);
- }
-
- public static void onPlayerSpawn(Player player) {
- if(CharacterManager.getCharacterStateByPlayer(player) == null) {
- Onset.print("No state found for " + player.getSteamId());
- CharacterManager.getCharacterStates().put(player.getSteamId(), new CharacterState());
- }
-
- CharacterState characterState = getCharacterStateByPlayer(player);
- if(characterState.isFirstSpawn()) {
- characterState.setFirstSpawn(false);
- Onset.print("First spawn for player");
- } else {
- Account account = WorldManager.getPlayerAccount(player);
- if(account != null) {
- if(account.getIsDead() == 1) {
- UIStateManager.handleUIToogle(player, "death");
- account.setIsDead(0);
- CharacterManager.setCharacterFreeze(player, false);
- Onset.print("Player respawned after death");
- //UIStateManager.sendNotification(player, ToastTypeEnum.WARN,
- // "Après un moment a l'hôpital vous êtes sortis du coma, vous avez du mal à vous rappeler des derniers événements");
- teleportWithLevelLoading(player, new Location(WorldManager.getServerConfig().getDeathRespawnX(),
- WorldManager.getServerConfig().getDeathRespawnY(),
- WorldManager.getServerConfig().getDeathRespawnZ() + 50,
- WorldManager.getServerConfig().getDeathRespawnH()));
- characterState.setDead(false);
- WorldManager.savePlayer(player);
- }
- setCharacterStyle(player);
- }
- }
- }
-
- public static void refreshFood(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- if(account == null) return;
-
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetFoodPayload(account.getFoodState(),
- account.getDrinkState())));
- }
-
- public static void setCharacterStyle(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- account.decodeCharacterStyle().attachStyleToPlayer(player);
- player.setProperty("characterName", account.getCharacterName(), true);
- player.setName(account.getCharacterName());
- }
-
- public static void teleportWithLevelLoading(Player player, Location location) {
- player.setLocationAndHeading(location);
- player.callRemoteEvent("Game:TriggerLoadLevel");
- Onset.delay(150, () -> {
- player.callRemoteEvent("Game:TriggerLoadLevel");
- player.setLocationAndHeading(location);
- player.callRemoteEvent("Game:TriggerLoadLevel");
- });
- }
-
- public static void handleCharacterInteract(Player player) {
- Player nearestPlayer = WorldManager.getNearestPlayer(player);
- //nearestPlayer = player; // Temp test
- if(nearestPlayer == null) return;
- if(nearestPlayer.getLocation().distance(player.getLocation()) < 200) {
- // Build generic menu
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- GenericMenu genericMenu = new GenericMenu(player);
- genericMenu.getItems().add(new GenericMenuItem("Fouiller la personne", "window.CallEvent(\"RemoteCallInterface\"," +
- " \"Character:InspectCharacter\", \"" + nearestPlayer.getId() + "\");"));
- genericMenu.getItems().add(new GenericMenuItem("Donner les clés de la maison", "window.CallEvent(\"RemoteCallInterface\"," +
- " \"Character:GiveHouseKey\", \"" + nearestPlayer.getId() + "\");"));
- genericMenu.addCloseItem();
- genericMenu.show();
- characterState.setCurrentGenericMenu(genericMenu);
- }
- }
-
- public static HashMap getCharacterStates() {
- return characterStates;
- }
-
- public static void handleGenericMenuDismiss(Player player) {
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- if(characterState.getCurrentGenericMenu() != null) {
- characterState.getCurrentGenericMenu().hide();
- characterState.setCurrentGenericMenu(null);
- }
- }
-
- public static void handleInspectCharacter(Player player, int inspectPlayerId) {
- handleGenericMenuDismiss(player); // Close generic menu
-
- Player target = Onset.getPlayer(inspectPlayerId);
- if(target == null) return;
- CharacterState targetState = CharacterManager.getCharacterStateByPlayer(target);
- if(!targetState.isCuffed()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "La personne n'est pas fouillable");
- return;
- }
- Account account = WorldManager.getPlayerAccount(player);
-
- // Display items
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- GenericMenu genericMenu = new GenericMenu(player);
- Inventory inventory = InventoryManager.getMainInventory(target);
- for(InventoryItem item : inventory.getInventoryItems()) {
- String itemName = I18n.t(account.getLang(), "item.name." + item.getTemplateId());
- genericMenu.getItems().add(new GenericMenuItem("x" + item.getAmount() + " " + itemName, ""));
- }
- genericMenu.addCloseItem();
- genericMenu.show();
- characterState.setCurrentGenericMenu(genericMenu);
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterStyle;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.net.payload.RequestThrowItemPayload;
+import fr.yuki.yrpf.net.payload.SetFoodPayload;
+import fr.yuki.yrpf.net.payload.StyleSavePartPayload;
+import fr.yuki.yrpf.ui.GenericMenu;
+import fr.yuki.yrpf.ui.GenericMenuItem;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Location;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.HashMap;
+import java.util.stream.Collectors;
+
+public class CharacterManager {
+
+ private static HashMap characterStates;
+
+ public static void init() {
+ characterStates = new HashMap();
+
+ // Decrease food
+ Onset.timer(60000 * 2, () -> {
+ for(Player player : Onset.getPlayers()) {
+ if(WorldManager.getPlayerAccount(player) == null) continue;
+ applyFoodChange(player, -1);
+ }
+ });
+
+ // Decrease drink
+ Onset.timer(40000 * 2, () -> {
+ for(Player player : Onset.getPlayers()) {
+ if(WorldManager.getPlayerAccount(player) == null) continue;
+ applyDrinkChange(player, -1);
+ }
+ });
+ }
+
+ public static void applyFoodChange(Player player, int value) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account == null) return;
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.isDead()) return;
+ account.setFoodState(account.getFoodState() + value);
+ if(account.getFoodState() < 0) account.setFoodState(0);
+ if(account.getFoodState() > 100) account.setFoodState(100);
+ refreshFood(player);
+ if(account.getFoodState() <= 0) {
+ player.setHealth(player.getHealth() - 1);
+ }
+ }
+
+ public static void applyDrinkChange(Player player, int value) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account == null) return;
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.isDead()) return;
+ account.setDrinkState(account.getDrinkState() + value);
+ if(account.getDrinkState() < 0) account.setDrinkState(0);
+ if(account.getDrinkState() > 100) account.setDrinkState(100);
+ refreshFood(player);
+ if(account.getDrinkState() <= 0) {
+ player.setHealth(player.getHealth() - 1);
+ }
+ }
+
+ public static CharacterState getCharacterStateByPlayer(Player player) {
+ if(!characterStates.containsKey(player.getSteamId())) return null;
+ return characterStates.get(player.getSteamId());
+ }
+
+ /**
+ * Save part of the player style
+ * @param player The player
+ * @param payload The payload
+ */
+ public static void handleStyleSavePart(Player player, StyleSavePartPayload payload) {
+ Onset.print("Update style player part="+ payload.getPartType() + " value=" + payload.getValue());
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterStyle characterStyle = account.decodeCharacterStyle();
+ switch (payload.getPartType()) {
+ case "gender":
+ characterStyle.setGender(payload.getValue());
+ break;
+
+ case "body":
+ characterStyle.setBody(payload.getValue());
+ break;
+
+ case "hair":
+ characterStyle.setHair(payload.getValue());
+ break;
+
+ case "hair_color":
+ characterStyle.setHairColor(payload.getValue());
+ break;
+
+ case "top":
+ characterStyle.setTop(payload.getValue());
+ break;
+
+ case "pant":
+ characterStyle.setPant(payload.getValue());
+ break;
+
+ case "shoes":
+ characterStyle.setShoes(payload.getValue());
+ break;
+
+ case "name":
+ account.setCharacterName(payload.getValue());
+ String msg = WorldManager.getServerConfig().getWelcomeMessage();
+ msg = msg.replace("%name%", account.getCharacterName());
+ Onset.broadcast("" + msg + ">");
+ break;
+ }
+ account.setCharacterStyle(characterStyle);
+ account.setOriginalStyle(new Gson().toJson(characterStyle));
+ WorldManager.savePlayer(player);
+ }
+
+ public static void handleCharacterCustomDone(Player player, String type) {
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterStyle characterStyle = account.decodeCharacterStyle();
+ characterStyle.attachStyleToPlayer(player);
+
+ player.setName(account.getCharacterName());
+ player.setProperty("characterName", account.getCharacterName(), true);
+ account.setCharacterCreationRequest(true);
+ WorldManager.savePlayer(player);
+ if(type.equals("character")) {
+ UIStateManager.handleUIToogle(player, "customCharacter");
+ } else {
+ UIStateManager.handleUIToogle(player, "customOutfit");
+ }
+ }
+
+ /**
+ * Freeze/Unfreeze a player
+ * @param player The player
+ * @param freeze Freeze state
+ */
+ public static void setCharacterFreeze(Player player, boolean freeze) {
+ if(freeze) {
+ player.callRemoteEvent("Character:FreezePlayer");
+ } else {
+ player.callRemoteEvent("Character:UnFreezePlayer");
+ }
+ }
+
+ public static void onPlayerDeath(Player player, Player killer) {
+ // Update state
+ CharacterState characterState = getCharacterStateByPlayer(player);
+ characterState.setDead(true);
+ setCharacterFreeze(player, true);
+
+ if(characterState.getCurrentBag() != null) {
+ characterState.unattachBag(player);
+ return;
+ }
+
+ // Update account
+ Account account = WorldManager.getPlayerAccount(player);
+ account.setDead(true);
+ account.save();
+ player.setSpawnLocation(new Vector(account.getSaveX(), account.getSaveY(), account.getSaveZ()), 0);
+ UIStateManager.handleUIToogle(player, "death");
+ player.setRespawnTime(WorldManager.getServerConfig().getDeathRespawnDelay());
+
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ for(InventoryItem inventoryItem : inventory.getInventoryItems().stream().collect(Collectors.toList())) {
+ if(inventoryItem.getTemplate().getId() == Integer.parseInt(ItemTemplateEnum.VKEY.id)) continue;
+ RequestThrowItemPayload throwItemPayload = new RequestThrowItemPayload();
+ throwItemPayload.setId(inventoryItem.getId());
+ throwItemPayload.setQuantity(inventoryItem.getAmount());
+ InventoryManager.handleThrowItem(player, throwItemPayload);
+ }
+ WeaponManager.clearWeapons(player);
+ }
+
+ public static void onPlayerSpawn(Player player) {
+ if(CharacterManager.getCharacterStateByPlayer(player) == null) {
+ Onset.print("No state found for " + player.getSteamId());
+ CharacterManager.getCharacterStates().put(player.getSteamId(), new CharacterState());
+ }
+
+ CharacterState characterState = getCharacterStateByPlayer(player);
+ if(characterState.isFirstSpawn()) {
+ characterState.setFirstSpawn(false);
+ Onset.print("First spawn for player");
+ } else {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account != null) {
+ if(account.isDead()) {
+ UIStateManager.handleUIToogle(player, "death");
+ account.setDead(false);
+ CharacterManager.setCharacterFreeze(player, false);
+ Onset.print("Player respawned after death");
+ //UIStateManager.sendNotification(player, ToastTypeEnum.WARN,
+ // "Après un moment a l'hôpital vous êtes sortis du coma, vous avez du mal à vous rappeler des derniers événements");
+ teleportWithLevelLoading(player, new Location(WorldManager.getServerConfig().getDeathRespawnX(),
+ WorldManager.getServerConfig().getDeathRespawnY(),
+ WorldManager.getServerConfig().getDeathRespawnZ() + 50,
+ WorldManager.getServerConfig().getDeathRespawnH()));
+ characterState.setDead(false);
+ WorldManager.savePlayer(player);
+ }
+ setCharacterStyle(player);
+ }
+ }
+ }
+
+ public static void refreshFood(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account == null) return;
+
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetFoodPayload(account.getFoodState(),
+ account.getDrinkState())));
+ }
+
+ public static void setCharacterStyle(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ account.decodeCharacterStyle().attachStyleToPlayer(player);
+ player.setProperty("characterName", account.getCharacterName(), true);
+ player.setName(account.getCharacterName());
+ }
+
+ public static void teleportWithLevelLoading(Player player, Location location) {
+ player.setLocationAndHeading(location);
+ player.callRemoteEvent("Game:TriggerLoadLevel");
+ Onset.delay(150, () -> {
+ player.callRemoteEvent("Game:TriggerLoadLevel");
+ player.setLocationAndHeading(location);
+ player.callRemoteEvent("Game:TriggerLoadLevel");
+ });
+ }
+
+ public static void handleCharacterInteract(Player player) {
+ Player nearestPlayer = WorldManager.getNearestPlayer(player);
+ //nearestPlayer = player; // Temp test
+ if(nearestPlayer == null) return;
+ if(nearestPlayer.getLocation().distance(player.getLocation()) < 200) {
+ // Build generic menu
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ GenericMenu genericMenu = new GenericMenu(player);
+ genericMenu.getItems().add(new GenericMenuItem("Fouiller la personne", "window.CallEvent(\"RemoteCallInterface\"," +
+ " \"Character:InspectCharacter\", \"" + nearestPlayer.getId() + "\");"));
+ genericMenu.getItems().add(new GenericMenuItem("Donner les clés de la maison", "window.CallEvent(\"RemoteCallInterface\"," +
+ " \"Character:GiveHouseKey\", \"" + nearestPlayer.getId() + "\");"));
+ genericMenu.addCloseItem();
+ genericMenu.show();
+ characterState.setCurrentGenericMenu(genericMenu);
+ }
+ }
+
+ public static HashMap getCharacterStates() {
+ return characterStates;
+ }
+
+ public static void handleGenericMenuDismiss(Player player) {
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ if(characterState.getCurrentGenericMenu() != null) {
+ characterState.getCurrentGenericMenu().hide();
+ characterState.setCurrentGenericMenu(null);
+ }
+ }
+
+ public static void handleInspectCharacter(Player player, int inspectPlayerId) {
+ handleGenericMenuDismiss(player); // Close generic menu
+
+ Player target = Onset.getPlayer(inspectPlayerId);
+ if(target == null) return;
+ CharacterState targetState = CharacterManager.getCharacterStateByPlayer(target);
+ if(!targetState.isCuffed()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "La personne n'est pas fouillable");
+ return;
+ }
+ Account account = WorldManager.getPlayerAccount(player);
+
+ // Display items
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ GenericMenu genericMenu = new GenericMenu(player);
+ Inventory inventory = InventoryManager.getMainInventory(target);
+ for(InventoryItem item : inventory.getInventoryItems()) {
+ String itemName = I18n.t(account.getLang(), "item.name." + item.getTemplateId());
+ genericMenu.getItems().add(new GenericMenuItem("x" + item.getAmount() + " " + itemName, ""));
+ }
+ genericMenu.addCloseItem();
+ genericMenu.show();
+ characterState.setCurrentGenericMenu(genericMenu);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/CompagnyManager.java b/src/main/java/fr/yuki/yrpf/manager/CompanyManager.java
similarity index 58%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/CompagnyManager.java
rename to src/main/java/fr/yuki/yrpf/manager/CompanyManager.java
index 08bfa26..0d7678c 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/CompagnyManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/CompanyManager.java
@@ -1,190 +1,179 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.dao.CompagnyDAO;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.Compagny;
-import fr.yuki.YukiRPFramework.net.payload.AddCompagnyEmployeePayload;
-import fr.yuki.YukiRPFramework.net.payload.ClearCompagnyEmployeesPayload;
-import fr.yuki.YukiRPFramework.net.payload.ClearPhoneUrgencyPayload;
-import fr.yuki.YukiRPFramework.net.payload.SetCompagnyPayload;
-import fr.yuki.YukiRPFramework.ui.GenericMenu;
-import fr.yuki.YukiRPFramework.ui.GenericMenuItem;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class CompagnyManager {
- public static ArrayList compagnies = new ArrayList<>();
-
- public static void init() throws SQLException {
- compagnies = CompagnyDAO.loadCompagnies();
- Onset.print("Loaded " + compagnies.size() + " compagnie(s) from the database");
- }
-
- public static Compagny getCompagnyById(int id) {
- return compagnies.stream().filter(x -> x.getId() == id).findFirst().orElse(null);
- }
-
- public static Compagny getCompagnyByName(String name) {
- return compagnies.stream().filter(x -> x.getName().equals(name)).findFirst().orElse(null);
- }
-
- public static void destroyCompagny() {
-
- }
-
- public static void handleCreateRequest(Player player, String name) throws SQLException {
- Account account = WorldManager.getPlayerAccount(player);
- if(account.getCompagnyId() != -1) return;
- if(getCompagnyByName(name.trim()) != null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Ce nom est déjà pris");
- return;
- }
- if(account.getBankMoney() < 10000) { // TODO: Put this in config
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Pas assez d'argent en banque");
- return;
- }
- ATMManager.removeCashFromBank(player, 10000);
- Compagny compagny = new Compagny();
- compagny.setName(name.trim());
- compagny.setBankCash(0);
- compagny.setOwner(player.getSteamId());
- compagny.setMaxMember(5);
- CompagnyDAO.insertCompagny(compagny);
- account.setCompagnyId(compagny.getId());
- WorldManager.savePlayer(player);
- compagnies.add(compagny);
- Onset.print("Compagny " + name + " created");
-
- refreshCompagny(player);
- }
-
- public static ArrayList getOnlineEmployees(Compagny compagny) {
- ArrayList players = new ArrayList<>();
- for(Player player : Onset.getPlayers()) {
- try {
- Account account = WorldManager.getPlayerAccount(player);
- if(account == null) continue;
- if(account.getCompagnyId() == compagny.getId()) players.add(player);
- } catch (Exception ex) {}
- }
- return players;
- }
-
- public static void refreshCompagny(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- if(account.getCompagnyId() == -1) { // No compagny
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
- -1, "", 0,0
- )));
- } else { // Has compagny
- Compagny compagny = getCompagnyById(account.getCompagnyId());
- if(compagny == null) { // Can't find the compagny
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
- -1, "", 0,0
- )));
- account.setCompagnyId(-1);
- try {
- AccountDAO.updateAccount(account, null);
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Votre entreprise n'existe plus");
- return;
- }
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
- compagny.getId(), compagny.getName(), compagny.isOwner(player) ? 1:0,compagny.getBankCash()
- )));
-
- // Refresh employees
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new ClearCompagnyEmployeesPayload()));
- for(Player employee : getOnlineEmployees(compagny)) {
- Account eAccount = WorldManager.getPlayerAccount(employee);
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddCompagnyEmployeePayload(
- employee.getSteamId(), eAccount.getCharacterName(), compagny.isOwner(employee) ? 1 : 0, true
- )));
- }
- }
- }
-
- public static void handleInviteEmployee(Player player, String phoneNumber) {
- Player invitedPlayer = WorldManager.getPlayerByPhoneNumber(phoneNumber);
- if(invitedPlayer == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Cette personne n'est pas en ligne ou n'existe pas");
- return;
- }
- Account account = WorldManager.getPlayerAccount(player);
- Compagny compagny = getCompagnyById(account.getCompagnyId());
- if(compagny == null) return;
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Invitation envoyée");
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(invitedPlayer);
- characterState.setCurrentCompagnyInvited(compagny.getId());
-
- // Build generic menu
- GenericMenu genericMenu = new GenericMenu(invitedPlayer);
- genericMenu.getItems().add(new GenericMenuItem("Voulez-vous rejoindre " + compagny.getName() + " ?", ""));
- genericMenu.getItems().add(new GenericMenuItem("Accepter", "window.CallEvent(\"RemoteCallInterface\", \"Compagny:AcceptInvitation\");"));
- genericMenu.getItems().add(new GenericMenuItem("Refuser", "window.CallEvent(\"RemoteCallInterface\", \"Compagny:DeclineInvitation\");"));
- genericMenu.show();
- characterState.setCurrentGenericMenu(genericMenu);
- }
-
- public static void handleAcceptInvitation(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- Compagny compagny = getCompagnyById(characterState.getCurrentCompagnyInvited());
- account.setCompagnyId(compagny.getId());
- WorldManager.savePlayer(player);
-
- // Reset invitation
- characterState.setCurrentCompagnyInvited(-1);
- if(characterState.getCurrentGenericMenu() != null) {
- characterState.getCurrentGenericMenu().hide();
- characterState.setCurrentGenericMenu(null);
- }
-
- for (Player employee : getOnlineEmployees(compagny)) {
- refreshCompagny(employee);
- UIStateManager.sendNotification(employee, ToastTypeEnum.SUCCESS, account.getCharacterName() + " fait désormais partie de l'entreprise");
- }
- }
-
- public static void handleDeclineInvitation(Player player) {
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
-
- // Reset invitation
- characterState.setCurrentCompagnyInvited(-1);
- if(characterState.getCurrentGenericMenu() != null) {
- characterState.getCurrentGenericMenu().hide();
- characterState.setCurrentGenericMenu(null);
- }
- }
-
- public static void handleKickEmployee(Player player, String steamid) {
- Account account = WorldManager.getPlayerAccount(player);
- Compagny compagny = getCompagnyById(account.getCompagnyId());
- if(!compagny.isOwner(player)) return;
- Player targetPlayer = WorldManager.findPlayerBySteamId(steamid);
- if(targetPlayer == null) return;
- Account targetAccount = WorldManager.getPlayerAccount(targetPlayer);
- if(targetAccount.getId() == account.getId() && compagny.isOwner(player)) {
- UIStateManager.sendNotification(targetPlayer, ToastTypeEnum.ERROR, "Action impossible, contactez un administrateur pour supprimer l'entreprise");
- return;
- }
- targetAccount.setCompagnyId(-1);
- WorldManager.savePlayer(targetPlayer);
-
- for (Player employee : getOnlineEmployees(compagny)) {
- refreshCompagny(employee);
- UIStateManager.sendNotification(employee, ToastTypeEnum.WARN, targetAccount.getCharacterName() + " fait désormais plus partie de l'entreprise");
- }
- UIStateManager.sendNotification(targetPlayer, ToastTypeEnum.ERROR, "Vous avez été licencier de l'entreprise " + compagny.getName());
- refreshCompagny(targetPlayer);
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.Company;
+import fr.yuki.yrpf.net.payload.AddCompagnyEmployeePayload;
+import fr.yuki.yrpf.net.payload.ClearCompagnyEmployeesPayload;
+import fr.yuki.yrpf.net.payload.SetCompagnyPayload;
+import fr.yuki.yrpf.ui.GenericMenu;
+import fr.yuki.yrpf.ui.GenericMenuItem;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CompanyManager {
+ public static List companies = new ArrayList<>();
+
+ public static void init() {
+ companies = Repo.get(Company.class).all();
+ Onset.print("Loaded " + companies.size() + " companies from the database");
+ }
+
+ public static Company getCompanyById(int id) {
+ return companies.stream().filter(x -> x.getId() == id).findFirst().orElse(null);
+ }
+
+ public static Company getCompanyByName(String name) {
+ return companies.stream().filter(x -> x.getName().equals(name)).findFirst().orElse(null);
+ }
+
+ public static void handleCreateRequest(Player player, String name) throws SQLException {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account.getCompanyId() != -1) return;
+ if(getCompanyByName(name.trim()) != null) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Ce nom est déjà pris");
+ return;
+ }
+ if(account.getBankMoney() < 10000) { // TODO: Put this in config
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Pas assez d'argent en banque");
+ return;
+ }
+ ATMManager.removeCashFromBank(player, 10000);
+ Company company = new Company();
+ company.setName(name.trim());
+ company.setOwner(player.getSteamId());
+ company.save();
+ account.setCompanyId(company.getId());
+ WorldManager.savePlayer(player);
+ companies.add(company);
+ Onset.print("Company " + name + " created");
+
+ refreshCompany(player);
+ }
+
+ public static ArrayList getOnlineEmployees(Company company) {
+ ArrayList players = new ArrayList<>();
+ for(Player player : Onset.getPlayers()) {
+ try {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account == null) continue;
+ if(account.getCompanyId() == company.getId()) players.add(player);
+ } catch (Exception ex) {}
+ }
+ return players;
+ }
+
+ public static void refreshCompany(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account.getCompanyId() == -1) { // No compagny
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
+ -1, "", 0,0
+ )));
+ } else { // Has compagny
+ Company company = getCompanyById(account.getCompanyId());
+ if(company == null) { // Can't find the compagny
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
+ -1, "", 0,0
+ )));
+ account.setCompanyId(-1);
+ account.save();
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Votre entreprise n'existe plus");
+ return;
+ }
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetCompagnyPayload(
+ company.getId(), company.getName(), company.isOwner(player) ? 1:0, company.getBankCash()
+ )));
+
+ // Refresh employees
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new ClearCompagnyEmployeesPayload()));
+ for(Player employee : getOnlineEmployees(company)) {
+ Account eAccount = WorldManager.getPlayerAccount(employee);
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddCompagnyEmployeePayload(
+ employee.getSteamId(), eAccount.getCharacterName(), company.isOwner(employee) ? 1 : 0, true
+ )));
+ }
+ }
+ }
+
+ public static void handleInviteEmployee(Player player, String phoneNumber) {
+ Player invitedPlayer = WorldManager.getPlayerByPhoneNumber(phoneNumber);
+ if(invitedPlayer == null) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, "Cette personne n'est pas en ligne ou n'existe pas");
+ return;
+ }
+ Account account = WorldManager.getPlayerAccount(player);
+ Company company = getCompanyById(account.getCompanyId());
+ if(company == null) return;
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Invitation envoyée");
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(invitedPlayer);
+ characterState.setCurrentCompagnyInvited(company.getId());
+
+ // Build generic menu
+ GenericMenu genericMenu = new GenericMenu(invitedPlayer);
+ genericMenu.getItems().add(new GenericMenuItem("Voulez-vous rejoindre " + company.getName() + " ?", ""));
+ genericMenu.getItems().add(new GenericMenuItem("Accepter", "window.CallEvent(\"RemoteCallInterface\", \"Compagny:AcceptInvitation\");"));
+ genericMenu.getItems().add(new GenericMenuItem("Refuser", "window.CallEvent(\"RemoteCallInterface\", \"Compagny:DeclineInvitation\");"));
+ genericMenu.show();
+ characterState.setCurrentGenericMenu(genericMenu);
+ }
+
+ public static void handleAcceptInvitation(Player player) {
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ Company company = getCompanyById(characterState.getCurrentCompagnyInvited());
+ account.setCompanyId(company.getId());
+ WorldManager.savePlayer(player);
+
+ // Reset invitation
+ characterState.setCurrentCompagnyInvited(-1);
+ if(characterState.getCurrentGenericMenu() != null) {
+ characterState.getCurrentGenericMenu().hide();
+ characterState.setCurrentGenericMenu(null);
+ }
+
+ for (Player employee : getOnlineEmployees(company)) {
+ refreshCompany(employee);
+ UIStateManager.sendNotification(employee, ToastTypeEnum.SUCCESS, account.getCharacterName() + " fait désormais partie de l'entreprise");
+ }
+ }
+
+ public static void handleDeclineInvitation(Player player) {
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+
+ // Reset invitation
+ characterState.setCurrentCompagnyInvited(-1);
+ if(characterState.getCurrentGenericMenu() != null) {
+ characterState.getCurrentGenericMenu().hide();
+ characterState.setCurrentGenericMenu(null);
+ }
+ }
+
+ public static void handleKickEmployee(Player player, String steamid) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Company company = getCompanyById(account.getCompanyId());
+ if(!company.isOwner(player)) return;
+ Player targetPlayer = WorldManager.findPlayerBySteamId(steamid);
+ if(targetPlayer == null) return;
+ Account targetAccount = WorldManager.getPlayerAccount(targetPlayer);
+ if(targetAccount.getId() == account.getId() && company.isOwner(player)) {
+ UIStateManager.sendNotification(targetPlayer, ToastTypeEnum.ERROR, "Action impossible, contactez un administrateur pour supprimer l'entreprise");
+ return;
+ }
+ targetAccount.setCompanyId(-1);
+ WorldManager.savePlayer(targetPlayer);
+
+ for (Player employee : getOnlineEmployees(company)) {
+ refreshCompany(employee);
+ UIStateManager.sendNotification(employee, ToastTypeEnum.WARN, targetAccount.getCharacterName() + " fait désormais plus partie de l'entreprise");
+ }
+ UIStateManager.sendNotification(targetPlayer, ToastTypeEnum.ERROR, "Vous avez été licencier de l'entreprise " + company.getName());
+ refreshCompany(targetPlayer);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/FuelManager.java b/src/main/java/fr/yuki/yrpf/manager/FuelManager.java
similarity index 82%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/FuelManager.java
rename to src/main/java/fr/yuki/yrpf/manager/FuelManager.java
index 852b895..fdbd0ee 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/FuelManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/FuelManager.java
@@ -1,96 +1,94 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.dao.FuelPointDAO;
-import fr.yuki.YukiRPFramework.model.FuelPoint;
-import fr.yuki.YukiRPFramework.model.Seller;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Pickup;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class FuelManager {
- private static ArrayList fuelPoints;
-
- public static void init() throws SQLException {
- fuelPoints = FuelPointDAO.loadFuelPoints();
- Onset.print("Loaded " + fuelPoints.size() + " fuel point(s) from the database");
- spawnFuelPoints();
-
- Onset.timer(30000, () -> { // 30 minutes
- for(Vehicle v : Onset.getVehicles()) {
- if(v.isEngineOn()) {
- if(v.getPropertyInt("fuel") > 0) {
- v.setProperty("fuel", v.getPropertyInt("fuel") - 1, true);
-
- if(v.getPropertyInt("fuel") <= 0) {
- if(v.isEngineOn()) {
- v.setEngineOn(false);
- }
- }
- } else {
- if(v.isEngineOn()) {
- v.setEngineOn(false);
- }
- }
- }
- }
- });
- }
-
- public static void spawnFuelPoints() {
- for(FuelPoint fuelPoint : fuelPoints) {
- Pickup pickup = Onset.getServer().createPickup(new Vector(fuelPoint.getX(), fuelPoint.getY(), fuelPoint.getZ()), 1);
- ModdingManager.assignCustomModel(pickup, 50008);
- }
- }
-
- public static FuelPoint getNearestFuelPoint(Player player) {
- for(FuelPoint fuelPoint : fuelPoints) {
- if(fuelPoint.isNear(player)) {
- return fuelPoint;
- }
- }
- return null;
- }
-
- public static boolean interactFuelPoint(Player player, boolean fake) {
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- if(!characterState.canInteract()) {
- return false;
- }
- if(player.getVehicle() != null) return false;
- if(!fake) {
- FuelPoint fuelPoint = getNearestFuelPoint(player);
- if(fuelPoint == null) return false;
- }
-
- Vehicle nearbyVehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(nearbyVehicle == null) return false;
- if(nearbyVehicle.getLocation().distance(player.getLocation()) > 300) return false;
- if(nearbyVehicle.getPropertyInt("fuel") >= 100) return false;
- CharacterManager.setCharacterFreeze(player, true);
- nearbyVehicle.setProperty("fuel", 0, true);
-
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 10000, 1,
- "sounds/water_fill.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(507, new Vector(5,10,-15),
- new Vector(0,90,0), new Vector(0.75, 0.75, 0.75), "hand_r"));
- characterLoopAnimation.start();
-
- // Put the object in the hand
- Onset.delay(10000, () -> {
- nearbyVehicle.setProperty("fuel", 100, true);
- CharacterManager.setCharacterFreeze(player, false);
- characterLoopAnimation.stop();
- });
- return true;
- }
-}
+package fr.yuki.yrpf.manager;
+
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.model.FuelPoint;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Pickup;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.util.List;
+
+public class FuelManager {
+ private static List fuelPoints;
+
+ public static void init() {
+ fuelPoints = Repo.get(FuelPoint.class).all();
+ Onset.print("Loaded " + fuelPoints.size() + " fuel point(s) from the database");
+ spawnFuelPoints();
+
+ Onset.timer(30000, () -> { // 30 minutes
+ for(Vehicle v : Onset.getVehicles()) {
+ if(v.isEngineOn()) {
+ if(v.getPropertyInt("fuel") > 0) {
+ v.setProperty("fuel", v.getPropertyInt("fuel") - 1, true);
+
+ if(v.getPropertyInt("fuel") <= 0) {
+ if(v.isEngineOn()) {
+ v.setEngineOn(false);
+ }
+ }
+ } else {
+ if(v.isEngineOn()) {
+ v.setEngineOn(false);
+ }
+ }
+ }
+ }
+ });
+ }
+
+ public static void spawnFuelPoints() {
+ for(FuelPoint fuelPoint : fuelPoints) {
+ Pickup pickup = Onset.getServer().createPickup(new Vector(fuelPoint.getX(), fuelPoint.getY(), fuelPoint.getZ()), 1);
+ ModdingManager.assignCustomModel(pickup, 50008);
+ }
+ }
+
+ public static FuelPoint getNearestFuelPoint(Player player) {
+ for(FuelPoint fuelPoint : fuelPoints) {
+ if(fuelPoint.isNear(player)) {
+ return fuelPoint;
+ }
+ }
+ return null;
+ }
+
+ public static boolean interactFuelPoint(Player player, boolean fake) {
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ if(!characterState.canInteract()) {
+ return false;
+ }
+ if(player.getVehicle() != null) return false;
+ if(!fake) {
+ FuelPoint fuelPoint = getNearestFuelPoint(player);
+ if(fuelPoint == null) return false;
+ }
+
+ Vehicle nearbyVehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(nearbyVehicle == null) return false;
+ if(nearbyVehicle.getLocation().distance(player.getLocation()) > 300) return false;
+ if(nearbyVehicle.getPropertyInt("fuel") >= 100) return false;
+ CharacterManager.setCharacterFreeze(player, true);
+ nearbyVehicle.setProperty("fuel", 0, true);
+
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 10000, 1,
+ "sounds/water_fill.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(507, new Vector(5,10,-15),
+ new Vector(0,90,0), new Vector(0.75, 0.75, 0.75), "hand_r"));
+ characterLoopAnimation.start();
+
+ // Put the object in the hand
+ Onset.delay(10000, () -> {
+ nearbyVehicle.setProperty("fuel", 100, true);
+ CharacterManager.setCharacterFreeze(player, false);
+ characterLoopAnimation.stop();
+ });
+ return true;
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/GarageManager.java b/src/main/java/fr/yuki/yrpf/manager/GarageManager.java
similarity index 90%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/GarageManager.java
rename to src/main/java/fr/yuki/yrpf/manager/GarageManager.java
index c8cb4b4..fe101e4 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/GarageManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/GarageManager.java
@@ -1,259 +1,257 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.dao.GarageDAO;
-import fr.yuki.YukiRPFramework.dao.VehicleGarageDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.model.*;
-import fr.yuki.YukiRPFramework.net.payload.*;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Color;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.stream.Collectors;
-
-public class GarageManager {
-
- private static ArrayList vehicleGarages;
-
- public static void init() throws SQLException {
- vehicleGarages = VehicleGarageDAO.loadVehiclesGarage();
- Onset.print("Loaded " + vehicleGarages.size() + " vehicle(s) from the database");
-
- // Reset last garage to vehicle
- for(VehicleGarage vehicleGarage : vehicleGarages) {
- vehicleGarage.setGarageId(vehicleGarage.getGarageLastId());
- VehicleGarageDAO.saveVehicleGarage(vehicleGarage);
- }
- }
-
- /**
- * Check if the player is near a garage to interact with
- * @param player The player
- */
- public static boolean handleGarageInteract(Player player) {
- for(Garage garage : WorldManager.getGarages()) {
- if(garage.isNear(player)) {
- openGarage(player, garage);
- return true;
- }
- }
- return false;
- }
-
- public static Garage getNearestGarage(Player player) {
- for(Garage garage : WorldManager.getGarages()) {
- if(garage.isNear(player)) {
- return garage;
- }
- }
- return null;
- }
-
- public static Garage getNearestFromPosGarage(Player player) {
- Garage nearest = null;
- double distance = 999999999;
- for(Garage garage : WorldManager.getGarages()) {
- double d = player.getLocation().distance(new Vector(garage.getX(), garage.getY(), garage.getZ()));
- if(d < distance) {
- nearest = garage;
- distance = d;
- }
- }
- return nearest;
- }
-
- /**
- * Open the garage to the player
- * @param player The player
- * @param garage The garage to open
- */
- public static void openGarage(Player player, Garage garage) {
- if(player.getVehicle() != null) {
- storeVehicleInGarage(player, garage);
- return;
- }
-
- UIStateManager.handleUIToogle(player, "garage");
- Onset.print("Request garage open player=" + player.getSteamId() + " garageId=" + garage.getId() + " name=" + garage.getName());
-
- // Reset the garage first
- player.callRemoteEvent("GlobalUI:DispatchToUI",
- new Gson().toJson(new ResetVehicleGaragePayload()));
-
- // Send vehicles to players
- for(VehicleGarage vehicleGarage : getVehicleGaragesByPlayer(player, garage.getId())) {
- player.callRemoteEvent("GlobalUI:DispatchToUI",
- new Gson().toJson(new AddVehicleGaragePayload(vehicleGarage.getModelId(), vehicleGarage.getUuid(),
- vehicleGarage.getColor(), vehicleGarage.getLicencePlate())));
- }
- }
-
- /**
- * Store the vehicle in the garage
- * @param player The player
- * @param garage The garage to store
- */
- public static void storeVehicleInGarage(Player player, Garage garage) {
- Account account = WorldManager.getPlayerAccount(player);
- Vehicle vehicle = player.getVehicle();
- if(!vehicle.getPropertyString("owner").equals(player.getSteamId())){
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.not_owner_vehicle"));
- return;
- }
- // Exit the player from the vehicle
- player.exitVehicle();
-
- // Update the vehicle instance
- VehicleGarage vehicleGarage = vehicleGarages.stream().filter(x -> x.getUuid().equals(vehicle.getPropertyString("uuid")))
- .findFirst().orElse(null);
- if(vehicleGarage == null || vehicleGarage.isRental()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.not_owner_vehicle"));
- return;
- }
- vehicleGarage.setGarageId(garage.getId());
- vehicleGarage.setGarageLastId(garage.getId());
- vehicleGarage.computeDamages(vehicle);
- VehicleManager.clearKeysForVehicle(vehicle, player);
- vehicleGarage.save();
-
- // Destroy the vehicle
- vehicle.destroy();
-
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.garage.vehicle_stored", garage.getName()));
- }
-
- /**
- * Get all the vehicles in a specific garage for a player
- * @param player The player
- * @param garageId The garage id
- * @return All players vehicle in the garage given
- */
- public static ArrayList getVehicleGaragesByPlayer(Player player, int garageId) {
- return new ArrayList<>(vehicleGarages.stream().filter(x -> x.getOwner() == WorldManager.getPlayerAccount(player).getId() && x.getGarageId() == garageId)
- .collect(Collectors.toList()));
- }
-
- public static VehicleGarage findVehicleGarageByVehicle(Vehicle vehicle) {
- return vehicleGarages.stream().filter(x -> x.getUuid() == vehicle.getPropertyString("uuid")).findFirst().orElse(null);
- }
-
- /**
- * Handle the vehicle request from the player on the garage
- * @param player The player
- */
- public static void handleRequestVehicle(Player player, String vehicleUuid) {
- Account account = WorldManager.getPlayerAccount(player);
- Garage garage = getNearestGarage(player);
- if(garage == null) {
- UIStateManager.handleUIToogle(player, "garage");
- return;
- }
- VehicleGarage vehicleGarage = getVehicleGaragesByPlayer(player, garage.getId()).stream()
- .filter(x -> x.getUuid().equals(vehicleUuid)).findFirst().orElse(null);
- if(vehicleGarage == null) return;
-
- if(VehicleManager.getNearestVehicle(player.getLocation()) != null) {
- if(VehicleManager.getNearestVehicle(player.getLocation()).getLocation().distance(player.getLocation()) < 400) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.vehicle_block_spawn"));
- return;
- }
- }
-
- UIStateManager.handleUIToogle(player, "garage");
- vehicleGarage.setGarageId(-1);
- vehicleGarage.setGarageLastId(garage.getId());
- VehicleManager.CreateVehicleResult createVehicleResult = VehicleManager.createVehicle(vehicleGarage.getModelId(),
- new Vector(garage.getX(), garage.getY(), garage.getZ()), player.getLocationAndHeading().getHeading(),
- player, vehicleGarage, false);
- vehicleGarage.applyDamages(createVehicleResult.getVehicle());
- vehicleGarage.save();
- }
-
- public static ArrayList getVehicleGarages() {
- return vehicleGarages;
- }
-
- public static boolean handleVSellerInteract(Player player) {
- for(VehicleSeller vehicleSeller : WorldManager.getVehicleSellers()) {
- if(vehicleSeller.isNear(player)) {
- openVehicleSeller(player, vehicleSeller);
- return true;
- }
- }
- return false;
- }
-
- public static VehicleSeller getNearVehicleSeller(Player player) {
- for(VehicleSeller vehicleSeller : WorldManager.getVehicleSellers()) {
- if(vehicleSeller.isNear(player)) {
- return vehicleSeller;
- }
- }
- return null;
- }
-
- public static void openVehicleSeller(Player player, VehicleSeller vehicleSeller) {
- UIStateManager.handleUIToogle(player, "vseller");
- for(SellListItem sellListItem : vehicleSeller.getSellList()) {
- player.callRemoteEvent("GlobalUI:DispatchToUI",
- new Gson().toJson(new AddVSellerVehiclePayload(sellListItem.getModelId(), sellListItem.getPrice(),
- sellListItem.getName(), sellListItem.getDescription())));
- }
- }
-
- public static void handleRequestBuyVehicle(Player player, RequestBuyVehiclePayload payload) {
- Account account = WorldManager.getPlayerAccount(player);
-
- if(player.getVehicle() != null) {
- UIStateManager.handleUIToogle(player, "vseller");
- return;
- }
-
- VehicleSeller vehicleSeller = getNearVehicleSeller(player);
- if(vehicleSeller == null) {
- UIStateManager.handleUIToogle(player, "vseller");
- return;
- }
- SellListItem sellListItem = vehicleSeller.getSellList().stream().filter(x -> x.getModelId() == payload.getModelId()).findFirst().orElse(null);
- if(sellListItem == null) return;
-
- Vector spawnPoint = new Vector(vehicleSeller.getsX(), vehicleSeller.getsY(), vehicleSeller.getsZ());
- if(VehicleManager.getNearestVehicle(player.getLocation()) != null) {
- if(VehicleManager.getNearestVehicle(spawnPoint).getLocation().distance(spawnPoint) < 400) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.vehicle_block_spawn"));
- return;
- }
- }
-
- // Check price
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getCashAmount() < sellListItem.getPrice()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_on_me"));
- UIStateManager.handleUIToogle(player, "vseller");
- return;
- }
-
- UIStateManager.handleUIToogle(player, "vseller");
-
- // Remove cash and spawn vehicle
- Garage nearestGarage = getNearestFromPosGarage(player);
- inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), sellListItem.getPrice());
- VehicleManager.CreateVehicleResult createVehicleResult = VehicleManager.createVehicle(sellListItem.getModelId(), spawnPoint, vehicleSeller.getH(),
- player, null, false);
- createVehicleResult.getVehicleGarage().setColor(payload.getColor());
- createVehicleResult.getVehicleGarage().setGarageLastId(nearestGarage.getId());
- createVehicleResult.getVehicleGarage().save();
- createVehicleResult.getVehicle().setColor(new Color(payload.getAWTColor().getRed(), payload.getAWTColor().getGreen(), payload.getAWTColor().getBlue()));
-
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS,
- I18n.t(account.getLang(), "toast.vseller.success_buy_vehicle", sellListItem.getName(), String.valueOf(sellListItem.getPrice())));
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.model.*;
+import fr.yuki.yrpf.net.payload.*;
+import lombok.Getter;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Color;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class GarageManager {
+
+ @Getter
+ private static List vehicleGarages;
+
+ public static void init() throws SQLException {
+ vehicleGarages = Repo.get(VehicleGarage.class).all();
+ Onset.print("Loaded " + vehicleGarages.size() + " vehicle(s) from the database");
+
+ // Reset last garage to vehicle
+ for(VehicleGarage vehicleGarage : vehicleGarages) {
+ vehicleGarage.setGarageId(vehicleGarage.getGarageLastId());
+ vehicleGarage.save();
+ }
+ }
+
+ /**
+ * Check if the player is near a garage to interact with
+ * @param player The player
+ */
+ public static boolean handleGarageInteract(Player player) {
+ for(Garage garage : WorldManager.getGarages()) {
+ if(garage.isNear(player)) {
+ openGarage(player, garage);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static Garage getNearestGarage(Player player) {
+ for(Garage garage : WorldManager.getGarages()) {
+ if(garage.isNear(player)) {
+ return garage;
+ }
+ }
+ return null;
+ }
+
+ public static Garage getNearestFromPosGarage(Player player) {
+ Garage nearest = null;
+ double distance = 999999999;
+ for(Garage garage : WorldManager.getGarages()) {
+ double d = player.getLocation().distance(new Vector(garage.getX(), garage.getY(), garage.getZ()));
+ if(d < distance) {
+ nearest = garage;
+ distance = d;
+ }
+ }
+ return nearest;
+ }
+
+ /**
+ * Open the garage to the player
+ * @param player The player
+ * @param garage The garage to open
+ */
+ public static void openGarage(Player player, Garage garage) {
+ if(player.getVehicle() != null) {
+ storeVehicleInGarage(player, garage);
+ return;
+ }
+
+ UIStateManager.handleUIToogle(player, "garage");
+ Onset.print("Request garage open player=" + player.getSteamId() + " garageId=" + garage.getId() + " name=" + garage.getName());
+
+ // Reset the garage first
+ player.callRemoteEvent("GlobalUI:DispatchToUI",
+ new Gson().toJson(new ResetVehicleGaragePayload()));
+
+ // Send vehicles to players
+ for(VehicleGarage vehicleGarage : getVehicleGaragesByPlayer(player, garage.getId())) {
+ player.callRemoteEvent("GlobalUI:DispatchToUI",
+ new Gson().toJson(new AddVehicleGaragePayload(vehicleGarage.getModelId(), vehicleGarage.getUuid(),
+ vehicleGarage.getColor(), vehicleGarage.getLicencePlate())));
+ }
+ }
+
+ /**
+ * Store the vehicle in the garage
+ * @param player The player
+ * @param garage The garage to store
+ */
+ public static void storeVehicleInGarage(Player player, Garage garage) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Vehicle vehicle = player.getVehicle();
+ if(!vehicle.getPropertyString("owner").equals(player.getSteamId())){
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.not_owner_vehicle"));
+ return;
+ }
+ // Exit the player from the vehicle
+ player.exitVehicle();
+
+ // Update the vehicle instance
+ VehicleGarage vehicleGarage = vehicleGarages.stream().filter(x -> x.getUuid().equals(vehicle.getPropertyString("uuid")))
+ .findFirst().orElse(null);
+ if(vehicleGarage == null || vehicleGarage.isRental()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.not_owner_vehicle"));
+ return;
+ }
+ vehicleGarage.setGarageId(garage.getId());
+ vehicleGarage.setGarageLastId(garage.getId());
+ vehicleGarage.computeDamages(vehicle);
+ VehicleManager.clearKeysForVehicle(vehicle, player);
+ vehicleGarage.save();
+
+ // Destroy the vehicle
+ vehicle.destroy();
+
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.garage.vehicle_stored", garage.getName()));
+ }
+
+ /**
+ * Get all the vehicles in a specific garage for a player
+ * @param player The player
+ * @param garageId The garage id
+ * @return All players vehicle in the garage given
+ */
+ public static ArrayList getVehicleGaragesByPlayer(Player player, int garageId) {
+ return new ArrayList<>(vehicleGarages.stream().filter(x -> x.getOwner() == WorldManager.getPlayerAccount(player).getId() && x.getGarageId() == garageId)
+ .collect(Collectors.toList()));
+ }
+
+ public static VehicleGarage findVehicleGarageByVehicle(Vehicle vehicle) {
+ return vehicleGarages.stream().filter(x -> x.getUuid() == vehicle.getPropertyString("uuid")).findFirst().orElse(null);
+ }
+
+ /**
+ * Handle the vehicle request from the player on the garage
+ * @param player The player
+ */
+ public static void handleRequestVehicle(Player player, String vehicleUuid) {
+ Account account = WorldManager.getPlayerAccount(player);
+ Garage garage = getNearestGarage(player);
+ if(garage == null) {
+ UIStateManager.handleUIToogle(player, "garage");
+ return;
+ }
+ VehicleGarage vehicleGarage = getVehicleGaragesByPlayer(player, garage.getId()).stream()
+ .filter(x -> x.getUuid().equals(vehicleUuid)).findFirst().orElse(null);
+ if(vehicleGarage == null) return;
+
+ if(VehicleManager.getNearestVehicle(player.getLocation()) != null) {
+ if(VehicleManager.getNearestVehicle(player.getLocation()).getLocation().distance(player.getLocation()) < 400) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.vehicle_block_spawn"));
+ return;
+ }
+ }
+
+ UIStateManager.handleUIToogle(player, "garage");
+ vehicleGarage.setGarageId(-1);
+ vehicleGarage.setGarageLastId(garage.getId());
+ VehicleManager.CreateVehicleResult createVehicleResult = VehicleManager.createVehicle(vehicleGarage.getModelId(),
+ new Vector(garage.getX(), garage.getY(), garage.getZ()), player.getLocationAndHeading().getHeading(),
+ player, vehicleGarage, false);
+ vehicleGarage.applyDamages(createVehicleResult.getVehicle());
+ vehicleGarage.save();
+ }
+
+ public static boolean handleVSellerInteract(Player player) {
+ for(VehicleSeller vehicleSeller : WorldManager.getVehicleSellers()) {
+ if(vehicleSeller.isNear(player)) {
+ openVehicleSeller(player, vehicleSeller);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static VehicleSeller getNearVehicleSeller(Player player) {
+ for(VehicleSeller vehicleSeller : WorldManager.getVehicleSellers()) {
+ if(vehicleSeller.isNear(player)) {
+ return vehicleSeller;
+ }
+ }
+ return null;
+ }
+
+ public static void openVehicleSeller(Player player, VehicleSeller vehicleSeller) {
+ UIStateManager.handleUIToogle(player, "vseller");
+ for(SellListItem sellListItem : vehicleSeller.getSellList()) {
+ player.callRemoteEvent("GlobalUI:DispatchToUI",
+ new Gson().toJson(new AddVSellerVehiclePayload(sellListItem.getModelId(), sellListItem.getPrice(),
+ sellListItem.getName(), sellListItem.getDescription())));
+ }
+ }
+
+ public static void handleRequestBuyVehicle(Player player, RequestBuyVehiclePayload payload) {
+ Account account = WorldManager.getPlayerAccount(player);
+
+ if(player.getVehicle() != null) {
+ UIStateManager.handleUIToogle(player, "vseller");
+ return;
+ }
+
+ VehicleSeller vehicleSeller = getNearVehicleSeller(player);
+ if(vehicleSeller == null) {
+ UIStateManager.handleUIToogle(player, "vseller");
+ return;
+ }
+ SellListItem sellListItem = vehicleSeller.getSellList().stream().filter(x -> x.getModelId() == payload.getModelId()).findFirst().orElse(null);
+ if(sellListItem == null) return;
+
+ Vector spawnPoint = vehicleSeller.getSpawnLocation();
+ if(VehicleManager.getNearestVehicle(player.getLocation()) != null) {
+ if(VehicleManager.getNearestVehicle(spawnPoint).getLocation().distance(spawnPoint) < 400) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.vehicle_block_spawn"));
+ return;
+ }
+ }
+
+ // Check price
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getCashAmount() < sellListItem.getPrice()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.atm.no_enought_money_on_me"));
+ UIStateManager.handleUIToogle(player, "vseller");
+ return;
+ }
+
+ UIStateManager.handleUIToogle(player, "vseller");
+
+ // Remove cash and spawn vehicle
+ Garage nearestGarage = getNearestFromPosGarage(player);
+ inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), sellListItem.getPrice());
+ VehicleManager.CreateVehicleResult createVehicleResult = VehicleManager.createVehicle(sellListItem.getModelId(), spawnPoint, vehicleSeller.getH(),
+ player, null, false);
+ createVehicleResult.getVehicleGarage().setColor(payload.getColor());
+ createVehicleResult.getVehicleGarage().setGarageLastId(nearestGarage.getId());
+ createVehicleResult.getVehicleGarage().save();
+ createVehicleResult.getVehicle().setColor(new Color(payload.getAWTColor().getRed(), payload.getAWTColor().getGreen(), payload.getAWTColor().getBlue()));
+
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS,
+ I18n.t(account.getLang(), "toast.vseller.success_buy_vehicle", sellListItem.getName(), String.valueOf(sellListItem.getPrice())));
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/GrowboxManager.java b/src/main/java/fr/yuki/yrpf/manager/GrowboxManager.java
similarity index 84%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/GrowboxManager.java
rename to src/main/java/fr/yuki/yrpf/manager/GrowboxManager.java
index 3230d42..0f30e36 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/GrowboxManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/GrowboxManager.java
@@ -1,154 +1,150 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import fr.yuki.YukiRPFramework.dao.GrowboxDAO;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.job.tools.Generator;
-import fr.yuki.YukiRPFramework.job.tools.GrowBox;
-import fr.yuki.YukiRPFramework.model.GrowboxModel;
-import fr.yuki.YukiRPFramework.model.JobTool;
-import fr.yuki.YukiRPFramework.net.payload.GrowboxFillWaterPotPayload;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.stream.Collectors;
-
-public class GrowboxManager {
- public static void init() throws SQLException {
- // Load growboxes
- for(GrowboxModel growboxModel : GrowboxDAO.loadGrowbox()) {
- JobTool jobTool = new JobTool();
- jobTool.setId(-1);
- jobTool.setModelId(50007);
- jobTool.setName("GrowBox");
- jobTool.setJobType("WEED");
- jobTool.setLevelRequired(1);
- jobTool.setReward(0);
- jobTool.setX(growboxModel.getX());
- jobTool.setY(growboxModel.getY());
- jobTool.setZ(growboxModel.getZ());
- jobTool.setRx(growboxModel.getRx());
- jobTool.setRy(growboxModel.getRy());
- jobTool.setRz(growboxModel.getRz());
- jobTool.setSx(1);
- jobTool.setSy(1);
- jobTool.setSz(1);
- jobTool.setJobToolType("GROWBOX");
- ((GrowBox)jobTool.getJobToolHandler()).setGrowboxModel(growboxModel);
- JobManager.getJobTools().add(jobTool);
- jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED));
- }
-
- Onset.timer(10000, () -> {
- tickGrow();
- });
-
- Onset.timer(20000, () -> {
- tickGenerator();
- });
- }
-
- public static void tickGrow() {
- try {
- for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("growbox"))
- .collect(Collectors.toList())) {
- try {
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.tickGrow();
- }catch (Exception ex) {
- ex.printStackTrace();
- Onset.print("Can't tick single grow: " + ex.toString());
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- Onset.print("Can't tick grow: " + ex.toString());
- }
- }
-
- public static void tickGenerator() {
- try {
- for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
- .collect(Collectors.toList())) {
- try {
- Generator generator = (Generator) jobTool.getJobToolHandler();
- generator.tickFuel();
- } catch (Exception ex) {
- ex.printStackTrace();
- Onset.print("Can't tick single generator: " + ex.toString());
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();;
- Onset.print("Can't tick generator: " + ex.toString());
- }
- }
-
- public static Generator getGeneratorNearby(Vector position, int distance) {
- for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
- .collect(Collectors.toList())) {
- Generator generator = (Generator)jobTool.getJobToolHandler();
- if(new Vector(jobTool.getX(), jobTool.getY(), jobTool.getZ()).distance(position) <= distance) {
- return generator;
- }
- }
- return null;
- }
-
- public static Generator getGeneratorOnNearby(Vector position, int distance) {
- for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
- .collect(Collectors.toList())) {
- Generator generator = (Generator)jobTool.getJobToolHandler();
- if(generator.isOn()) {
- if(new Vector(jobTool.getX(), jobTool.getY(), jobTool.getZ()).distance(position) <= distance) {
- return generator;
- }
- }
- }
- return null;
- }
-
- public static void handleGrowboxFillWaterPot(Player player, GrowboxFillWaterPotPayload payload) {
- JobTool jobTool = JobManager.getJobTools().stream().filter
- (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
- if(jobTool == null) return;
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.fillPotWater(player, payload.getPotId());
- }
-
- public static void handleGrowboxFillSeedPot(Player player, GrowboxFillWaterPotPayload payload) {
- JobTool jobTool = JobManager.getJobTools().stream().filter
- (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
- if(jobTool == null) return;
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.fillPotSeed(player, payload.getPotId());
- }
-
- public static void handleGrowboxHarvestRequest(Player player, GrowboxFillWaterPotPayload payload) {
- JobTool jobTool = JobManager.getJobTools().stream().filter
- (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
- if(jobTool == null) return;
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.harvestPot(player, payload.getPotId());
- }
-
- public static void handleGrowboxTakePotRequest(Player player, GrowboxFillWaterPotPayload payload) {
- JobTool jobTool = JobManager.getJobTools().stream().filter
- (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
- if(jobTool == null) return;
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.takePot(player, payload.getPotId());
- }
-
- public static void handleGrowboxDestroy(Player player, String growboxId) {
- JobTool jobTool = JobManager.getJobTools().stream().filter
- (x -> x.getUuid().equals(growboxId)).findFirst().orElse(null);
- if(jobTool == null) return;
- GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
- growBox.destroy(player);
- }
-}
+package fr.yuki.yrpf.manager;
+
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.job.tools.Generator;
+import fr.yuki.yrpf.job.tools.GrowBox;
+import fr.yuki.yrpf.model.GrowboxModel;
+import fr.yuki.yrpf.model.JobTool;
+import fr.yuki.yrpf.net.payload.GrowboxFillWaterPotPayload;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.util.stream.Collectors;
+
+public class GrowboxManager {
+ public static void init() {
+ // Load growboxes
+ for(GrowboxModel growboxModel : Repo.get(GrowboxModel.class).all()) {
+ JobTool jobTool = new JobTool();
+ jobTool.setId(-1);
+ jobTool.setModelId(50007);
+ jobTool.setName("GrowBox");
+ jobTool.setJobType("WEED");
+ jobTool.setLevelRequired(1);
+ jobTool.setReward(0);
+ jobTool.setX(growboxModel.getX());
+ jobTool.setY(growboxModel.getY());
+ jobTool.setZ(growboxModel.getZ());
+ jobTool.setRX(growboxModel.getRx());
+ jobTool.setRY(growboxModel.getRy());
+ jobTool.setRY(growboxModel.getRz());
+ jobTool.setSX(1);
+ jobTool.setSY(1);
+ jobTool.setSZ(1);
+ jobTool.setJobToolType("GROWBOX");
+ ((GrowBox)jobTool.getJobToolHandler()).setGrowboxModel(growboxModel);
+ JobManager.getJobTools().add(jobTool);
+ jobTool.spawn(JobManager.getJobs().get(JobEnum.WEED));
+ }
+
+ Onset.timer(10000, () -> {
+ tickGrow();
+ });
+
+ Onset.timer(20000, () -> {
+ tickGenerator();
+ });
+ }
+
+ public static void tickGrow() {
+ try {
+ for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("growbox"))
+ .collect(Collectors.toList())) {
+ try {
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.tickGrow();
+ }catch (Exception ex) {
+ ex.printStackTrace();
+ Onset.print("Can't tick single grow: " + ex.toString());
+ }
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ Onset.print("Can't tick grow: " + ex.toString());
+ }
+ }
+
+ public static void tickGenerator() {
+ try {
+ for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
+ .collect(Collectors.toList())) {
+ try {
+ Generator generator = (Generator) jobTool.getJobToolHandler();
+ generator.tickFuel();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ Onset.print("Can't tick single generator: " + ex.toString());
+ }
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();;
+ Onset.print("Can't tick generator: " + ex.toString());
+ }
+ }
+
+ public static Generator getGeneratorNearby(Vector position, int distance) {
+ for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
+ .collect(Collectors.toList())) {
+ Generator generator = (Generator)jobTool.getJobToolHandler();
+ if(new Vector(jobTool.getX(), jobTool.getY(), jobTool.getZ()).distance(position) <= distance) {
+ return generator;
+ }
+ }
+ return null;
+ }
+
+ public static Generator getGeneratorOnNearby(Vector position, int distance) {
+ for(JobTool jobTool : JobManager.getJobTools().stream().filter(x -> x.getJobToolType().toLowerCase().equals("generator"))
+ .collect(Collectors.toList())) {
+ Generator generator = (Generator)jobTool.getJobToolHandler();
+ if(generator.isOn()) {
+ if(new Vector(jobTool.getX(), jobTool.getY(), jobTool.getZ()).distance(position) <= distance) {
+ return generator;
+ }
+ }
+ }
+ return null;
+ }
+
+ public static void handleGrowboxFillWaterPot(Player player, GrowboxFillWaterPotPayload payload) {
+ JobTool jobTool = JobManager.getJobTools().stream().filter
+ (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
+ if(jobTool == null) return;
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.fillPotWater(player, payload.getPotId());
+ }
+
+ public static void handleGrowboxFillSeedPot(Player player, GrowboxFillWaterPotPayload payload) {
+ JobTool jobTool = JobManager.getJobTools().stream().filter
+ (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
+ if(jobTool == null) return;
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.fillPotSeed(player, payload.getPotId());
+ }
+
+ public static void handleGrowboxHarvestRequest(Player player, GrowboxFillWaterPotPayload payload) {
+ JobTool jobTool = JobManager.getJobTools().stream().filter
+ (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
+ if(jobTool == null) return;
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.harvestPot(player, payload.getPotId());
+ }
+
+ public static void handleGrowboxTakePotRequest(Player player, GrowboxFillWaterPotPayload payload) {
+ JobTool jobTool = JobManager.getJobTools().stream().filter
+ (x -> x.getUuid().equals(payload.getGrowboxId())).findFirst().orElse(null);
+ if(jobTool == null) return;
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.takePot(player, payload.getPotId());
+ }
+
+ public static void handleGrowboxDestroy(Player player, String growboxId) {
+ JobTool jobTool = JobManager.getJobTools().stream().filter
+ (x -> x.getUuid().equals(growboxId)).findFirst().orElse(null);
+ if(jobTool == null) return;
+ GrowBox growBox = (GrowBox)jobTool.getJobToolHandler();
+ growBox.destroy(player);
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/HouseManager.java b/src/main/java/fr/yuki/yrpf/manager/HouseManager.java
similarity index 72%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/HouseManager.java
rename to src/main/java/fr/yuki/yrpf/manager/HouseManager.java
index bad3111..8ccff5e 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/HouseManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/HouseManager.java
@@ -1,183 +1,171 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.dao.AccountDAO;
-import fr.yuki.YukiRPFramework.dao.HouseDAO;
-import fr.yuki.YukiRPFramework.dao.HouseItemDAO;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.job.JobConfig;
-import fr.yuki.YukiRPFramework.job.JobSpawn;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.placementObject.GenericPlacementInstance;
-import fr.yuki.YukiRPFramework.model.*;
-import fr.yuki.YukiRPFramework.net.payload.AddPhoneMessagePayload;
-import fr.yuki.YukiRPFramework.net.payload.SetHouseInfosPayload;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Door;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.io.File;
-import java.io.FileReader;
-import java.sql.SQLException;
-import java.util.ArrayList;
-
-public class HouseManager {
- public static ArrayList houses;
- public static ArrayList itemShopObjects;
-
- public static void init() throws SQLException {
- houses = HouseDAO.loadHouses();
- Onset.print("Loaded " + houses.size() + " house(s) from the database");
-
- loadItemsShop();
- spawnHouseItems();
- }
-
- private static void loadItemsShop() {
- try {
- new File("yrpf").mkdir();
- itemShopObjects = new Gson().fromJson(new FileReader("yrpf/itemshop.json"), new TypeToken>(){}.getType());
- Onset.print("Loaded " + itemShopObjects.size() + " item(s) shop from the cache");
- } catch (Exception e) {
- Onset.print("Can't load job cache: " + e.toString());
- }
- }
-
- public static void spawnHouseItems() throws SQLException {
- for(HouseItemObject houseItemObject : HouseItemDAO.loadHouseItems()) {
- House house = getHouseAtLocation(houseItemObject.getPosition());
- if(house == null) {
- Onset.print("Can't find the house for item: " + houseItemObject.getId());
- return;
- }
- houseItemObject.setHouse(house);
- house.getHouseItemObjects().add(houseItemObject);
- houseItemObject.spawn();
- }
- }
-
- public static House getHouseAtLocation(Vector position) {
- return houses.stream().filter(x -> x.getLine3D().isInside(position)).findFirst().orElse(null);
- }
-
- public static void handleHouseMenu(Player player, Vector origin) {
- House house = getHouseAtLocation(origin);
- if(house == null) return;
- Account account = WorldManager.getPlayerAccount(player);
- if(house.getAccountId() != -1) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.already_buy"));
- return;
- }
- if(!UIStateManager.handleUIToogle(player, "houseBuy")) {
- return;
- }
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetHouseInfosPayload
- (house.getPrice(), house.getName())));
- }
-
- public static void handleBuyHouseRequest(Player player) throws SQLException {
- House house = HouseManager.getHouseAtLocation(player.getLocation());
- if(house == null) {
- Onset.print("houseid by door: " + house.getId());
- house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
- }
- else {
- Onset.print("houseid by playerloc: " + house.getId());
- }
- if(house == null) return;
- Account account = WorldManager.getPlayerAccount(player);
- if(house.getAccountId() != -1) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.already_buy"));
- return;
- }
- Inventory inventory = InventoryManager.getMainInventory(player);
- if(inventory.getCashAmount() < house.getPrice()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
- return;
- }
-
- // Open doors
- for(Door door : house.getLine3D().getDoorsInside()) {
- door.open();
- }
- inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), house.getPrice());
- house.setAccountId(account.getId());
- HouseDAO.saveHouse(house);
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.house.success_buy"));
- UIStateManager.handleUIToogle(player, "houseBuy");
- }
-
- public static void handleRequestBuyItemShop(Player player, int modelId) {
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- if(characterState.getCurrentObjectPlacementInstance() != null) return;
- if(characterState.getWearableWorldObject() != null) return;
- Account account = WorldManager.getPlayerAccount(player);
-
- Inventory inventory = InventoryManager.getMainInventory(player);
- ItemShopObject itemShopObject = itemShopObjects.stream().filter(x -> x.getModelId() == modelId).findFirst().orElse(null);
- if(itemShopObject == null) return;
- if(itemShopObject.getPrice() > inventory.getCashAmount()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
- return;
- }
-
- UIStateManager.handleUIToogle(player, "phone");
- ObjectPlacementInstance objectPlacementInstance = new GenericPlacementInstance(player.getLocation(), modelId, itemShopObject.getPrice());
- characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
- objectPlacementInstance.spawn();
- objectPlacementInstance.setEditableBy(player);
- }
-
- public static void handleGiveHouseKey(Player player, int target) {
- Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == target)
- .findFirst().orElse(null);
- if(playerTarget == null) return;
- House house = HouseManager.getHouseAtLocation(player.getLocation());
- if(house == null) return;
- if(!HouseManager.canBuildInHouse(player, house)) return;
- Account targetAccount = WorldManager.getPlayerAccount(playerTarget);
- if(house.getAllowedPlayers().contains(targetAccount) || playerTarget.getId() == house.getAccountId()) return;
- house.getAllowedPlayers().add(targetAccount.getId());
- UIStateManager.sendNotification(playerTarget, ToastTypeEnum.SUCCESS, "Vous avez désormais les clés de la maison");
- }
-
- public static boolean canBuildInHouse(Player player, House house) {
- try {
- Account account = WorldManager.getPlayerAccount(player);
- if(account.getId() == house.getAccountId()) {
- return true;
- }
- if(house.getAllowedPlayers().contains(account.getId())) {
- return true;
- }
-
- // Check same compagny
- if(account.getCompagnyId() != -1) {
- Account ownerAccount = AccountDAO.findAccountById(house.getAccountId());
- if(ownerAccount != null) {
- if(account.getCompagnyId() == ownerAccount.getCompagnyId()) {
- return true;
- }
- }
- }
- } catch (SQLException throwables) {
- throwables.printStackTrace();
- }
-
- return false;
- }
-
- public static ArrayList getHouses() {
- return houses;
- }
-
- public static ArrayList getItemShopObjects() {
- return itemShopObjects;
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.placementObject.GenericPlacementInstance;
+import fr.yuki.yrpf.model.*;
+import fr.yuki.yrpf.net.payload.SetHouseInfosPayload;
+import lombok.Getter;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Door;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.io.File;
+import java.io.FileReader;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class HouseManager {
+ @Getter
+ public static List houses;
+ @Getter
+ public static List itemShopObjects;
+
+ public static void init() throws SQLException {
+ houses = Repo.get(House.class).all();
+ Onset.print("Loaded " + houses.size() + " house(s) from the database");
+
+ loadItemsShop();
+ spawnHouseItems();
+ }
+
+ private static void loadItemsShop() {
+ try {
+ new File("yrpf").mkdir();
+ itemShopObjects = new Gson().fromJson(new FileReader("yrpf/itemshop.json"), new TypeToken>(){}.getType());
+ Onset.print("Loaded " + itemShopObjects.size() + " item(s) shop from the cache");
+ } catch (Exception e) {
+ Onset.print("Can't load job cache: " + e.toString());
+ }
+ }
+
+ public static void spawnHouseItems() {
+ for(HouseItemObject houseItemObject : Repo.get(HouseItemObject.class).all()) {
+ House house = getHouseAtLocation(houseItemObject.getPosition());
+ if(house == null) {
+ Onset.print("Can't find the house for item: " + houseItemObject.getId());
+ return;
+ }
+ houseItemObject.setHouse(house);
+ house.getHouseItemObjects().add(houseItemObject);
+ houseItemObject.spawn();
+ }
+ }
+
+ public static House getHouseAtLocation(Vector position) {
+ return houses.stream().filter(x -> x.getLine3D().isInside(position)).findFirst().orElse(null);
+ }
+
+ public static void handleHouseMenu(Player player, Vector origin) {
+ House house = getHouseAtLocation(origin);
+ if(house == null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+ if(house.getAccountId() != -1) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.already_buy"));
+ return;
+ }
+ if(!UIStateManager.handleUIToogle(player, "houseBuy")) {
+ return;
+ }
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new SetHouseInfosPayload
+ (house.getPrice(), house.getName())));
+ }
+
+ public static void handleBuyHouseRequest(Player player) throws SQLException {
+ House house = HouseManager.getHouseAtLocation(player.getLocation());
+ if(house == null) {
+ Onset.print("houseid by door: " + house.getId());
+ house = HouseManager.getHouseAtLocation(WorldManager.getNearestDoor(player.getLocation()).getLocation());
+ }
+ else {
+ Onset.print("houseid by playerloc: " + house.getId());
+ }
+ if(house == null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+ if(house.getAccountId() != -1) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.already_buy"));
+ return;
+ }
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ if(inventory.getCashAmount() < house.getPrice()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
+ return;
+ }
+
+ // Open doors
+ for(Door door : house.getLine3D().getDoorsInside()) {
+ door.open();
+ }
+ inventory.removeItem(inventory.getItemByType(ItemTemplateEnum.CASH.id), house.getPrice());
+ house.setAccountId(account.getId());
+ house.save();
+ UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.house.success_buy"));
+ UIStateManager.handleUIToogle(player, "houseBuy");
+ }
+
+ public static void handleRequestBuyItemShop(Player player, int modelId) {
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ if(characterState.getCurrentObjectPlacementInstance() != null) return;
+ if(characterState.getWearableWorldObject() != null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ ItemShopObject itemShopObject = itemShopObjects.stream().filter(x -> x.getModelId() == modelId).findFirst().orElse(null);
+ if(itemShopObject == null) return;
+ if(itemShopObject.getPrice() > inventory.getCashAmount()) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.house.no_enought_money_on_me"));
+ return;
+ }
+
+ UIStateManager.handleUIToogle(player, "phone");
+ ObjectPlacementInstance objectPlacementInstance = new GenericPlacementInstance(player.getLocation(), modelId, itemShopObject.getPrice());
+ characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
+ objectPlacementInstance.spawn();
+ objectPlacementInstance.setEditableBy(player);
+ }
+
+ public static void handleGiveHouseKey(Player player, int target) {
+ Player playerTarget = Onset.getPlayers().stream().filter(x -> x.getId() == target)
+ .findFirst().orElse(null);
+ if(playerTarget == null) return;
+ House house = HouseManager.getHouseAtLocation(player.getLocation());
+ if(house == null) return;
+ if(!HouseManager.canBuildInHouse(player, house)) return;
+ Account targetAccount = WorldManager.getPlayerAccount(playerTarget);
+ if(house.getAllowedPlayers().contains(targetAccount) || playerTarget.getId() == house.getAccountId()) return;
+ house.getAllowedPlayers().add(targetAccount.getId());
+ UIStateManager.sendNotification(playerTarget, ToastTypeEnum.SUCCESS, "Vous avez désormais les clés de la maison");
+ }
+
+ public static boolean canBuildInHouse(Player player, House house) {
+ Account account = WorldManager.getPlayerAccount(player);
+ if(account.getId() == house.getAccountId()) {
+ return true;
+ }
+ if(house.getAllowedPlayers().contains(account.getId())) {
+ return true;
+ }
+
+ // Check same compagny
+ if(account.getCompanyId() != -1) {
+ Account ownerAccount = Repo.get(Account.class).get(house.getAccountId());
+ if(ownerAccount != null) {
+ if(account.getCompanyId() == ownerAccount.getCompanyId()) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/InventoryManager.java b/src/main/java/fr/yuki/yrpf/manager/InventoryManager.java
similarity index 80%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/InventoryManager.java
rename to src/main/java/fr/yuki/yrpf/manager/InventoryManager.java
index 9e1016b..bd4f0f0 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/InventoryManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/InventoryManager.java
@@ -1,160 +1,157 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.dao.InventoryDAO;
-import fr.yuki.YukiRPFramework.dao.ItemTemplateDAO;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.GroundItem;
-import fr.yuki.YukiRPFramework.model.ItemTemplate;
-import fr.yuki.YukiRPFramework.net.payload.RemoteItemInventoryPayload;
-import fr.yuki.YukiRPFramework.net.payload.RequestInventoryContentPayload;
-import fr.yuki.YukiRPFramework.net.payload.RequestThrowItemPayload;
-import fr.yuki.YukiRPFramework.utils.Basic;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-
-import java.sql.SQLException;
-import java.util.*;
-
-public class InventoryManager {
- private static HashMap itemTemplates;
- private static HashMap inventories;
-
- public static void init() throws SQLException {
- itemTemplates = ItemTemplateDAO.getItemTemplates();
- Onset.print("Loaded " + itemTemplates.size() + " item template(s) from the database");
-
- inventories = InventoryDAO.loadInventories();
- Onset.print("Loaded " + inventories.size() + " inventorie(s) from the database");
- }
-
- /**
- * Find a inventory by the id
- * @param id The inventory id
- * @return The inventory
- */
- public static Inventory getInventoryById(int id) {
- if(!inventories.containsKey(id)) return null;
- return inventories.get(id);
- }
-
- /**
- * Get all inventories for the player
- * @param accountId The account id
- * @return All inventories of the player
- */
- public static ArrayList getInventoriesForAccount(int accountId) {
- ArrayList playerInventories = new ArrayList<>();
- for(Map.Entry inventoryEntry : inventories.entrySet()) {
- try {
- if(accountId == inventoryEntry.getValue().getCharacterId()) {
- playerInventories.add(inventoryEntry.getValue());
- }
- }catch (Exception ex) {}
- }
- return playerInventories;
- }
-
- /**
- * Try to add the item to the player inventory, this function check the weight
- * @param player The player
- * @param templateId The template id
- * @param quantity The quantity
- * @return The fresh or existing item
- */
- public static InventoryItem addItemToPlayer(Player player, String templateId, int quantity, boolean checkWeight) {
- Onset.print("Add item=" + templateId + " to size=" + getInventoriesForAccount(player.getPropertyInt("accountId")).size());
- Inventory inventory = getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
- InventoryItem inventoryItem = new InventoryItem();
- inventoryItem.setId(UUID.randomUUID().toString());
- inventoryItem.setTemplateId(templateId);
- inventoryItem.setAmount(quantity);
- inventoryItem.setExtraProperties(new HashMap<>());
-
- Account account = WorldManager.getPlayerAccount(player);
- if(checkWeight) {
- if(!checkInventoryWeight(player, inventoryItem)) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.inventory.no_space_left"));
- return null;
- }
- }
- inventoryItem = inventory.addItem(inventoryItem);
- inventory.save();
- Onset.print("Inventory weight is now " + inventory.getCurrentWeight() + "/" + inventory.getMaxWeight());
- return inventoryItem;
- }
-
- public static Inventory getMainInventory(Player player) {
- return getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
- }
-
- /**
- * Check if the item can fit in the inventory
- * @param player The player
- * @param inventoryItem The item to fit
- * @return If the weight is ok
- */
- public static boolean checkInventoryWeight(Player player, InventoryItem inventoryItem) {
- Inventory inventory = getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
- if(inventory.getCurrentWeight() + (inventoryItem.getTemplate().getWeight() * inventoryItem.getAmount()) > inventory.getMaxWeight()) {
- return false;
- }
- return true;
- }
-
- /**
- * The client request the inventory content
- * @param player The player
- * @param payload The inventory type
- */
- public static void handleRequestContent(Player player, RequestInventoryContentPayload payload) {
- Onset.print("Request inventory type="+payload.getType());
- switch (payload.getType()) {
- case "main":
- getInventoriesForAccount(player.getPropertyInt("accountId")).get(0)
- .sendInventoryContent(player);
- break;
- }
- }
-
- public static void handleThrowItem(Player player, RequestThrowItemPayload payload) {
- Onset.print("Player request to throw a item id=" + payload.getId() + " quantity=" + payload.getQuantity());
- if(payload.getQuantity() <= 0) return;
- Inventory inventory = getMainInventory(player);
- InventoryItem sourceItem = inventory.getItem(payload.getId());
- if(sourceItem == null) return;
- if(payload.getQuantity() > sourceItem.getAmount()) return;
-
- InventoryItem inventoryItem = sourceItem;
- if(payload.getQuantity() < sourceItem.getAmount()) {
- inventoryItem = sourceItem.copy();
- inventoryItem.setAmount(payload.getQuantity());
- sourceItem.setAmount(sourceItem.getAmount() - payload.getQuantity());
- inventory.updateItemPlayerView(sourceItem);
- } else {
- inventory.getInventoryItems().remove(sourceItem);
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new RemoteItemInventoryPayload(sourceItem.getId())));
- }
-
- GroundItem groundItem = new GroundItem(inventoryItem, payload.getQuantity(),
- new Vector(player.getLocation().getX() + Basic.randomNumber(-150, 150),
- player.getLocation().getY() + Basic.randomNumber(-150, 150),
- player.getLocation().getZ()));
- WorldManager.getGroundItems().add(groundItem);
- InventoryManager.getMainInventory(player).save();
- inventory.updateWeightView();
- }
-
- public static HashMap getItemTemplates() {
- return itemTemplates;
- }
-
- public static HashMap getInventories() {
- return inventories;
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.GroundItem;
+import fr.yuki.yrpf.model.ItemTemplate;
+import fr.yuki.yrpf.net.payload.RemoteItemInventoryPayload;
+import fr.yuki.yrpf.net.payload.RequestInventoryContentPayload;
+import fr.yuki.yrpf.net.payload.RequestThrowItemPayload;
+import fr.yuki.yrpf.utils.Basic;
+import lombok.Getter;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+
+import java.sql.SQLException;
+import java.util.*;
+
+public class InventoryManager {
+ @Getter
+ private static Map itemTemplates;
+ @Getter
+ private static Map inventories;
+
+ public static void init() throws SQLException {
+ itemTemplates = new HashMap<>();
+ Repo.get(ItemTemplate.class).all().forEach(it -> itemTemplates.put(it.getId(), it));
+ Onset.print("Loaded " + itemTemplates.size() + " item template(s) from the database");
+
+ inventories = new HashMap<>();
+ Repo.get(Inventory.class).all().forEach(it -> inventories.put(it.getId(), it));
+ Onset.print("Loaded " + inventories.size() + " inventorie(s) from the database");
+ }
+
+ /**
+ * Find a inventory by the id
+ * @param id The inventory id
+ * @return The inventory
+ */
+ public static Inventory getInventoryById(int id) {
+ if(!inventories.containsKey(id)) return null;
+ return inventories.get(id);
+ }
+
+ /**
+ * Get all inventories for the player
+ * @param accountId The account id
+ * @return All inventories of the player
+ */
+ public static ArrayList getInventoriesForAccount(int accountId) {
+ ArrayList playerInventories = new ArrayList<>();
+ for(Map.Entry inventoryEntry : inventories.entrySet()) {
+ try {
+ if(accountId == inventoryEntry.getValue().getCharacterId()) {
+ playerInventories.add(inventoryEntry.getValue());
+ }
+ }catch (Exception ex) {}
+ }
+ return playerInventories;
+ }
+
+ /**
+ * Try to add the item to the player inventory, this function check the weight
+ * @param player The player
+ * @param templateId The template id
+ * @param quantity The quantity
+ * @return The fresh or existing item
+ */
+ public static InventoryItem addItemToPlayer(Player player, String templateId, int quantity, boolean checkWeight) {
+ Onset.print("Add item=" + templateId + " to size=" + getInventoriesForAccount(player.getPropertyInt("accountId")).size());
+ Inventory inventory = getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
+ InventoryItem inventoryItem = new InventoryItem();
+ inventoryItem.setId(UUID.randomUUID().toString());
+ inventoryItem.setTemplateId(templateId);
+ inventoryItem.setAmount(quantity);
+ inventoryItem.setExtraProperties(new HashMap<>());
+
+ Account account = WorldManager.getPlayerAccount(player);
+ if(checkWeight) {
+ if(!checkInventoryWeight(player, inventoryItem)) {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.inventory.no_space_left"));
+ return null;
+ }
+ }
+ inventoryItem = inventory.addItem(inventoryItem);
+ inventory.save();
+ Onset.print("Inventory weight is now " + inventory.getCurrentWeight() + "/" + inventory.getMaxWeight());
+ return inventoryItem;
+ }
+
+ public static Inventory getMainInventory(Player player) {
+ return getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
+ }
+
+ /**
+ * Check if the item can fit in the inventory
+ * @param player The player
+ * @param inventoryItem The item to fit
+ * @return If the weight is ok
+ */
+ public static boolean checkInventoryWeight(Player player, InventoryItem inventoryItem) {
+ Inventory inventory = getInventoriesForAccount(player.getPropertyInt("accountId")).get(0);
+ if(inventory.getCurrentWeight() + (inventoryItem.getTemplate().getWeight() * inventoryItem.getAmount()) > inventory.getMaxWeight()) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * The client request the inventory content
+ * @param player The player
+ * @param payload The inventory type
+ */
+ public static void handleRequestContent(Player player, RequestInventoryContentPayload payload) {
+ Onset.print("Request inventory type="+payload.getType());
+ switch (payload.getType()) {
+ case "main":
+ getInventoriesForAccount(player.getPropertyInt("accountId")).get(0)
+ .sendInventoryContent(player);
+ break;
+ }
+ }
+
+ public static void handleThrowItem(Player player, RequestThrowItemPayload payload) {
+ Onset.print("Player request to throw a item id=" + payload.getId() + " quantity=" + payload.getQuantity());
+ if(payload.getQuantity() <= 0) return;
+ Inventory inventory = getMainInventory(player);
+ InventoryItem sourceItem = inventory.getItem(payload.getId());
+ if(sourceItem == null) return;
+ if(payload.getQuantity() > sourceItem.getAmount()) return;
+
+ InventoryItem inventoryItem = sourceItem;
+ if(payload.getQuantity() < sourceItem.getAmount()) {
+ inventoryItem = sourceItem.copy();
+ inventoryItem.setAmount(payload.getQuantity());
+ sourceItem.setAmount(sourceItem.getAmount() - payload.getQuantity());
+ inventory.updateItemPlayerView(sourceItem);
+ } else {
+ inventory.getInventoryItems().remove(sourceItem);
+ player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new RemoteItemInventoryPayload(sourceItem.getId())));
+ }
+
+ GroundItem groundItem = new GroundItem(inventoryItem, payload.getQuantity(),
+ new Vector(player.getLocation().getX() + Basic.randomNumber(-150, 150),
+ player.getLocation().getY() + Basic.randomNumber(-150, 150),
+ player.getLocation().getZ()));
+ WorldManager.getGroundItems().add(groundItem);
+ InventoryManager.getMainInventory(player).save();
+ inventory.updateWeightView();
+ }
+
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/ItemManager.java b/src/main/java/fr/yuki/yrpf/manager/ItemManager.java
similarity index 91%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/ItemManager.java
rename to src/main/java/fr/yuki/yrpf/manager/ItemManager.java
index c9fe09f..a78f833 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/ItemManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/ItemManager.java
@@ -1,400 +1,397 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import fr.yuki.YukiRPFramework.character.CharacterLoopAnimation;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterToolAnimation;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.ObjectPlacementInstance;
-import fr.yuki.YukiRPFramework.job.WearableWorldObject;
-import fr.yuki.YukiRPFramework.job.placementObject.GeneratorPlacementInstance;
-import fr.yuki.YukiRPFramework.job.placementObject.GrowBoxPlacementInstance;
-import fr.yuki.YukiRPFramework.job.tools.Generator;
-import fr.yuki.YukiRPFramework.model.Account;
-import fr.yuki.YukiRPFramework.model.Bag;
-import fr.yuki.YukiRPFramework.model.ItemShopObject;
-import fr.yuki.YukiRPFramework.model.Mask;
-import fr.yuki.YukiRPFramework.net.payload.RequestThrowItemPayload;
-import fr.yuki.YukiRPFramework.net.payload.RequestUseItemPayload;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.entity.Vehicle;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.io.File;
-import java.io.FileReader;
-import java.util.ArrayList;
-
-public class ItemManager {
- public static ArrayList masks = new ArrayList<>();
- public static ArrayList bags = new ArrayList<>();
-
- public static void init() {
- loadMasks();
- loadBags();
- }
-
- private static void loadMasks() {
- try {
- new File("yrpf").mkdir();
- masks = new Gson().fromJson(new FileReader("yrpf/masks.json"), new TypeToken>(){}.getType());
- Onset.print("Loaded " + masks.size() + " mask(s) from the cache");
- } catch (Exception e) {
- Onset.print("Can't load mask cache: " + e.toString());
- }
- }
-
- private static void loadBags() {
- try {
- new File("yrpf").mkdir();
- bags = new Gson().fromJson(new FileReader("yrpf/bags.json"), new TypeToken>(){}.getType());
- Onset.print("Loaded " + bags.size() + " bag(s) from the cache");
- } catch (Exception e) {
- Onset.print("Can't load bags cache: " + e.toString());
- }
- }
-
- public static void handleItemUse(Player player, RequestUseItemPayload payload) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- InventoryItem inventoryItem = inventory.getItem(payload.getId());
- if(inventoryItem == null) return;
- if(inventoryItem.getAmount() <= 0) return;
- Account account = WorldManager.getPlayerAccount(player);
-
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.isCuffed()) return;
-
- // Check food item
- if(inventoryItem.getTemplate().getFoodValue() != 0 || inventoryItem.getTemplate().getDrinkValue() != 0) {
- useFood(player, inventoryItem);
- return;
- }
-
- // Check weapon items
- if(inventoryItem.getTemplate().getWeaponId() != -1) {
- if(WeaponManager.requestEquipWeapon(player, inventoryItem.getTemplate().getWeaponId())) {
- inventory.removeItem(inventoryItem, 1);
- }
- else {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.weapon.no_slot_available"));
- }
- return;
- }
-
- // Check mask item
- if(inventoryItem.getTemplate().getMaskId() != -1) {
- Mask mask = masks.stream().filter(x -> x.getModelId() == inventoryItem.getTemplate().getMaskId())
- .findFirst().orElse(null);
- if(mask == null) {
- Onset.print("Can't find the mask in the masks.json id: " + mask.getModelId());
- return;
- }
- if(state.getCurrentMask() != null) {
- state.unattachMask();
- return;
- }
- state.attachMask(mask, player);
- return;
- }
-
- // Check bag item
- if(inventoryItem.getTemplate().getBagId() != -1) {
- Bag bag = bags.stream().filter(x -> x.getModelId() == inventoryItem.getTemplate().getBagId())
- .findFirst().orElse(null);
- if(bag == null) {
- Onset.print("Can't find the bag in the bags.json id: " + inventoryItem.getTemplate().getBagId());
- return;
- }
- if(state.getCurrentBag() != null) {
- state.unattachBag(player);
- return;
- }
- state.attachBag(bag, player);
- inventory.removeItem(inventoryItem, 1);
-
- inventory.updateWeightView();
- return;
- }
-
- // Check custom actions per item
- switch (inventoryItem.getTemplateId()) {
- case "11": // Temp need to use a enum
- usePot(player, inventoryItem);
- break;
-
- case "10": // Ticket livraison: growbox
- useDeliveryTicketGrowbox(player, inventoryItem);
- break;
-
- case "14": // Ticket livraison: generator
- useDeliveryTicketGenerator(player, inventoryItem);
- break;
-
- case "15": // Jerrican fuel
- useJerricanFuel(player, inventoryItem);
- break;
-
- case "16": // Cuff
- useCuff(player, inventoryItem);
- break;
-
- case "17": // Defibrilator
- useDefibrilator(player, inventoryItem);
- break;
-
- case "18": // Light saber
- useLightSaber(player, inventoryItem);
- break;
-
- case "20": // Ammo
- useAmmo(player, inventoryItem);
- break;
-
- case "28": // RepairKit
- useRepairKit(player, inventoryItem);
- break;
-
- case "33": // Bandage
- useBandage(player, inventoryItem);
- break;
-
- case "34": // Jack
- useJack(player, inventoryItem);
- break;
- }
- }
-
- private static void useJack(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(!state.canInteract()) return;
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(vehicle == null) return;
- if(vehicle.getLocation().distance(player.getLocation()) > 500) return;
- //Inventory inventory = InventoryManager.getMainInventory(player);
- //inventory.removeItem(inventoryItem, 1);
-
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.COMBINE,
- 5000, 2, "sounds/car_repair_1.mp3");
- characterLoopAnimation.start();
- CharacterManager.setCharacterFreeze(player, true);
- vehicle.setEngineOn(false);
- Onset.delay(15000, () -> {
- CharacterManager.setCharacterFreeze(player, false);
- vehicle.setRotation(new Vector(0 , vehicle.getRotation().getY(),0));
- });
- }
-
- private static void useBandage(Player player, InventoryItem inventoryItem) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- Account account = WorldManager.getPlayerAccount(player);
- if(!state.canInteract()) {
- return;
- }
- if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
- if(player.isDead()) return;
- if(player.getHealth() >= 100) return;
-
- player.setAnimation(Animation.COMBINE);
- if(player.getHealth() + 25 > 100) {
- player.setHealth(100);
- } else {
- player.setHealth(player.getHealth() + 25);
- }
-
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
-
- private static void useFood(Player player, InventoryItem inventoryItem) {
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- Account account = WorldManager.getPlayerAccount(player);
- if(!state.canInteract()) {
- return;
- }
- if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
- CharacterManager.applyFoodChange(player, inventoryItem.getTemplate().getFoodValue());
- CharacterManager.applyDrinkChange(player, inventoryItem.getTemplate().getDrinkValue());
- player.setAnimation(Animation.DRINKING);
-
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
-
- private static void useCuff(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- Player nearestPlayer = WorldManager.getNearestPlayer(player);
- if(nearestPlayer == null) return;
- if(nearestPlayer.getLocation().distance(player.getLocation()) > 200) return;
- WorldManager.cuffPlayer(nearestPlayer);
-
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
-
- private static void usePot(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- Account account = WorldManager.getPlayerAccount(player);
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
-
- // Put the object in the hand
- CharacterToolAnimation characterToolAnimation = new CharacterToolAnimation(554, new Vector(0, 8, 0),
- new Vector(90,0, 90), new Vector(1.50,1.50,2.40), "hand_r");
- WearableWorldObject wearableWorldObject = new WearableWorldObject(554, true,
- Animation.CARRY_IDLE, characterToolAnimation, player.getLocation());
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
-
- // Delete the item from the inventory
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
-
- private static void useDeliveryTicketGrowbox(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- if(characterState.getCurrentObjectPlacementInstance() != null) {
- return;
- }
-
- UIStateManager.handleUIToogle(player, "inventory");
- ObjectPlacementInstance objectPlacementInstance = new GrowBoxPlacementInstance(50007, player.getLocation());
- characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
- objectPlacementInstance.spawn();
- objectPlacementInstance.setEditableBy(player);
- }
-
- private static void useDeliveryTicketGenerator(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
- if(characterState.getCurrentObjectPlacementInstance() != null) {
- return;
- }
-
- UIStateManager.handleUIToogle(player, "inventory");
- ObjectPlacementInstance objectPlacementInstance = new GeneratorPlacementInstance( player.getLocation());
- characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
- objectPlacementInstance.spawn();
- objectPlacementInstance.setEditableBy(player);
- }
-
- private static void useJerricanFuel(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- Account account = WorldManager.getPlayerAccount(player);
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
-
- Generator generator = GrowboxManager.getGeneratorNearby(player.getLocation(), 250);
- if(generator != null) {
- if(generator.getFuel() >= 100) return;
-
- // Delete the item from the inventory
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
-
- CharacterManager.setCharacterFreeze(player, true);
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 10000, 1,
- "sounds/water_fill.mp3");
- characterLoopAnimation.setTool(new CharacterToolAnimation(507, new Vector(5,10,-15),
- new Vector(0,90,0), new Vector(0.75, 0.75, 0.75), "hand_r"));
- characterLoopAnimation.start();
-
- // Put the object in the hand
- Onset.delay(10000, () -> {
- generator.setFuel(100);
- CharacterManager.setCharacterFreeze(player, false);
- characterLoopAnimation.stop();
- });
- return;
- }
-
- Vehicle vehicleNearby = VehicleManager.getNearestVehicle(player.getLocation());
- if(vehicleNearby != null) {
- if(vehicleNearby.getLocation().distance(player.getLocation()) < 300) {
- FuelManager.interactFuelPoint(player, true);
- return;
- }
- }
- }
-
- private static void useDefibrilator(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- Player nearestPlayer = WorldManager.getNearestPlayer(player);
- if(nearestPlayer == null) return;
- if(nearestPlayer.getLocation().distance(player.getLocation()) > 200) return;
- WorldManager.revive(player, nearestPlayer);
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
-
- private static void useLightSaber(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- Account account = WorldManager.getPlayerAccount(player);
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
-
- // Put the object in the hand
- CharacterToolAnimation characterToolAnimation = new CharacterToolAnimation(50009, new Vector(-7, 7, 0),
- new Vector(90,90, 0), new Vector(0.05,0.05,0.05), "hand_r");
- WearableWorldObject wearableWorldObject = new WearableWorldObject(50009, true,
- Animation.STOP, characterToolAnimation, player.getLocation());
- JobManager.getWearableWorldObjects().add(wearableWorldObject);
- JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
- SoundManager.playSound3D("sounds/ls_sound.mp3", player.getLocation(), 700, 1);
- }
-
- private static void useAmmo(Player player, InventoryItem inventoryItem) {
- if(WeaponManager.fillWeaponWithAmmo(player)) {
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
- }
- }
-
- private static void useRepairKit(Player player, InventoryItem inventoryItem) {
- if(player.getVehicle() != null) return;
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(!state.canInteract()) return;
- Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
- if(vehicle == null) return;
- if(vehicle.getLocation().distance(player.getLocation()) > 500) return;
- Inventory inventory = InventoryManager.getMainInventory(player);
- inventory.removeItem(inventoryItem, 1);
-
- vehicle.setHood(80);
- CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.COMBINE,
- 5000, 2, "sounds/car_repair_1.mp3");
- characterLoopAnimation.start();
- CharacterManager.setCharacterFreeze(player, true);
- vehicle.setEngineOn(false);
- Onset.delay(15000, () -> {
- CharacterManager.setCharacterFreeze(player, false);
- vehicle.setHealth(5000);
- for(int i = 0; i < 8; i++) {
- vehicle.setDamage(i + 1, 0);
- }
- vehicle.setHood(0);
- });
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import fr.yuki.yrpf.character.CharacterLoopAnimation;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterToolAnimation;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.job.ObjectPlacementInstance;
+import fr.yuki.yrpf.job.WearableWorldObject;
+import fr.yuki.yrpf.job.placementObject.GeneratorPlacementInstance;
+import fr.yuki.yrpf.job.placementObject.GrowBoxPlacementInstance;
+import fr.yuki.yrpf.job.tools.Generator;
+import fr.yuki.yrpf.model.Account;
+import fr.yuki.yrpf.model.Bag;
+import fr.yuki.yrpf.model.Mask;
+import fr.yuki.yrpf.net.payload.RequestUseItemPayload;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.entity.Vehicle;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+
+public class ItemManager {
+ public static ArrayList masks = new ArrayList<>();
+ public static ArrayList bags = new ArrayList<>();
+
+ public static void init() {
+ loadMasks();
+ loadBags();
+ }
+
+ private static void loadMasks() {
+ try {
+ new File("yrpf").mkdir();
+ masks = new Gson().fromJson(new FileReader("yrpf/masks.json"), new TypeToken>(){}.getType());
+ Onset.print("Loaded " + masks.size() + " mask(s) from the cache");
+ } catch (Exception e) {
+ Onset.print("Can't load mask cache: " + e.toString());
+ }
+ }
+
+ private static void loadBags() {
+ try {
+ new File("yrpf").mkdir();
+ bags = new Gson().fromJson(new FileReader("yrpf/bags.json"), new TypeToken>(){}.getType());
+ Onset.print("Loaded " + bags.size() + " bag(s) from the cache");
+ } catch (Exception e) {
+ Onset.print("Can't load bags cache: " + e.toString());
+ }
+ }
+
+ public static void handleItemUse(Player player, RequestUseItemPayload payload) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ InventoryItem inventoryItem = inventory.getItem(payload.getId());
+ if(inventoryItem == null) return;
+ if(inventoryItem.getAmount() <= 0) return;
+ Account account = WorldManager.getPlayerAccount(player);
+
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.isCuffed()) return;
+
+ // Check food item
+ if(inventoryItem.getTemplate().getFoodValue() != 0 || inventoryItem.getTemplate().getDrinkValue() != 0) {
+ useFood(player, inventoryItem);
+ return;
+ }
+
+ // Check weapon items
+ if(inventoryItem.getTemplate().getWeaponId() != -1) {
+ if(WeaponManager.requestEquipWeapon(player, inventoryItem.getTemplate().getWeaponId())) {
+ inventory.removeItem(inventoryItem, 1);
+ }
+ else {
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.weapon.no_slot_available"));
+ }
+ return;
+ }
+
+ // Check mask item
+ if(inventoryItem.getTemplate().getMaskId() != -1) {
+ Mask mask = masks.stream().filter(x -> x.getModelId() == inventoryItem.getTemplate().getMaskId())
+ .findFirst().orElse(null);
+ if(mask == null) {
+ Onset.print("Can't find the mask in the masks.json id: " + mask.getModelId());
+ return;
+ }
+ if(state.getCurrentMask() != null) {
+ state.unattachMask();
+ return;
+ }
+ state.attachMask(mask, player);
+ return;
+ }
+
+ // Check bag item
+ if(inventoryItem.getTemplate().getBagId() != -1) {
+ Bag bag = bags.stream().filter(x -> x.getModelId() == inventoryItem.getTemplate().getBagId())
+ .findFirst().orElse(null);
+ if(bag == null) {
+ Onset.print("Can't find the bag in the bags.json id: " + inventoryItem.getTemplate().getBagId());
+ return;
+ }
+ if(state.getCurrentBag() != null) {
+ state.unattachBag(player);
+ return;
+ }
+ state.attachBag(bag, player);
+ inventory.removeItem(inventoryItem, 1);
+
+ inventory.updateWeightView();
+ return;
+ }
+
+ // Check custom actions per item
+ switch (inventoryItem.getTemplateId()) {
+ case "11": // Temp need to use a enum
+ usePot(player, inventoryItem);
+ break;
+
+ case "10": // Ticket livraison: growbox
+ useDeliveryTicketGrowbox(player, inventoryItem);
+ break;
+
+ case "14": // Ticket livraison: generator
+ useDeliveryTicketGenerator(player, inventoryItem);
+ break;
+
+ case "15": // Jerrican fuel
+ useJerricanFuel(player, inventoryItem);
+ break;
+
+ case "16": // Cuff
+ useCuff(player, inventoryItem);
+ break;
+
+ case "17": // Defibrilator
+ useDefibrilator(player, inventoryItem);
+ break;
+
+ case "18": // Light saber
+ useLightSaber(player, inventoryItem);
+ break;
+
+ case "20": // Ammo
+ useAmmo(player, inventoryItem);
+ break;
+
+ case "28": // RepairKit
+ useRepairKit(player, inventoryItem);
+ break;
+
+ case "33": // Bandage
+ useBandage(player, inventoryItem);
+ break;
+
+ case "34": // Jack
+ useJack(player, inventoryItem);
+ break;
+ }
+ }
+
+ private static void useJack(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(!state.canInteract()) return;
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(vehicle == null) return;
+ if(vehicle.getLocation().distance(player.getLocation()) > 500) return;
+ //Inventory inventory = InventoryManager.getMainInventory(player);
+ //inventory.removeItem(inventoryItem, 1);
+
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.COMBINE,
+ 5000, 2, "sounds/car_repair_1.mp3");
+ characterLoopAnimation.start();
+ CharacterManager.setCharacterFreeze(player, true);
+ vehicle.setEngineOn(false);
+ Onset.delay(15000, () -> {
+ CharacterManager.setCharacterFreeze(player, false);
+ vehicle.setRotation(new Vector(0 , vehicle.getRotation().getY(),0));
+ });
+ }
+
+ private static void useBandage(Player player, InventoryItem inventoryItem) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ Account account = WorldManager.getPlayerAccount(player);
+ if(!state.canInteract()) {
+ return;
+ }
+ if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
+ return;
+ }
+ if(player.isDead()) return;
+ if(player.getHealth() >= 100) return;
+
+ player.setAnimation(Animation.COMBINE);
+ if(player.getHealth() + 25 > 100) {
+ player.setHealth(100);
+ } else {
+ player.setHealth(player.getHealth() + 25);
+ }
+
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+
+ private static void useFood(Player player, InventoryItem inventoryItem) {
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ Account account = WorldManager.getPlayerAccount(player);
+ if(!state.canInteract()) {
+ return;
+ }
+ if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
+ return;
+ }
+ CharacterManager.applyFoodChange(player, inventoryItem.getTemplate().getFoodValue());
+ CharacterManager.applyDrinkChange(player, inventoryItem.getTemplate().getDrinkValue());
+ player.setAnimation(Animation.DRINKING);
+
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+
+ private static void useCuff(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ Player nearestPlayer = WorldManager.getNearestPlayer(player);
+ if(nearestPlayer == null) return;
+ if(nearestPlayer.getLocation().distance(player.getLocation()) > 200) return;
+ WorldManager.cuffPlayer(nearestPlayer);
+
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+
+ private static void usePot(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
+ return;
+ }
+
+ // Put the object in the hand
+ CharacterToolAnimation characterToolAnimation = new CharacterToolAnimation(554, new Vector(0, 8, 0),
+ new Vector(90,0, 90), new Vector(1.50,1.50,2.40), "hand_r");
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(554, true,
+ Animation.CARRY_IDLE, characterToolAnimation, player.getLocation());
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
+
+ // Delete the item from the inventory
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+
+ private static void useDeliveryTicketGrowbox(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ if(characterState.getCurrentObjectPlacementInstance() != null) {
+ return;
+ }
+
+ UIStateManager.handleUIToogle(player, "inventory");
+ ObjectPlacementInstance objectPlacementInstance = new GrowBoxPlacementInstance(50007, player.getLocation());
+ characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
+ objectPlacementInstance.spawn();
+ objectPlacementInstance.setEditableBy(player);
+ }
+
+ private static void useDeliveryTicketGenerator(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ CharacterState characterState = CharacterManager.getCharacterStateByPlayer(player);
+ if(characterState.getCurrentObjectPlacementInstance() != null) {
+ return;
+ }
+
+ UIStateManager.handleUIToogle(player, "inventory");
+ ObjectPlacementInstance objectPlacementInstance = new GeneratorPlacementInstance( player.getLocation());
+ characterState.setCurrentObjectPlacementInstance(objectPlacementInstance);
+ objectPlacementInstance.spawn();
+ objectPlacementInstance.setEditableBy(player);
+ }
+
+ private static void useJerricanFuel(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
+ return;
+ }
+
+ Generator generator = GrowboxManager.getGeneratorNearby(player.getLocation(), 250);
+ if(generator != null) {
+ if(generator.getFuel() >= 100) return;
+
+ // Delete the item from the inventory
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+
+ CharacterManager.setCharacterFreeze(player, true);
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.FISHING, 10000, 1,
+ "sounds/water_fill.mp3");
+ characterLoopAnimation.setTool(new CharacterToolAnimation(507, new Vector(5,10,-15),
+ new Vector(0,90,0), new Vector(0.75, 0.75, 0.75), "hand_r"));
+ characterLoopAnimation.start();
+
+ // Put the object in the hand
+ Onset.delay(10000, () -> {
+ generator.setFuel(100);
+ CharacterManager.setCharacterFreeze(player, false);
+ characterLoopAnimation.stop();
+ });
+ return;
+ }
+
+ Vehicle vehicleNearby = VehicleManager.getNearestVehicle(player.getLocation());
+ if(vehicleNearby != null) {
+ if(vehicleNearby.getLocation().distance(player.getLocation()) < 300) {
+ FuelManager.interactFuelPoint(player, true);
+ return;
+ }
+ }
+ }
+
+ private static void useDefibrilator(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ Player nearestPlayer = WorldManager.getNearestPlayer(player);
+ if(nearestPlayer == null) return;
+ if(nearestPlayer.getLocation().distance(player.getLocation()) > 200) return;
+ WorldManager.revive(player, nearestPlayer);
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+
+ private static void useLightSaber(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ Account account = WorldManager.getPlayerAccount(player);
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(state.getWearableWorldObject() != null) { // Can't use the item because the player wear something already
+ UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
+ return;
+ }
+
+ // Put the object in the hand
+ CharacterToolAnimation characterToolAnimation = new CharacterToolAnimation(50009, new Vector(-7, 7, 0),
+ new Vector(90,90, 0), new Vector(0.05,0.05,0.05), "hand_r");
+ WearableWorldObject wearableWorldObject = new WearableWorldObject(50009, true,
+ Animation.STOP, characterToolAnimation, player.getLocation());
+ JobManager.getWearableWorldObjects().add(wearableWorldObject);
+ JobManager.handleWearObjectRequest(player, wearableWorldObject.getUuid());
+ SoundManager.playSound3D("sounds/ls_sound.mp3", player.getLocation(), 700, 1);
+ }
+
+ private static void useAmmo(Player player, InventoryItem inventoryItem) {
+ if(WeaponManager.fillWeaponWithAmmo(player)) {
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+ }
+ }
+
+ private static void useRepairKit(Player player, InventoryItem inventoryItem) {
+ if(player.getVehicle() != null) return;
+ CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
+ if(!state.canInteract()) return;
+ Vehicle vehicle = VehicleManager.getNearestVehicle(player.getLocation());
+ if(vehicle == null) return;
+ if(vehicle.getLocation().distance(player.getLocation()) > 500) return;
+ Inventory inventory = InventoryManager.getMainInventory(player);
+ inventory.removeItem(inventoryItem, 1);
+
+ vehicle.setHood(80);
+ CharacterLoopAnimation characterLoopAnimation = new CharacterLoopAnimation(player, Animation.COMBINE,
+ 5000, 2, "sounds/car_repair_1.mp3");
+ characterLoopAnimation.start();
+ CharacterManager.setCharacterFreeze(player, true);
+ vehicle.setEngineOn(false);
+ Onset.delay(15000, () -> {
+ CharacterManager.setCharacterFreeze(player, false);
+ vehicle.setHealth(5000);
+ for(int i = 0; i < 8; i++) {
+ vehicle.setDamage(i + 1, 0);
+ }
+ vehicle.setHood(0);
+ });
+ }
+}
diff --git a/src/main/java/fr/yuki/YukiRPFramework/manager/JobManager.java b/src/main/java/fr/yuki/yrpf/manager/JobManager.java
similarity index 87%
rename from src/main/java/fr/yuki/YukiRPFramework/manager/JobManager.java
rename to src/main/java/fr/yuki/yrpf/manager/JobManager.java
index 4d401af..4e848d4 100644
--- a/src/main/java/fr/yuki/YukiRPFramework/manager/JobManager.java
+++ b/src/main/java/fr/yuki/yrpf/manager/JobManager.java
@@ -1,535 +1,515 @@
-package fr.yuki.YukiRPFramework.manager;
-
-import com.google.gson.Gson;
-import fr.yuki.YukiRPFramework.character.CharacterJobLevel;
-import fr.yuki.YukiRPFramework.character.CharacterState;
-import fr.yuki.YukiRPFramework.character.CharacterStyle;
-import fr.yuki.YukiRPFramework.dao.*;
-import fr.yuki.YukiRPFramework.enums.ItemTemplateEnum;
-import fr.yuki.YukiRPFramework.enums.JobEnum;
-import fr.yuki.YukiRPFramework.enums.ToastTypeEnum;
-import fr.yuki.YukiRPFramework.i18n.I18n;
-import fr.yuki.YukiRPFramework.inventory.Inventory;
-import fr.yuki.YukiRPFramework.inventory.InventoryItem;
-import fr.yuki.YukiRPFramework.job.*;
-import fr.yuki.YukiRPFramework.model.*;
-import fr.yuki.YukiRPFramework.net.payload.AddCharacterJobPayload;
-import fr.yuki.YukiRPFramework.net.payload.AddToastPayload;
-import fr.yuki.YukiRPFramework.net.payload.AddXpBarItemPayload;
-import fr.yuki.YukiRPFramework.ui.UIState;
-import net.onfirenetwork.onsetjava.Onset;
-import net.onfirenetwork.onsetjava.data.Color;
-import net.onfirenetwork.onsetjava.data.Vector;
-import net.onfirenetwork.onsetjava.entity.Pickup;
-import net.onfirenetwork.onsetjava.entity.Player;
-import net.onfirenetwork.onsetjava.enums.Animation;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-public class JobManager {
- private static LinkedHashMap jobs;
- private static ArrayList wearableWorldObjects;
- private static ArrayList jobNPCS;
- private static ArrayList jobTools;
- private static ArrayList jobLevels;
- private static ArrayList jobVehicleRentals;
- private static DeliveryPointConfig deliveryPointConfig;
- private static ArrayList jobOutfits;
-
- public static void init() throws SQLException, IOException {
- jobNPCS = JobNPCDAO.loadJobNPCS();
- Onset.print("Loaded " + jobNPCS.size() + " job npc(s) from the database");
-
- jobOutfits = JobOutfitDAO.loadJobOutfits();
- Onset.print("Loaded " + jobOutfits.size() + " job outfit(s) from the database");
-
- jobTools = JobToolDAO.loadJobTools();
- Onset.print("Loaded " + jobTools.size() + " job tool(s) from the database");
-
- jobLevels = JobLevelDAO.loadJobLevels();
- Onset.print("Loaded " + jobLevels.size() + " job level(s) from the database");
-
- jobVehicleRentals = JobVehicleRentalDAO.loadJobVehicleRental();
- Onset.print("Loaded " + jobVehicleRentals.size() + " job vehicle(s) from the database");
-
- loadDeliveryPoints();
-
- wearableWorldObjects = new ArrayList<>();
- jobs = new LinkedHashMap<>();
- jobs.put(JobEnum.LUMBERJACK.type, new LumberjackJob());
- jobs.put(JobEnum.GARBAGE.type, new GarbageJob());
- jobs.put(JobEnum.DELIVERY.type, new DeliveryJob());
- jobs.put(JobEnum.MINER.type, new MinerJob());
- jobs.put(JobEnum.FISHER.type, new FisherJob());
- jobs.put(JobEnum.POLICE.type, new PoliceJob());
- jobs.put(JobEnum.WEED.type, new WeedJob());
- jobs.put(JobEnum.EMS.type, new EMSJob());
-
- spawnJobOutfitsPoint();
- spawnVehicleRentalSpawns();
- initPaycheck();
- //initWorldWearableObjectExpiration();
- }
-
- public static void initWorldWearableObjectExpiration() {
- Onset.timer(60000, () -> {
- for(WearableWorldObject wearableWorldObject : wearableWorldObjects.stream().filter(x -> !x.isWeared() && x.getVehicleUUID().equals(""))
- .collect(Collectors.toList())) {
- try {
- if(wearableWorldObject.isExpired()) wearableWorldObject.deleteObject();
- }catch (Exception ex) {}
- }
- });
- }
-
- public static void initPaycheck() {
- int paycheckAmount = 1000;
- Onset.timer(60000 * 30, () -> {
- for(Player player : Onset.getPlayers()) {
- try {
- Account account = WorldManager.getPlayerAccount(player);
- AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
- .filter(x -> x.getAccountId() == account.getId())
- .findFirst().orElse(null);
- if(accountJobWhitelist != null){
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Salaire +" + paycheckAmount + "$ !");
- account.setBankMoney(account.getBankMoney() + paycheckAmount);
- }
- } catch (Exception ex) {}
- }
- });
- }
-
- private static void loadDeliveryPoints() throws IOException {
- new File("yrpf").mkdir();
- if(new File("yrpf/delivery_config.json").exists()) {
- deliveryPointConfig = new Gson().fromJson(new FileReader("yrpf/delivery_config.json"), DeliveryPointConfig.class);
- } else {
- deliveryPointConfig = new DeliveryPointConfig();
- deliveryPointConfig.setPoints(new HashMap<>());
- deliveryPointConfig.getPoints().put("houses", new ArrayList<>());
- new File("yrpf/delivery_config.json").createNewFile();
- FileWriter fileWriter = new FileWriter("yrpf/delivery_config.json");
- fileWriter.write(new Gson().toJson(deliveryPointConfig));
- fileWriter.close();
- }
- }
-
- public static void saveDeliveryPoints() {
- try {
- FileWriter fileWriter = new FileWriter("yrpf/delivery_config.json");
- fileWriter.write(new Gson().toJson(deliveryPointConfig));
- fileWriter.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * Init job levels for the character
- * @param player The player
- */
- public static void initCharacterJobs(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- ArrayList characterJobLevels = account.decodeCharacterJob();
- for(Map.Entry job : jobs.entrySet()) {
- if(characterJobLevels.stream().filter(x -> x.getJobId().equals(job.getKey())).findFirst().orElse(null) == null) {
- CharacterJobLevel characterJobLevel = new CharacterJobLevel();
- characterJobLevel.setJobId(job.getKey());
- characterJobLevel.setExp(0);
- characterJobLevels.add(characterJobLevel);
- }
- }
- account.setJobLevels(characterJobLevels);
- }
-
- private static void spawnVehicleRentalSpawns() {
- for(JobVehicleRental jobVehicleRental : jobVehicleRentals) {
- Pickup pickup = Onset.getServer().createPickup(new net.onfirenetwork.onsetjava.data.Vector
- (jobVehicleRental.getX(), jobVehicleRental.getY(), jobVehicleRental.getZ()-100), 336);
- pickup.setScale(new Vector(4,4,0.3d));
- pickup.setProperty("color", "0096a3", true);
- Onset.getServer().createText3D(jobVehicleRental.getName() + " [Utiliser]", 20,
- jobVehicleRental.getX(), jobVehicleRental.getY(), jobVehicleRental.getZ() + 150, 0 , 0 ,0);
- }
- }
-
- private static void spawnJobOutfitsPoint() {
- for(JobOutfit jobOutfit : jobOutfits) {
- Pickup pickup = Onset.getServer().createPickup(new net.onfirenetwork.onsetjava.data.Vector
- (jobOutfit.getX(), jobOutfit.getY(), jobOutfit.getZ()-100), 336);
- pickup.setScale(new Vector(4,4,0.3d));
- pickup.setProperty("color", "0030a1", true);
- Onset.getServer().createText3D(jobOutfit.getName() + " [" + I18n.t(WorldManager.getServerConfig().getServerLanguage(), "ui.common.use") + "]", 17,
- jobOutfit.getX(), jobOutfit.getY(), jobOutfit.getZ() + 150, 0 , 0 ,0);
- }
- }
-
- private static JobOutfit getNearbyJobOutfit(Player player) {
- for(JobOutfit jobOutfit : jobOutfits) {
- if(jobOutfit.isNear(player)) return jobOutfit;
- }
- return null;
- }
-
- public static boolean handleJobOutfitRequest(Player player) {
- JobOutfit jobOutfit = getNearbyJobOutfit(player);
- if(jobOutfit == null) return false;
- Account account = WorldManager.getPlayerAccount(player);
- Job job = jobs.values().stream().filter(x -> x.getJobType().equals(jobOutfit.getJobId())).findFirst().orElse(null);
- if(job == null) return false;
-
- // Check level and whitelist level
- if(job.isWhitelisted()) {
- AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
- .filter(x -> x.getAccountId() == account.getId() && x.getJobId().equals(job.getJobType()))
- .findFirst().orElse(null);
- if(accountJobWhitelist == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.outfit.level_required"));
- return true;
- }
- if(accountJobWhitelist.getJobLevel() < jobOutfit.getLevelRequired()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.outfit.level_required"));
- return true;
- }
- } else {
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(jobOutfit.getJobId())).findFirst().orElse(null);
- if(characterJobLevel == null) return false;
- if(characterJobLevel.getJobLevel().getLevel() < jobOutfit.getLevelRequired()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.outfit.level_required"));
- return true;
- }
- }
-
- if(account.getIsInService() == 1) {
- CharacterStyle characterStyle = account.decodeOriginalCharacterStyle();
- account.setCharacterStyle(characterStyle);
- characterStyle.attachStyleToPlayer(player);
- account.setIsInService(0);
- } else {
- // Apply the outfit
- CharacterStyle characterStyle = account.decodeCharacterStyle();
- for(JobOutfitItem jobOutfitItem : jobOutfit.decodeOutfit()) {
- switch (jobOutfitItem.getType().toLowerCase()) {
- case "top":
- characterStyle.setTop(jobOutfitItem.getValue());
- break;
-
- case "pant":
- characterStyle.setPant(jobOutfitItem.getValue());
- break;
-
- case "shoes":
- characterStyle.setShoes(jobOutfitItem.getValue());
- break;
- }
- }
- account.setCharacterStyle(characterStyle);
- characterStyle.attachStyleToPlayer(player);
- account.setIsInService(1);
- }
- SoundManager.playSound3D("sounds/zip.mp3", player.getLocation(), 500, 0.2);
- WorldManager.savePlayer(player);
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.outfit.success_change"));
-
- return true;
- }
-
- public static int getJobLevelForPlayer(Player player, String job) {
- Account account = WorldManager.getPlayerAccount(player);
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(job)).findFirst().orElse(null);
- return characterJobLevel.getJobLevel().getLevel();
- }
-
- /**
- * Try to find a object to harvest for the player
- * @param player The player
- */
- public static boolean tryToHarvest(Player player) {
- if(player.getVehicle() != null) return false;
-
- CharacterState state = CharacterManager.getCharacterStateByPlayer(player);
- if(!state.canInteract()) return false;
-
- Account account = WorldManager.getPlayerAccount(player);
- for(Map.Entry job : jobs.entrySet()) {
- for(WorldHarvestObject worldHarvestObject : job.getValue().getWorldHarvestObjects()) {
- try {
- if(worldHarvestObject.isNear(player)) {
- if(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject() != null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return true;
- }
-
-
- worldHarvestObject.harvest(player);
- return true;
- }
- } catch (Exception ex) {}
- }
- }
- return false;
- }
-
- public static void addExp(Player player, String job, int amount) {
- if(amount <= 0) return;
- amount = amount * WorldManager.getServerConfig().getXpRate();
- Account account = WorldManager.getPlayerAccount(player);
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(job)).findFirst().orElse(null);
- if(characterJobLevel == null) return;
-
- JobLevel previousJobLevel = characterJobLevel.getJobLevel();
- characterJobLevel.setExp(characterJobLevel.getExp() + amount);
- account.setJobLevels(characterJobLevels);
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddXpBarItemPayload("+" + amount + " XP " +
- I18n.t(account.getLang(), "ui.characterJob.jobLevel_" + characterJobLevel.getJobLevel().getTranslateName()))));
- JobLevel nextJobLevel = characterJobLevel.getJobLevel();
- if(previousJobLevel.getLevel() != nextJobLevel.getLevel()) {
- SoundManager.playSound3D("sounds/success_1.mp3", player.getLocation(), 200, 1);
- String translatedJobName = I18n.t(account.getLang(), "ui.characterJob.jobLevel_" + characterJobLevel.getJobLevel().getTranslateName());
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddXpBarItemPayload(
- I18n.t(account.getLang(), "toast.xp.level_up", translatedJobName))));
- }
-
- WorldManager.savePlayer(player);
- }
-
- /**
- * Request to wear a object in the world
- * @param player The player
- * @param uuid The object uuid
- */
- public static void handleWearObjectRequest(Player player, String uuid) {
- Account account = WorldManager.getPlayerAccount(player);
- WearableWorldObject wearableWorldObject = wearableWorldObjects.stream().filter(x -> x.getUuid().equals(uuid)).findFirst().orElse(null);
- if(wearableWorldObject == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.wear.not_found"));
- return;
- }
- if(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject() != null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "action.vehicle.wearSomething"));
- return;
- }
- wearableWorldObject.requestWear(player);
- }
-
- public static boolean handleSellJobNpcInventoryItem(Player player) {
- JobNPC jobNPCNearby = getNearbyJobNPC(player);
- if(jobNPCNearby == null) return false;
- Inventory inventory = InventoryManager.getMainInventory(player);
- for (JobNPCListItem sellListItem : jobNPCNearby.getBuyList()) {
- if(!sellListItem.getType().equals("item")) continue;
- InventoryItem inventoryItem = inventory.getItemByType(String.valueOf(sellListItem.getItemId()));
- if(inventoryItem == null) continue;
- Onset.print("Selling item to the npc price=" + sellListItem.getPrice());
- inventory.removeItem(inventoryItem, 1);
- SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 0.8);
- //UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Vous avez vendu votre " + inventoryItem.getTemplate().getName() +
- // " pour " + sellListItem.getPrice() + "$");
- jobNPCNearby.getNpc().setAnimation(Animation.THUMBSUP);
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, sellListItem.getPrice(), false);
- }
- return true;
- }
-
- public static void handleUnwearObject(Player player) {
- if(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject() == null) return;
- Account account = WorldManager.getPlayerAccount(player);
-
- // Try to sell it to the nearby npc
- JobNPC jobNPCNearby = getNearbyJobNPC(player);
- if(jobNPCNearby != null) {
- JobNPCListItem jobNPCListItem = jobNPCNearby.getBuyItemByWearableItem(CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject());
- if(jobNPCListItem != null) {
- Onset.print("Selling item to the npc price=" + jobNPCListItem.getPrice());
- InventoryManager.addItemToPlayer(player, ItemTemplateEnum.CASH.id, jobNPCListItem.getPrice(), false);
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().requestUnwear(player, true);
- jobNPCNearby.getNpc().setAnimation(Animation.THUMBSUP);
- SoundManager.playSound3D("sounds/cash_register.mp3", player.getLocation(), 200, 1);
- //UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, "Vous avez vendu votre ressource pour " + jobNPCListItem.getPrice() + "$");
- } else {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.npc.no_buy_kind_item"));
- }
- return;
- }
-
- // Try to use a job tool nearby
- JobTool jobToolNearby = getNearbyJobTool(player);
- if(jobToolNearby != null) {
- if(!jobToolNearby.getJobToolHandler().hasLevelRequired(player)) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.no_level_required"));
- return;
- }
-
- if(jobToolNearby.getJobToolHandler().canInteract(player)) {
- Onset.print("Use job tool type="+jobToolNearby.getJobToolType());
- if(jobToolNearby.getJobToolHandler().onUnwear(player, CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject())) {
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().requestUnwear(player, true);
- }
- }
- else {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.tool.no_kind_item"));
- }
- return;
- }
-
- // Unwear the item
- CharacterManager.getCharacterStateByPlayer(player).getWearableWorldObject().requestUnwear(player, false);
- }
-
- public static boolean requestVehicleRental(Player player) {
- JobVehicleRental nearbyJobVehicleRental = getNearbyVehicleRental(player);
- if(nearbyJobVehicleRental == null) return false;
- if(player.getVehicle() != null) return false;
-
- Account account = WorldManager.getPlayerAccount(player);
-
- // Check vehicle around
- Vector spawnPoint = new Vector(nearbyJobVehicleRental.getSpawnX(), nearbyJobVehicleRental.getSpawnY(), nearbyJobVehicleRental.getSpawnZ());
- if(VehicleManager.getNearestVehicle(spawnPoint) != null) {
- if(VehicleManager.getNearestVehicle(spawnPoint).getLocation().distance(spawnPoint) < 600) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.garage.vehicle_block_spawn"));
- return true;
- }
- }
-
- Job job = jobs.values().stream().filter(x -> x.getJobType().equals(nearbyJobVehicleRental.getJobId())).findFirst().orElse(null);
- if(job == null) return false;
-
- // Check level and whitelist level
- if(job.isWhitelisted()) {
- AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
- .filter(x -> x.getAccountId() == account.getId() && x.getJobId().equals(job.getJobType()))
- .findFirst().orElse(null);
- if(accountJobWhitelist == null) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.job.not_whitelisted"));
- return true;
- }
- if(accountJobWhitelist.getJobLevel() < nearbyJobVehicleRental.getLevelRequired()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.job.not_whitelisted"));
- return true;
- }
- } else {
- ArrayList characterJobLevels = account.decodeCharacterJob();
- CharacterJobLevel characterJobLevel = characterJobLevels.stream().filter(x -> x.getJobId().equals(nearbyJobVehicleRental.getJobId())).findFirst().orElse(null);
- if(characterJobLevel == null) return false;
- if(characterJobLevel.getJobLevel().getLevel() < nearbyJobVehicleRental.getLevelRequired()) {
- UIStateManager.sendNotification(player, ToastTypeEnum.ERROR, I18n.t(account.getLang(), "toast.job.not_whitelisted"));
- return true;
- }
- }
-
- destroyRentalVehiclesForPlayer(player);
-
- VehicleManager.CreateVehicleResult result = VehicleManager.createVehicle(nearbyJobVehicleRental.getVehicleModelId(),
- new Vector(nearbyJobVehicleRental.getSpawnX(), nearbyJobVehicleRental.getSpawnY(), nearbyJobVehicleRental.getSpawnZ()),
- player.getLocationAndHeading().getHeading(), player, null, true);
-
- java.awt.Color color = java.awt.Color.decode(nearbyJobVehicleRental.getColor());
- result.getVehicle().setColor(new Color(color.getRed(), color.getGreen(), color.getBlue()));
- UIStateManager.sendNotification(player, ToastTypeEnum.SUCCESS, I18n.t(account.getLang(), "toast.job_vehicle.success_rental",
- String.valueOf(nearbyJobVehicleRental.getCost())));
- return true;
- }
-
- public static void destroyRentalVehiclesForPlayer(Player player) {
- Account account = WorldManager.getPlayerAccount(player);
- for(VehicleGarage vehicleGarage : GarageManager.getVehicleGarages().stream()
- .filter(x -> x.isRental() && x.getOwner() == account.getId()).collect(Collectors.toList())) {
- if(vehicleGarage.getVehicle() != null) {
- VehicleManager.clearKeysForVehicle(vehicleGarage.getVehicle(), player);
- }
- vehicleGarage.destroy();
- GarageManager.getVehicleGarages().remove(vehicleGarage);
- }
- }
-
- public static void handleRequestCharacterJobs(Player player) {
- if(!UIStateManager.handleUIToogle(player, "characterjob")) return;
- Account account = WorldManager.getPlayerAccount(player);
- ArrayList characterJobLevels = account.decodeCharacterJob();
- for(CharacterJobLevel characterJobLevel : characterJobLevels) {
- player.callRemoteEvent("GlobalUI:DispatchToUI", new Gson().toJson(new AddCharacterJobPayload(characterJobLevel)));
- }
- }
-
- public static void handleUseJobTool(Player player, String uuid) {
- JobTool jobTool = jobTools.stream().filter(x -> x.getUuid().equals(uuid)).findFirst().orElse(null);
- if(jobTool == null) return;
- jobTool.getJobToolHandler().onUse(player);
- }
-
- public static ArrayList getWhitelistedPlayersForJob(JobEnum jobEnum) {
- ArrayList players = new ArrayList<>();
- for(Player player : Onset.getPlayers()) {
- try {
- Account account = WorldManager.getPlayerAccount(player);
- AccountJobWhitelist accountJobWhitelist = AccountManager.getAccountJobWhitelists().stream()
- .filter(x -> x.getAccountId() == account.getId() && x.getJobId().equals(jobEnum.type))
- .findFirst().orElse(null);
- if(accountJobWhitelist != null) {
- players.add(player);
- }
- }catch (Exception exception) {}
- }
- return players;
- }
-
- public static JobVehicleRental getNearbyVehicleRental(Player player) {
- for(JobVehicleRental jobVehicleRental : jobVehicleRentals) {
- if(jobVehicleRental.isNear(player)) return jobVehicleRental;
- }
- return null;
- }
-
- public static JobNPC getNearbyJobNPC(Player player) {
- for(JobNPC jobNPC : jobNPCS) {
- if(jobNPC.isNear(player)) return jobNPC;
- }
- return null;
- }
-
- public static JobTool getNearbyJobTool(Player player) {
- for(JobTool jobTool : jobTools) {
- if(jobTool.isNear(player)) return jobTool;
- }
- return null;
- }
-
- public static LinkedHashMap getJobs() {
- return jobs;
- }
-
- public static ArrayList getWearableWorldObjects() {
- return wearableWorldObjects;
- }
-
- public static ArrayList getJobNPCS() {
- return jobNPCS;
- }
-
- public static ArrayList getJobTools() {
- return jobTools;
- }
-
- public static ArrayList getJobLevels() {
- return jobLevels;
- }
-
- public static ArrayList getJobVehicleRentals() {
- return jobVehicleRentals;
- }
-
- public static DeliveryPointConfig getDeliveryPointConfig() {
- return deliveryPointConfig;
- }
-}
+package fr.yuki.yrpf.manager;
+
+import com.google.gson.Gson;
+import eu.bebendorf.ajorm.Repo;
+import fr.yuki.yrpf.character.CharacterJobLevel;
+import fr.yuki.yrpf.character.CharacterState;
+import fr.yuki.yrpf.character.CharacterStyle;
+import fr.yuki.yrpf.enums.ItemTemplateEnum;
+import fr.yuki.yrpf.enums.JobEnum;
+import fr.yuki.yrpf.enums.ToastTypeEnum;
+import fr.yuki.yrpf.i18n.I18n;
+import fr.yuki.yrpf.inventory.Inventory;
+import fr.yuki.yrpf.inventory.InventoryItem;
+import fr.yuki.yrpf.job.*;
+import fr.yuki.yrpf.model.*;
+import fr.yuki.yrpf.net.payload.AddCharacterJobPayload;
+import fr.yuki.yrpf.net.payload.AddXpBarItemPayload;
+import lombok.Getter;
+import net.onfirenetwork.onsetjava.Onset;
+import net.onfirenetwork.onsetjava.data.Color;
+import net.onfirenetwork.onsetjava.data.Vector;
+import net.onfirenetwork.onsetjava.entity.Pickup;
+import net.onfirenetwork.onsetjava.entity.Player;
+import net.onfirenetwork.onsetjava.enums.Animation;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class JobManager {
+ @Getter
+ private static Map jobs;
+ @Getter
+ private static List wearableWorldObjects;
+ @Getter
+ private static List