Skip to content

Commit 26fb2ff

Browse files
committed
Added a deleteplayer command to delete the account of a player
1 parent 8c37dc0 commit 26fb2ff

File tree

5 files changed

+82
-5
lines changed

5 files changed

+82
-5
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>ad1tya2</groupId>
88
<artifactId>AdiAuth</artifactId>
9-
<version>1.5</version>
9+
<version>1.6</version>
1010
<packaging>jar</packaging>
1111

1212
<name>AdiAuth</name>

src/main/java/ad1tya2/adiauth/Bungee/AdiAuth.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public boolean isLoggable(LogRecord record) {
5858
getProxy().getPluginManager().registerCommand(this, new converter());
5959
getProxy().getPluginManager().registerCommand(this, new checkuserdata());
6060
getProxy().getPluginManager().registerCommand(this, new changeplayermode());
61+
getProxy().getPluginManager().registerCommand(this, new deleteplayer());
6162
servers.serversStatusChecker();
6263

6364
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package ad1tya2.adiauth.Bungee.commands;
2+
3+
import ad1tya2.adiauth.Bungee.UserProfile;
4+
import ad1tya2.adiauth.Bungee.data.storage;
5+
import net.md_5.bungee.api.ChatColor;
6+
import net.md_5.bungee.api.CommandSender;
7+
import net.md_5.bungee.api.ProxyServer;
8+
import net.md_5.bungee.api.connection.ProxiedPlayer;
9+
import net.md_5.bungee.api.plugin.Command;
10+
11+
public class deleteplayer extends Command {
12+
public deleteplayer(){
13+
super("deleteplayer", "adiauth.admin", "deleteuser");
14+
}
15+
@Override
16+
public void execute(CommandSender sender, String[] args) {
17+
if(args.length != 1){
18+
sender.sendMessage(ChatColor.YELLOW+"Please use /deleteplayer <username>");
19+
return;
20+
}
21+
String username = args[0];
22+
UserProfile profile = storage.getPlayerMemory(username);
23+
if(profile == null){
24+
sender.sendMessage(ChatColor.YELLOW+"Player dosent exist");
25+
} else {
26+
profile.password = null;
27+
profile.endSession();
28+
ProxiedPlayer p = ProxyServer.getInstance().getPlayer(profile.uuid);
29+
if(p != null){
30+
p.disconnect(ChatColor.RED+"Your Account has been deleted!");
31+
}
32+
storage.deletePlayer(profile);
33+
sender.sendMessage("Successfully deleted "+profile.username);
34+
}
35+
}
36+
}

src/main/java/ad1tya2/adiauth/Bungee/commands/unregister.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ad1tya2.adiauth.Bungee.UserProfile;
44
import ad1tya2.adiauth.Bungee.data.storage;
5+
import net.md_5.bungee.api.ChatColor;
56
import net.md_5.bungee.api.CommandSender;
67
import net.md_5.bungee.api.ProxyServer;
78
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -14,22 +15,22 @@ public unregister(){
1415
@Override
1516
public void execute(CommandSender sender, String[] args) {
1617
if(args.length != 1){
17-
sender.sendMessage("&ePlease use /unregister <username>");
18+
sender.sendMessage(ChatColor.YELLOW+"Please use /unregister <username>");
1819
return;
1920
}
2021
String username = args[0];
2122
UserProfile profile = storage.getPlayerMemory(username);
2223
if(profile == null){
23-
sender.sendMessage("&ePlayer dosent exist");
24+
sender.sendMessage(ChatColor.YELLOW+"Player dosent exist");
2425
} else {
2526
profile.password = null;
2627
profile.endSession();
2728
ProxiedPlayer p = ProxyServer.getInstance().getPlayer(profile.uuid);
2829
if(p != null){
29-
p.disconnect("&cYou have been unregistered!");
30+
p.disconnect(ChatColor.RED+"You have been unregistered!");
3031
}
3132
storage.updatePlayer(profile);
32-
sender.sendMessage("&2Successfully unregistered &b"+username);
33+
sender.sendMessage("Successfully unregistered "+username);
3334
}
3435
}
3536
}

src/main/java/ad1tya2/adiauth/Bungee/data/storage.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,19 @@ public static void addAccountToIpList(UserProfile profile){
7979
}
8080
profilesByIp.put(profile.lastIp, profiles);
8181
}
82+
83+
public static void removeAccountFromIpList(UserProfile profile){
84+
if(profile.lastIp == null){
85+
return;
86+
}
87+
List<UserProfile> profiles = profilesByIp.get(profile.lastIp);
88+
if(profiles == null){
89+
profiles = new ArrayList<UserProfile>();
90+
}
91+
profiles.remove(profile);
92+
profilesByIp.put(profile.lastIp, profiles);
93+
}
94+
8295
public static void load(){
8396
try {
8497
tools.log("&eLoading Players...");
@@ -287,6 +300,32 @@ public static void updatePlayer(UserProfile player){
287300
asyncUserProfileUpdate(player);
288301
}
289302

303+
public static void deletePlayer(UserProfile profile){
304+
if(profile.discordId!=null)
305+
removePlayerFromDiscord(profile.discordId);
306+
307+
pMapByPremiumUuid.remove(profile.premiumUuid);
308+
pMap.remove(profile.username);
309+
removeAccountFromIpList(profile);
310+
311+
AdiAuth.instance.getProxy().getScheduler().runAsync(AdiAuth.instance, new Runnable() {
312+
@Override
313+
public void run() {
314+
try {
315+
Connection conn = database.getConnection();
316+
PreparedStatement stmt = conn.prepareStatement(
317+
"DELETE FROM auth_users WHERE uuid=?");
318+
stmt.setString(1, profile.uuid.toString());
319+
stmt.executeUpdate();
320+
stmt.close();
321+
conn.close();
322+
} catch (SQLException e) {
323+
e.printStackTrace();
324+
}
325+
}
326+
});
327+
}
328+
290329
public static UserProfile getPlayerByDiscord(String discordId){
291330
return pMapByDiscord.get(discordId);
292331
}

0 commit comments

Comments
 (0)