forked from MagicBane/Server
FatBoy-DOTC
1 year ago
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