From 80169c6ace141bc99e49335ec958e931a56c8af0 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Fri, 15 Aug 2025 16:12:20 +0000 Subject: [PATCH] Dateien nach "MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object" hochladen --- .../object/RedstoneClock.java | 53 ++++++++++++++++++ .../object/RedstoneClockController.java | 56 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClock.java create mode 100644 MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClockController.java diff --git a/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClock.java b/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClock.java new file mode 100644 index 0000000..d149ceb --- /dev/null +++ b/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClock.java @@ -0,0 +1,53 @@ +package com.trafalcraft.anti_redstone_clock.object; + +import org.bukkit.Location; + +import com.trafalcraft.anti_redstone_clock.Main; + +public class RedstoneClock { + + private final long endTime; + private int numberOfClock; + private final Location loc; + private int value; + private boolean detected; + + public RedstoneClock(Location loc) { + endTime = System.currentTimeMillis() / 1000 + Main.getInstance().getConfig().getInt("Delay"); + numberOfClock = 0; + this.loc = loc; + detected = false; + } + + public void addOneToClock() { + numberOfClock++; + } + + public int getNumberOfClock() { + return numberOfClock; + } + + public Location getLocation() { + return loc; + } + + public void updateStatus(int value) { + this.value = value; + } + + public int getLastStatus() { + return value; + } + + public boolean isTimedOut() { + return (System.currentTimeMillis() / 1000) >= endTime; + } + + public void setDetected(boolean detected) { + this.detected = detected; + } + + public boolean getDetected() { + return detected; + } +} diff --git a/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClockController.java b/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClockController.java new file mode 100644 index 0000000..88c8940 --- /dev/null +++ b/MAIN/src/main/java/com/trafalcraft/anti_redstone_clock/object/RedstoneClockController.java @@ -0,0 +1,56 @@ +package com.trafalcraft.anti_redstone_clock.object; + +import com.google.common.collect.Maps; +import com.trafalcraft.anti_redstone_clock.exception.DuplicateRedstoneClockObjectException; +import com.trafalcraft.anti_redstone_clock.util.Msg; + +import org.bukkit.Location; + +import java.util.Collection; +import java.util.Map; +import java.util.concurrent.ConcurrentMap; + +public class RedstoneClockController { + private RedstoneClockController() {} + + private static final ConcurrentMap activeMap = Maps.newConcurrentMap(); + + public static void addRedstone(Location location) throws DuplicateRedstoneClockObjectException { + if (contains(location)) { + throw new DuplicateRedstoneClockObjectException(Msg.ERROR + Msg.DUPLICATE_OBJECT.toString() + " " + location); + } else { + activeMap.put(location, new RedstoneClock(location)); + } + } + + public static boolean contains(Location location) { + return activeMap.containsKey(location); + } + + public static void removeRedstoneByLocation(Location location) { + activeMap.remove(location); + } + + public static void removeRedstoneByObject(RedstoneClock rc) { + if (activeMap.containsValue(rc)) { + activeMap.remove(rc.getLocation()); + } + } + + public static RedstoneClock getRedstoneClock(Location location) { + return activeMap.get(location); + } + + public static Map getHashMap() { + return activeMap; + } + + public static Collection getAll() { + return activeMap.values(); + } + + public static Collection getAllLoc() { + return activeMap.keySet(); + } + +}