diff options
author | madmaxoft <github@xoft.cz> | 2014-07-30 13:44:03 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-07-30 13:56:29 +0200 |
commit | 6476bd0e2ee7e128e3eaa56159f169f0a53736ff (patch) | |
tree | f98c5f99fc6155ea460b03791206bf0d6d16a332 /src | |
parent | Added a cMojangAPI class for PlayerName -> UUID lookups, with cache. (diff) | |
download | cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar.gz cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar.bz2 cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar.lz cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar.xz cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.tar.zst cuberite-6476bd0e2ee7e128e3eaa56159f169f0a53736ff.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/Bindings/AllToLua.pkg | 1 | ||||
-rw-r--r-- | src/Bindings/ManualBindings.cpp | 9 | ||||
-rw-r--r-- | src/Protocol/MojangAPI.h | 13 | ||||
-rw-r--r-- | src/Root.h | 2 |
4 files changed, 20 insertions, 5 deletions
diff --git a/src/Bindings/AllToLua.pkg b/src/Bindings/AllToLua.pkg index 1e5dfd2fe..d3e3f5b45 100644 --- a/src/Bindings/AllToLua.pkg +++ b/src/Bindings/AllToLua.pkg @@ -77,6 +77,7 @@ $cfile "../Map.h" $cfile "../MapManager.h" $cfile "../Scoreboard.h" $cfile "../Statistics.h" +$cfile "../Protocol/MojangAPI.h" diff --git a/src/Bindings/ManualBindings.cpp b/src/Bindings/ManualBindings.cpp index 6d69e2595..026a6bad5 100644 --- a/src/Bindings/ManualBindings.cpp +++ b/src/Bindings/ManualBindings.cpp @@ -2157,11 +2157,11 @@ static int tolua_cClientHandle_SendPluginMessage(lua_State * L) -static int tolua_cClientHandle_GetUUIDsFromPlayerNames(lua_State * L) +static int tolua_cMojangAPI_GetUUIDsFromPlayerNames(lua_State * L) { cLuaState S(L); if ( - !S.CheckParamUserTable(1, "cClientHandle") || + !S.CheckParamUserTable(1, "cMojangAPI") || !S.CheckParamTable(2) || !S.CheckParamEnd(3) ) @@ -3144,9 +3144,12 @@ void ManualBindings::Bind(lua_State * tolua_S) tolua_constant(tolua_S, "MAX_VIEW_DISTANCE", cClientHandle::MAX_VIEW_DISTANCE); tolua_constant(tolua_S, "MIN_VIEW_DISTANCE", cClientHandle::MIN_VIEW_DISTANCE); tolua_function(tolua_S, "SendPluginMessage", tolua_cClientHandle_SendPluginMessage); - tolua_function(tolua_S, "GetUUIDsFromPlayerNames", tolua_cClientHandle_GetUUIDsFromPlayerNames); tolua_endmodule(tolua_S); + tolua_beginmodule(tolua_S, "cMojangAPI"); + tolua_function(tolua_S, "GetUUIDsFromPlayerNames", tolua_cMojangAPI_GetUUIDsFromPlayerNames); + tolua_endmodule(tolua_S); + tolua_beginmodule(tolua_S, "cItemGrid"); tolua_function(tolua_S, "GetSlotCoords", Lua_ItemGrid_GetSlotCoords); tolua_endmodule(tolua_S); diff --git a/src/Protocol/MojangAPI.h b/src/Protocol/MojangAPI.h index 789fdf818..cc2902a19 100644 --- a/src/Protocol/MojangAPI.h +++ b/src/Protocol/MojangAPI.h @@ -15,9 +15,12 @@ +// tolua_begin class cMojangAPI { public: + // tolua_end + cMojangAPI(void); ~cMojangAPI(); @@ -30,6 +33,8 @@ public: Returns true if all was successful, false on failure. */ static bool SecureRequest(const AString & a_ServerName, const AString & a_Request, AString & a_Response); + // tolua_begin + /** Converts the given UUID to its short form (32 bytes, no dashes). Logs a warning and returns empty string if not a UUID. */ static AString MakeUUIDShort(const AString & a_UUID); @@ -38,16 +43,22 @@ public: Logs a warning and returns empty string if not a UUID. */ static AString MakeUUIDDashed(const AString & a_UUID); + // tolua_end + /** Converts the player names into UUIDs. a_PlayerName[idx] will be converted to UUID and returned as idx-th value The UUID will be empty on error. Blocking operation, do not use in world-tick thread! */ AStringVector GetUUIDsFromPlayerNames(const AStringVector & a_PlayerName); + // tolua_begin + /** Called by the Authenticator to add a PlayerName -> UUID mapping that it has received from authenticating a user. This adds the cache item and "refreshes" it if existing, adjusting its datetime stamp to now. */ void AddPlayerNameToUUIDMapping(const AString & a_PlayerName, const AString & a_UUID); + + // tolua_end protected: struct sUUIDRecord @@ -95,7 +106,7 @@ protected: Names that are not valid are not added into the cache. ASSUMEs that a_PlayerNames contains lowercased player names. */ void CacheNamesToUUIDs(const AStringVector & a_PlayerNames); -} ; +} ; // tolua_export diff --git a/src/Root.h b/src/Root.h index 92a60a10d..210c36ea9 100644 --- a/src/Root.h +++ b/src/Root.h @@ -79,7 +79,7 @@ public: cWebAdmin * GetWebAdmin (void) { return m_WebAdmin; } // tolua_export cPluginManager * GetPluginManager (void) { return m_PluginManager; } // tolua_export cAuthenticator & GetAuthenticator (void) { return m_Authenticator; } - cMojangAPI & GetMojangAPI (void) { return m_MojangAPI; } + cMojangAPI & GetMojangAPI (void) { return m_MojangAPI; } // tolua_export /** Queues a console command for execution through the cServer class. The command will be executed in the tick thread |