Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
8.7 kB · 339 lines
C
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
#pragma once#ifndef XMLMOJANGCALLBACK_H#define XMLMOJANGCALLBACK_H// xml reading
using namespace ATG;
class xmlMojangCallback : public ATG::ISAXCallback{public: virtual HRESULT StartDocument() { return S_OK; }; virtual HRESULT EndDocument() { return S_OK; };
virtual HRESULT ElementBegin( CONST WCHAR* strName, UINT NameLen, CONST XMLAttribute *pAttributes, UINT NumAttributes ) { WCHAR wTemp[35] = L""; WCHAR wAttName[32] = L""; WCHAR wNameXUID[32] = L""; WCHAR wNameSkin[32] = L""; WCHAR wNameCloak[32] = L""; PlayerUID xuid=0LL;
if (NameLen >31) return S_FALSE; else wcsncpy( wAttName, strName, NameLen);
if ( _wcsicmp(wAttName,L"root") == 0) { return S_OK; } else if ( _wcsicmp(wAttName,L"data") == 0) { for(UINT i = 0; i < NumAttributes; i++) { wcsncpy_s( wAttName, pAttributes[i].strName, pAttributes[i].NameLen); if (_wcsicmp(wAttName,L"name")==0) { if (pAttributes[i].ValueLen <= 32) wcsncpy_s( wNameXUID, pAttributes[i].strValue, pAttributes[i].ValueLen); } else if (_wcsicmp(wAttName,L"xuid")==0) { if (pAttributes[i].ValueLen <= 32) { ZeroMemory(wTemp,sizeof(WCHAR)*35); wcsncpy_s( wTemp, pAttributes[i].strValue, pAttributes[i].ValueLen); xuid=_wcstoui64(wTemp,NULL,10); } } else if (_wcsicmp(wAttName,L"cape")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wNameCloak, pAttributes[i].strValue, pAttributes[i].ValueLen); } } else if (_wcsicmp(wAttName,L"skin")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wNameSkin, pAttributes[i].strValue, pAttributes[i].ValueLen); } }
}
// if the xuid hasn't been defined, then we can't use the data if(xuid!=0LL) { return CConsoleMinecraftApp::RegisterMojangData(wNameXUID , xuid, wNameSkin, wNameCloak ); } else return S_FALSE; } else { return S_FALSE; } };
virtual HRESULT ElementContent( CONST WCHAR *strData, UINT DataLen, BOOL More ) { return S_OK; };
virtual HRESULT ElementEnd( CONST WCHAR *strName, UINT NameLen ){ return S_OK; };
virtual HRESULT CDATABegin( ) { return S_OK; };
virtual HRESULT CDATAData( CONST WCHAR *strCDATA, UINT CDATALen, BOOL bMore ){ return S_OK; };
virtual HRESULT CDATAEnd( ){ return S_OK; };
virtual VOID Error( HRESULT hError, CONST CHAR *strMessage ) { app.DebugPrintf("Error when Parsing xuids.XML\n"); };
};
class xmlConfigCallback : public ATG::ISAXCallback{public: virtual HRESULT StartDocument() { return S_OK; }; virtual HRESULT EndDocument() { return S_OK; };
virtual HRESULT ElementBegin( CONST WCHAR* strName, UINT NameLen, CONST XMLAttribute *pAttributes, UINT NumAttributes ) { WCHAR wTemp[35] = L""; WCHAR wType[32] = L""; WCHAR wAttName[32] = L""; WCHAR wValue[32] = L""; int iValue=-1;
if (NameLen >31) return S_FALSE; else wcsncpy_s( wAttName, strName, NameLen);
if ( _wcsicmp(wAttName,L"root") == 0) { return S_OK; } else if ( _wcsicmp(wAttName,L"data") == 0) { for(UINT i = 0; i < NumAttributes; i++) { wcsncpy_s( wAttName, pAttributes[i].strName, pAttributes[i].NameLen); if (_wcsicmp(wAttName,L"Type")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wType, pAttributes[i].strValue, pAttributes[i].ValueLen); } } else if(_wcsicmp(wAttName,L"Value")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wValue, pAttributes[i].strValue, pAttributes[i].ValueLen);
#ifdef _XBOX iValue=_wtoi(wValue);#else iValue=wcstol(wValue, NULL, 10);#endif } } } // if the xuid hasn't been defined, then we can't use the data if(iValue!=-1) { #ifdef _DEBUG wprintf(L"Type - %s, Value - %d, ",wType, iValue); #endif
return CConsoleMinecraftApp::RegisterConfigValues(wType, iValue ); } else { return S_FALSE; } } else { return S_FALSE; } }
virtual HRESULT ElementContent( CONST WCHAR *strData, UINT DataLen, BOOL More ) { return S_OK; };
virtual HRESULT ElementEnd( CONST WCHAR *strName, UINT NameLen ){ return S_OK; };
virtual HRESULT CDATABegin( ) { return S_OK; };
virtual HRESULT CDATAData( CONST WCHAR *strCDATA, UINT CDATALen, BOOL bMore ){ return S_OK; };
virtual HRESULT CDATAEnd( ){ return S_OK; };
virtual VOID Error( HRESULT hError, CONST CHAR *strMessage ) { app.DebugPrintf("Error when Parsing xuids.XML\n"); };
};
class xmlDLCInfoCallback : public ATG::ISAXCallback{public: virtual HRESULT StartDocument() { return S_OK; }; virtual HRESULT EndDocument() { return S_OK; };
virtual HRESULT ElementBegin( CONST WCHAR* strName, UINT NameLen, CONST XMLAttribute *pAttributes, UINT NumAttributes ) { WCHAR wTemp[35] = L""; WCHAR wAttName[32] = L""; WCHAR wNameBanner[32] = L""; WCHAR wDataFile[32] = L""; WCHAR wType[32] = L""; WCHAR wFirstSkin[32] = L""; WCHAR wConfig[32] = L""; ULONGLONG ullFull=0ll; ULONGLONG ullTrial=0ll; unsigned int uiSortIndex=0L; int iGender=0; int iConfig=0;
if (NameLen >31) return S_FALSE; else wcsncpy_s( wAttName, strName, NameLen);
if ( _wcsicmp(wAttName,L"root") == 0) { return S_OK; } else if ( _wcsicmp(wAttName,L"data") == 0) { for(UINT i = 0; i < NumAttributes; i++) { wcsncpy_s( wAttName, pAttributes[i].strName, pAttributes[i].NameLen); if (_wcsicmp(wAttName,L"SortIndex")==0) { if (pAttributes[i].ValueLen <= 32) { ZeroMemory(wTemp,sizeof(WCHAR)*35); wcsncpy_s( wTemp, pAttributes[i].strValue, pAttributes[i].ValueLen); uiSortIndex=wcstoul(wTemp,NULL,16); } } else if (_wcsicmp(wAttName,L"Banner")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wNameBanner, pAttributes[i].strValue, pAttributes[i].ValueLen); } } else if (_wcsicmp(wAttName,L"Full")==0) { if (pAttributes[i].ValueLen <= 32) { ZeroMemory(wTemp,sizeof(WCHAR)*35); wcsncpy_s( wTemp, pAttributes[i].strValue, pAttributes[i].ValueLen); ullFull=_wcstoui64(wTemp,NULL,16); } } else if (_wcsicmp(wAttName,L"Trial")==0) { if (pAttributes[i].ValueLen <= 32) { ZeroMemory(wTemp,sizeof(WCHAR)*35); wcsncpy_s( wTemp, pAttributes[i].strValue, pAttributes[i].ValueLen); ullTrial=_wcstoui64(wTemp,NULL,16); } } else if (_wcsicmp(wAttName,L"FirstSkin")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wFirstSkin, pAttributes[i].strValue, pAttributes[i].ValueLen); } } else if (_wcsicmp(wAttName,L"Type")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wType, pAttributes[i].strValue, pAttributes[i].ValueLen); } } else if (_wcsicmp(wAttName,L"Gender")==0) { if (_wcsicmp(wAttName,L"Male")==0) { iGender=1; } else if (_wcsicmp(wAttName,L"Female")==0) { iGender=2; } else { iGender=0; } } else if(_wcsicmp(wAttName,L"Config")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wConfig, pAttributes[i].strValue, pAttributes[i].ValueLen);
#ifdef _XBOX iConfig=_wtoi(wConfig);#else iConfig=wcstol(wConfig, NULL, 10);#endif } } else if (_wcsicmp(wAttName,L"DataFile")==0) { if (pAttributes[i].ValueLen <= 32) { wcsncpy_s( wDataFile, pAttributes[i].strValue, pAttributes[i].ValueLen); } }
}
// if the xuid hasn't been defined, then we can't use the data if(ullFull!=0LL) {#ifdef _DEBUG wprintf(L"Type - %ls, Name - %ls, ",wType, wNameBanner);#endif app.DebugPrintf("Full = %lld, Trial %lld\n",ullFull,ullTrial);
return CConsoleMinecraftApp::RegisterDLCData(wType, wNameBanner , iGender, ullFull, ullTrial, wFirstSkin, uiSortIndex, iConfig, wDataFile ); } else { return S_FALSE; } } else { return S_FALSE; } };
virtual HRESULT ElementContent( CONST WCHAR *strData, UINT DataLen, BOOL More ) { return S_OK; };
virtual HRESULT ElementEnd( CONST WCHAR *strName, UINT NameLen ){ return S_OK; };
virtual HRESULT CDATABegin( ) { return S_OK; };
virtual HRESULT CDATAData( CONST WCHAR *strCDATA, UINT CDATALen, BOOL bMore ){ return S_OK; };
virtual HRESULT CDATAEnd( ){ return S_OK; };
virtual VOID Error( HRESULT hError, CONST CHAR *strMessage ) { app.DebugPrintf("Error when Parsing DLC.XML\n"); };
};
#endif