mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	@@ -16,11 +16,16 @@ import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
 | 
			
		||||
import java.io.BufferedInputStream;
 | 
			
		||||
import java.io.BufferedOutputStream;
 | 
			
		||||
import java.io.BufferedReader;
 | 
			
		||||
import java.io.BufferedWriter;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileInputStream;
 | 
			
		||||
import java.io.FileNotFoundException;
 | 
			
		||||
import java.io.FileOutputStream;
 | 
			
		||||
import java.io.FileReader;
 | 
			
		||||
import java.io.FileWriter;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.io.OutputStream;
 | 
			
		||||
@@ -59,6 +64,7 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
	
 | 
			
		||||
	public static String maindirectory = "plugins" + File.separator + "mcMMO";
 | 
			
		||||
	File file = new File(maindirectory + File.separator + "config.yml");
 | 
			
		||||
	static File versionFile = new File(maindirectory + File.separator + "VERSION");
 | 
			
		||||
	public static final Logger log = Logger.getLogger("Minecraft"); 
 | 
			
		||||
	private final mcPlayerListener playerListener = new mcPlayerListener(this);
 | 
			
		||||
	private final mcBlockListener blockListener = new mcBlockListener(this);
 | 
			
		||||
@@ -81,6 +87,20 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
	{
 | 
			
		||||
		new File(maindirectory).mkdir();
 | 
			
		||||
		
 | 
			
		||||
		if(!versionFile.exists()) {
 | 
			
		||||
			updateVersion();
 | 
			
		||||
		} else {
 | 
			
		||||
			String vnum = readVersion();
 | 
			
		||||
			//This will be changed to whatever version preceded when we actually need updater code.
 | 
			
		||||
			//Version 1.0.48 is the first to implement this, no checking before that version can be done.
 | 
			
		||||
			if(vnum.equalsIgnoreCase("1.0.48")) {
 | 
			
		||||
				updateFrom(1);
 | 
			
		||||
			}
 | 
			
		||||
			//Just add in more else if blocks for versions that need updater code.  Increment the updateFrom age int as we do so.
 | 
			
		||||
			//Catch all for versions not matching and no specific code being needed
 | 
			
		||||
			else if(!vnum.equalsIgnoreCase(this.getDescription().getVersion())) updateFrom(-1);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		mcPermissions.initialize(getServer());
 | 
			
		||||
		config.configCheck();
 | 
			
		||||
		
 | 
			
		||||
@@ -1437,6 +1457,60 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * It is important to always assume that you are updating from the lowest possible version.
 | 
			
		||||
	 * Thus, every block of updater code should be complete and self-contained; finishing all 
 | 
			
		||||
	 * SQL transactions and closing all file handlers, such that the next block of updater code
 | 
			
		||||
	 * if called will handle updating as expected.
 | 
			
		||||
	 */
 | 
			
		||||
	public void updateFrom(int age) {
 | 
			
		||||
		//No updater code needed, just update the version.
 | 
			
		||||
		if(age == -1) {
 | 
			
		||||
			updateVersion();
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		//Updater code from age 1 goes here
 | 
			
		||||
		if(age <= 1) {
 | 
			
		||||
			//Since age 1 is an example for now, we will just let it do nothing.
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		//If we are updating from age 1 but we need more to reach age 2, this will run too.
 | 
			
		||||
		if(age <= 2) {
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		updateVersion();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public void updateVersion() {
 | 
			
		||||
		try {
 | 
			
		||||
			versionFile.createNewFile();
 | 
			
		||||
			BufferedWriter vout = new BufferedWriter(new FileWriter(versionFile));
 | 
			
		||||
			vout.write(this.getDescription().getVersion());
 | 
			
		||||
			vout.close();
 | 
			
		||||
		} catch (IOException ex) {
 | 
			
		||||
			ex.printStackTrace();
 | 
			
		||||
		} catch (SecurityException ex) {
 | 
			
		||||
			ex.printStackTrace();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String readVersion() {
 | 
			
		||||
		byte[] buffer = new byte[(int) versionFile.length()];
 | 
			
		||||
		BufferedInputStream f = null;
 | 
			
		||||
		try {
 | 
			
		||||
			f = new BufferedInputStream(new FileInputStream(versionFile));
 | 
			
		||||
			f.read(buffer);
 | 
			
		||||
		} catch (FileNotFoundException ex) {
 | 
			
		||||
			ex.printStackTrace();
 | 
			
		||||
		} catch (IOException ex) {
 | 
			
		||||
			ex.printStackTrace();
 | 
			
		||||
		} finally {
 | 
			
		||||
			if (f != null) try { f.close(); } catch (IOException ignored) { }
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return new String(buffer);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public Player getPlayer(String playerName){
 | 
			
		||||
		for(Player herp : getPlayersOnline()){
 | 
			
		||||
			if(herp.getName().toLowerCase().equals(playerName.toLowerCase())){
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user