Last active
March 3, 2020 17:01
-
-
Save M4cs/d45bd756cc59e4da4bfd16ebc4577cff to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package us.updat.betterparty.utils; | |
import org.json.simple.JSONArray; | |
import org.json.simple.JSONObject; | |
import org.json.simple.parser.JSONParser; | |
import org.json.simple.parser.ParseException; | |
import us.updat.betterparty.BPMain; | |
import us.updat.betterparty.BPParty; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.UUID; | |
import java.io.FileReader; | |
import java.io.FileWriter; | |
import java.io.IOException; | |
import java.io.Reader; | |
public class BPJsonUtil { | |
private static FileWriter file; | |
@SuppressWarnings("unchecked") | |
public static void readJSONToParty(BPParty party, BPMain plugin, String fileName) { | |
JSONParser parser = new JSONParser(); | |
try (Reader reader = new FileReader(plugin.getDataFolder() + "storage/" + fileName)){ | |
JSONObject obj = (JSONObject) parser.parse(reader); | |
party.setPartyName((String) obj.get("party_name")); | |
party.setPartyOwner(UUID.fromString((String) obj.get("party_owner"))); | |
JSONArray partyAdmins = (JSONArray) obj.get("party_admins"); | |
if (partyAdmins != null) { | |
Iterator<String> adminIter = partyAdmins.iterator(); | |
if (adminIter.hasNext()) { | |
while (adminIter.hasNext()) { | |
party.addPartyAdmin(UUID.fromString(adminIter.next())); | |
} | |
} else { | |
party.addPartyAdmin(UUID.fromString((String) obj.get("party_owner"))); | |
} | |
} | |
JSONArray partyMembers = (JSONArray) obj.get("party_members"); | |
if (partyMembers != null) { | |
Iterator<String> memberIter = partyMembers.iterator(); | |
if (memberIter.hasNext()) { | |
while (memberIter.hasNext()) { | |
party.addPartyMember(UUID.fromString(memberIter.next())); | |
} | |
} else { | |
party.addPartyMember(UUID.fromString((String) obj.get("party_owner"))); | |
} | |
} | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} catch (ParseException e) { | |
e.printStackTrace(); | |
} | |
} | |
@SuppressWarnings("unchecked") | |
public static void writePartyToJSON(BPParty party, BPMain plugin) { | |
JSONObject obj = new JSONObject(); | |
List<UUID> partyAdmins = party.getPartyAdmins(); | |
UUID partyOwner = party.getPartyOwner(); | |
List<UUID> partyMembers = party.getPartyMembers(); | |
String partyName = party.getPartyName(); | |
obj.put("name", partyName); | |
obj.put("owner", partyOwner.toString()); | |
JSONArray jsonAdmins = new JSONArray(); | |
if (partyAdmins != null && partyAdmins.size() > 0) { | |
for (UUID admin : partyAdmins) { | |
jsonAdmins.add(admin.toString()); | |
} | |
obj.put("party_admins", jsonAdmins); | |
} else { | |
obj.put("party_admins", new JSONArray()); | |
} | |
JSONArray jsonMembers = new JSONArray(); | |
if (partyMembers != null && partyMembers.size() > 0) { | |
for (UUID member : partyMembers) { | |
jsonAdmins.add(member.toString()); | |
} | |
obj.put("party_admins", jsonMembers); | |
} else { | |
obj.put("party_admins", new JSONArray()); | |
} | |
try { | |
file = new FileWriter(plugin.getDataFolder() + "storage/" + partyName + ".json"); | |
file.write(obj.toJSONString()); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} finally { | |
try { | |
file.flush(); | |
file.close(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package us.updat.betterparty; | |
import java.util.List; | |
import java.util.UUID; | |
import us.updat.betterparty.utils.BPJsonUtil; | |
public class BPParty { | |
String partyName; | |
List<UUID> partyMembers; | |
UUID partyOwner; | |
List<UUID> partyAdmins; | |
public BPParty(String partyName, UUID partyOwner) { | |
this.partyName = partyName; | |
this.partyOwner = partyOwner; | |
this.partyMembers.add(this.partyOwner); | |
this.partyAdmins.add(this.partyOwner); | |
} | |
public String getPartyName() { | |
return partyName; | |
} | |
public List<UUID> getPartyMembers(){ | |
return partyMembers; | |
} | |
public UUID getPartyOwner() { | |
return partyOwner; | |
} | |
public List<UUID> getPartyAdmins(){ | |
return partyAdmins; | |
} | |
public void setPartyName(String partyName) { | |
this.partyName = partyName; | |
} | |
public void setPartyOwner(UUID newPartyOwner) { | |
partyOwner = newPartyOwner; | |
} | |
public boolean removePartyMember(UUID member) { | |
if (partyMembers.contains(member)) { | |
return partyMembers.remove(member); | |
} else { | |
return false; | |
} | |
} | |
public boolean addPartyMember(UUID member) { | |
if (!addPartyMember(member)) { | |
return partyMembers.add(member); | |
} else { | |
return false; | |
} | |
} | |
public boolean addPartyAdmin(UUID admin) { | |
if (!partyAdmins.contains(admin)){ | |
return partyAdmins.add(admin); | |
} else { | |
return false; | |
} | |
} | |
public boolean removePartyAdmin(UUID admin) { | |
if (partyAdmins.contains(admin)){ | |
return partyAdmins.remove(admin); | |
} else { | |
return false; | |
} | |
} | |
public void saveParty(BPMain plugin) { | |
BPJsonUtil.writePartyToJSON(this, plugin); | |
} | |
public void populateFromJSON(String fileName, BPMain plugin) { | |
BPJsonUtil.readJSONToParty(this, plugin, fileName); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment