package com.alecgorge.minecraft.jsonapi.adminium; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.bukkit.configuration.InvalidConfigurationException; import org.json.simpleForBukkit.JSONObject; import com.alecgorge.minecraft.jsonapi.adminium.Adminium3.AdminiumPushNotification; import com.alecgorge.minecraft.jsonapi.dynamic.API_Method; import com.alecgorge.minecraft.jsonapi.dynamic.JSONAPIMethodProvider; public class Adminium3Methods implements JSONAPIMethodProvider { Adminium3Config config; Adminium3 adminium; public Adminium3Methods(Adminium3 ad) { adminium = ad; config = Adminium3Config.config(); } @API_Method(namespace="",name="adminium.devices.register", isProvidedByV2API=false) public boolean registerDevice(String pushID) { if(pushID.length() != 64) return false; if(!config.devices.containsKey(pushID)) { config.devices.put(pushID, config.notificationDefaults); try { config.save(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return true; } @API_Method(namespace="",name="adminium.devices.remove", isProvidedByV2API=false) public boolean removeDevice(String pushID) { if(config.devices.containsKey(pushID)) { config.devices.remove(pushID); try { config.save(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return true; } @API_Method(namespace="",name="adminium.devices.device.taboo.all", isProvidedByV2API=false) public List<String> tabooList(String pushID) { try { List<String> taboo = config.taboo.get(pushID); if(taboo == null) { return new ArrayList<String>(); } return taboo; } catch (Exception e) { e.printStackTrace(); return new ArrayList<String>(); } } @API_Method(namespace="",name="adminium.devices.device.taboo.add", isProvidedByV2API=false) public boolean tabooAdd(String pushID, String phrase) { if(!config.taboo.containsKey(pushID)) { config.taboo.put(pushID, new ArrayList<String>()); } if(!config.taboo.get(pushID).contains(phrase)) { config.taboo.get(pushID).add(phrase); try { config.save(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return true; } @API_Method(namespace="",name="adminium.devices.device.taboo.remove", isProvidedByV2API=false) public boolean tabooRemove(String pushID, String phrase) { if(config.taboo.containsKey(pushID) && config.taboo.get(pushID).contains(phrase)) { config.taboo.get(pushID).remove(phrase); try { config.save(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return true; } @API_Method(namespace="",name="adminium.devices.device.push_notifications", isProvidedByV2API=false) public JSONObject pushNotifications(String pushID) { if(config.devices.containsKey(pushID)) { Map<String, Boolean> dev = config.devices.get(pushID); JSONObject o = new JSONObject(); for(String key : dev.keySet()) { JSONObject oo = new JSONObject(); oo.put("enabled", dev.get(key)); oo.put("description", Adminium3.pushTypeDescriptions.get(Adminium3.pushTypes.indexOf(key))); o.put(key, oo); } return o; } return new JSONObject(); } @API_Method(namespace="",name="adminium.devices.device.set_push_notification", isProvidedByV2API=false) public JSONObject setPushNotifications(String pushID, String pushType, Boolean on) { if(config.devices.containsKey(pushID)) { Map<String, Boolean> dev = config.devices.get(pushID); dev.put(pushType, on); try { config.save(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return new JSONObject(); } @API_Method(namespace="",name="adminium.notifications.all", isProvidedByV2API=false) public List<AdminiumPushNotification> getAllPushNotifications() { return adminium.notifications; } }