mirror of
https://github.com/plexusorg/Plex.git
synced 2024-12-22 17:17:37 +00:00
start punishment system
This commit is contained in:
parent
87abb0a964
commit
2d18c16358
7
pom.xml
7
pom.xml
@ -44,6 +44,13 @@
|
|||||||
<version>20200518</version>
|
<version>20200518</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<version>2.8.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- DATABASING -->
|
<!-- DATABASING -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -8,6 +8,7 @@ import me.totalfreedom.plex.cache.SQLPlayerData;
|
|||||||
import me.totalfreedom.plex.config.Config;
|
import me.totalfreedom.plex.config.Config;
|
||||||
import me.totalfreedom.plex.handlers.CommandHandler;
|
import me.totalfreedom.plex.handlers.CommandHandler;
|
||||||
import me.totalfreedom.plex.handlers.ListenerHandler;
|
import me.totalfreedom.plex.handlers.ListenerHandler;
|
||||||
|
import me.totalfreedom.plex.punishment.PunishmentManager;
|
||||||
import me.totalfreedom.plex.rank.RankManager;
|
import me.totalfreedom.plex.rank.RankManager;
|
||||||
import me.totalfreedom.plex.storage.MongoConnection;
|
import me.totalfreedom.plex.storage.MongoConnection;
|
||||||
import me.totalfreedom.plex.storage.RedisConnection;
|
import me.totalfreedom.plex.storage.RedisConnection;
|
||||||
@ -36,6 +37,8 @@ public class Plex extends JavaPlugin
|
|||||||
|
|
||||||
private RankManager rankManager;
|
private RankManager rankManager;
|
||||||
|
|
||||||
|
private PunishmentManager punishmentManager;
|
||||||
|
|
||||||
private AdminList adminList;
|
private AdminList adminList;
|
||||||
|
|
||||||
public static Plex get()
|
public static Plex get()
|
||||||
@ -97,6 +100,9 @@ public class Plex extends JavaPlugin
|
|||||||
rankManager.importDefaultRanks();
|
rankManager.importDefaultRanks();
|
||||||
PlexLog.log("Rank Manager initialized");
|
PlexLog.log("Rank Manager initialized");
|
||||||
|
|
||||||
|
punishmentManager = new PunishmentManager();
|
||||||
|
PlexLog.log("Punishment Manager initialized");
|
||||||
|
|
||||||
adminList = new AdminList();
|
adminList = new AdminList();
|
||||||
|
|
||||||
generateWorlds();
|
generateWorlds();
|
||||||
|
@ -8,6 +8,8 @@ import org.bukkit.Bukkit;
|
|||||||
|
|
||||||
public class DataUtils
|
public class DataUtils
|
||||||
{
|
{
|
||||||
|
/* PLEX PLAYER METHODS */
|
||||||
|
|
||||||
public static boolean hasPlayedBefore(UUID uuid)
|
public static boolean hasPlayedBefore(UUID uuid)
|
||||||
{
|
{
|
||||||
if (Plex.get().getStorageType() == StorageType.MONGO)
|
if (Plex.get().getStorageType() == StorageType.MONGO)
|
||||||
@ -64,4 +66,6 @@ public class DataUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* REDIS METHODS AT ONE POINT FOR BANS, AND JSON METHODS FOR PUNISHMENTS */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,8 @@ import me.totalfreedom.plex.command.impl.FionnCMD;
|
|||||||
import me.totalfreedom.plex.listener.PlexListener;
|
import me.totalfreedom.plex.listener.PlexListener;
|
||||||
import me.totalfreedom.plex.player.PlexPlayer;
|
import me.totalfreedom.plex.player.PlexPlayer;
|
||||||
import me.totalfreedom.plex.player.PunishedPlayer;
|
import me.totalfreedom.plex.player.PunishedPlayer;
|
||||||
|
import me.totalfreedom.plex.punishment.Punishment;
|
||||||
|
import me.totalfreedom.plex.punishment.PunishmentType;
|
||||||
import me.totalfreedom.plex.util.PlexLog;
|
import me.totalfreedom.plex.util.PlexLog;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -99,8 +101,14 @@ public class PlayerListener extends PlexListener
|
|||||||
{
|
{
|
||||||
event.setJoinMessage(ChatColor.AQUA + player.getName() + " is " + plexPlayer.getRankFromString().getLoginMSG());
|
event.setJoinMessage(ChatColor.AQUA + player.getName() + " is " + plexPlayer.getRankFromString().getLoginMSG());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*Punishment test = new Punishment(player.getUniqueId(), player.getUniqueId());
|
||||||
|
test.setPunishedUsername(player.getName());
|
||||||
|
test.setReason("hii");
|
||||||
|
test.setType(PunishmentType.FREEZE);
|
||||||
|
plugin.getPunishmentManager().insertPunishment(PlayerCache.getPunishedPlayer(player.getUniqueId()), test);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// saving the player's data
|
// saving the player's data
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
package me.totalfreedom.plex.punishment;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class Punishment
|
||||||
|
{
|
||||||
|
|
||||||
|
private final UUID punished;
|
||||||
|
private final UUID punisher;
|
||||||
|
|
||||||
|
private final List<String> IPS;
|
||||||
|
|
||||||
|
private String punishedUsername;
|
||||||
|
|
||||||
|
private PunishmentType type;
|
||||||
|
private String reason;
|
||||||
|
private boolean customTime;
|
||||||
|
private long endDate;
|
||||||
|
|
||||||
|
public Punishment(UUID punished, UUID punisher)
|
||||||
|
{
|
||||||
|
this.punished = punished;
|
||||||
|
this.punisher = punisher;
|
||||||
|
this.IPS = Lists.newArrayList();
|
||||||
|
|
||||||
|
this.punishedUsername = "";
|
||||||
|
this.type = null;
|
||||||
|
this.reason = "";
|
||||||
|
this.customTime = false;
|
||||||
|
this.endDate = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toJSON()
|
||||||
|
{
|
||||||
|
return new Gson().toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Punishment fromJson(String json)
|
||||||
|
{
|
||||||
|
return new Gson().fromJson(json, Punishment.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,84 @@
|
|||||||
|
package me.totalfreedom.plex.punishment;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import me.totalfreedom.plex.Plex;
|
||||||
|
import me.totalfreedom.plex.cache.DataUtils;
|
||||||
|
import me.totalfreedom.plex.player.PunishedPlayer;
|
||||||
|
import me.totalfreedom.plex.util.PlexLog;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONTokener;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class PunishmentManager
|
||||||
|
{
|
||||||
|
|
||||||
|
public void insertPunishment(PunishedPlayer player, Punishment punishment)
|
||||||
|
{
|
||||||
|
File folder = new File(Plex.get().getDataFolder() + File.separator + "punishments");
|
||||||
|
if (!folder.exists())
|
||||||
|
{
|
||||||
|
folder.mkdir();
|
||||||
|
}
|
||||||
|
|
||||||
|
File file = new File(folder, player.getUuid() + ".json");
|
||||||
|
if (!file.exists())
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
file.createNewFile();
|
||||||
|
PlexLog.log("Created new punishment file for " + player.getUuid() + " (" + DataUtils.getPlayer(punishment.getPunished()).getName() + ")");
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (isNotEmpty(file))
|
||||||
|
{
|
||||||
|
JSONTokener tokener = new JSONTokener(new FileInputStream(file));
|
||||||
|
JSONObject object = new JSONObject(tokener);
|
||||||
|
object.getJSONObject(punishment.getPunished().toString()).getJSONArray("punishments").put(punishment.toJSON());
|
||||||
|
|
||||||
|
FileWriter writer = new FileWriter(file);
|
||||||
|
writer.append(object.toString(8));
|
||||||
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
|
} else {
|
||||||
|
JSONObject object = new JSONObject();
|
||||||
|
Map<String, List<String>> punishments = Maps.newHashMap();
|
||||||
|
|
||||||
|
List<String> punishmentList = Lists.newArrayList();
|
||||||
|
punishmentList.add(punishment.toJSON());
|
||||||
|
|
||||||
|
punishments.put("punishments", punishmentList);
|
||||||
|
object.put(punishment.getPunished().toString(), punishments);
|
||||||
|
|
||||||
|
FileWriter writer = new FileWriter(file);
|
||||||
|
writer.append(object.toString(8));
|
||||||
|
writer.flush();
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isNotEmpty(File file) {
|
||||||
|
try {
|
||||||
|
return !FileUtils.readFileToString(file, StandardCharsets.UTF_8).trim().isEmpty();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package me.totalfreedom.plex.punishment;
|
||||||
|
|
||||||
|
public enum PunishmentType
|
||||||
|
{
|
||||||
|
MUTE, FREEZE, BAN;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user