bill manager
This commit is contained in:
parent
e6c7a025ee
commit
7005469973
27
application/core/Bills/BillData.php
Normal file
27
application/core/Bills/BillData.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ManiaControl BillData Structure
|
||||||
|
*
|
||||||
|
* @author kremsy and steeffeen
|
||||||
|
*/
|
||||||
|
namespace ManiaControl\Bills;
|
||||||
|
|
||||||
|
|
||||||
|
class BillData {
|
||||||
|
public $function = null;
|
||||||
|
public $pay = false;
|
||||||
|
public $player = null;
|
||||||
|
public $receiverLogin = false;
|
||||||
|
public $amount = 0;
|
||||||
|
public $creationTime = -1;
|
||||||
|
|
||||||
|
public function __construct($function, $player, $amount, $pay = false, $receiverLogin = false) {
|
||||||
|
$this->function = $function;
|
||||||
|
$this->player = $player;
|
||||||
|
$this->amount = $amount;
|
||||||
|
$this->pay = $pay;
|
||||||
|
$this->receiverLogin = $receiverLogin;
|
||||||
|
$this->creationTime = time();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
141
application/core/Bills/BillManager.php
Normal file
141
application/core/Bills/BillManager.php
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ManiaControl Bill-Manager
|
||||||
|
*
|
||||||
|
* @author kremsy and steeffeen
|
||||||
|
*/
|
||||||
|
namespace ManiaControl\Bills;
|
||||||
|
|
||||||
|
|
||||||
|
use ManiaControl\Callbacks\CallbackListener;
|
||||||
|
use ManiaControl\Callbacks\CallbackManager;
|
||||||
|
use ManiaControl\ManiaControl;
|
||||||
|
use ManiaControl\Players\Player;
|
||||||
|
use Maniaplanet\DedicatedServer\Structures\Bill;
|
||||||
|
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
||||||
|
|
||||||
|
class BillManager implements CallbackListener {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
*/
|
||||||
|
const DONATED_TO_SERVER = 1;
|
||||||
|
const DONATED_TO_RECEIVER = 2;
|
||||||
|
const PAYED_FROM_SERVER = 3;
|
||||||
|
const PLAYER_REFUSED_DONATION = 4;
|
||||||
|
const ERROR_WHILE_TRANSACTION = 5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Private Properties
|
||||||
|
*/
|
||||||
|
private $maniaControl = null;
|
||||||
|
private $openBills = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a new Bill Manager
|
||||||
|
*
|
||||||
|
* @param \ManiaControl\ManiaControl $maniaControl
|
||||||
|
*/
|
||||||
|
public function __construct(ManiaControl $maniaControl) {
|
||||||
|
$this->maniaControl = $maniaControl;
|
||||||
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_BILLUPDATED, $this, 'handleBillUpdated');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* send a Bill to a Player
|
||||||
|
*
|
||||||
|
* @param $function
|
||||||
|
* @param Player $player
|
||||||
|
* @param $amount
|
||||||
|
* @param $message
|
||||||
|
* @param bool $receiver
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function sendBill($function, Player $player, $amount, $message, $receiver = false) {
|
||||||
|
if (!is_callable($function)) {
|
||||||
|
trigger_error("Function is not callable");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (!$receiver) {
|
||||||
|
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message);
|
||||||
|
} else {
|
||||||
|
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message, $receiver);
|
||||||
|
}
|
||||||
|
} catch(Exception $e) {
|
||||||
|
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Couldn't create donation of {$amount} planets from '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->openBills[$bill] = new BillData($function, $player, $amount);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send Planets from the server to a Player
|
||||||
|
*
|
||||||
|
* @param $function
|
||||||
|
* @param $receiverLogin
|
||||||
|
* @param $amount
|
||||||
|
* @param $message
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function sendPlanets($function, $receiverLogin, $amount, $message) {
|
||||||
|
if (!is_callable($function)) {
|
||||||
|
trigger_error("Function is not callable");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$bill = $this->maniaControl->client->pay($receiverLogin, $amount, $message);
|
||||||
|
} catch(Exception $e) {
|
||||||
|
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
||||||
|
//trigger_error("Couldn't create payout of {$amount} planets by '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
||||||
|
$this->maniaControl->errorHandler->triggerDebugNotice("Couldn't create payout of {$amount} planets to '{$receiverLogin}' " . $e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->openBills[$bill] = new BillData($function, $receiverLogin, $amount, true);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle bill updated callback
|
||||||
|
*
|
||||||
|
* @param array $callback
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function handleBillUpdated(array $callback) {
|
||||||
|
$billId = $callback[1][0];
|
||||||
|
if (!array_key_exists($billId, $this->openBills)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$billData = $this->openBills[$billId];
|
||||||
|
|
||||||
|
/** @var BillData $billData */
|
||||||
|
switch($callback[1][1]) {
|
||||||
|
case Bill::STATE_PAYED:
|
||||||
|
if ($billData->pay) {
|
||||||
|
call_user_func($billData->function, $billData, self::PAYED_FROM_SERVER);
|
||||||
|
} else {
|
||||||
|
if ($billData->receiverLogin) {
|
||||||
|
call_user_func($billData->function, $billData, self::DONATED_TO_RECEIVER);
|
||||||
|
} else {
|
||||||
|
call_user_func($billData->function, $billData, self::DONATED_TO_SERVER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($this->openBills[$billId]);
|
||||||
|
break;
|
||||||
|
case Bill::STATE_REFUSED:
|
||||||
|
call_user_func($billData->function, $billData, self::PLAYER_REFUSED_DONATION);
|
||||||
|
unset($this->openBills[$billId]);
|
||||||
|
break;
|
||||||
|
case Bill::STATE_ERROR:
|
||||||
|
call_user_func($billData->function, $callback[1][2], self::ERROR_WHILE_TRANSACTION);
|
||||||
|
unset($this->openBills[$billId]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,7 @@ namespace ManiaControl;
|
|||||||
|
|
||||||
use ManiaControl\Admin\ActionsMenu;
|
use ManiaControl\Admin\ActionsMenu;
|
||||||
use ManiaControl\Admin\AuthenticationManager;
|
use ManiaControl\Admin\AuthenticationManager;
|
||||||
|
use ManiaControl\Bills\BillManager;
|
||||||
use ManiaControl\Callbacks\CallbackManager;
|
use ManiaControl\Callbacks\CallbackManager;
|
||||||
use ManiaControl\Callbacks\TimerListener;
|
use ManiaControl\Callbacks\TimerListener;
|
||||||
use ManiaControl\Callbacks\TimerManager;
|
use ManiaControl\Callbacks\TimerManager;
|
||||||
@ -77,6 +78,8 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
public $errorHandler = null;
|
public $errorHandler = null;
|
||||||
public $timerManager = null;
|
public $timerManager = null;
|
||||||
public $fileReader = null;
|
public $fileReader = null;
|
||||||
|
public $billManager = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private properties
|
* Private properties
|
||||||
*/
|
*/
|
||||||
@ -99,6 +102,7 @@ class ManiaControl implements CommandListener, TimerListener {
|
|||||||
$this->callbackManager = new CallbackManager($this);
|
$this->callbackManager = new CallbackManager($this);
|
||||||
$this->timerManager = new TimerManager($this);
|
$this->timerManager = new TimerManager($this);
|
||||||
$this->fileReader = new AsynchronousFileReader($this);
|
$this->fileReader = new AsynchronousFileReader($this);
|
||||||
|
$this->billManager = new BillManager($this);
|
||||||
$this->settingManager = new SettingManager($this);
|
$this->settingManager = new SettingManager($this);
|
||||||
$this->statisticManager = new StatisticManager($this);
|
$this->statisticManager = new StatisticManager($this);
|
||||||
$this->manialinkManager = new ManialinkManager($this);
|
$this->manialinkManager = new ManialinkManager($this);
|
||||||
|
@ -301,7 +301,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
|
|||||||
if ($error != '') {
|
if ($error != '') {
|
||||||
$this->maniaControl->log("Dedimania Error: " . $error);
|
$this->maniaControl->log("Dedimania Error: " . $error);
|
||||||
}
|
}
|
||||||
var_dump($data);
|
//var_dump($data);
|
||||||
$data = $this->decode($data);
|
$data = $this->decode($data);
|
||||||
//var_dump($data);
|
//var_dump($data);
|
||||||
if (is_array($data)) {
|
if (is_array($data)) {
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Created by PhpStorm.
|
* Dedimania DataStructure
|
||||||
* User: Lukas
|
*
|
||||||
* Date: 14.02.14
|
* @author kremsy and steeffeen
|
||||||
* Time: 17:16
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Dedimania;
|
namespace Dedimania;
|
||||||
|
|
||||||
use ManiaControl\ManiaControl;
|
use ManiaControl\ManiaControl;
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Created by PhpStorm.
|
* Dedimania Player DataStructure
|
||||||
* User: Lukas
|
*
|
||||||
* Date: 23.02.14
|
* @author kremsy and steeffeen
|
||||||
* Time: 12:45
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Dedimania;
|
namespace Dedimania;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Created by PhpStorm.
|
* Dedimania Record DataStructure
|
||||||
* User: Lukas
|
*
|
||||||
* Date: 23.02.14
|
* @author kremsy and steeffeen
|
||||||
* Time: 11:31
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Dedimania;
|
namespace Dedimania;
|
||||||
|
|
||||||
|
|
||||||
@ -25,6 +23,7 @@ class RecordData {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct a Record by a given Record Array
|
* Construct a Record by a given Record Array
|
||||||
|
*
|
||||||
* @param $record
|
* @param $record
|
||||||
*/
|
*/
|
||||||
public function __construct($record) {
|
public function __construct($record) {
|
||||||
@ -43,6 +42,7 @@ class RecordData {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new Record via it's properties
|
* Constructs a new Record via it's properties
|
||||||
|
*
|
||||||
* @param $login
|
* @param $login
|
||||||
* @param $nickName
|
* @param $nickName
|
||||||
* @param $best
|
* @param $best
|
||||||
@ -50,7 +50,7 @@ class RecordData {
|
|||||||
* @param bool $newRecord
|
* @param bool $newRecord
|
||||||
*/
|
*/
|
||||||
public function constructNewRecord($login, $nickName, $best, $checkpoints, $newRecord = false) {
|
public function constructNewRecord($login, $nickName, $best, $checkpoints, $newRecord = false) {
|
||||||
$this->nullRecord = false;
|
$this->nullRecord = false;
|
||||||
$this->login = $login;
|
$this->login = $login;
|
||||||
$this->nickName = $nickName;
|
$this->nickName = $nickName;
|
||||||
$this->best = $best;
|
$this->best = $best;
|
||||||
|
@ -9,6 +9,7 @@ use FML\Controls\Quads\Quad_Icons128x128_1;
|
|||||||
use FML\ManiaLink;
|
use FML\ManiaLink;
|
||||||
use FML\Script\Script;
|
use FML\Script\Script;
|
||||||
use ManiaControl\Admin\AuthenticationManager;
|
use ManiaControl\Admin\AuthenticationManager;
|
||||||
|
use ManiaControl\Bills\BillManager;
|
||||||
use ManiaControl\Callbacks\CallbackListener;
|
use ManiaControl\Callbacks\CallbackListener;
|
||||||
use ManiaControl\Callbacks\CallbackManager;
|
use ManiaControl\Callbacks\CallbackManager;
|
||||||
use ManiaControl\Commands\CommandListener;
|
use ManiaControl\Commands\CommandListener;
|
||||||
@ -16,7 +17,6 @@ use ManiaControl\ManiaControl;
|
|||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
use ManiaControl\Players\PlayerManager;
|
use ManiaControl\Players\PlayerManager;
|
||||||
use ManiaControl\Plugins\Plugin;
|
use ManiaControl\Plugins\Plugin;
|
||||||
use Maniaplanet\DedicatedServer\Xmlrpc\Exception;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Donation plugin
|
* Donation plugin
|
||||||
@ -50,7 +50,6 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
* @var maniaControl $maniaControl
|
* @var maniaControl $maniaControl
|
||||||
*/
|
*/
|
||||||
private $maniaControl = null;
|
private $maniaControl = null;
|
||||||
private $openBills = array();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepares the Plugin
|
* Prepares the Plugin
|
||||||
@ -75,7 +74,6 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
$this->maniaControl->commandManager->registerCommandListener('planets', $this, 'command_GetPlanets', true);
|
$this->maniaControl->commandManager->registerCommandListener('planets', $this, 'command_GetPlanets', true);
|
||||||
|
|
||||||
// Register for callbacks
|
// Register for callbacks
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_BILLUPDATED, $this, 'handleBillUpdated');
|
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
|
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
|
||||||
|
|
||||||
@ -312,7 +310,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
if (count($params) >= 3) {
|
if (count($params) >= 3) {
|
||||||
$receiver = $params[2];
|
$receiver = $params[2];
|
||||||
$receiverPlayer = $this->maniaControl->playerManager->getPlayer($receiver);
|
$receiverPlayer = $this->maniaControl->playerManager->getPlayer($receiver);
|
||||||
$receiverName = ($receiverPlayer ? $receiverPlayer['NickName'] : $receiver);
|
$receiverName = ($receiverPlayer ? $receiverPlayer->nickname : $receiver);
|
||||||
} else {
|
} else {
|
||||||
$receiver = '';
|
$receiver = '';
|
||||||
$receiverName = $this->maniaControl->client->getServerName();
|
$receiverName = $this->maniaControl->client->getServerName();
|
||||||
@ -328,21 +326,41 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
private function handleDonation(Player $player, $amount, $receiver = '', $receiverName = false) {
|
private function handleDonation(Player $player, $amount, $receiver = '', $receiverName = false) {
|
||||||
|
|
||||||
if (!$receiverName) {
|
if (!$receiverName) {
|
||||||
$receiverName = $this->maniaControl->client->getServerName();
|
$serverName = $this->maniaControl->client->getServerName();
|
||||||
|
$message = 'Donate ' . $amount . ' Planets to $<' . $serverName . '$>?';
|
||||||
|
} else {
|
||||||
|
$message = 'Donate ' . $amount . ' Planets to $<' . $receiverName . '$>?';
|
||||||
}
|
}
|
||||||
|
|
||||||
$message = 'Donate ' . $amount . ' Planets to $<' . $receiverName . '$>?';
|
//Send and Handle the Bill
|
||||||
try {
|
$this->maniaControl->billManager->sendBill(function ($data, $status) use (&$player, $amount, $receiver) {
|
||||||
$bill = $this->maniaControl->client->sendBill($player->login, $amount, $message, $receiver);
|
switch($status) {
|
||||||
} catch(Exception $e) {
|
case BillManager::DONATED_TO_SERVER:
|
||||||
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
if ($this->maniaControl->settingManager->getSetting($this, self::SETTING_ANNOUNCE_SERVERDONATION, true) && $amount >= $this->maniaControl->settingManager->getSetting($this, self::SETTING_MIN_AMOUNT_SHOWN, true)) {
|
||||||
trigger_error("Couldn't create donation of {$amount} planets from '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
$login = null;
|
||||||
$this->maniaControl->chat->sendError("Creating donation failed.", $player->login);
|
$message = '$<' . $player->nickname . '$> donated ' . $amount . ' Planets! Thanks.';
|
||||||
return false;
|
} else {
|
||||||
}
|
$message = 'Donation successful! Thanks.';
|
||||||
|
}
|
||||||
$this->openBills[$bill] = array(true, $player->login, $receiver, $amount, time());
|
$this->maniaControl->chat->sendSuccess($message, $player->login);
|
||||||
|
$this->maniaControl->statisticManager->insertStat(self::STAT_PLAYER_DONATIONS, $player, $this->maniaControl->server->index, $amount);
|
||||||
|
break;
|
||||||
|
case BillManager::DONATED_TO_RECEIVER:
|
||||||
|
$message = "Successfully donated {$amount} to '{$receiver}'!";
|
||||||
|
$this->maniaControl->chat->sendSuccess($message, $player->login);
|
||||||
|
break;
|
||||||
|
case BillManager::PLAYER_REFUSED_DONATION:
|
||||||
|
$message = 'Transaction cancelled.';
|
||||||
|
$this->maniaControl->chat->sendError($message, $player->login);
|
||||||
|
break;
|
||||||
|
case BillManager::ERROR_WHILE_TRANSACTION:
|
||||||
|
$message = $data;
|
||||||
|
$this->maniaControl->chat->sendError($message, $player->login);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, $player, $amount, $message);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -377,16 +395,23 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
}
|
}
|
||||||
$message = 'Payout from $<' . $this->maniaControl->client->getServerName() . '$>.';
|
$message = 'Payout from $<' . $this->maniaControl->client->getServerName() . '$>.';
|
||||||
|
|
||||||
try {
|
$this->maniaControl->billManager->sendPlanets(function ($data, $status) use (&$player, $amount, $receiver) {
|
||||||
$bill = $this->maniaControl->client->pay($receiver, $amount, $message);
|
switch($status) {
|
||||||
} catch(Exception $e) {
|
case BillManager::PAYED_FROM_SERVER:
|
||||||
// TODO: handle errors like 'too few server planets' - throw other like connection errors
|
$message = "Successfully payed out {$amount} to '{$receiver}'!";
|
||||||
trigger_error("Couldn't create payout of {$amount} planets by '{$player->login}' for '{$receiver}'. " . $e->getMessage());
|
$this->maniaControl->chat->sendSuccess($message, $player->login);
|
||||||
$this->maniaControl->chat->sendError("Creating payout failed.", $player->login);
|
break;
|
||||||
return false;
|
case BillManager::PLAYER_REFUSED_DONATION:
|
||||||
}
|
$message = 'Transaction cancelled.';
|
||||||
|
$this->maniaControl->chat->sendError($message, $player->login);
|
||||||
|
break;
|
||||||
|
case BillManager::ERROR_WHILE_TRANSACTION:
|
||||||
|
$message = $data;
|
||||||
|
$this->maniaControl->chat->sendError($message, $player->login);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, $receiver, $amount, $message);
|
||||||
|
|
||||||
$this->openBills[$bill] = array(false, $player->login, $receiver, $amount, time());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,75 +432,6 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
|
|||||||
return $this->maniaControl->chat->sendInformation($message, $player->login);
|
return $this->maniaControl->chat->sendInformation($message, $player->login);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle bill updated callback
|
|
||||||
*
|
|
||||||
* @param array $callback
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function handleBillUpdated(array $callback) {
|
|
||||||
$billId = $callback[1][0];
|
|
||||||
if (!array_key_exists($billId, $this->openBills)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$billData = $this->openBills[$billId];
|
|
||||||
$login = $billData[1];
|
|
||||||
$receiver = $billData[2];
|
|
||||||
switch($callback[1][1]) {
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
// Payed
|
|
||||||
$donation = $billData[0];
|
|
||||||
$amount = $billData[3];
|
|
||||||
if ($donation) {
|
|
||||||
$player = $this->maniaControl->playerManager->getPlayer($login);
|
|
||||||
|
|
||||||
// Donation
|
|
||||||
if (strlen($receiver) > 0) {
|
|
||||||
// To player
|
|
||||||
$message = "Successfully donated {$amount} to '{$receiver}'!";
|
|
||||||
$this->maniaControl->chat->sendSuccess($message, $login);
|
|
||||||
} else {
|
|
||||||
// To server
|
|
||||||
if ($this->maniaControl->settingManager->getSetting($this, self::SETTING_ANNOUNCE_SERVERDONATION, true) && $amount >= $this->maniaControl->settingManager->getSetting($this, self::SETTING_MIN_AMOUNT_SHOWN, true)
|
|
||||||
) {
|
|
||||||
$login = null;
|
|
||||||
$message = '$<' . $player->nickname . '$> donated ' . $amount . ' Planets! Thanks.';
|
|
||||||
} else {
|
|
||||||
$message = 'Donation successful! Thanks.';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$this->maniaControl->chat->sendSuccess($message, $login);
|
|
||||||
$this->maniaControl->statisticManager->insertStat(self::STAT_PLAYER_DONATIONS, $player, $this->maniaControl->server->index, $amount);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Payout
|
|
||||||
$message = "Successfully payed out {$amount} to '{$receiver}'!";
|
|
||||||
$this->maniaControl->chat->sendSuccess($message, $login);
|
|
||||||
}
|
|
||||||
unset($this->openBills[$billId]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 5:
|
|
||||||
{
|
|
||||||
// Refused
|
|
||||||
$message = 'Transaction cancelled.';
|
|
||||||
$this->maniaControl->chat->sendError($message, $login);
|
|
||||||
unset($this->openBills[$billId]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 6:
|
|
||||||
{
|
|
||||||
// Error
|
|
||||||
$this->maniaControl->chat->sendError($callback[1][2], $login);
|
|
||||||
unset($this->openBills[$billId]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send an usage example for /donate to the player
|
* Send an usage example for /donate to the player
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user