diff --git a/src/engine/Enum.java b/src/engine/Enum.java index 749381f4..6830dfa7 100644 --- a/src/engine/Enum.java +++ b/src/engine/Enum.java @@ -37,6 +37,33 @@ import java.util.concurrent.ThreadLocalRandom; public class Enum { + public enum PetitionType { + NONE, + GENERAL, + FEEDBACK, + STUCK, + HARASSMENT, + EXPLOIT, + BUG, + GAME_STOPPER, + TECH_SUPPORT; + + } + + public enum PetitionSubType { + NONE, + DUPE, + LEVELLING, + SKILL_GAIN, + KILLING, + POLICY, + OTHER, + VIDEO, + SOUND, + NETWORKKl + + } + public enum MobFlagType implements EnumBitSetHelper { AGGRESSIVE, CANROAM, diff --git a/src/engine/net/client/ClientMessagePump.java b/src/engine/net/client/ClientMessagePump.java index dd36a446..d31a63c3 100644 --- a/src/engine/net/client/ClientMessagePump.java +++ b/src/engine/net/client/ClientMessagePump.java @@ -1884,8 +1884,6 @@ public class ClientMessagePump implements NetMsgHandler { break; case CHECKUNIQUEGUILD: break; - case CREATEPETITION: - break; case CANCELGUILDCREATION: break; case LEAVEREQUEST: diff --git a/src/engine/net/client/handlers/PetitionReceivedMsgHandler.java b/src/engine/net/client/handlers/PetitionReceivedMsgHandler.java index 73a0f4a3..43ee0bc9 100644 --- a/src/engine/net/client/handlers/PetitionReceivedMsgHandler.java +++ b/src/engine/net/client/handlers/PetitionReceivedMsgHandler.java @@ -14,21 +14,20 @@ public class PetitionReceivedMsgHandler extends AbstractClientMsgHandler { @Override protected boolean _handleNetMsg(ClientNetMsg msg, ClientConnection origin) throws MsgSendException { - if(msg == null) + if (msg == null) return false; - if(origin == null) + if (origin == null) return false; - Petition report = new Petition(msg,origin); - if(report == null){ + Petition report = new Petition(msg, origin); + + if (report == null) return false; - } try { report.updateDatabase(); - } - catch(Exception e){ + } catch (Exception e) { return false; } return true; diff --git a/src/engine/objects/Petition.java b/src/engine/objects/Petition.java index 1c259e79..e0fac7cf 100644 --- a/src/engine/objects/Petition.java +++ b/src/engine/objects/Petition.java @@ -9,6 +9,7 @@ package engine.objects; +import engine.Enum; import engine.gameManager.DbManager; import engine.math.Vector3fImmutable; import engine.net.client.ClientConnection; @@ -39,100 +40,30 @@ public class Petition extends AbstractGameObject { this.reportTime = DateTime.now(); this.message = ((PetitionReceivedMsg) msg).getMessage(); } - public static String getPrimaryTypeString(int value){ - String primaryReportType; - switch(value){ - case 1: // TYPE_GENERAL_HELP - primaryReportType = "GENERAL"; - break; - case 2: // TYPE_FEEDBACK - primaryReportType = "FEEDBACK"; - break; - case 3: // TYPE_STUCK - primaryReportType = "STUCK"; - break; - case 4: // TYPE_HARASSMENT - primaryReportType = "HARASSMENT"; - break; - case 5: // TYPE_EXPLOIT - primaryReportType = "EXPLOIT"; - break; - case 6: // TYPE_BUG - primaryReportType = "BUG"; - break; - case 7: // TYPE_GAME_STOPPER - primaryReportType = "GAME STOPPER"; - break; - case 8: // TYPE_TECH_SUPPORT - primaryReportType = "TECH SUPPORT"; - break; - default: // INVALID_TYPE cannot process this - primaryReportType = "NONE"; - break; - } - return primaryReportType; - } - public static String getSecondaryTypeString(int value){ - String subType; - switch (value) { - case 1: // SUBTYPE_EXPLOIT_DUPE - subType = "DUPE"; - break; - case 2: // SUBTYPE_EXPLOIT_LEVELING - subType = "LEVELLING"; - break; - case 3: // SUBTYPE_EXPLOIT_SKILL_GAIN - subType = "SKILL GAIN"; - break; - case 4: // SUBTYPE_EXPLOIT_KILLING - subType = "KILLING"; - break; - case 5: // SUBTYPE_EXPLOIT_POLICY - subType = "POLICY"; - break; - case 6: // SUBTYPE_EXPLOIT_OTHER - subType = "OTHER"; - break; - case 7: // SUBTYPE_TECH_VIDEO - subType = "VIDEO"; - break; - case 8: // SUBTYPE_TECH_SOUND - subType = "SOUND"; - break; - case 9: // SUBTYPE_TECH_NETWORK - subType = "NETWORK"; - break; - case 10: // SUBTYPE_TECH_OTHER - subType = "OTHER"; - break; - default: // INVALID_SUB_TYPE - subType = "NONE"; - break; - } - return subType; - } + public static String getLocationString(Vector3fImmutable loc){ return loc.x + "," + loc.y + "," + loc.z; } @Override public void updateDatabase() { + try (Connection connection = DbManager.getConnection(); //check that table exists + PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `dyn_petition` (`time`=?, `primaryType`=?, `subType`=?, `accountID`=?, `account`=?, " + + "`characterID`=?, `character`=?, `location`=?, `message`=?")) { - PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `dyn_petition` (`time`=?, `primaryType`=?, `subType`=?, `account`=?, " - + "`character`=?, `location`=?, `message`=?, `ID`=?)")) { - - preparedStatement.setString(1, this.reportTime.toString()); - preparedStatement.setString(2, getPrimaryTypeString(this.primaryType)); - preparedStatement.setString(3, getSecondaryTypeString(this.subType)); - preparedStatement.setString(4, this.reportAccount.getUname()); - preparedStatement.setString(5, this.reportPlayer.getFirstName()); - preparedStatement.setString(6, getLocationString(this.playerLocation)); - preparedStatement.setString(7, this.message); - preparedStatement.setInt(8, this.getObjectUUID()); + preparedStatement.setTimestamp(1, new java.sql.Timestamp(System.currentTimeMillis())); + preparedStatement.setString(2, Enum.PetitionType.values()[this.primaryType].name()); + preparedStatement.setString(3, Enum.PetitionSubType.values()[this.subType].name()); + preparedStatement.setInt(4, this.reportAccount.getObjectUUID()); + preparedStatement.setString(5, this.reportAccount.getUname()); + preparedStatement.setInt(6, this.reportPlayer.getObjectUUID()); + preparedStatement.setString(7, this.reportPlayer.getFirstName()); + preparedStatement.setString(8, getLocationString(this.playerLocation)); + preparedStatement.setString(9, this.message); preparedStatement.executeUpdate();