66 lines
2.4 KiB
Diff
66 lines
2.4 KiB
Diff
|
From aa3efefb9b8b1ffba66ad5ea00c9acd76c6d6a49 Mon Sep 17 00:00:00 2001
|
||
|
From: Zach Brown <zach@zachbr.io>
|
||
|
Date: Wed, 2 Jan 2019 00:31:12 -0600
|
||
|
Subject: [PATCH] Add APIs to replace OfflinePlayer#getLastPlayed
|
||
|
|
||
|
Currently OfflinePlayer#getLastPlayed could more accurately be described
|
||
|
as "OfflinePlayer#getLastTimeTheirDataWasSaved".
|
||
|
|
||
|
The API doc says it should return the last time the server "witnessed"
|
||
|
the player, whilst also saying it should return the last time they
|
||
|
logged in. The current implementation does neither.
|
||
|
|
||
|
Given this interesting contradiction in the API documentation and the
|
||
|
current defacto implementation, I've elected to deprecate (with no
|
||
|
intent to remove) and replace it with two new methods, clearly named and
|
||
|
documented as to their purpose.
|
||
|
|
||
|
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
||
|
index 658eac26..335d3803 100644
|
||
|
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
||
|
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
||
|
@@ -135,7 +135,9 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||
|
* UTC.
|
||
|
*
|
||
|
* @return Date of last log-in for this player, or 0
|
||
|
+ * @deprecated The API contract is ambiguous and the implementation may or may not return the correct value given this API ambiguity. It is instead recommended use {@link #getLastLogin()} or {@link #getLastSeen()} depending on your needs.
|
||
|
*/
|
||
|
+ @Deprecated
|
||
|
public long getLastPlayed();
|
||
|
|
||
|
/**
|
||
|
@@ -153,4 +155,30 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||
|
*/
|
||
|
public Location getBedSpawnLocation();
|
||
|
|
||
|
+ // Paper start
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the last date and time that this player logged into the server.
|
||
|
+ * <p>
|
||
|
+ * If the player has never played before, this will return 0. Otherwise,
|
||
|
+ * it will be the amount of milliseconds since midnight, January 1, 1970
|
||
|
+ * UTC.
|
||
|
+ *
|
||
|
+ * @return last login time
|
||
|
+ */
|
||
|
+ public long getLastLogin();
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets the last date and time that this player was seen on the server.
|
||
|
+ * <p>
|
||
|
+ * If the player has never played before, this will return 0. If the
|
||
|
+ * player is currently online, this will return the current time.
|
||
|
+ * Otherwise it will be the amount of milliseconds since midnight,
|
||
|
+ * January 1, 1970 UTC.
|
||
|
+ *
|
||
|
+ * @return last seen time
|
||
|
+ */
|
||
|
+ public long getLastSeen();
|
||
|
+ // Paper end
|
||
|
+
|
||
|
}
|
||
|
--
|
||
|
2.20.1
|
||
|
|