112 lines
4.2 KiB
C#
112 lines
4.2 KiB
C#
using BetterSecondBot.bottypes;
|
|
using BetterSecondBot.Static;
|
|
using EmbedIO;
|
|
using EmbedIO.Routing;
|
|
using EmbedIO.WebApi;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using OpenMetaverse;
|
|
using Newtonsoft.Json;
|
|
using BetterSecondBotShared.Static;
|
|
|
|
namespace BetterSecondBot.HttpService
|
|
{
|
|
public class Http_Funds : WebApiControllerWithTokens
|
|
{
|
|
public Http_Funds(SecondBot mainbot, TokenStorage setuptokens) : base(mainbot, setuptokens) { }
|
|
|
|
[About("Requests the current balance and requests the balance to update.")]
|
|
[ReturnHints("Current fund level")]
|
|
[ReturnHints("Funds commands are disabled")]
|
|
[Route(HttpVerbs.Get, "/Balance/{token}")]
|
|
public object Balance(string token)
|
|
{
|
|
if (tokens.Allow(token, "funds", "Balance", getClientIP()) == true)
|
|
{
|
|
return Failure("Token not accepted");
|
|
}
|
|
if (bot.GetAllowFunds == false)
|
|
{
|
|
return Failure("Funds commands are disabled");
|
|
}
|
|
bot.GetClient.Self.RequestBalance();
|
|
return BasicReply(bot.GetClient.Self.Balance.ToString());
|
|
}
|
|
|
|
[About("Makes the bot pay a avatar")]
|
|
[ReturnHints("Accepted")]
|
|
[ReturnHints("avatar lookup")]
|
|
[ReturnHints("Invaild amount")]
|
|
[ReturnHints("Transfer funds to avatars disabled")]
|
|
[Route(HttpVerbs.Get, "/PayAvatar/{avatar}/{amount}/{token}")]
|
|
public object PayAvatar(string avatar, string amount, string token)
|
|
{
|
|
if (tokens.Allow(token, "funds", "PayAvatar", getClientIP()) == false)
|
|
{
|
|
return BasicReply("Token not accepted");
|
|
}
|
|
if (bot.GetAllowFunds == false)
|
|
{
|
|
return BasicReply("Transfer funds to avatars disabled");
|
|
}
|
|
ProcessAvatar(avatar);
|
|
if (avataruuid == UUID.Zero)
|
|
{
|
|
return BasicReply("avatar lookup");
|
|
}
|
|
if (int.TryParse(amount, out int amountvalue) == false)
|
|
{
|
|
return BasicReply("Invaild amount");
|
|
}
|
|
if (amountvalue < 1)
|
|
{
|
|
return BasicReply("Invaild amount");
|
|
}
|
|
bot.GetClient.Self.GiveAvatarMoney(avataruuid, amountvalue);
|
|
return BasicReply("Accepted");
|
|
}
|
|
|
|
[About("Makes the bot pay a object")]
|
|
[ReturnHints("ok")]
|
|
[ReturnHints("Primname is empty")]
|
|
[ReturnHints("Current fund level")]
|
|
[ReturnHints("Invaild object UUID")]
|
|
[ReturnHints("Invaild amount")]
|
|
[ReturnHints("Amount out of range")]
|
|
[ReturnHints("Funds commands are disabled")]
|
|
[ArgHints("object", "URLARG", "UUID of the object to pay")]
|
|
[ArgHints("primname", "URLARG", "The name of the prim on the object to pay")]
|
|
[ArgHints("amount", "URLARG", "the amount to pay (from 1 to current balance)")]
|
|
[Route(HttpVerbs.Get, "/PayObject/{object}/{primname}/{amount}/{token}")]
|
|
public object PayObject(string objectuuid,string primname,string amount,string token)
|
|
{
|
|
if (tokens.Allow(token, "funds", "PayObject", getClientIP()) == true)
|
|
{
|
|
return Failure("Token not accepted");
|
|
}
|
|
if (bot.GetAllowFunds == false)
|
|
{
|
|
return Failure("Funds commands are disabled");
|
|
}
|
|
if (UUID.TryParse(objectuuid, out UUID objectUUID) == false)
|
|
{
|
|
return Failure("Invaild object UUID");
|
|
}
|
|
if (int.TryParse(amount, out int amountvalue) == false)
|
|
{
|
|
return Failure("Invaild amount");
|
|
}
|
|
if((amountvalue < 0) || (amountvalue > bot.GetClient.Self.Balance))
|
|
{
|
|
return Failure("Amount out of range");
|
|
}
|
|
if(helpers.notempty(primname) == false)
|
|
{
|
|
return Failure("Primname is empty");
|
|
}
|
|
bot.GetClient.Self.GiveObjectMoney(objectUUID, amountvalue, primname);
|
|
return BasicReply("ok");
|
|
}
|
|
}
|
|
}
|