Advertisement
ZP4RKER

Perm

Aug 19th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. package com.zp4rker.zlevels.util;
  2.  
  3. import com.zp4rker.zlevels.PlayerData;
  4. import com.zp4rker.zlevels.config.Config;
  5. import com.zp4rker.zlevels.config.ConfigManager;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.permissions.PermissionAttachment;
  9. import org.bukkit.plugin.java.JavaPlugin;
  10.  
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.List;
  14.  
  15. @SuppressWarnings("unused")
  16. public class Perm {
  17.  
  18.     public static JavaPlugin plugin;
  19.  
  20.     private static ConfigManager manager;
  21.     private static Config levels;
  22.  
  23.  
  24.     public Perm(JavaPlugin plugin) {
  25.         this.plugin = plugin;
  26.         manager = new ConfigManager(plugin);
  27.         levels = manager.getNewConfig("levels.yml");
  28.     }
  29.  
  30.     public static HashMap<Player, PermissionAttachment> attachments = new HashMap<>();
  31.  
  32.     public static void add(Player player, String perm) {
  33.  
  34.         PermissionAttachment attachment = attachments.get(player);
  35.  
  36.         if(attachment == null) {
  37.             attachment = player.addAttachment(plugin);
  38.         }
  39.  
  40.         attachment.setPermission(perm, true);
  41.  
  42.         attachments.put(player, attachment);
  43.  
  44.     }
  45.  
  46.     public static void reset(Player player) {
  47.         try {
  48.             player.removeAttachment(attachments.get(player));
  49.         } catch(IllegalArgumentException e) {}
  50.     }
  51.  
  52.     public static void reloadPerms() {
  53.         for(Player player : Bukkit.getOnlinePlayers()) {
  54.             PlayerData playerData = plugin.getDatabase().find(PlayerData.class).where().ieq("playerName", player.getName()).findUnique();
  55.             int level = playerData.getLevel();
  56.             List<String> types = playerData.getTypes();
  57.             List<String> perms = new ArrayList<>();
  58.             if(types.isEmpty()) {
  59.                 return;
  60.             } else {
  61.                 for(String type : types) {
  62.                     for(Object Perm : levels.getList("levels." + level + "." + type)) {
  63.                         String perm = Perm.toString();
  64.                         perms.add(perm);
  65.                     }
  66.                 }
  67.             }
  68.             for(String perm : perms) {
  69.                 Perm.reset(player);
  70.                 Perm.add(player, perm);
  71.             }
  72.         }
  73.     }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement