mirror of
https://github.com/plexusorg/Plex.git
synced 2025-07-12 04:18:34 +00:00
tttt
This commit is contained in:
102
src/main/java/dev/plex/rank/RankManager.java
Normal file
102
src/main/java/dev/plex/rank/RankManager.java
Normal file
@ -0,0 +1,102 @@
|
||||
package dev.plex.rank;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import dev.plex.Plex;
|
||||
import dev.plex.player.PlexPlayer;
|
||||
import dev.plex.util.PlexLog;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import dev.plex.rank.enums.Rank;
|
||||
import org.json.JSONObject;
|
||||
import org.json.JSONTokener;
|
||||
|
||||
public class RankManager
|
||||
{
|
||||
private final File defaultRanks;
|
||||
|
||||
public RankManager()
|
||||
{
|
||||
File ranksFolder = new File(Plex.get().getDataFolder() + File.separator + "ranks");
|
||||
if (!ranksFolder.exists())
|
||||
{
|
||||
ranksFolder.mkdir();
|
||||
}
|
||||
|
||||
defaultRanks = new File(ranksFolder, "default-ranks.json");
|
||||
}
|
||||
|
||||
public void generateDefaultRanks()
|
||||
{
|
||||
if (defaultRanks.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
defaultRanks.createNewFile();
|
||||
|
||||
Map<String, DefaultRankObj> rankMap = Maps.newHashMap();
|
||||
for (Rank rank : Rank.values())
|
||||
{
|
||||
rankMap.put(rank.name().toUpperCase(), new DefaultRankObj(rank));
|
||||
}
|
||||
|
||||
JSONObject obj = new JSONObject();
|
||||
if (obj.length() == 0)
|
||||
{
|
||||
obj.put("ranks", rankMap);
|
||||
|
||||
FileWriter writer = new FileWriter(defaultRanks);
|
||||
writer.append(obj.toString(4));
|
||||
writer.flush();
|
||||
writer.close();
|
||||
PlexLog.log("Generating default-ranks.json");
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void importDefaultRanks()
|
||||
{
|
||||
if (!defaultRanks.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
FileInputStream stream = new FileInputStream(defaultRanks);
|
||||
JSONTokener tokener = new JSONTokener(stream);
|
||||
JSONObject object = new JSONObject(tokener);
|
||||
JSONObject rankObj = object.getJSONObject("ranks");
|
||||
for (Rank rank : Rank.values())
|
||||
{
|
||||
if (rankObj.isNull(rank.name().toUpperCase()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
rank.setLoginMessage(rankObj.getJSONObject(rank.name().toUpperCase()).getString("loginMSG"));
|
||||
rank.setPrefix(rankObj.getJSONObject(rank.name().toUpperCase()).getString("prefix")); //should i even be doing this
|
||||
rank.setPermissions(rankObj.getJSONObject(rank.name().toUpperCase()).getJSONArray("permissions").toList().stream().map(Object::toString).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isAdmin(PlexPlayer plexPlayer)
|
||||
{
|
||||
return !plexPlayer.getRank().isEmpty() && plexPlayer.getRankFromString().isAtLeast(Rank.ADMIN);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user