Nederlands Minecraft Forum

Minecraft => Tutorials => Topic gestart door: DevNiels op 12 juli 2013, 07:08:18

Titel: [TUT] Advanced Bukkit Plugin #Config
Bericht door: DevNiels op 12 juli 2013, 07:08:18
Hallo iedereen,
Bij deze een tutorial van mij, hoe je een config kan maken in je plugin. Dit kan van toepassing kom indien je nog maar net met plugins werkt, of nooit met configs temaken hebt gehad. Ik hoop dat jullie er nog iets van kunnen keren.

Hiervoor moet je al overweg kunnen gaan met de basis dingen.
Kan je dat nog niet? Geen nood, lees dit (http://minecraftforum.nl/index.php/topic,27993.0.html) maar eens goed door.

onEnable en onDisable
Deze laten jou plugin in/uitschakelen, wat handig is anders start jou plugin niet op.
Hier heb ik voorbeelden van een onEnable en onDisable

Voorbeeld onEnable:
        @Override
        public void onEnable(){
        getLogger().info(pdfFile.getName() + "v." + pdfFile.getVersion + " is enabled!");
   
    }
Er zijn enkele dingen speciaal aan mijn onEnable:
Ook is het mogelijk om nog een paar dingen toe te voegen, zoals:
Voorbeeld onDisable:
        @Override
        public void onDisable() {
        getLogger().info(pdfFile.getName + "is disabled!");
   
}
We moeten nu zorgen dat als de plugin opstart hij de 'Defaults' overneemt, dit doen we door een code toe te voegen bij de onEnable:
getConfig().options().copyDefaults(true);Dan krijg je dit als onEnable:
        public void onEnable(){
        getLogger().info(pdfFile.getName() + "v." + pdfFile.getVersion + " is enabled!");
        getConfig().options().copyDefaults(true);

    }

Config.yml
We moeten nu de config.yml aanmaken.
Klik nu op de project folder en klik dan File > New > File en noem de file “config.yml”(zonder “ ”).

De config voor deze tutorial:
Test: Tester de test testDit was een van de makkelijkste stappen.

De command
Ik heb een simpele test command gemaakt.
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
            if(cmd.getName().equalsIgnoreCase("test")){
            sender.sendMessage(getConfig().getString("Test"))
De onderstreepte 'Test' verwijst naar de 'Test' in de config file, dus als je van "Test" "Koekjes" maakt, moet je hetzelfde doen in de config file.

Wat doet nu de command '/test'?
Hij zend het bericht wat na de "Test" tag staat in de config.yml naar de zender (degene die de command gebruikt).

Reload config command
  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
            if(cmd.getName().equalsIgnoreCase("testreload")){
            loadConfig();
            sender.sendMessage("The config has been reloaded")
           

String, Int of Boolean
Er zijn verschillende 'maten' in de config, 3 van de belangrijkste zijn:

Slot
Ik heb dit volledig met een iPad getypt, als je enige spelfouten vind, meld het.
Ook als je iets mist meld het a.u.b. binnenkort ga ik nog wel een voorbeeld toevoegen voor Int en Boolean.
Ook als je meer van deze plugin tutorials wilt, zeg het.
Met vriendelijke groet,
Niels
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: DevNiels op 12 juli 2013, 12:31:46
Er loopt nu een poll.
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: Turtle op 12 juli 2013, 17:30:18
Handig!  ;)
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: Wouttah op 12 juli 2013, 17:43:13
Nu nog plugins leren maken :S (ik)
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: DevNiels op 12 juli 2013, 18:14:12
Handig!  ;)
Bedankt, ik wil meer 'Advanced plugin' tutorials gaan maken, maar dan moeten jullie het ook willen. Stem daarvoor op de poll :)

Nu nog plugins leren maken :S (ik)
Bekijk de link die in het topic staat, dit is een tutorial hoe je een plugin maakt. Anders heb ik binnenkort wel tijd om het je zelf een keer uit te leggen.
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: Vincent1468 op 25 juli 2013, 17:52:26
hmmm, zo kan het ook ja.
Ik zelf vind het het makkelijks om een aparte class te maken voor het configuratie bestand.
Zo ongeveer:
package me.vincent1468.bukkit;

import org.bukkit.configuration.file.FileConfiguration;

