summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorementalo <ementalodev@gmx.co.uk>2012-07-17 14:46:35 +0100
committerementalo <ementalodev@gmx.co.uk>2012-07-17 14:46:35 +0100
commit9db8dac2e321c502763d7d790c231341bb083363 (patch)
tree142c37ec5ff130e9f7b4dacdeb654b8510e07889
parented00fb9d39bfb994cb17323857b4ded561f1e102 (diff)
downloadEssentials-9db8dac2e321c502763d7d790c231341bb083363.tar
Essentials-9db8dac2e321c502763d7d790c231341bb083363.tar.gz
Essentials-9db8dac2e321c502763d7d790c231341bb083363.tar.lz
Essentials-9db8dac2e321c502763d7d790c231341bb083363.tar.xz
Essentials-9db8dac2e321c502763d7d790c231341bb083363.zip
Some more fixes
-rw-r--r--Essentials/src/net/ess3/Kits.java59
-rw-r--r--Essentials/src/net/ess3/api/IUser.java4
-rw-r--r--Essentials/src/net/ess3/api/server/World.java2
-rw-r--r--Essentials/src/net/ess3/settings/Jails.java6
-rw-r--r--Essentials/src/net/ess3/settings/Kit.java2
-rw-r--r--Essentials/src/net/ess3/settings/Spawns.java2
6 files changed, 64 insertions, 11 deletions
diff --git a/Essentials/src/net/ess3/Kits.java b/Essentials/src/net/ess3/Kits.java
index e286eb847..3dfcac31f 100644
--- a/Essentials/src/net/ess3/Kits.java
+++ b/Essentials/src/net/ess3/Kits.java
@@ -1,15 +1,18 @@
package net.ess3;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
import static net.ess3.I18n._;
import net.ess3.api.IEssentials;
import net.ess3.api.IKits;
import net.ess3.api.IUser;
+import net.ess3.api.server.ItemStack;
+import net.ess3.commands.NoChargeException;
import net.ess3.settings.Kit;
import net.ess3.storage.AsyncStorageObjectHolder;
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-import org.bukkit.inventory.ItemStack;
+import net.ess3.user.UserData.TimestampType;
+import net.ess3.utils.DateUtil;
public class Kits extends AsyncStorageObjectHolder<net.ess3.settings.Kits> implements IKits
@@ -87,4 +90,52 @@ public class Kits extends AsyncStorageObjectHolder<net.ess3.settings.Kits> imple
{
return getData().getKits().isEmpty();
}
+
+ @Override
+ public void finishRead()
+ {
+
+ }
+
+ @Override
+ public void finishWrite()
+ {
+
+ }
+
+ @Override
+ public void checkTime(IUser user, Kit kit) throws NoChargeException
+ {
+ final Calendar time = new GregorianCalendar();
+ // Take the current time, and remove the delay from it.
+ final double delay = kit.getDelay();
+ final Calendar earliestTime = new GregorianCalendar();
+ earliestTime.add(Calendar.SECOND, -(int)delay);
+ earliestTime.add(Calendar.MILLISECOND, -(int)((delay * 1000.0) % 1000.0));
+
+ // This value contains the most recent time a kit could have been used that would allow another use.
+
+ final long earliestLong = earliestTime.getTimeInMillis();
+
+ // When was the last kit used?
+ final Long lastTime = user.getTimestamp(TimestampType.KIT);
+ if (lastTime == null || lastTime < earliestLong)
+ {
+ user.setTimestamp(TimestampType.KIT, time.getTimeInMillis());
+ }
+ else if (lastTime > time.getTimeInMillis())
+ {
+ // This is to make sure time didn't get messed up on last kit use.
+ // If this happens, let's give the user the benifit of the doubt.
+ user.setTimestamp(TimestampType.KIT, time.getTimeInMillis());
+ }
+ else
+ {
+ time.setTimeInMillis(lastTime);
+ time.add(Calendar.SECOND, (int)delay);
+ time.add(Calendar.MILLISECOND, (int)((delay * 1000.0) % 1000.0));
+ user.sendMessage(_("kitTimed", DateUtil.formatDateDiff(time.getTimeInMillis())));
+ throw new NoChargeException();
+ }
+ }
}
diff --git a/Essentials/src/net/ess3/api/IUser.java b/Essentials/src/net/ess3/api/IUser.java
index 257c971cb..bb1d985ed 100644
--- a/Essentials/src/net/ess3/api/IUser.java
+++ b/Essentials/src/net/ess3/api/IUser.java
@@ -1,13 +1,13 @@
package net.ess3.api;
+import java.util.List;
import net.ess3.api.server.CommandSender;
-import net.ess3.api.server.Player;
import net.ess3.api.server.ItemStack;
import net.ess3.api.server.Location;
+import net.ess3.api.server.Player;
import net.ess3.storage.IStorageObjectHolder;
import net.ess3.user.CooldownException;
import net.ess3.user.UserData;
-import java.util.List;
public interface IUser extends Player, IStorageObjectHolder<UserData>, IReload, IReplyTo, Comparable<IUser>
diff --git a/Essentials/src/net/ess3/api/server/World.java b/Essentials/src/net/ess3/api/server/World.java
index ecd129609..9f1487635 100644
--- a/Essentials/src/net/ess3/api/server/World.java
+++ b/Essentials/src/net/ess3/api/server/World.java
@@ -23,4 +23,6 @@ public interface World {
void setWeatherDuration(int i);
long getTime();
+
+ void setSpawnLocation(int blockX, int blockY, int blockZ);
}
diff --git a/Essentials/src/net/ess3/settings/Jails.java b/Essentials/src/net/ess3/settings/Jails.java
index 6bcad4d4a..412e04f78 100644
--- a/Essentials/src/net/ess3/settings/Jails.java
+++ b/Essentials/src/net/ess3/settings/Jails.java
@@ -4,15 +4,15 @@ import java.util.HashMap;
import java.util.Map;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import net.ess3.storage.Location;
import net.ess3.storage.MapValueType;
import net.ess3.storage.StorageObject;
+import net.ess3.storage.StoredLocation;
@Data
@EqualsAndHashCode(callSuper = false)
public class Jails implements StorageObject
{
- @MapValueType(Location.class)
- private Map<String, Location> jails = new HashMap<String, Location>();
+ @MapValueType(StoredLocation.class)
+ private Map<String, StoredLocation> jails = new HashMap<String, StoredLocation>();
}
diff --git a/Essentials/src/net/ess3/settings/Kit.java b/Essentials/src/net/ess3/settings/Kit.java
index 822209eda..19b4b0275 100644
--- a/Essentials/src/net/ess3/settings/Kit.java
+++ b/Essentials/src/net/ess3/settings/Kit.java
@@ -4,9 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import net.ess3.api.server.ItemStack;
import net.ess3.storage.ListType;
import net.ess3.storage.StorageObject;
-import org.bukkit.inventory.ItemStack;
@Data
diff --git a/Essentials/src/net/ess3/settings/Spawns.java b/Essentials/src/net/ess3/settings/Spawns.java
index 91dab36f9..c01f366e2 100644
--- a/Essentials/src/net/ess3/settings/Spawns.java
+++ b/Essentials/src/net/ess3/settings/Spawns.java
@@ -5,9 +5,9 @@ import java.util.Map;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.ess3.storage.Comment;
-import net.ess3.storage.Location;
import net.ess3.storage.MapValueType;
import net.ess3.storage.StorageObject;
+import net.ess3.storage.StoredLocation;
@Data