Package cn.nukkit.positiontracking
Class PositionTrackingService
java.lang.Object
cn.nukkit.positiontracking.PositionTrackingService
- All Implemented Interfaces:
Closeable
,AutoCloseable
@PowerNukkitOnly
@Since("1.4.0.0-PN")
@ParametersAreNonnullByDefault
public class PositionTrackingService
extends Object
implements Closeable
A position tracking db service. It holds file resources that needs to be closed when not needed anymore.
- Author:
- joserobjr
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
addNewPosition
(NamedPosition position) Adds the given position as a new entry in this storage, even if the position is already registered and enabled.int
addNewPosition
(NamedPosition position, boolean enabled) Adds the given position as a new entry in this storage, even if the position is already registered and enabled.int
addOrReusePosition
(NamedPosition position) Attempts to reuse an existing and enabled trackingHandler for the given position, if none is found than a new handler is created if the limit was not exceeded.void
close()
Close all activeprotected void
finalize()
findTrackingHandler
(NamedPosition position) it.unimi.dsi.fastutil.ints.IntList
it.unimi.dsi.fastutil.ints.IntList
findTrackingHandlers
(NamedPosition pos, boolean onlyEnabled) it.unimi.dsi.fastutil.ints.IntList
findTrackingHandlers
(NamedPosition pos, boolean onlyEnabled, int limit) void
forceRecheck
(Player player) void
getPosition
(int trackingHandle) getPosition
(int trackingHandle, boolean onlyEnabled) boolean
hasPosition
(int trackingHandler) boolean
hasPosition
(int trackingHandler, boolean onlyEnabled) boolean
hasTrackingDevice
(Player player, int trackingHandler) boolean
invalidateHandler
(int trackingHandler) boolean
isEnabled
(int trackingHandler) boolean
isTracking
(Player player, int trackingHandler, boolean validate) boolean
setEnabled
(int trackingHandler, boolean enabled) startTracking
(Player player, int trackingHandler, boolean validate) boolean
stopTracking
(Player player) boolean
stopTracking
(Player player, int trackingHandler)
-
Constructor Details
-
PositionTrackingService
@PowerNukkitOnly @Since("1.4.0.0-PN") public PositionTrackingService(File folder) throws FileNotFoundException Creates position tracking db service. The service is ready to be used right after the creation.- Parameters:
folder
- The folder that will hold the position tracking db files- Throws:
FileNotFoundException
- If the folder does not exists and can't be created
-
-
Method Details
-
hasTrackingDevice
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean hasTrackingDevice(Player player, int trackingHandler) throws IOException - Throws:
IOException
-
startTracking
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nullable public PositionTracking startTracking(Player player, int trackingHandler, boolean validate) throws IOException - Throws:
IOException
-
stopTracking
-
stopTracking
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean stopTracking(Player player, int trackingHandler) -
isTracking
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean isTracking(Player player, int trackingHandler, boolean validate) throws IOException - Throws:
IOException
-
forceRecheckAllPlayers
-
forceRecheck
-
addOrReusePosition
@PowerNukkitOnly @Since("1.4.0.0-PN") public int addOrReusePosition(NamedPosition position) throws IOException Attempts to reuse an existing and enabled trackingHandler for the given position, if none is found than a new handler is created if the limit was not exceeded.- Parameters:
position
- The position that needs a handler- Returns:
- The trackingHandler assigned to the position or an empty OptionalInt if none was found and this storage is full
- Throws:
IOException
- If an error occurred while reading or writing the file
-
addNewPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") public int addNewPosition(NamedPosition position) throws IOException Adds the given position as a new entry in this storage, even if the position is already registered and enabled.- Parameters:
position
- The position that needs a handler- Returns:
- The trackingHandler assigned to the position or an empty OptionalInt if none was found and this storage is full
- Throws:
IOException
- If an error occurred while reading or writing the file
-
addNewPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") public int addNewPosition(NamedPosition position, boolean enabled) throws IOException Adds the given position as a new entry in this storage, even if the position is already registered and enabled.- Parameters:
position
- The position that needs a handlerenabled
- If the position will be added as enabled or disabled- Returns:
- The trackingHandler assigned to the position or an empty OptionalInt if none was found and this storage is full
- Throws:
IOException
- If an error occurred while reading or writing the file
-
findTrackingHandler
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nonnull public OptionalInt findTrackingHandler(NamedPosition position) throws IOException - Throws:
IOException
-
invalidateHandler
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean invalidateHandler(int trackingHandler) throws IOException - Throws:
IOException
-
getPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nullable public PositionTracking getPosition(int trackingHandle) throws IOException - Throws:
IOException
-
getPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nullable public PositionTracking getPosition(int trackingHandle, boolean onlyEnabled) throws IOException - Throws:
IOException
-
isEnabled
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean isEnabled(int trackingHandler) throws IOException - Throws:
IOException
-
setEnabled
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean setEnabled(int trackingHandler, boolean enabled) throws IOException - Throws:
IOException
-
hasPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean hasPosition(int trackingHandler) throws IOException - Throws:
IOException
-
hasPosition
@PowerNukkitOnly @Since("1.4.0.0-PN") public boolean hasPosition(int trackingHandler, boolean onlyEnabled) throws IOException - Throws:
IOException
-
findTrackingHandlers
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nonnull public it.unimi.dsi.fastutil.ints.IntList findTrackingHandlers(NamedPosition pos) throws IOException - Throws:
IOException
-
findTrackingHandlers
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nonnull public it.unimi.dsi.fastutil.ints.IntList findTrackingHandlers(NamedPosition pos, boolean onlyEnabled) throws IOException - Throws:
IOException
-
findTrackingHandlers
@PowerNukkitOnly @Since("1.4.0.0-PN") @Nonnull public it.unimi.dsi.fastutil.ints.IntList findTrackingHandlers(NamedPosition pos, boolean onlyEnabled, int limit) throws IOException - Throws:
IOException
-
close
Close all active- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- If any resource failed to close properly. The detailed exceptions will be in getCause() and and getSuppressed()
-
finalize
-