public class Config {

public static void load(FreeCookies plugin) {
FileConfiguration config = plugin.getConfig();

config.options().header("FreeCookies Configuration File");

config.addDefault("GiveCookieOnJoin", true);
config.addDefault("use-permissions", false);
config.addDefault("amount", 1);

config.options().copyDefaults(true);
plugin.saveConfig();

giveCookieOnJoin = config.getBoolean("GiveCookieOnJoin");
usePermissions = config.getBoolean("use-permissions");
amount = config.getInt("amount");
}
public static void reload(FreeCookies plugin) {
plugin.reloadConfig();
}
public static Boolean giveCookieOnJoin() {
return giveCookieOnJoin;
}
public static Boolean usePermissions() {
return usePermissions;
}
public static Integer getAmount() {
return amount;
}
private static Boolean giveCookieOnJoin;
private static Boolean usePermissions;
private static Integer amount;
}
Dit is van een silly plugin die ik heb gemaakt toen ik niet zoveel te doen had, staan niet op bukkitdev ;P
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: DevNiels op 26 juli 2013, 05:23:16
hmmm, zo kan het ook ja.
Ik zelf vind het het makkelijks om een aparte class te maken voor het configuratie bestand.
Zo ongeveer:
package me.vincent1468.bukkit;

import org.bukkit.configuration.file.FileConfiguration;

public class Config {

public static void load(FreeCookies plugin) {
FileConfiguration config = plugin.getConfig();

config.options().header("FreeCookies Configuration File");

config.addDefault("GiveCookieOnJoin", true);
config.addDefault("use-permissions", false);
config.addDefault("amount", 1);

config.options().copyDefaults(true);
plugin.saveConfig();

giveCookieOnJoin = config.getBoolean("GiveCookieOnJoin");
usePermissions = config.getBoolean("use-permissions");
amount = config.getInt("amount");
}
public static void reload(FreeCookies plugin) {
plugin.reloadConfig();
}
public static Boolean giveCookieOnJoin() {
return giveCookieOnJoin;
}
public static Boolean usePermissions() {
return usePermissions;
}
public static Integer getAmount() {
return amount;
}
private static Boolean giveCookieOnJoin;
private static Boolean usePermissions;
private static Integer amount;
}
Dit is van een silly plugin die ik heb gemaakt toen ik niet zoveel te doen had, staan niet op bukkitdev ;P
Deze manier zou ik binnenkort ook even toevoegen.
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: dralletje op 26 juli 2013, 07:02:18
Hey, nice tutorial!

Ik zou alleen de beschrijving van boolean even aanpassen. Boolean staat namelijk voor true of false, en de uitleg die jij geeft is een beetje verwarrend ;)
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: DevNiels op 26 juli 2013, 07:41:29
Hey, nice tutorial!

Ik zou alleen de beschrijving van boolean even aanpassen. Boolean staat namelijk voor true of false, en de uitleg die jij geeft is een beetje verwarrend ;)
Verbeterd, bedankt voor het melden :)
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: dralletje op 26 juli 2013, 07:51:29
Verbeterd, bedankt voor het melden :)

Wauw,  dat is snel. Helemaal top :)
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: DevNiels op 26 juli 2013, 08:02:21
Wauw,  dat is snel. Helemaal top :)
Valt wel mee, 40 minuten is nog aardig lang.
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: bminemachine op 26 juli 2013, 15:40:27
Niels kan je ook uitleggen hoe je zo een reload command kan doen. /hhwsysteem reload
Titel: Re: [TUT] Config file maken in je plugin
Bericht door: dralletje op 26 juli 2013, 20:49:36
Niels kan je ook uitleggen hoe je zo een reload command kan doen. /hhwsysteem reload

Omdat Niels WEER zo langzaam reageert doe ik het naar even: dat staat in de post.

Enige wat jij moet doen is aanpassen wanneer het command uitgevoerd wordt. Als je wilt dat hij zelfs dat voor gaat doen, dan kan je hem beter de hele plugin voor je laten maken ;)
Titel: Re: [TUT] Advanced Bukkit Plugin #Config
Bericht door: DevNiels op 03 september 2013, 23:41:17
Titel vernieuwd! Bijpassend bij mijn andere tutorial.
Titel: Re: [TUT] Advanced Bukkit Plugin #Config
Bericht door: JRonaldo op 08 september 2013, 11:49:25
Alweer een fantastiese Tutorial, blijf zo door gaan man. Deze soorte Tutorials moesten overal zijn.

Nice bro.
Titel: Re: [TUT] Advanced Bukkit Plugin #Config
Bericht door: DevNiels op 08 september 2013, 11:51:32
Alweer een fantastiese Tutorial, blijf zo door gaan man. Deze soorte Tutorials moesten overal zijn.

Nice bro.
Bedankt.