mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-19 00:17:56 +02:00
Merge branch 'develop' into timed_events_objects_removal
This commit is contained in:
@ -1473,7 +1473,7 @@ bool CGameHandler::isPlayerOwns(CPackForServer * pack, ObjectInstanceID id)
|
||||
void CGameHandler::throwNotAllowedAction(CPackForServer * pack)
|
||||
{
|
||||
if(pack->c)
|
||||
playerMessages->sendSystemMessage(pack->c, "You are not allowed to perform this action!");
|
||||
playerMessages->sendSystemMessage(pack->c, MetaString::createFromTextID("vcmi.server.errors.notAllowed"));
|
||||
|
||||
logNetwork->error("Player is not allowed to perform this action!");
|
||||
throw ExceptionNotAllowedAction();
|
||||
@ -1481,12 +1481,13 @@ void CGameHandler::throwNotAllowedAction(CPackForServer * pack)
|
||||
|
||||
void CGameHandler::wrongPlayerMessage(CPackForServer * pack, PlayerColor expectedplayer)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << "You were identified as player " << pack->player << " while expecting " << expectedplayer;
|
||||
logNetwork->error(oss.str());
|
||||
auto str = MetaString::createFromTextID("vcmi.server.errors.wrongIdentified");
|
||||
str.appendName(pack->player);
|
||||
str.appendName(expectedplayer);
|
||||
logNetwork->error(str.toString());
|
||||
|
||||
if(pack->c)
|
||||
playerMessages->sendSystemMessage(pack->c, oss.str());
|
||||
playerMessages->sendSystemMessage(pack->c, str);
|
||||
}
|
||||
|
||||
void CGameHandler::throwIfWrongOwner(CPackForServer * pack, ObjectInstanceID id)
|
||||
@ -1569,16 +1570,18 @@ bool CGameHandler::load(const std::string & filename)
|
||||
catch(const ModIncompatibility & e)
|
||||
{
|
||||
logGlobal->error("Failed to load game: %s", e.what());
|
||||
std::string errorMsg;
|
||||
MetaString errorMsg;
|
||||
if(!e.whatMissing().empty())
|
||||
{
|
||||
errorMsg += VLC->generaltexth->translate("vcmi.server.errors.modsToEnable") + '\n';
|
||||
errorMsg += e.whatMissing();
|
||||
errorMsg.appendTextID("vcmi.server.errors.modsToEnable");
|
||||
errorMsg.appendRawString("\n");
|
||||
errorMsg.appendRawString(e.whatMissing());
|
||||
}
|
||||
if(!e.whatExcessive().empty())
|
||||
{
|
||||
errorMsg += VLC->generaltexth->translate("vcmi.server.errors.modsToDisable") + '\n';
|
||||
errorMsg += e.whatExcessive();
|
||||
errorMsg.appendTextID("vcmi.server.errors.modsToDisable");
|
||||
errorMsg.appendRawString("\n");
|
||||
errorMsg.appendRawString(e.whatExcessive());
|
||||
}
|
||||
lobby->announceMessage(errorMsg);
|
||||
return false;
|
||||
@ -1589,14 +1592,17 @@ bool CGameHandler::load(const std::string & filename)
|
||||
MetaString errorMsg;
|
||||
errorMsg.appendTextID("vcmi.server.errors.unknownEntity");
|
||||
errorMsg.replaceRawString(e.identifierName);
|
||||
lobby->announceMessage(errorMsg.toString());//FIXME: should be localized on client side
|
||||
lobby->announceMessage(errorMsg);
|
||||
return false;
|
||||
}
|
||||
|
||||
catch(const std::exception & e)
|
||||
{
|
||||
logGlobal->error("Failed to load game: %s", e.what());
|
||||
lobby->announceMessage(std::string("Failed to load game: ") + e.what());
|
||||
auto str = MetaString::createFromTextID("vcmi.broadcast.failedLoadGame");
|
||||
str.appendRawString(": ");
|
||||
str.appendRawString(e.what());
|
||||
lobby->announceMessage(str);
|
||||
return false;
|
||||
}
|
||||
gs->preInit(VLC, this);
|
||||
@ -3264,7 +3270,11 @@ bool CGameHandler::queryReply(QueryID qid, std::optional<int32_t> answer, Player
|
||||
bool CGameHandler::complain(const std::string &problem)
|
||||
{
|
||||
#ifndef ENABLE_GOLDMASTER
|
||||
playerMessages->broadcastSystemMessage("Server encountered a problem: " + problem);
|
||||
MetaString str;
|
||||
str.appendTextID("vcmi.broadcast.serverProblem");
|
||||
str.appendRawString(": ");
|
||||
str.appendRawString(problem);
|
||||
playerMessages->broadcastSystemMessage(str);
|
||||
#endif
|
||||
logGlobal->error(problem);
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user