Changeset - r17108:37d1085369ca
[Not reviewed]
master
0 1 0
rubidium - 13 years ago 2011-01-19 16:52:57
rubidium@openttd.org
(svn r21855) -Feature [FS#4368]: [Network] Console command to change the password of other companies for servers (dihedral)
1 file changed with 29 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/console_cmds.cpp
Show inline comments
 
@@ -1518,19 +1518,43 @@ DEF_CONSOLE_CMD(ConSayClient)
 
DEF_CONSOLE_CMD(ConCompanyPassword)
 
{
 
	if (argc == 0) {
 
		IConsoleHelp("Change the password of your company. Usage: 'company_pw \"<password>\"'");
 
		const char *helpmsg;
 

	
 
		if (_network_dedicated) {
 
			helpmsg = "Change the password of a company. Usage: 'company_pw <company-no> \"<password>\"";
 
		} else if (_network_server) {
 
			helpmsg = "Change the password of your or any other company. Usage: 'company_pw [<company-no>] \"<password>\"'";
 
		} else {
 
			helpmsg = "Change the password of your company. Usage: 'company_pw \"<password>\"'";
 
		}
 

	
 
		IConsoleHelp(helpmsg);
 
		IConsoleHelp("Use \"*\" to disable the password.");
 
		return true;
 
	}
 

	
 
	if (argc != 2) return false;
 
	CompanyID company_id;
 
	const char *password;
 
	const char *errormsg;
 

	
 
	if (!Company::IsValidID(_local_company)) {
 
		IConsoleError("You have to own a company to make use of this command.");
 
	if (argc == 2) {
 
		company_id = _local_company;
 
		password = argv[1];
 
		errormsg = "You have to own a company to make use of this command.";
 
	} else if (argc == 3 && _network_server) {
 
		company_id = (CompanyID)(atoi(argv[1]) - 1);
 
		password = argv[2];
 
		errormsg = "You have to specify the ID of a valid human controlled company.";
 
	} else {
 
		return false;
 
	}
 

	
 
	const char *password = NetworkChangeCompanyPassword(_local_company, argv[1], false);
 
	if (!Company::IsValidHumanID(company_id)) {
 
		IConsoleError(errormsg);
 
		return false;
 
	}
 

	
 
	password = NetworkChangeCompanyPassword(company_id, password, false);
 

	
 
	if (StrEmpty(password)) {
 
		IConsolePrintF(CC_WARNING, "Company password cleared");
0 comments (0 inline, 0 general)