Added StringUtils functions to Lua API; added StripColorCodes(); ChatLog now strips color codes from logged messages.
Fixes FS #398 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1661 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
0224a4f7fc
commit
5951bc76ec
@ -26,7 +26,7 @@ end
|
|||||||
|
|
||||||
function OnChat(Player, Message)
|
function OnChat(Player, Message)
|
||||||
-- Lets get loggin'
|
-- Lets get loggin'
|
||||||
LOGINFO("[" .. Player:GetName() .. "]: " .. Message);
|
LOGINFO("[" .. Player:GetName() .. "]: " .. StripColorCodes(Message));
|
||||||
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
@ -18,6 +18,7 @@ $cfile "ChunkDef.h"
|
|||||||
$cfile "../iniFile/iniFile.h"
|
$cfile "../iniFile/iniFile.h"
|
||||||
|
|
||||||
$cfile "BlockID.h"
|
$cfile "BlockID.h"
|
||||||
|
$cfile "StringUtils.h"
|
||||||
$cfile "Defines.h"
|
$cfile "Defines.h"
|
||||||
$cfile "LuaFunctions.h"
|
$cfile "LuaFunctions.h"
|
||||||
$cfile "StringMap.h"
|
$cfile "StringMap.h"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
** Lua binding: AllToLua
|
** Lua binding: AllToLua
|
||||||
** Generated automatically by tolua++-1.0.92 on 07/07/13 15:41:32.
|
** Generated automatically by tolua++-1.0.92 on 07/07/13 16:40:05.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
@ -18,6 +18,7 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S);
|
|||||||
#include "ChunkDef.h"
|
#include "ChunkDef.h"
|
||||||
#include "../iniFile/iniFile.h"
|
#include "../iniFile/iniFile.h"
|
||||||
#include "BlockID.h"
|
#include "BlockID.h"
|
||||||
|
#include "StringUtils.h"
|
||||||
#include "Defines.h"
|
#include "Defines.h"
|
||||||
#include "LuaFunctions.h"
|
#include "LuaFunctions.h"
|
||||||
#include "StringMap.h"
|
#include "StringMap.h"
|
||||||
@ -2649,6 +2650,164 @@ static int tolua_AllToLua_StringToDamageType00(lua_State* tolua_S)
|
|||||||
}
|
}
|
||||||
#endif //#ifndef TOLUA_DISABLE
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* function: TrimString */
|
||||||
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_TrimString00
|
||||||
|
static int tolua_AllToLua_TrimString00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (
|
||||||
|
!tolua_iscppstring(tolua_S,1,0,&tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,2,&tolua_err)
|
||||||
|
)
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
const AString str = ((const AString) tolua_tocppstring(tolua_S,1,0));
|
||||||
|
{
|
||||||
|
AString tolua_ret = (AString) TrimString(str);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)tolua_ret);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'TrimString'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* function: NoCaseCompare */
|
||||||
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_NoCaseCompare00
|
||||||
|
static int tolua_AllToLua_NoCaseCompare00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (
|
||||||
|
!tolua_iscppstring(tolua_S,1,0,&tolua_err) ||
|
||||||
|
!tolua_iscppstring(tolua_S,2,0,&tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,3,&tolua_err)
|
||||||
|
)
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
const AString s1 = ((const AString) tolua_tocppstring(tolua_S,1,0));
|
||||||
|
const AString s2 = ((const AString) tolua_tocppstring(tolua_S,2,0));
|
||||||
|
{
|
||||||
|
int tolua_ret = (int) NoCaseCompare(s1,s2);
|
||||||
|
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)s1);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)s2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 3;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'NoCaseCompare'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* function: ReplaceString */
|
||||||
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_ReplaceString00
|
||||||
|
static int tolua_AllToLua_ReplaceString00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (
|
||||||
|
!tolua_iscppstring(tolua_S,1,0,&tolua_err) ||
|
||||||
|
!tolua_iscppstring(tolua_S,2,0,&tolua_err) ||
|
||||||
|
!tolua_iscppstring(tolua_S,3,0,&tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,4,&tolua_err)
|
||||||
|
)
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
AString iHayStack = ((AString) tolua_tocppstring(tolua_S,1,0));
|
||||||
|
const AString iNeedle = ((const AString) tolua_tocppstring(tolua_S,2,0));
|
||||||
|
const AString iReplaceWith = ((const AString) tolua_tocppstring(tolua_S,3,0));
|
||||||
|
{
|
||||||
|
ReplaceString(iHayStack,iNeedle,iReplaceWith);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)iHayStack);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)iNeedle);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)iReplaceWith);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 3;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'ReplaceString'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* function: EscapeString */
|
||||||
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_EscapeString00
|
||||||
|
static int tolua_AllToLua_EscapeString00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (
|
||||||
|
!tolua_iscppstring(tolua_S,1,0,&tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,2,&tolua_err)
|
||||||
|
)
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
const AString a_Message = ((const AString) tolua_tocppstring(tolua_S,1,0));
|
||||||
|
{
|
||||||
|
AString tolua_ret = (AString) EscapeString(a_Message);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)tolua_ret);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)a_Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'EscapeString'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* function: StripColorCodes */
|
||||||
|
#ifndef TOLUA_DISABLE_tolua_AllToLua_StripColorCodes00
|
||||||
|
static int tolua_AllToLua_StripColorCodes00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (
|
||||||
|
!tolua_iscppstring(tolua_S,1,0,&tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,2,&tolua_err)
|
||||||
|
)
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
const AString a_Message = ((const AString) tolua_tocppstring(tolua_S,1,0));
|
||||||
|
{
|
||||||
|
AString tolua_ret = (AString) StripColorCodes(a_Message);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)tolua_ret);
|
||||||
|
tolua_pushcppstring(tolua_S,(const char*)a_Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'StripColorCodes'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
/* get function: g_BlockLightValue */
|
/* get function: g_BlockLightValue */
|
||||||
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockLightValue
|
#ifndef TOLUA_DISABLE_tolua_get_AllToLua_g_BlockLightValue
|
||||||
static int tolua_get_AllToLua_g_BlockLightValue(lua_State* tolua_S)
|
static int tolua_get_AllToLua_g_BlockLightValue(lua_State* tolua_S)
|
||||||
@ -28119,6 +28278,11 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
|
|||||||
tolua_function(tolua_S,"StringToDimension",tolua_AllToLua_StringToDimension00);
|
tolua_function(tolua_S,"StringToDimension",tolua_AllToLua_StringToDimension00);
|
||||||
tolua_function(tolua_S,"DamageTypeToString",tolua_AllToLua_DamageTypeToString00);
|
tolua_function(tolua_S,"DamageTypeToString",tolua_AllToLua_DamageTypeToString00);
|
||||||
tolua_function(tolua_S,"StringToDamageType",tolua_AllToLua_StringToDamageType00);
|
tolua_function(tolua_S,"StringToDamageType",tolua_AllToLua_StringToDamageType00);
|
||||||
|
tolua_function(tolua_S,"TrimString",tolua_AllToLua_TrimString00);
|
||||||
|
tolua_function(tolua_S,"NoCaseCompare",tolua_AllToLua_NoCaseCompare00);
|
||||||
|
tolua_function(tolua_S,"ReplaceString",tolua_AllToLua_ReplaceString00);
|
||||||
|
tolua_function(tolua_S,"EscapeString",tolua_AllToLua_EscapeString00);
|
||||||
|
tolua_function(tolua_S,"StripColorCodes",tolua_AllToLua_StripColorCodes00);
|
||||||
tolua_array(tolua_S,"g_BlockLightValue",tolua_get_AllToLua_g_BlockLightValue,tolua_set_AllToLua_g_BlockLightValue);
|
tolua_array(tolua_S,"g_BlockLightValue",tolua_get_AllToLua_g_BlockLightValue,tolua_set_AllToLua_g_BlockLightValue);
|
||||||
tolua_array(tolua_S,"g_BlockSpreadLightFalloff",tolua_get_AllToLua_g_BlockSpreadLightFalloff,tolua_set_AllToLua_g_BlockSpreadLightFalloff);
|
tolua_array(tolua_S,"g_BlockSpreadLightFalloff",tolua_get_AllToLua_g_BlockSpreadLightFalloff,tolua_set_AllToLua_g_BlockSpreadLightFalloff);
|
||||||
tolua_array(tolua_S,"g_BlockTransparent",tolua_get_AllToLua_g_BlockTransparent,tolua_set_AllToLua_g_BlockTransparent);
|
tolua_array(tolua_S,"g_BlockTransparent",tolua_get_AllToLua_g_BlockTransparent,tolua_set_AllToLua_g_BlockTransparent);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
** Lua binding: AllToLua
|
** Lua binding: AllToLua
|
||||||
** Generated automatically by tolua++-1.0.92 on 07/07/13 15:41:32.
|
** Generated automatically by tolua++-1.0.92 on 07/07/13 16:40:06.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Exported function */
|
/* Exported function */
|
||||||
|
@ -594,8 +594,8 @@ AString EscapeString(const AString & a_Message)
|
|||||||
last = i + 1;
|
last = i + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} // switch (ch)
|
||||||
}
|
} // for i - a_Message[]
|
||||||
if (len > last)
|
if (len > last)
|
||||||
{
|
{
|
||||||
EscapedMsg.append(a_Message, last, len - last);
|
EscapedMsg.append(a_Message, last, len - last);
|
||||||
@ -606,3 +606,22 @@ AString EscapeString(const AString & a_Message)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AString StripColorCodes(const AString & a_Message)
|
||||||
|
{
|
||||||
|
AString res(a_Message);
|
||||||
|
size_t idx = 0;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
idx = res.find("\xc2\xa7", idx);
|
||||||
|
if (idx == AString::npos)
|
||||||
|
{
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
res.erase(idx, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,19 +40,19 @@ extern AStringVector StringSplit(const AString & str, const AString & delim);
|
|||||||
extern AStringVector StringSplitAndTrim(const AString & str, const AString & delim);
|
extern AStringVector StringSplitAndTrim(const AString & str, const AString & delim);
|
||||||
|
|
||||||
/// Trime whitespace at both ends of the string
|
/// Trime whitespace at both ends of the string
|
||||||
extern AString TrimString(const AString & str);
|
extern AString TrimString(const AString & str); // tolua_export
|
||||||
|
|
||||||
/// In-place string conversion to uppercase; returns the same string
|
/// In-place string conversion to uppercase; returns the same string
|
||||||
extern AString & StrToUpper(AString & s);
|
extern AString & StrToUpper(AString & s);
|
||||||
|
|
||||||
/// Case-insensitive string comparison; returns 0 if the strings are the same
|
/// Case-insensitive string comparison; returns 0 if the strings are the same
|
||||||
extern int NoCaseCompare(const AString & s1, const AString & s2);
|
extern int NoCaseCompare(const AString & s1, const AString & s2); // tolua_export
|
||||||
|
|
||||||
/// Case-insensitive string comparison that returns a rating of equal-ness between [0 - s1.length()]
|
/// Case-insensitive string comparison that returns a rating of equal-ness between [0 - s1.length()]
|
||||||
extern unsigned int RateCompareString(const AString & s1, const AString & s2 );
|
extern unsigned int RateCompareString(const AString & s1, const AString & s2 );
|
||||||
|
|
||||||
/// Replaces *each* occurence of iNeedle in iHayStack with iReplaceWith
|
/// Replaces *each* occurence of iNeedle in iHayStack with iReplaceWith
|
||||||
extern void ReplaceString(AString & iHayStack, const AString & iNeedle, const AString & iReplaceWith);
|
extern void ReplaceString(AString & iHayStack, const AString & iNeedle, const AString & iReplaceWith); // tolua_export
|
||||||
|
|
||||||
/// Returns the list of all items in the specified directory (files, folders, nix pipes, whatever's there)
|
/// Returns the list of all items in the specified directory (files, folders, nix pipes, whatever's there)
|
||||||
extern AStringList GetDirectoryContents(const char * a_Directory);
|
extern AStringList GetDirectoryContents(const char * a_Directory);
|
||||||
@ -67,7 +67,10 @@ extern AString & UTF8ToRawBEUTF16(const char * a_UTF8, size_t a_UTF8Length, AStr
|
|||||||
extern AString & CreateHexDump(AString & a_Out, const void * a_Data, int a_Size, int a_BytesPerLine);
|
extern AString & CreateHexDump(AString & a_Out, const void * a_Data, int a_Size, int a_BytesPerLine);
|
||||||
|
|
||||||
/// Returns a copy of a_Message with all quotes and backslashes escaped by a backslash
|
/// Returns a copy of a_Message with all quotes and backslashes escaped by a backslash
|
||||||
extern AString EscapeString(const AString & a_Message);
|
extern AString EscapeString(const AString & a_Message); // tolua_export
|
||||||
|
|
||||||
|
/// Removes all control codes used by MC for colors and styles
|
||||||
|
extern AString StripColorCodes(const AString & a_Message); // tolua_export
|
||||||
|
|
||||||
// If you have any other string helper functions, declare them here
|
// If you have any other string helper functions, declare them here
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user