This commit is contained in:
bm01 2012-05-01 01:32:50 +02:00
parent ca1954ff80
commit 18c52a5e23
5 changed files with 75 additions and 82 deletions

View File

@ -115,15 +115,14 @@ public class mcMMO extends JavaPlugin {
if (Config.getInstance().getStatsTrackingEnabled()) {
try {
Metrics metrics = new Metrics(this);
metrics.start();
} catch (IOException e) {
System.out.println("Failed to submit stats.");
Metrics metrics = new Metrics(this);
metrics.start();
} catch (IOException e) {
System.out.println("Failed to submit stats.");
}
}
}
/**
* Get profile of the player.
* </br>
@ -164,23 +163,20 @@ public class mcMMO extends JavaPlugin {
* Things to be run when the plugin is disabled.
*/
public void onDisable() {
//Make sure to save player information if the server shuts down
for (PlayerProfile x : Users.getProfiles().values()) {
x.save();
}
this.getServer().getScheduler().cancelTasks(this); //This removes our tasks
//Remove other tasks BEFORE starting the Backup, or we just cancel it straight away.
try { //Try the backup
ZipLibrary.mcMMObackup();
} catch (IOException e) {
p.getLogger().severe(e.toString());
}
try {
ZipLibrary.mcMMObackup();
} catch (IOException e) {
p.getLogger().severe(e.toString());
}
System.out.println("mcMMO was disabled."); //How informative!
}
@ -188,7 +184,6 @@ public class mcMMO extends JavaPlugin {
* Register the commands.
*/
private void registerCommands() {
//Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands)
//Skills commands
aliasMap.put(LocaleLoader.getString("Acrobatics.SkillName").toLowerCase(), "acrobatics");

View File

@ -15,7 +15,7 @@ import com.gmail.nossr50.util.Combat;
public class BleedTimer implements Runnable {
private final static int MAX_BLEED_TICKS = 10;
private static Map<LivingEntity, Integer> bleedList = new HashMap<LivingEntity, Integer>();
private static Map<LivingEntity, Integer> bleedAddList = new HashMap<LivingEntity, Integer>();
private static List<LivingEntity> bleedRemoveList = new ArrayList<LivingEntity>();
@ -121,6 +121,7 @@ public class BleedTimer implements Runnable {
* Add a LivingEntity to the bleedList if it is not in it.
*
* @param entity LivingEntity to add
* @param ticks Number of bleeding ticks
*/
public static void add(LivingEntity entity, int ticks) {
int newTicks = ticks;
@ -128,7 +129,7 @@ public class BleedTimer implements Runnable {
if (lock) {
if (bleedAddList.containsKey(entity)) {
newTicks += bleedAddList.get(entity);
if (newTicks > MAX_BLEED_TICKS) {
newTicks = MAX_BLEED_TICKS;
}
@ -146,7 +147,7 @@ public class BleedTimer implements Runnable {
else {
if (bleedList.containsKey(entity)) {
newTicks += bleedList.get(entity);
if (newTicks > MAX_BLEED_TICKS) {
newTicks = MAX_BLEED_TICKS;
}

View File

@ -236,6 +236,7 @@ public class BlastMining {
/**
* Detonate TNT for Blast Mining
*
* @param event The PlayerInteractEvent
* @param player Player detonating the TNT
* @param plugin mcMMO plugin instance
*/

View File

@ -310,11 +310,11 @@ public class Combat {
if (!(entity instanceof LivingEntity)) {
continue;
}
if (numberOfTargets <= 0) {
break;
}
switch (entity.getType()) {
case WOLF:
AnimalTamer tamer = ((Wolf) entity).getOwner();
@ -324,50 +324,49 @@ public class Combat {
continue;
}
}
break;
case PLAYER:
Player defender = (Player) entity;
if (!target.getWorld().getPVP()) {
continue;
}
if (defender.getName().equals(attacker.getName())) {
continue;
}
if (Party.getInstance().inSameParty(attacker, defender)) {
continue;
}
PlayerProfile playerProfile = Users.getProfile((Player) entity);
if (playerProfile.getGodMode()) {
continue;
}
break;
}
switch (type) {
case SWORDS:
if (entity instanceof Player) {
((Player) entity).sendMessage(LocaleLoader.getString("Swords.Combat.SS.Struck"));
}
BleedTimer.add((LivingEntity) entity, 5);
break;
case AXES:
if (entity instanceof Player) {
((Player) entity).sendMessage(LocaleLoader.getString("Axes.Combat.Cleave.Struck"));
}
break;
}
dealDamage((LivingEntity) entity, damageAmount, attacker);
numberOfTargets--;
}

View File

@ -15,57 +15,55 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipLibrary {
private static String BackupDirectory = mcMMO.mainDirectory + "backup";
private static File BackupDir = new File(BackupDirectory);
private static File FlatFileDirectory = new File(mcMMO.flatFileDirectory);
private static File UsersFile = new File(mcMMO.usersFile);
private static File ConfigFile = new File(mcMMO.mainDirectory + "config.yml");
private static File Leaderboards = new File(mcMMO.leaderboardDirectory);
public static void mcMMObackup() throws IOException {
try {
if (BackupDir.mkdir()) { mcMMO.p.getLogger().info("Created Backup Directory."); }
} catch (Exception h) {
mcMMO.p.getLogger().severe(h.toString());
}
//Generate the proper date for the backup filename
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
File fileZip = new File(BackupDirectory + File.separator + dateFormat.format(date) + ".zip");
//Create the Source List, and add directories/etc to the file.
List<File> sources = new ArrayList<File>();
sources.add(FlatFileDirectory);
sources.add(UsersFile);
sources.add(ConfigFile);
sources.add(Leaderboards);
//Actually do something
System.out.println("Backing up your mcMMO Configuration... ");
packZip(fileZip, sources);
}
private static void packZip(File output, List<File> sources) throws IOException
private static String BackupDirectory = mcMMO.mainDirectory + "backup";
private static File BackupDir = new File(BackupDirectory);
private static File FlatFileDirectory = new File(mcMMO.flatFileDirectory);
private static File UsersFile = new File(mcMMO.usersFile);
private static File ConfigFile = new File(mcMMO.mainDirectory + "config.yml");
private static File Leaderboards = new File(mcMMO.leaderboardDirectory);
public static void mcMMObackup() throws IOException {
if (BackupDir.mkdir()) {
try {
mcMMO.p.getLogger().info("Created Backup Directory.");
} catch (Exception e) {
mcMMO.p.getLogger().severe(e.toString());
}
}
//Generate the proper date for the backup filename
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
File fileZip = new File(BackupDirectory + File.separator + dateFormat.format(date) + ".zip");
//Create the Source List, and add directories/etc to the file.
List<File> sources = new ArrayList<File>();
sources.add(FlatFileDirectory);
sources.add(UsersFile);
sources.add(ConfigFile);
sources.add(Leaderboards);
//Actually do something
System.out.println("Backing up your mcMMO Configuration... ");
packZip(fileZip, sources);
}
private static void packZip(File output, List<File> sources) throws IOException
{
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(output));
zipOut.setLevel(Deflater.DEFAULT_COMPRESSION);
for (File source : sources) {
if (source.isDirectory()) {
zipDir(zipOut, "", source);
} else {
}
else {
zipFile(zipOut, "", source);
}
}
zipOut.flush();
zipOut.close();
System.out.println("Backup Completed.");
@ -74,7 +72,8 @@ public class ZipLibrary {
private static String buildPath(String path, String file) {
if (path == null || path.isEmpty()) {
return file;
} else {
}
else {
return path + "/" + file;
}
}
@ -91,11 +90,11 @@ public class ZipLibrary {
for (File source : files) {
if (source.isDirectory()) {
zipDir(zos, path, source);
} else {
}
else {
zipFile(zos, path, source);
}
}
}
private static void zipFile(ZipOutputStream zos, String path, File file) throws IOException {
@ -103,13 +102,13 @@ public class ZipLibrary {
System.out.println("Cannot read " + file.getCanonicalPath() + "(File Permissions?)");
return;
}
zos.putNextEntry(new ZipEntry(buildPath(path, file.getName())));
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[4092];
int byteCount = 0;
while ((byteCount = fis.read(buffer)) != -1) {
zos.write(buffer, 0, byteCount);
}
@ -117,6 +116,4 @@ public class ZipLibrary {
fis.close();
zos.closeEntry();
}
}