std::wstring processServerCommand(ServerCommandContext *ctx)
{

    std::wostringstream os(std::ios_base::binary);
    ctx->flags = 1;	// Default, unless we change it.

    u64 privs = ctx->privs;

    if(ctx->parms.size() == 0 || ctx->parms[0] == L"help")
    {
        os<<L"-!- Available commands: ";
        os<<L"status privs ";
        if(privs & PRIV_SERVER)
            os<<L"shutdown setting ";
        if(privs & PRIV_SETTIME)
            os<<L" time";
        if(privs & PRIV_TELEPORT)
            os<<L" teleport";
        if(privs & PRIV_PRIVS)
            os<<L" grant revoke";
    }
    else if(ctx->parms[0] == L"status")
    {
        cmd_status(os, ctx);
    }
    else if(ctx->parms[0] == L"privs")
    {
        cmd_privs(os, ctx);
    }
    else if(ctx->parms[0] == L"grant" || ctx->parms[0] == L"revoke")
    {
        cmd_grantrevoke(os, ctx);
    }
    else if(ctx->parms[0] == L"time")
    {
        cmd_time(os, ctx);
    }
    else if(ctx->parms[0] == L"shutdown")
    {
        cmd_shutdown(os, ctx);
    }
    else if(ctx->parms[0] == L"setting")
    {
        cmd_setting(os, ctx);
    }
    else if(ctx->parms[0] == L"teleport")
    {
        cmd_teleport(os, ctx);
    }
    else
    {
        os<<L"-!- Invalid command: " + ctx->parms[0];
    }
    return os.str();
}
Esempio n. 2
0
std::wstring processServerCommand(ServerCommandContext *ctx)
{

    std::wostringstream os(std::ios_base::binary);
    ctx->flags = SEND_TO_SENDER;	// Default, unless we change it.

    u64 privs = ctx->privs;

    if(ctx->parms.size() == 0 || ctx->parms[0] == L"help")
    {
        os<<L"-!- Available commands: ";
        os<<L"me status privs";
        if(privs & PRIV_SERVER)
            os<<L" shutdown setting clearobjects";
        if(privs & PRIV_SETTIME)
            os<<L" time";
        if(privs & PRIV_TELEPORT)
            os<<L" teleport";
        if(privs & PRIV_PRIVS)
            os<<L" grant revoke";
        if(privs & PRIV_BAN)
            os<<L" ban unban";
        if(privs & PRIV_PASSWORD)
            os<<L" setpassword clearpassword";
    }
    else if(ctx->parms[0] == L"status")
        cmd_status(os, ctx);
    else if(ctx->parms[0] == L"privs")
        cmd_privs(os, ctx);
    else if(ctx->parms[0] == L"grant" || ctx->parms[0] == L"revoke")
        cmd_grantrevoke(os, ctx);
    else if(ctx->parms[0] == L"time")
        cmd_time(os, ctx);
    else if(ctx->parms[0] == L"shutdown")
        cmd_shutdown(os, ctx);
    else if(ctx->parms[0] == L"setting")
        cmd_setting(os, ctx);
    else if(ctx->parms[0] == L"teleport")
        cmd_teleport(os, ctx);
    else if(ctx->parms[0] == L"ban" || ctx->parms[0] == L"unban")
        cmd_banunban(os, ctx);
    else if(ctx->parms[0] == L"setpassword" || ctx->parms[0] == L"clearpassword")
        cmd_setclearpassword(os, ctx);
    else if(ctx->parms[0] == L"me")
        cmd_me(os, ctx);
    else if(ctx->parms[0] == L"clearobjects")
        cmd_clearobjects(os, ctx);
    else
        os<<L"-!- Invalid command: " + ctx->parms[0];

    return os.str();
}