Simple Permissions Plugin Tutorial!

Discussion in 'Resources' started by Mang0eZPvP, Aug 13, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Mang0eZPvP

    A Simple Permissions Plugin Tutorial.

    Ok Guyz Today i Show You How To Make A Permissions Plugin.

    First Of All Get The Code From This Video and link it back to him as he is the owener/coder of this piece.

    Link: http://pastebin.com/ER9Ykzha

    Now Here is The Code:

    First We Start Of With The Main Class:

    Code:java
    1. package com.fruitsdopvp.fruitperms;
    2.  
    3.  
    4.  
    5. import org.bukkit.Bukkit;
    6.  
    7. import org.bukkit.plugin.java.JavaPlugin;
    8.  
    9.  
    10.  
    11. import com.fruitsdopvp.fruitperms.SettingsManager;
    12.  
    13. import com.fruitsdopvp.fruitperms.MainListener;
    14.  
    15. import com.fruitsdopvp.fruitperms.commands.Perm;
    16.  
    17.  
    18.  
    19. public class EnableMain extends JavaPlugin {
    20.  
    21.  
    22.  
    23. SettingsManager settings = SettingsManager.getInstance();
    24.  
    25.  
    26.  
    27. private static EnableMain instance;
    28.  
    29.  
    30.  
    31. String[] Default = { "fruit.break", "fruit.place", "fruit.interact" };
    32.  
    33.  
    34.  
    35. String[] Admin = { "fruit.reload", "fruit.create.*", "fruit.add", "fruit.view" };
    36.  
    37.  
    38.  
    39. String[] Owner = { "*.*" };
    40.  
    41.  
    42.  
    43. public static EnableMain getInstance(){
    44.  
    45. return instance;
    46.  
    47. }
    48.  
    49.  
    50.  
    51. public void onEnable() {
    52.  
    53. settings.setup(this);
    54.  
    55. instance = this;
    56.  
    57. Bukkit.getServer().getPluginManager().registerEvents(new PlayerJoin(null), this);
    58.  
    59. if (settings.getConfig().getBoolean("firststartup", true) == true) {
    60.  
    61. if (settings.getData().getConfigurationSection("default") == null) {
    62.  
    63. settings.getData().createSection("default");
    64.  
    65. settings.getData().set("default.permissions", Default);
    66.  
    67. settings.getData().set("default.prefix", "&f");
    68.  
    69. settings.getData().set("default.suffix", "&f");
    70.  
    71. settings.getData().set("default.default", true);
    72.  
    73. }
    74.  
    75. if (settings.getData().getConfigurationSection("admin") == null) {
    76.  
    77. settings.getData().createSection("admin");
    78.  
    79. settings.getData().set("admin.permissions", Admin);
    80.  
    81. settings.getData().set("admin.prefix", "&f");
    82.  
    83. settings.getData().set("admin.suffix", "&f");
    84.  
    85. settings.getData().set("admin.default", false);
    86.  
    87. settings.getData().set("admin.inheritance", "default");
    88.  
    89. }
    90.  
    91. if (settings.getData().getConfigurationSection("owner") == null) {
    92.  
    93. settings.getData().createSection("owner");
    94.  
    95. settings.getData().set("owner.permissions", Owner);
    96.  
    97. settings.getData().set("owner.prefix", "&f");
    98.  
    99. settings.getData().set("owner.suffix", "&f");
    100.  
    101. settings.getData().set("owner.default", false);
    102.  
    103. settings.getData().set("owner.inheritance", "admin");
    104.  
    105. }
    106.  
    107. Bukkit.getLogger().info("firststartup is true in the config, using default groups.");
    108.  
    109. } else {
    110.  
    111. Bukkit.getLogger().info("firststartup is not true in the config, not using default groups.");
    112.  
    113. }
    114.  
    115. }
    116.  
    117.  
    118.  
    119. }



    Then We Do The Player Join:
    Code:
    package com.fruitsdopvp.fruitperms;
     
    import java.util.ArrayList;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.permissions.PermissionAttachment;
     
    import com.fruitsdopvp.fruitperms.SettingsManager;
     
    public class PlayerFile implements Listener {
       
        public EnableMain plugin;
       
        public PlayerFile(EnableMain instance) {
            this.plugin = instance;
        }   
       
        SettingsManager settings = SettingsManager.getInstance();
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            final Player p = e.getPlayer();
           
     
            if (settings.getPlayer().getConfigurationSection(p.getName()) == null) {
                Bukkit.broadcastMessage(ChatColor.BLUE + p.getName()
                        + ChatColor.AQUA + " Has Joined For The First Time!");
                try {
                    settings.getPlayer().createSection(p.getName() + ".group");
                    settings.getPlayer().set(p.getName() + ".group", "default");
                    settings.savePlayer();
                } catch (NullPointerException ex) {
                    ex.printStackTrace();
                    p.sendMessage(ChatColor.RED + "Error! See Console For More Information!");
                }
            }
           
           
            Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(EnableMain.getInstance(), new Runnable() {
                public void run() {
                    p.setPlayerListName(settings.getData().getString(settings.getPlayer().getString(p.getName() + ".group") + ".chat").replace("&", "§") + p.getName() + "" + ChatColor.RESET);
                    p.setDisplayName(settings.getData().getString(settings.getPlayer().getString(p.getName() + ".group") + ".chat").replace("&", "§") + p.getName() + "" + ChatColor.RESET);
                   
                    if (settings.getPlayer().getString(p.getName() + ".group") != null) {
                        try {
                            ArrayList<String> addPerms = new ArrayList<String>();
                            addPerms = (ArrayList<String>) settings.getPlayer().getStringList(settings.getPlayer().getString(p.getName() + ".group") + ".permissions");
                            for (String s : addPerms) {
                                if (s != null) {
                                    PermissionAttachment attachment = p.addAttachment(EnableMain.getInstance(), s, true);
                                    attachment.setPermission(s, true);
                                } else {
                                    p.sendMessage(ChatColor.RED + "Error!");
                                }
                            }
                        } catch (NullPointerException ex) {
                            ex.printStackTrace();
                            p.sendMessage(ChatColor.RED    + "Error! See Console For More Information");
                        }
                    }
                   
                   
                    try {
                        ArrayList<String> addPerms = new ArrayList<String>();
                        addPerms = (ArrayList<String>) settings.getPlayer().getStringList(
                                p.getName() + ".permissions");
                        for (String s : addPerms) {
                            if (s != null) {
                                PermissionAttachment attachment = p.addAttachment(
                                        EnableMain.getInstance(), s, true);
                                attachment.setPermission(s, true);
                            } else {
                                p.sendMessage(ChatColor.RED + "Error!");
                            }
                        }
                    } catch (NullPointerException ex) {
                        ex.printStackTrace();
                        p.sendMessage(ChatColor.RED    + "Error! See Console For More Information!");
                    }
                   
                   
                    settings.savePlayer();
                    settings.reloadPlayer();
                    settings.reloadData();
                    settings.reloadConfig();
                }
            }, 1, 20);
        }
    }
    
    That Is All We Need. You Continue This is just a simple tutorial on how to make group based perms. To See More Tutorials Visit: http:www.youtube.com/user/fruitsdopvp


    Note This is my first forum tutorial.
     
  2. It would be more helpfully, if you explain the lines...
     
  3. Offline

    Dinosaurs

    Wait.... how is this an tutorial, if you are just giving code?

    edit: I see that you gravedigged an thread from 2013.
     
Thread Status:
Not open for further replies.

Share This Page