diff --git a/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/ChristmasGizmo.java b/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/ChristmasGizmo.java index 7003593..3b97d55 100644 --- a/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/ChristmasGizmo.java +++ b/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/ChristmasGizmo.java @@ -1,5 +1,8 @@ package tc.oc.lobby.bukkit.gizmos.christmas; +import com.google.common.collect.Range; +import java.time.MonthDay; +import java.time.ZoneOffset; import org.bukkit.Material; import org.bukkit.entity.Player; import tc.oc.lobby.bukkit.gizmos.Gizmo; @@ -11,10 +14,13 @@ public abstract class ChristmasGizmo extends Gizmo { super(name, prefix, description, icon, 0); } + public abstract Range freeRange(); + @Override public boolean canPurchase(Player player) { - // HACK: Players can only have one hallow gizmo - return (player.hasPermission("lobby.gizmo.buy.christmas") && !ownsAny(player)) || player.isOp(); + // HACK: Players can only have one Christmas gizmo + MonthDay now = MonthDay.now(ZoneOffset.UTC); + return (player.hasPermission("lobby.gizmo.buy.christmas") && !ownsAny(player)) || player.isOp() || (freeRange().contains(now)); } private boolean ownsAny(Player player) { diff --git a/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/tree/ChristmasTreeGizmo.java b/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/tree/ChristmasTreeGizmo.java index 13510b3..d35c189 100644 --- a/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/tree/ChristmasTreeGizmo.java +++ b/Lobby/src/main/java/tc/oc/lobby/bukkit/gizmos/christmas/tree/ChristmasTreeGizmo.java @@ -1,5 +1,7 @@ package tc.oc.lobby.bukkit.gizmos.christmas.tree; +import com.google.common.collect.Range; +import java.time.MonthDay; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -22,6 +24,10 @@ public class ChristmasTreeGizmo extends ChristmasGizmo { Bukkit.getPluginManager().registerEvents(this, Lobby.get()); } + @Override public Range freeRange() { + return Range.open(MonthDay.of(12, 24), MonthDay.of(12, 26)); + } + @EventHandler(ignoreCancelled = true) public void onPlayerInteract(PlayerInteractEvent e) { if (!(Gizmos.gizmoMap.get(e.getPlayer()) instanceof ChristmasTreeGizmo)