63 lines
		
	
	
	
		
			2.6 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
	
		
			2.6 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 
								 | 
							
								From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
							 | 
						||
| 
								 | 
							
								From: Zach Brown <1254957+zachbr@users.noreply.github.com>
							 | 
						||
| 
								 | 
							
								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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
							 | 
						||
| 
								 | 
							
								--- a/src/main/java/org/bukkit/OfflinePlayer.java
							 | 
						||
| 
								 | 
							
								+++ b/src/main/java/org/bukkit/OfflinePlayer.java
							 | 
						||
| 
								 | 
							
								@@ -0,0 +0,0 @@ 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();
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								     /**
							 | 
						||
| 
								 | 
							
								@@ -0,0 +0,0 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
							 | 
						||
| 
								 | 
							
								      */
							 | 
						||
| 
								 | 
							
								     @Nullable
							 | 
						||
| 
								 | 
							
								     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
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								     /**
							 | 
						||
| 
								 | 
							
								      * Increments the given statistic for this player.
							 |