Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.Matthijs.Mattie.RedstoneSponge;
- import java.io.*;
- import java.util.HashMap;
- import java.util.Properties;
- import java.util.logging.*;
- import org.bukkit.entity.Player;
- import org.bukkit.Server;
- import org.bukkit.event.Event.Priority;
- import org.bukkit.event.Event;
- import org.bukkit.plugin.PluginDescriptionFile;
- import org.bukkit.plugin.PluginLoader;
- import org.bukkit.plugin.java.JavaPlugin;
- /**
- * RedstoneSponge for Bukkit
- *
- * @author Matthijs
- */
- public class RedstoneSponge extends JavaPlugin
- {
- private final RedstoneSpongeBlockListener blockListener = new RedstoneSpongeBlockListener(this);
- private final HashMap<Player, Boolean> debugees = new HashMap<Player, Boolean>();
- final Logger logger = Logger.getLogger("Minecraft");
- public long startTimeStamp;
- private boolean spongeWater;
- private boolean spongeLava;
- private int spongeRadius;
- private boolean redstoneSponge;
- private boolean convertWhenPowered = false;
- private int convertID;
- private int woolColourCode;
- private boolean blockWhenPowered;
- // public RedstoneSponge(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader)
- // {
- // super();
- // // TODO: Place any custom initialisation code here
- //
- // // NOTE: Event registration should be done in onEnable not here as all events are unregistered when a plugin is disabled
- // }
- public void init()
- {
- onEnable();
- }
- public void onEnable()
- {
- setup();
- // TODO: Place any custom enable code here including the registration of any events
- startTimeStamp = System.currentTimeMillis();
- // Register our events
- getServer().getPluginManager().registerEvent(Event.Type.BLOCK_PLACED, new RedstoneSpongeBlockListener(this), Priority.Normal, this);
- getServer().getPluginManager().registerEvent(Event.Type.BLOCK_PHYSICS, new RedstoneSpongeBlockListener(this), Priority.Normal, this);
- if (redstoneSponge)//only register this event when set in the config
- {
- getServer().getPluginManager().registerEvent(Event.Type.REDSTONE_CHANGE, new RedstoneSpongeBlockListener(this), Priority.Normal, this);
- }
- // EXAMPLE: Custom code, here we just output some info so we can check all is well
- PluginDescriptionFile pdfFile = this.getDescription();
- // System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!");
- logger.log(Level.INFO, pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!");
- }
- public void setup()
- {
- //config file stuff here
- //use some pre-defined values for now
- Properties prop = new Properties();
- String sep = System.getProperty("file.separator");
- String CBpluginDir = "plugins";
- String pluginDir = "RedstoneSponge";
- String configFileName = "RedstoneSponge.properties";
- File f = new File(CBpluginDir + sep + pluginDir + sep + configFileName);
- File dir = new File(CBpluginDir + sep + pluginDir);
- if (!dir.exists())
- {
- dir.mkdir();
- logger.log(Level.INFO, "RedstoneSponge Directory does not exists... creating...");
- }
- if (!f.exists())
- {
- try
- {
- //set the properties value
- prop.setProperty("water-sponge", "true");
- prop.setProperty("lava-sponge", "true");
- prop.setProperty("sponge-radius", "3");
- prop.setProperty("redstone-sponge", "true");
- prop.setProperty("convert-when-powered", "false");
- prop.setProperty("convert-id", "35");
- prop.setProperty("wool-colour", "YELLOW");
- prop.setProperty("block-when-powered", "false");
- //save properties to project root folder
- prop.store(new FileOutputStream(CBpluginDir + sep + pluginDir + sep + configFileName), "Minecraft bukkit server plugin properties\n#RedstoneSponge Plugin!");
- logger.log(Level.INFO, "RedstoneSponge Config-file does not exists... creating...");
- } catch (IOException ex)
- {
- logger.log(Level.SEVERE, "RedstoneSponge Directory and/or File can not be found and can not be ceated!");
- }
- }
- //and now load the values
- try
- {
- //load a properties file
- prop.load(new FileInputStream(CBpluginDir + sep + pluginDir + sep + configFileName));
- //get the property value and print it out
- spongeWater = Boolean.parseBoolean(prop.getProperty("water-sponge", "true"));
- spongeLava = Boolean.parseBoolean(prop.getProperty("lava-sponge", "true"));
- spongeRadius = (Integer.parseInt(prop.getProperty("sponge-radius", "3")) - 1);
- redstoneSponge = Boolean.parseBoolean(prop.getProperty("redstone-sponge", "true"));
- convertWhenPowered = Boolean.parseBoolean(prop.getProperty("convert-when-powered", "false"));
- convertID = Integer.parseInt(prop.getProperty("convert-id", "35"));
- blockWhenPowered = Boolean.parseBoolean(prop.getProperty("block-when-powered", "false"));
- // woolColour = Integer.parseInt(prop.getProperty("wool-colour", "4"));
- WoolColour c;
- c = WoolColour.valueOf(prop.getProperty("wool-colour", "YELLOW"));
- switch (c)
- {
- case WHITE :
- woolColourCode = 0;
- break;
- case ORANGE :
- woolColourCode = 1;
- break;
- case MAGENTA :
- woolColourCode = 2;
- break;
- case LIGHTBLUE :
- woolColourCode = 3;
- case YELLOW :
- woolColourCode = 4;
- break;
- case LIME :
- woolColourCode = 5;
- break;
- case PINK :
- woolColourCode = 6;
- break;
- case GRAY :
- woolColourCode = 7;
- break;
- case LIGHTGRAY :
- woolColourCode = 8;
- break;
- case CYAN :
- woolColourCode = 9;
- break;
- case PURPLE :
- woolColourCode = 10;
- break;
- case BLUE :
- woolColourCode = 11;
- break;
- case BROWN :
- woolColourCode = 12;
- break;
- case GREEN :
- woolColourCode = 13;
- break;
- case RED :
- woolColourCode = 14;
- break;
- case BLACK :
- woolColourCode = 15;
- break;
- default:
- woolColourCode = 4; // default == yellow == 4
- break;
- }
- } catch (IOException ex)
- {
- logger.log(Level.SEVERE, "Could not load values from the RedstoneSponge config file!");
- }
- }
- public void onDisable()
- {
- // TODO: Place any custom disable code here
- // NOTE: All registered events are automatically unregistered when a plugin is disabled
- // EXAMPLE: Custom code, here we just output some info so we can check all is well
- PluginDescriptionFile pdfFile = this.getDescription();
- // System.out.println("Goodbye world! " + pdfFile.getName() + " version " + pdfFile.getVersion() + " is now disabled!");
- logger.log(Level.INFO, pdfFile.getName() + " version " + pdfFile.getVersion() + " is disabled!");
- }
- public boolean isDebugging(final Player player)
- {
- if (debugees.containsKey(player))
- {
- return debugees.get(player);
- }
- else
- {
- return false;
- }
- }
- public void setDebugging(final Player player, final boolean value)
- {
- debugees.put(player, value);
- }
- public boolean isWaterSpongeEnabled()
- {
- return spongeWater;
- }
- public boolean isLavaSpongeEnabled()
- {
- return spongeLava;
- }
- public int getRadius()
- {
- return spongeRadius;
- }
- public boolean isRedstoneSponge()
- {
- return redstoneSponge;
- }
- public boolean isConvertWhenPoweredEnabled()
- {
- return convertWhenPowered;
- }
- public int getConvertID()
- {
- return convertID;
- }
- public int getWoolColour()
- {
- return woolColourCode;
- }
- public boolean isblockWhenPoweredEnabled()
- {
- return blockWhenPowered;
- }
- private enum WoolColour
- {
- WHITE, ORANGE, MAGENTA, LIGHTBLUE, YELLOW, LIME, PINK, GRAY, LIGHTGRAY, CYAN, PURPLE, BLUE, BROWN, GREEN, RED, BLACK
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement