forked from MagicBane/Server
				
			
				 3 changed files with 161 additions and 76 deletions
			
			
		| @ -0,0 +1,143 @@@@ -0,0 +1,143 @@ | ||||
| // • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
 | ||||
| // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
 | ||||
| // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
 | ||||
| // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
 | ||||
| // ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
 | ||||
| //      Magicbane Emulator Project © 2013 - 2022
 | ||||
| //                www.magicbane.com
 | ||||
| 
 | ||||
| 
 | ||||
| package engine.objects; | ||||
| 
 | ||||
| import engine.gameManager.DbManager; | ||||
| import engine.math.Vector3fImmutable; | ||||
| import engine.net.client.ClientConnection; | ||||
| import engine.net.client.msg.ClientNetMsg; | ||||
| import engine.net.client.msg.PetitionReceivedMsg; | ||||
| import org.joda.time.DateTime; | ||||
| import org.pmw.tinylog.Logger; | ||||
| 
 | ||||
| import java.sql.Connection; | ||||
| import java.sql.PreparedStatement; | ||||
| import java.sql.SQLException; | ||||
| 
 | ||||
| public class Petition extends AbstractGameObject { | ||||
|     public int primaryType; | ||||
|     public int subType; | ||||
|     public Account reportAccount; | ||||
|     public PlayerCharacter reportPlayer; | ||||
|     public Vector3fImmutable playerLocation; | ||||
|     public DateTime reportTime; | ||||
|     public String message; | ||||
| 
 | ||||
|     public Petition(ClientNetMsg msg, ClientConnection origin){ | ||||
|         this.primaryType = ((PetitionReceivedMsg)msg).getType(); | ||||
|         this.subType = ((PetitionReceivedMsg)msg).getSubType(); | ||||
|         this.reportAccount = origin.getAccount(); | ||||
|         this.reportPlayer = origin.getPlayerCharacter(); | ||||
|         this.playerLocation = origin.getPlayerCharacter().getLoc(); | ||||
|         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`=?, `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.executeUpdate(); | ||||
| 
 | ||||
|         } catch (SQLException e) { | ||||
|             Logger.error("CREATE PETITION FAILED: " + e); | ||||
|         } | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue