Add more to the config

This commit is contained in:
md_5 2013-06-20 18:16:28 +10:00
parent ccd447743e
commit ba7c6ef6b0

View File

@ -1,4 +1,4 @@
From f6b9d470ca4aa3abddd5eaa0c3d50ca1db0802b5 Mon Sep 17 00:00:00 2001 From f1b9716fd4c673cd0074121a4084fcf1cdc3137b Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Thu, 20 Jun 2013 17:35:57 +1000 Date: Thu, 20 Jun 2013 17:35:57 +1000
Subject: [PATCH] Spigot Configuration Subject: [PATCH] Spigot Configuration
@ -38,10 +38,10 @@ index 3a4ddea..de052bd 100644
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
new file mode 100644 new file mode 100644
index 0000000..80a76c1 index 0000000..bf297bc
--- /dev/null --- /dev/null
+++ b/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -0,0 +1,91 @@ @@ -0,0 +1,98 @@
+package org.spigotmc; +package org.spigotmc;
+ +
+import com.google.common.base.Throwables; +import com.google.common.base.Throwables;
@ -50,6 +50,7 @@ index 0000000..80a76c1
+import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method; +import java.lang.reflect.Method;
+import java.lang.reflect.Modifier; +import java.lang.reflect.Modifier;
+import java.util.List;
+import java.util.logging.Level; +import java.util.logging.Level;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.configuration.file.YamlConfiguration;
@ -81,20 +82,20 @@ index 0000000..80a76c1
+ config.options().copyDefaults( true ); + config.options().copyDefaults( true );
+ +
+ version = getInt( "config-version", 1 ); + version = getInt( "config-version", 1 );
+ readConfig( SpigotConfig.class ); + readConfig( SpigotConfig.class, null );
+ } + }
+ +
+ static void readConfig(Class<?> clazz) + static void readConfig(Class<?> clazz, Object instance)
+ { + {
+ for ( Method method : SpigotConfig.class.getDeclaredMethods() ) + for ( Method method : SpigotConfig.class.getDeclaredMethods() )
+ { + {
+ if ( Modifier.isPrivate( method.getModifiers() ) && Modifier.isStatic( method.getModifiers() ) ) + if ( Modifier.isPrivate( method.getModifiers() ) )
+ { + {
+ if ( method.getParameterTypes().length == 0 ) + if ( method.getParameterTypes().length == 0 )
+ { + {
+ try + try
+ { + {
+ method.invoke( null ); + method.invoke( instance );
+ } catch ( InvocationTargetException ex ) + } catch ( InvocationTargetException ex )
+ { + {
+ Throwables.propagate( ex.getCause() ); + Throwables.propagate( ex.getCause() );
@ -127,6 +128,12 @@ index 0000000..80a76c1
+ return config.getInt( path, config.getInt( path ) ); + return config.getInt( path, config.getInt( path ) );
+ } + }
+ +
+ private <T> List<T> getList(String path, T def)
+ {
+ config.addDefault( path, def );
+ return (List<T>) config.getList( path, config.getList( path ) );
+ }
+
+ private static String getString(String path, String def) + private static String getString(String path, String def)
+ { + {
+ config.addDefault( path, def ); + config.addDefault( path, def );
@ -135,12 +142,13 @@ index 0000000..80a76c1
+} +}
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
new file mode 100644 new file mode 100644
index 0000000..b954278 index 0000000..7d3ec55
--- /dev/null --- /dev/null
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -0,0 +1,50 @@ @@ -0,0 +1,57 @@
+package org.spigotmc; +package org.spigotmc;
+ +
+import java.util.List;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.configuration.file.YamlConfiguration;
+ +
@ -160,7 +168,7 @@ index 0000000..b954278
+ log( "-------------- Spigot ----------------" ); + log( "-------------- Spigot ----------------" );
+ log( "-------- World Settings For [" + worldName + "] --------" ); + log( "-------- World Settings For [" + worldName + "] --------" );
+ log( "-------------------------------------------------" ); + log( "-------------------------------------------------" );
+ SpigotConfig.readConfig( SpigotWorldConfig.class ); + SpigotConfig.readConfig( SpigotWorldConfig.class, this );
+ } + }
+ +
+ private void log(String s) + private void log(String s)
@ -183,6 +191,12 @@ index 0000000..b954278
+ return config.getInt( "world-settings." + worldName + "." + path, config.getInt( "world-settings.default." + path ) ); + return config.getInt( "world-settings." + worldName + "." + path, config.getInt( "world-settings.default." + path ) );
+ } + }
+ +
+ private <T> List<T> getList(String path, T def)
+ {
+ config.addDefault( "world-settings.default." + path, def );
+ return (List<T>) config.getList( "world-settings." + worldName + "." + path, config.getList( "world-settings.default." + path ) );
+ }
+
+ private String getString(String path, String def) + private String getString(String path, String def)
+ { + {
+ config.addDefault( "world-settings.default." + path, def ); + config.addDefault( "world-settings.default." + path, def );