• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

PHP SQL - Bans.php - Ban.lua - Line code error

luhfe

New Member
Joined
Apr 26, 2018
Messages
48
Reaction score
2
Don`t return names on site AND say /ban in the game dont use a function correctly (separatorPos).
Ex : /ban player, reason, type, comments

(Link of photo error on website) : teste.png (https://drive.google.com/file/d/1yTR9xNW5Mh_7GsAOs0tg5FhGu3yf2xAl/view?usp=sharing)

Maybe i know where the lines errors is but dont know for sure, so if someone can help i'll aprec. Ty

Bans.php

<?php
/**
* Bans
*
* @package MyAAC
* @author Gesior <[email protected]>
* @author Slawkens <[email protected]>
* @copyright 2019 MyAAC
* @link MyAAC – Official site of the MyAAC. The best AAC in the world! (https://my-aac.org)
*/
defined('MYAAC') or die('Direct access not allowed!');
$title = 'Bans list';



if(!$config['bans_display_all'])
echo 'Last ' . $config['bans_limit'] . ' banishments.<br/><br/>';

if($config['bans_display_all'])
{
$_page = isset($_GET['page']) ? $_GET['page'] : 0;
$offset = $_page * $config['bans_limit'] + 1;
}

$bans = $db->query('SELECT * FROM ' . $db->tableName('account_bans') . ' WHERE ' . $db->fieldName('account_id') . ' >= 1 ORDER BY ' . $db->fieldName('banned_at') . '');
if(!$bans->rowCount())
{
?>
There are no banishments yet.
<?php
return;
}
?>
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr align="center" bgcolor="<?php echo $config['vdarkborder']; ?>" class="white">
<td><span style="color: white"><b>Nick</b></span></td>
<td><span style="color: white"><b>Type</b></span></td>
<td><span style="color: white"><b>Expires</b></span></td>
<td><span style="color: white"><b>Reason</b></span></td>
<td><span style="color: white"><b>Comment</b></span></td>
<td><span style="color: white"><b>Added by:</b></span></td>
</tr>
<?php
foreach($bans as $ban)
{
if($i++ > 100)
{
$next_page = true;
break;
}
?>
<tr align="center" bgcolor="<?php echo getStyle($i); ?>">
<td height="50" width="140"><?php echo getPlayerLink(getPlayerNameByAccount($ban['value'])); ?></td>
<td><?php echo getBanType($ban['type']); ?></td>
<td>
<?php
if($ban['expires'] == "-1")
echo 'Never';
else
echo date("H:i:s", $ban['expires']) . '<br/>' . date("d M Y", $ban['expires']);
?>
</td>
<td><?php echo getBanReason($ban['reason']); ?></td>
<td><?php echo $ban['comments']; ?></td>
<td>
<?php
if($ban['banned_by'] == "0")
echo 'Autoban';
else
echo getPlayerLink(getPlayerNameByAccount($ban['banned_by']));

echo '<br/>' . date("d.m.Y", $ban['added']);
?>
</td>
</tr>
<?php
}
?>
</table>
<table border="0" cellpadding="4" cellspacing="1" width="100%">
<?php
if($_page > 0)
echo '<tr><td width="100%" align="right" valign="bottom"><a href="?subtopic=bans&page=' . ($_page - 1) . '" class="size_xxs">Previous Page</a></td></tr>';

if($next_page)
echo '<tr><td width="100%" align="right" valign="bottom"><a href="?subtopic=bans&page=' . ($_page + 1) . '" class="size_xxs">Next Page</a></td></tr>';
?>
</table>
<?php
function getBanReason($reasonId)
{
switch($reasonId)
{
case 0:
return "Offensive Name";
case 1:
return "Invalid Name Format";
case 2:
return "Unsuitable Name";
case 3:
return "Name Inciting Rule Violation";
case 4:
return "Offensive Statement";
case 5:
return "Spamming";
case 6:
return "Illegal Advertising";
case 7:
return "Off-Topic Public Statement";
case 8:
return "Non-English Public Statement";
case 9:
return "Inciting Rule Violation";
case 10:
return "Bug Abuse";
case 11:
return "Game Weakness Abuse";
case 12:
return "Using Unofficial Software to Play";
case 13:
return "Hacking";
case 14:
return "Multi-Clienting";
case 15:
return "Account Trading or Sharing";
case 16:
return "Threatening Gamemaster";
case 17:
return "Pretending to Have Influence on Rule Enforcement";
case 18:
return "False Report to Gamemaster";
case 19:
return "Destructive Behaviour";
case 20:
return "Excessive Unjustified Player Killing";
case 21:
return "Invalid Payment";
case 22:
return "Spoiling Auction";
}

return "Unknown Reason";
}

function getBanType($typeId)
{
switch($typeId)
{
case 1:
return "IP Banishment";
case 2:
return "Namelock";
case 3:
return "Banishment";
case 4:
return "Notation";
case 5:
return "Deletion";
}

return "Unknown Type";
}

function getPlayerNameByAccount($id)
{
global $vowels, $ots, $db;
if(is_numeric($id))
{
$player = new OTS_Player();
$player->load($id);
if($player->isLoaded())
return $player->getName();
else
{
$playerQuery = $db->query('SELECT'. $db->fieldName('name') . 'FROM' . $db->tableName('players') . ' WHERE' . $db->fieldName('account_id') . '=' . $id . ' ORDER BY '. $db->fieldName('lastlogin') . 'DESC LIMIT 1;')->fetch();

$tmp = "Error";
/*
$acco = new OTS_Account();
$acco->load($id);
if(!$acco->isLoaded())
return "Unknown name";

foreach($acco->getPlayersList() as $p)
{
$player= new OTS_Player();
$player->find($p);*/
$player->load($playerQuery['id']);
//echo 'id gracza = ' . $p . '<br/>';
if($player->isLoaded())
$tmp = $player->getName();
// break;
//}

return $tmp;
}
}

return '';
}
?>

Ban.lua (talkaction)

local banDays = 7

local ban = TalkAction("/ban")

function ban.onSay(player, words, param)

if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then
return true
end

if param == "" then
player:sendCancelMessage("Command param required.")
return false
end

local name = param
local reason = ''
local type = ''
local comments = ''

local separatorPos = param:find(',')
if separatorPos then
name = param:sub(0, separatorPos - 1)
reason = string.trim(param:sub(separatorPos + 1))
type = string.trim(param:trim(separatorPos + 1))
comments= string.trim(param:trim(separatorPos + 1))
end

local accountId = getAccountNumberByPlayerName(name)
if accountId == 0 then
return false
end

local resultId = db.storeQuery("SELECT 1 FROM account_bans WHERE account_id = " .. accountId)
if resultId ~= false then
result.free(resultId)
return false
end

local timeNow = os.time()
db.query("INSERT INTO account_bans (account_id, reason, type, comments, banned_at, expires_at, banned_by) VALUES
(" .. accountId .. ", " .. db.escapeString(reason) .. ", " .. db.escapeString(type) .. ", " .. db.escapeString(comments) .." , " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid().. ")")

local target = Player(name)
if target then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, target:getName() .. " has been banned.")
target:remove()
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, name .. " has been banned.")
end
end

ban:separator(" ")
ban:register()

i think the errors is there :

Ban.lua
local separatorPos = param:find(',')
if separatorPos then
name = param:sub(0, separatorPos - 1)
reason = string.trim(param:sub(separatorPos + 1))
type = string.trim(param:trim(separatorPos + 1))
comments= string.trim(param:trim(separatorPos + 1))
end

Bans.php
function getPlayerNameByAccount($id)
{
global $vowels, $ots, $db;
if(is_numeric($id))
{
$player = new OTS_Player();
$player->load($id);
if($player->isLoaded())
return $player->getName();
else
{
$playerQuery = $db->query('SELECT'. $db->fieldName('name') . 'FROM' . $db->tableName('players') . ' WHERE' . $db->fieldName('account_id') . '=' . $id . ' ORDER BY '. $db->fieldName('lastlogin') . 'DESC LIMIT 1;')->fetch();

$tmp = "Error";
/*
$acco = new OTS_Account();
$acco->load($id);
if(!$acco->isLoaded())
return "Unknown name";

foreach($acco->getPlayersList() as $p)
{
$player= new OTS_Player();
$player->find($p);*/
$player->load($playerQuery['id']);
//echo 'id gracza = ' . $p . '<br/>';
if($player->isLoaded())
$tmp = $player->getName();
// break;
//}

return $tmp;
}
}
 
Back
Top