mirror of
				https://github.com/slawkens/myaac.git
				synced 2025-11-04 09:46:23 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			911 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			911 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Players editor
 | 
						|
 *
 | 
						|
 * @package   MyAAC
 | 
						|
 * @author    Slawkens <slawkens@gmail.com>
 | 
						|
 * @copyright 2019 MyAAC
 | 
						|
 * @link      https://my-aac.org
 | 
						|
 */
 | 
						|
 | 
						|
use MyAAC\Forum;
 | 
						|
use MyAAC\Models\Player;
 | 
						|
 | 
						|
defined('MYAAC') or die('Direct access not allowed!');
 | 
						|
 | 
						|
$title = 'Player editor';
 | 
						|
 | 
						|
csrfProtect();
 | 
						|
 | 
						|
$player_base = ADMIN_URL . '?p=players';
 | 
						|
 | 
						|
$use_datatable = true;
 | 
						|
 | 
						|
$skills = array(
 | 
						|
	POT::SKILL_FIST => array('Fist fighting', 'fist'),
 | 
						|
	POT::SKILL_CLUB => array('Club fighting', 'club'),
 | 
						|
	POT::SKILL_SWORD => array('Sword fighting', 'sword'),
 | 
						|
	POT::SKILL_AXE => array('Axe fighting', 'axe'),
 | 
						|
	POT::SKILL_DIST => array('Distance fighting', 'dist'),
 | 
						|
	POT::SKILL_SHIELD => array('Shielding', 'shield'),
 | 
						|
	POT::SKILL_FISH => array('Fishing', 'fish')
 | 
						|
);
 | 
						|
 | 
						|
$hasBlessingsColumn = $db->hasColumn('players', 'blessings');
 | 
						|
$hasBlessingColumn = $db->hasColumn('players', 'blessings1');
 | 
						|
$hasLookAddons = $db->hasColumn('players', 'lookaddons');
 | 
						|
 | 
						|
$skull_type = array("None", "Yellow", "Green", "White", "Red", "Black", "Orange");
 | 
						|
?>
 | 
						|
 | 
						|
<link rel="stylesheet" type="text/css" href="<?php echo BASE_URL; ?>tools/css/jquery.datetimepicker.css"/ >
 | 
						|
<script src="<?php echo BASE_URL; ?>tools/js/jquery.datetimepicker.js"></script>
 | 
						|
 | 
						|
<?php
 | 
						|
$id = 0;
 | 
						|
$search_player = '';
 | 
						|
if (isset($_REQUEST['id']))
 | 
						|
	$id = (int)$_REQUEST['id'];
 | 
						|
else if (isset($_REQUEST['search'])) {
 | 
						|
	$search_player = $_REQUEST['search'];
 | 
						|
	if (strlen($search_player) < 3 && !Validator::number($search_player)) {
 | 
						|
		echo_error('Player name is too short.');
 | 
						|
	} else {
 | 
						|
		$query = Player::where('name', 'like', '%' . $search_player . '%')->orderBy('name')->limit(11)->get(['id', 'name']);
 | 
						|
		if (count($query) == 0) {
 | 
						|
			echo_error('No entries found.');
 | 
						|
		} else if (count($query) == 1) {
 | 
						|
			$id = $query->first()->getKey();
 | 
						|
		} else if (count($query) > 10) {
 | 
						|
			echo_error('Specified name resulted with too many players.');
 | 
						|
		} else {
 | 
						|
			$str_construct = 'Do you mean?<ul>';
 | 
						|
			foreach ($query as $row) {
 | 
						|
				$str_construct .= '<li><a href="' . $player_base . '&id=' . $row->getKey() . '">' . $row->name . '</a></li>';
 | 
						|
			}
 | 
						|
			$str_construct .= '</ul>';
 | 
						|
			echo_error($str_construct);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
?>
 | 
						|
<div class="row">
 | 
						|
	<?php
 | 
						|
	$groups = new OTS_Groups_List();
 | 
						|
	if ($id > 0) {
 | 
						|
		$player = new OTS_Player();
 | 
						|
		$player->load($id);
 | 
						|
 | 
						|
		if ($player->isLoaded() && isset($_POST['save'])) {// we want to save
 | 
						|
			$error = false;
 | 
						|
 | 
						|
			if ($player->isOnline())
 | 
						|
				echo_error('This player is actually online. You can\'t edit online players.');
 | 
						|
 | 
						|
			$name = $_POST['name'];
 | 
						|
			$_error = '';
 | 
						|
			if (!Validator::characterName($name))
 | 
						|
				echo_error(Validator::getLastError());
 | 
						|
 | 
						|
			//if(!Validator::newCharacterName($name)
 | 
						|
			//	echo_error(Validator::getLastError());
 | 
						|
 | 
						|
			$player_db = new OTS_Player();
 | 
						|
			$player_db->find($name);
 | 
						|
			if ($player_db->isLoaded() && $player->getName() != $name)
 | 
						|
				echo_error('This name is already used. Please choose another name!');
 | 
						|
 | 
						|
			$account_id = $_POST['account_id'];
 | 
						|
			verify_number($account_id, 'Account id', 11);
 | 
						|
 | 
						|
			$account_db = new OTS_Account();
 | 
						|
			$account_db->load($account_id);
 | 
						|
			if (!$account_db->isLoaded())
 | 
						|
				echo_error('Account with this id doesn\'t exist.');
 | 
						|
 | 
						|
			$group = $_POST['group'];
 | 
						|
			if ($groups->getGroup($group) == false)
 | 
						|
				echo_error('Group with this id doesn\'t exist');
 | 
						|
 | 
						|
			$level = $_POST['level'];
 | 
						|
			verify_number($level, 'Level', 11);
 | 
						|
 | 
						|
			$experience = $_POST['experience'];
 | 
						|
			verify_number($experience, 'Experience', 20);
 | 
						|
 | 
						|
			$vocation = $_POST['vocation'];
 | 
						|
			verify_number($vocation, 'Vocation id', 11);
 | 
						|
 | 
						|
			if (!isset($config['vocations'][$vocation])) {
 | 
						|
				echo_error("Vocation with this id doesn't exist.");
 | 
						|
			}
 | 
						|
 | 
						|
			// health
 | 
						|
			$health = $_POST['health'];
 | 
						|
			verify_number($health, 'Health', 11);
 | 
						|
			$health_max = $_POST['health_max'];
 | 
						|
			verify_number($health_max, 'Health max', 11);
 | 
						|
 | 
						|
			// mana
 | 
						|
			$magic_level = $_POST['magic_level'];
 | 
						|
			verify_number($magic_level, 'Magic_level', 11);
 | 
						|
			$mana = $_POST['mana'];
 | 
						|
			verify_number($mana, 'Mana', 11);
 | 
						|
			$mana_max = $_POST['mana_max'];
 | 
						|
			verify_number($mana_max, 'Mana max', 11);
 | 
						|
			$mana_spent = $_POST['mana_spent'];
 | 
						|
			verify_number($mana_spent, 'Mana spent', 11);
 | 
						|
 | 
						|
			// look
 | 
						|
			$look_body = $_POST['look_body'];
 | 
						|
			verify_number($look_body, 'Look body', 11);
 | 
						|
			$look_feet = $_POST['look_feet'];
 | 
						|
			verify_number($look_feet, 'Look feet', 11);
 | 
						|
			$look_head = $_POST['look_head'];
 | 
						|
			verify_number($look_head, 'Look head', 11);
 | 
						|
			$look_legs = $_POST['look_legs'];
 | 
						|
			verify_number($look_legs, 'Look legs', 11);
 | 
						|
			$look_type = $_POST['look_type'];
 | 
						|
			verify_number($look_type, 'Look type', 11);
 | 
						|
			if ($hasLookAddons) {
 | 
						|
				$look_addons = $_POST['look_addons'];
 | 
						|
				verify_number($look_addons, 'Look addons', 11);
 | 
						|
			}
 | 
						|
 | 
						|
			// pos
 | 
						|
			$pos_x = $_POST['pos_x'];
 | 
						|
			verify_number($pos_x, 'Position x', 11);
 | 
						|
			$pos_y = $_POST['pos_y'];
 | 
						|
			verify_number($pos_y, 'Position y', 11);
 | 
						|
			$pos_z = $_POST['pos_z'];
 | 
						|
			verify_number($pos_z, 'Position z', 11);
 | 
						|
 | 
						|
			$soul = $_POST['soul'];
 | 
						|
			verify_number($soul, 'Soul', 10);
 | 
						|
 | 
						|
			$town = $_POST['town'];
 | 
						|
			verify_number($town, 'Town', 11);
 | 
						|
 | 
						|
			$capacity = $_POST['capacity'];
 | 
						|
			verify_number($capacity, 'Capacity', 11);
 | 
						|
			$sex = $_POST['sex'];
 | 
						|
			verify_number($sex, 'Sex', 1);
 | 
						|
 | 
						|
			$lastlogin = strtotime($_POST['lastlogin']);
 | 
						|
			verify_number($lastlogin, 'Last login', 20);
 | 
						|
			$lastlogout = strtotime($_POST['lastlogout']);
 | 
						|
			verify_number($lastlogout, 'Last logout', 20);
 | 
						|
 | 
						|
			$skull = $_POST['skull'];
 | 
						|
			verify_number($skull, 'Skull', 1);
 | 
						|
			$skull_time = $_POST['skull_time'];
 | 
						|
			verify_number($skull_time, 'Skull time', 11);
 | 
						|
 | 
						|
			if ($db->hasColumn('players', 'loss_experience')) {
 | 
						|
				$loss_experience = $_POST['loss_experience'];
 | 
						|
				verify_number($loss_experience, 'Loss experience', 11);
 | 
						|
				$loss_mana = $_POST['loss_mana'];
 | 
						|
				verify_number($loss_mana, 'Loss mana', 11);
 | 
						|
				$loss_skills = $_POST['loss_skills'];
 | 
						|
				verify_number($loss_skills, 'Loss skills', 11);
 | 
						|
				$loss_containers = $_POST['loss_containers'];
 | 
						|
				verify_number($loss_containers, 'Loss loss_containers', 11);
 | 
						|
				$loss_items = $_POST['loss_items'];
 | 
						|
				verify_number($loss_items, 'Loss items', 11);
 | 
						|
			}
 | 
						|
			if ($db->hasColumn('players', 'offlinetraining_time')) {
 | 
						|
				$offlinetraining = $_POST['offlinetraining'];
 | 
						|
				verify_number($offlinetraining, 'Offline Training time', 11);
 | 
						|
			}
 | 
						|
 | 
						|
			if ($hasBlessingsColumn) {
 | 
						|
				$blessings = $_POST['blessings'];
 | 
						|
				verify_number($blessings, 'Blessings', 3);
 | 
						|
			}
 | 
						|
 | 
						|
			$balance = $_POST['balance'];
 | 
						|
			verify_number($balance, 'Balance', 20);
 | 
						|
			if ($db->hasColumn('players', 'stamina')) {
 | 
						|
				$stamina = $_POST['stamina'];
 | 
						|
				verify_number($stamina, 'Stamina', 20);
 | 
						|
			}
 | 
						|
 | 
						|
			$deleted = (isset($_POST['deleted']) && $_POST['deleted'] == 'true');
 | 
						|
			$hide = (isset($_POST['hide']) && $_POST['hide'] == 'true');
 | 
						|
 | 
						|
			$created = strtotime($_POST['created']);
 | 
						|
			verify_number($created, 'Created', 11);
 | 
						|
 | 
						|
			$comment = isset($_POST['comment']) ? htmlspecialchars(stripslashes(substr($_POST['comment'], 0, 2000))) : NULL;
 | 
						|
 | 
						|
			foreach ($_POST['skills'] as $skill => $value)
 | 
						|
				verify_number($value, $skills[$skill][0], 10);
 | 
						|
			foreach ($_POST['skills_tries'] as $skill => $value)
 | 
						|
				verify_number($value, $skills[$skill][0] . ' tries', 10);
 | 
						|
 | 
						|
			if ($hasBlessingColumn) {
 | 
						|
				$bless_count = $_POST['blesscount'];
 | 
						|
				for ($i = 1; $i <= $bless_count; $i++) {
 | 
						|
					$a = 'blessing' . $i;
 | 
						|
					${'blessing' . $i} = (isset($_POST[$a]) && $_POST[$a] == 'true');
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			if (!$error) {
 | 
						|
				$player->setName($name);
 | 
						|
				$player->setAccount($account_db);
 | 
						|
				$player->setGroup($groups->getGroup($group));
 | 
						|
				$player->setLevel($level);
 | 
						|
				$player->setExperience($experience);
 | 
						|
				$player->setVocation($vocation);
 | 
						|
				$player->setHealth($health);
 | 
						|
				$player->setHealthMax($health_max);
 | 
						|
				$player->setMagLevel($magic_level);
 | 
						|
				$player->setMana($mana);
 | 
						|
				$player->setManaMax($mana_max);
 | 
						|
				$player->setManaSpent($mana_spent);
 | 
						|
				$player->setLookBody($look_body);
 | 
						|
				$player->setLookFeet($look_feet);
 | 
						|
				$player->setLookHead($look_head);
 | 
						|
				$player->setLookLegs($look_legs);
 | 
						|
				$player->setLookType($look_type);
 | 
						|
				if ($hasLookAddons)
 | 
						|
					$player->setLookAddons($look_addons);
 | 
						|
				if ($db->hasColumn('players', 'offlinetraining_time'))
 | 
						|
					$player->setCustomField('offlinetraining_time', $offlinetraining);
 | 
						|
				$player->setPosX($pos_x);
 | 
						|
				$player->setPosY($pos_y);
 | 
						|
				$player->setPosZ($pos_z);
 | 
						|
				$player->setSoul($soul);
 | 
						|
				$player->setTownId($town);
 | 
						|
				$player->setCap($capacity);
 | 
						|
				$player->setSex($sex);
 | 
						|
				$player->setLastLogin($lastlogin);
 | 
						|
				$player->setLastLogout($lastlogout);
 | 
						|
				//$player->setLastIP(ip2long($lastip));
 | 
						|
				$player->setSkull($skull);
 | 
						|
				$player->setSkullTime($skull_time);
 | 
						|
				if ($db->hasColumn('players', 'loss_experience')) {
 | 
						|
					$player->setLossExperience($loss_experience);
 | 
						|
					$player->setLossMana($loss_mana);
 | 
						|
					$player->setLossSkills($loss_skills);
 | 
						|
					$player->setLossContainers($loss_containers);
 | 
						|
					$player->setLossItems($loss_items);
 | 
						|
				}
 | 
						|
				if ($hasBlessingsColumn)
 | 
						|
					$player->setBlessings($blessings);
 | 
						|
 | 
						|
				if ($hasBlessingColumn) {
 | 
						|
					for ($i = 1; $i <= $bless_count; $i++) {
 | 
						|
						$a = 'blessing' . $i;
 | 
						|
						$player->setCustomField('blessings' . $i, ${'blessing' . $i} ? '1' : '0');
 | 
						|
					}
 | 
						|
				}
 | 
						|
				$player->setBalance($balance);
 | 
						|
				if ($db->hasColumn('players', 'stamina'))
 | 
						|
					$player->setStamina($stamina);
 | 
						|
				if ($db->hasColumn('players', 'deletion'))
 | 
						|
					$player->setCustomField('deletion', $deleted ? '1' : '0');
 | 
						|
				else
 | 
						|
					$player->setCustomField('deleted', $deleted ? '1' : '0');
 | 
						|
				$player->setCustomField('hide', $hide ? '1' : '0');
 | 
						|
				$player->setCustomField('created', $created);
 | 
						|
				if (isset($comment))
 | 
						|
					$player->setCustomField('comment', $comment);
 | 
						|
 | 
						|
				foreach ($_POST['skills'] as $skill => $value) {
 | 
						|
					$player->setSkill($skill, $value);
 | 
						|
				}
 | 
						|
				foreach ($_POST['skills_tries'] as $skill => $value) {
 | 
						|
					$player->setSkillTries($skill, $value);
 | 
						|
				}
 | 
						|
				$player->save();
 | 
						|
				echo_success('Player saved at: ' . date('G:i'));
 | 
						|
				$player->load($id);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	} else if ($id == 0) {
 | 
						|
		$players_db = Player::orderBy('id')->get(['id','name', 'level']);
 | 
						|
		?>
 | 
						|
		<div class="col-12 col-sm-12 col-lg-10">
 | 
						|
			<div class="card card-info card-outline">
 | 
						|
				<div class="card-header">
 | 
						|
					<h5 class="m-0">Players</h5>
 | 
						|
				</div>
 | 
						|
				<div class="card-body">
 | 
						|
					<table class="player_datatable table table-striped table-bordered table-responsive d-md-table">
 | 
						|
						<thead>
 | 
						|
						<tr>
 | 
						|
							<th>ID</th>
 | 
						|
							<th>Name</th>
 | 
						|
							<th>Level</th>
 | 
						|
							<th style="width: 40px">Edit</th>
 | 
						|
						</tr>
 | 
						|
						</thead>
 | 
						|
						<tbody>
 | 
						|
						<?php foreach ($players_db as $player_db): ?>
 | 
						|
							<tr>
 | 
						|
								<th><?php echo $player_db->id; ?></th>
 | 
						|
								<td><?php echo $player_db->name; ?></a></td>
 | 
						|
								<td><?php echo $player_db->level; ?></a></td>
 | 
						|
 | 
						|
								<td><a href="?p=players&id=<?php echo $player_db->id; ?>" class="btn btn-success btn-sm" title="Edit">
 | 
						|
										<i class="fas fa-pencil-alt"></i>
 | 
						|
									</a>
 | 
						|
								</td>
 | 
						|
							</tr>
 | 
						|
						<?php endforeach; ?>
 | 
						|
						</tbody>
 | 
						|
					</table>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	<?php } ?>
 | 
						|
 | 
						|
	<?php
 | 
						|
	if (isset($player) && $player->isLoaded()) {
 | 
						|
		$account = $player->getAccount();
 | 
						|
		?>
 | 
						|
		<div class="col-12 col-sm-12 col-lg-10">
 | 
						|
			<div class="card card-primary card-outline card-outline-tabs">
 | 
						|
				<div class="card-header p-0 border-bottom-0">
 | 
						|
					<ul class="nav nav-tabs" id="tabs-tab" role="tablist">
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link active" id="tabs-home-tab" data-toggle="pill" href="#tabs-home">Player</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-home-tab" data-toggle="pill" href="#tabs-stats">Stats</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-home-tab" data-toggle="pill" href="#tabs-skills">Skills</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-home-tab" data-toggle="pill" href="#tabs-pos">Pos/Look</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-home-tab" data-toggle="pill" href="#tabs-misc">Misc</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-posts-tab" data-toggle="pill" href="#tabs-posts">Posts</a>
 | 
						|
						</li>
 | 
						|
						<li class="nav-item">
 | 
						|
							<a class="nav-link" id="tabs-chars-tab" data-toggle="pill" href="#tabs-chars">Characters</a>
 | 
						|
						</li>
 | 
						|
					</ul>
 | 
						|
				</div>
 | 
						|
				<form action="<?php echo $player_base . ($id > 0 ? '&id=' . $id : ''); ?>" method="post">
 | 
						|
					<?php csrf(); ?>
 | 
						|
					<div class="card-body">
 | 
						|
						<div class="tab-content" id="tabs-tabContent">
 | 
						|
							<div class="tab-pane fade active show" id="tabs-home">
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="name" class="control-label">Name</label>
 | 
						|
										<input type="text" class="form-control" id="name" name="name" autocomplete="off" value="<?php echo $player->getName(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="account_id">Account id:</label>
 | 
						|
										<input type="text" class="form-control" id="account_id" name="account_id" autocomplete="off" size="8" maxlength="11" value="<?php echo $account->getId(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="group">Group:</label>
 | 
						|
										<select name="group" id="group" class="form-control custom-select">
 | 
						|
											<?php foreach ($groups->getGroups() as $_id => $group): ?>
 | 
						|
												<option value="<?php echo $_id; ?>" <?php echo($player->getGroup()->getId() == $_id ? 'selected' : ''); ?>><?php echo $group->getName(); ?></option>
 | 
						|
											<?php endforeach; ?>
 | 
						|
										</select>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="vocation">Vocation</label>
 | 
						|
										<select name="vocation" id="vocation" class="form-control custom-select">
 | 
						|
											<?php
 | 
						|
											foreach ($config['vocations'] as $_id => $name) {
 | 
						|
												echo '<option value=' . $_id . ($_id == $player->getVocation() ? ' selected' : '') . '>' . $name . '</option>';
 | 
						|
											}
 | 
						|
											?>
 | 
						|
										</select>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="sex">Sex:</label>
 | 
						|
										<select name="sex" id="sex" class="form-control custom-select">>
 | 
						|
											<?php foreach ($config['genders'] as $_id => $sex): ?>
 | 
						|
												<option value="<?php echo $_id; ?>" <?php echo($player->getSex() == $_id ? 'selected' : ''); ?>><?php echo strtolower($sex); ?></option>
 | 
						|
											<?php endforeach; ?>
 | 
						|
										</select>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="town">Town:</label>
 | 
						|
										<select name="town" id="town" class="form-control">
 | 
						|
											<?php
 | 
						|
											$configTowns = config('towns');
 | 
						|
											if (!isset($configTowns[$player->getTownId()])) {
 | 
						|
												$configTowns[$player->getTownId()] = 'Unknown Town';
 | 
						|
											}
 | 
						|
 | 
						|
											foreach ($configTowns as $_id => $town): ?>
 | 
						|
												<option value="<?php echo $_id; ?>" <?php echo($player->getTownId() == $_id ? 'selected' : ''); ?>><?php echo $town; ?></option>
 | 
						|
											<?php endforeach; ?>
 | 
						|
										</select>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="skull">Skull:</label>
 | 
						|
										<select name="skull" id="skull" class="form-control custom-select">
 | 
						|
											<?php
 | 
						|
 | 
						|
											foreach ($skull_type as $_id => $s_name) {
 | 
						|
												echo '<option value=' . $_id . ($_id == $player->getSkull() ? ' selected' : '') . '>' . $s_name . '</option>';
 | 
						|
											}
 | 
						|
											?>
 | 
						|
										</select>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="skull_time">Skull time:</label>
 | 
						|
										<input type="text" class="form-control" id="skull_time" name="skull_time"
 | 
						|
											   autocomplete="off" maxlength="11"
 | 
						|
											   value="<?php echo $player->getSkullTime(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<?php if ($hasBlessingColumn):
 | 
						|
										$bless_count = $player->countBlessings();
 | 
						|
										$bless = $player->checkBlessings($bless_count); ?>
 | 
						|
										<input type="hidden" name="blesscount" value="<?php echo $bless_count; ?>"/>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label>Blessings:</label><br/>
 | 
						|
											<?php for ($i = 1; $i <= $bless_count; $i++): ?>
 | 
						|
												<label><input class="" type="checkbox" name="blessing<?php echo $i; ?>" id="blessing<?php echo $i; ?>" value="true"<?php echo(($bless[$i - 1] == 1) ? ' checked' : '') ?>/><?php echo $i; ?></label>
 | 
						|
											<?php endfor ?>
 | 
						|
										</div>
 | 
						|
									<?php endif; ?>
 | 
						|
									<?php if ($hasBlessingsColumn): ?>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="blessings">Blessings:</label>
 | 
						|
											<input type="text" class="form-control" id="blessings" name="blessings" autocomplete="off" maxlength="11" value="<?php echo $player->getBlessings(); ?>"/>
 | 
						|
										</div>
 | 
						|
									<?php endif; ?>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="balance" class="control-label">Bank Balance:</label>
 | 
						|
										<input type="text" class="form-control" id="balance" name="balance" autocomplete="off" maxlength="20" value="<?php echo $player->getBalance(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<div class="custom-control custom-switch custom-switch-on-danger">
 | 
						|
											<input type="checkbox" class="custom-control-input" name="deleted" id="deleted" value="true" <?php echo($player->getCustomField($db->hasColumn('players', 'deletion') ? 'deletion' : 'deleted') == '1' ? ' checked' : ''); ?>>
 | 
						|
											<label class="custom-control-label" for="deleted">Deleted</label>
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<div class="custom-control custom-switch custom-switch-on-success">
 | 
						|
											<input type="checkbox" class="custom-control-input" name="hide" id="hide" value="true" <?php echo($player->isHidden() ? ' checked' : ''); ?>>
 | 
						|
											<label class="custom-control-label" for="hide">Hidden</label>
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-stats">
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="level" class="control-label">Level:</label>
 | 
						|
										<input type="text" class="form-control" id="level" name="level" autocomplete="off" value="<?php echo $player->getLevel(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="experience" class="control-label">Experience:</label>
 | 
						|
										<input type="text" class="form-control" id="experience" name="experience" autocomplete="off" value="<?php echo $player->getExperience(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="magic_level" class="control-label">Magic level:</label>
 | 
						|
										<input type="text" class="form-control" id="magic_level" name="magic_level" autocomplete="off" size="8" maxlength="11" value="<?php echo $player->getMagLevel(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="mana_spent" class="control-label">Mana spent:</label>
 | 
						|
										<input type="text" class="form-control" id="mana_spent" name="mana_spent" autocomplete="off" size="3" maxlength="11" value="<?php echo $player->getManaSpent(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="health" class="control-label">Health:</label>
 | 
						|
										<input type="text" class="form-control" id="health" name="health" autocomplete="off" size="5" maxlength="11" value="<?php echo $player->getHealth(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="health_max" class="control-label">Health max:</label>
 | 
						|
										<input type="text" class="form-control" id="health_max" name="health_max" autocomplete="off" size="5" maxlength="11" value="<?php echo $player->getHealthMax(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="mana" class="control-label">Mana:</label>
 | 
						|
										<input type="text" class="form-control" id="mana" name="mana" autocomplete="off" size="3" maxlength="11" value="<?php echo $player->getMana(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="mana_max" class="control-label">Mana max:</label>
 | 
						|
										<input type="text" class="form-control" id="mana_max" name="mana_max" autocomplete="off" size="3" maxlength="11" value="<?php echo $player->getManaMax(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="capacity" class="control-label">Capacity:</label>
 | 
						|
										<input type="text" class="form-control" id="capacity" name="capacity" autocomplete="off" size="3" maxlength="11" value="<?php echo $player->getCap(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="soul" class="control-label">Soul:</label>
 | 
						|
										<input type="text" class="form-control" id="soul" name="soul" autocomplete="off" size="3" maxlength="10" value="<?php echo $player->getSoul(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<?php if ($db->hasColumn('players', 'stamina')): ?>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="stamina" class="control-label">Stamina:</label>
 | 
						|
											<input type="text" class="form-control" id="stamina" name="stamina" autocomplete="off" maxlength="20" value="<?php echo $player->getStamina(); ?>"/>
 | 
						|
										</div>
 | 
						|
									<?php endif; ?>
 | 
						|
									<?php if ($db->hasColumn('players', 'offlinetraining_time')): ?>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="offlinetraining" class="control-label">Offline Training
 | 
						|
												Time:</label>
 | 
						|
											<input type="text" class="form-control" id="offlinetraining" name="offlinetraining" autocomplete="off" maxlength="11" value="<?php echo $player->getCustomField('offlinetraining_time'); ?>"/>
 | 
						|
										</div>
 | 
						|
									<?php endif; ?>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-skills">
 | 
						|
								<?php
 | 
						|
								foreach ($skills as $_id => $info) {
 | 
						|
									?>
 | 
						|
									<div class="form-group row">
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<?php echo '<label for="skills[' . $_id . ']" class="control-label">' . $info[0] . '</label>
 | 
						|
									<input type="text" class="form-control" id="skills[' . $_id . ']" name="skills[' . $_id . ']" maxlength="10" autocomplete="off" value="' . $player->getSkill($_id) . '"/>'; ?>
 | 
						|
										</div>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<?php echo '<label for="skills_tries[' . $_id . ']" class="control-label">' . $info[0] . ' tries</label>
 | 
						|
									<input type="text" class="form-control" id="skills_tries[' . $_id . ']" name="skills_tries[' . $_id . ']" maxlength="10" autocomplete="off" value="' . $player->getSkillTries($_id) . '"/>'; ?>
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
								<?php } ?>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-pos">
 | 
						|
								<?php $outfit = setting('core.outfit_images_url') . '?id=' . $player->getLookType() . ($hasLookAddons ? '&addons=' . $player->getLookAddons() : '') . '&head=' . $player->getLookHead() . '&body=' . $player->getLookBody() . '&legs=' . $player->getLookLegs() . '&feet=' . $player->getLookFeet(); ?>
 | 
						|
								<div id="imgchar" style="width:64px;height:64px;position:absolute; top:30px; right:30px">
 | 
						|
									<img id="player_outfit" style="margin-left:0;margin-top:0;width:64px;height:64px;" src="<?php echo $outfit; ?>" alt="player outfit"/>
 | 
						|
								</div>
 | 
						|
								<td>Position:</td>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-4">
 | 
						|
										<label for="pos_x" class="control-label">X:</label>
 | 
						|
										<input type="text" class="form-control" id="pos_x" name="pos_x" autocomplete="off" maxlength="11" value="<?php echo $player->getPosX(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-4">
 | 
						|
										<label for="pos_y" class="control-label">Y:</label>
 | 
						|
										<input type="text" class="form-control" id="pos_y" name="pos_y" autocomplete="off" maxlength="11" value="<?php echo $player->getPosY(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-4">
 | 
						|
										<label for="pos_z" class="control-label">Z:</label>
 | 
						|
										<input type="text" class="form-control" id="pos_z" name="pos_z" autocomplete="off" maxlength="11" value="<?php echo $player->getPosZ(); ?>"/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<td>Look:</td>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-3">
 | 
						|
										<label for="look_head" class="control-label">Head: <span id="look_head_val" class="font-weight-bold text-primary"></span></label>
 | 
						|
										<input class="custom-range" type="range" min="0" max="132" id="look_head" name="look_head" value="<?php echo $player->getLookHead(); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-3">
 | 
						|
										<label for="look_body" class="control-label">Body: <span id="look_body_val" class="font-weight-bold text-primary"></span></label>
 | 
						|
										<input type="range" min="0" max="132"
 | 
						|
											   value="<?php echo $player->getLookBody(); ?>"
 | 
						|
											   class="custom-range" id="look_body" name="look_body">
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-3">
 | 
						|
										<label for="look_legs" class="control-label">Legs: <span id="look_legs_val" class="font-weight-bold text-primary"></span></label>
 | 
						|
										<input type="range" min="0" max="132"
 | 
						|
											   value="<?php echo $player->getLookLegs(); ?>"
 | 
						|
											   class="custom-range" id="look_legs" name="look_legs">
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-3">
 | 
						|
										<label for="look_feet" class="control-label">Feet: <span id="look_feet_val" class="font-weight-bold text-primary"></span></label>
 | 
						|
										<input type="range" min="0" max="132"
 | 
						|
											   value="<?php echo $player->getLookBody(); ?>"
 | 
						|
											   class="custom-range" id="look_feet" name="look_feet">
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="look_type" class="control-label">Type:</label>
 | 
						|
										<?php
 | 
						|
										$outfitlist = null;
 | 
						|
										$outfitlist = Outfits_loadfromXML();
 | 
						|
										if ($outfitlist) { ?>
 | 
						|
											<select name="look_type" id="look_type" class="form-control custom-select">
 | 
						|
												<?php
 | 
						|
												foreach ($outfitlist as $_id => $outfit) {
 | 
						|
													if ($outfit['enabled'] == 'yes') ;
 | 
						|
													echo '<option value=' . $outfit['id'] . ($outfit['id'] == $player->getLookType() ? ' selected' : '') . '>' . $outfit['name'] . ' - ' . ($outfit['type'] == 1 ? 'Male' : 'Female') . '</option>';
 | 
						|
												}
 | 
						|
												?>
 | 
						|
											</select>
 | 
						|
										<?php } else { ?>
 | 
						|
											<input type="text" class="form-control" id="look_type" name="look_type" autocomplete="off" maxlength="11" value="<?php echo $player->getLookType(); ?>"/>
 | 
						|
										<?php } ?>
 | 
						|
									</div>
 | 
						|
									<?php if ($hasLookAddons): ?>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="look_addons" class="control-label">Addons:</label>
 | 
						|
											<select name="look_addons" id="look_addons" class="form-control custom-select">
 | 
						|
												<?php
 | 
						|
												$addon_type = array("None", "First", "Second", "Both");
 | 
						|
												foreach ($addon_type as $_id => $s_name) {
 | 
						|
													echo '<option value=' . $_id . ($_id == $player->getLookAddons() ? ' selected' : '') . '>' . $s_name . '</option>';
 | 
						|
												}
 | 
						|
												?>
 | 
						|
											</select>
 | 
						|
										</div>
 | 
						|
									<?php endif; ?>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-misc">
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="created" class="control-label">Created:</label>
 | 
						|
										<input type="text" class="form-control" id="created" name="created"
 | 
						|
											   autocomplete="off"
 | 
						|
											   maxlength="10"
 | 
						|
											   value="<?php echo date("M d Y, H:i:s", $player->getCustomField('created')); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="lastlogin" class="control-label">Last login:</label>
 | 
						|
										<input type="text" class="form-control" id="lastlogin" name="lastlogin" autocomplete="off" maxlength="20" value="<?php echo date("M d Y, H:i:s", $player->getLastLogin()); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="lastlogout" class="control-label">Last logout:</label>
 | 
						|
										<input type="text" class="form-control" id="lastlogout" name="lastlogout" autocomplete="off" maxlength="20" value="<?php echo date("M d Y, H:i:s", $player->getLastLogout()); ?>"/>
 | 
						|
									</div>
 | 
						|
									<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
										<label for="lastip" class="control-label">Last IP:</label>
 | 
						|
										<input type="text" class="form-control" id="lastip" name="lastip" autocomplete="off" maxlength="10" value="<?php
 | 
						|
										$lastIPColumnInfo = $db->getColumnInfo('players', 'lastip');
 | 
						|
										if ($lastIPColumnInfo && is_array($lastIPColumnInfo)) {
 | 
						|
											if (str_contains($lastIPColumnInfo['type'], 'varbinary')) {
 | 
						|
												echo inet_ntop($player->getLastIP());
 | 
						|
											}
 | 
						|
											else {
 | 
						|
												echo longToIp($player->getLastIP());
 | 
						|
											}
 | 
						|
										}
 | 
						|
										else {
 | 
						|
											echo 'Error';
 | 
						|
										}
 | 
						|
										?>" readonly/>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
								<?php if ($db->hasColumn('players', 'loss_experience')): ?>
 | 
						|
									<div class="form-group row">
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="loss_experience" class="control-label">Experience
 | 
						|
												Loss:</label>
 | 
						|
											<input type="text" class="form-control" id="loss_experience" name="loss_experience" autocomplete="off" maxlength="11" value="<?php echo $player->getLossExperience(); ?>"/>
 | 
						|
										</div>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="loss_mana" class="control-label">Mana Loss:</label>
 | 
						|
											<input type="text" class="form-control" id="loss_mana" name="loss_mana" autocomplete="off" maxlength="11" value="<?php echo $player->getLossMana(); ?>"/>
 | 
						|
										</div>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="loss_skills" class="control-label">Skills Loss:</label>
 | 
						|
											<input type="text" class="form-control" id="loss_skills" name="loss_skills" autocomplete="off" maxlength="11" value="<?php echo $player->getLossSkills(); ?>"/>
 | 
						|
										</div>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="loss_containers" class="control-label">Containers Loss:</label>
 | 
						|
											<input type="text" class="form-control" id="loss_containers" name="loss_containers" autocomplete="off" maxlength="11" value="<?php echo $player->getLossContainers(); ?>"/>
 | 
						|
										</div>
 | 
						|
										<div class="col-12 col-sm-12 col-lg-6">
 | 
						|
											<label for="loss_items" class="control-label">Items Loss:</label>
 | 
						|
											<input type="text" class="form-control" id="loss_items" name="loss_items" autocomplete="off" maxlength="11" value="<?php echo $player->getLossItems(); ?>"/>
 | 
						|
										</div>
 | 
						|
									</div>
 | 
						|
								<?php endif; ?>
 | 
						|
								<div class="form-group row">
 | 
						|
									<div class="col-12">
 | 
						|
										<label for="comment" class="control-label">Comment:</label>
 | 
						|
										<textarea class="form-control" id="comment" name="comment" rows="10" cols="50" wrap="virtual"><?php echo $player->getCustomField("comment"); ?></textarea>
 | 
						|
										<small>[max. length: 2000 chars, 50 lines (ENTERs)]</small>
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-posts">
 | 
						|
								<table class="table table-striped table-condensed table-responsive d-md-table">
 | 
						|
									<thead>
 | 
						|
									<tr>
 | 
						|
										<th class="w-25">Topic</th>
 | 
						|
										<th>Content</th>
 | 
						|
									</tr>
 | 
						|
									</thead>
 | 
						|
									<tbody>
 | 
						|
									<?php
 | 
						|
									$posts = $db->query('SELECT `author_guid`,`section`,`first_post`,`post_text`,`post_date`, `post_topic`,`post_html`,`post_smile`,`' . TABLE_PREFIX . 'forum_boards`.`name` AS `forum_Name` FROM `' .
 | 
						|
										TABLE_PREFIX . 'forum` LEFT JOIN `' . TABLE_PREFIX . 'forum_boards` ON `' .
 | 
						|
										TABLE_PREFIX . 'forum`.section = `' . TABLE_PREFIX . 'forum_boards`.id WHERE `author_guid` = "' . $player->getId() . '" ORDER BY `post_date` DESC LIMIT 10');
 | 
						|
									if ($posts->rowCount() > 0) {
 | 
						|
										$posts = $posts->fetchAll();
 | 
						|
										foreach ($posts as $post) {
 | 
						|
											$text = ($post['post_html'] > 0 ? $post['post_text'] : htmlspecialchars($post['post_text']));
 | 
						|
											$post['content'] = ($post['post_html'] > 0 ? $text : Forum::parseBBCode(nl2br($text), $post['post_smile'] == 0));
 | 
						|
											?>
 | 
						|
											<tr>
 | 
						|
												<th><?php echo htmlspecialchars($post['post_topic']); ?><br/><small><?php echo date('d M y H:i:s', $post['post_date']); ?></small><br/>
 | 
						|
													Topic: <a href="<?php echo getForumThreadLink($post['first_post']); ?>" class="link-black text-sm"><i class="fa fa-share margin-r-5"></i> Link</a><br/>
 | 
						|
													Forum: <a href="<?php echo getForumBoardLink($post['section']); ?>" class="link-black text-sm"><i class="fa fa-share margin-r-5"></i> <?php echo $post['forum_Name']; ?></a></th>
 | 
						|
												<th><?php echo $post['content']; ?></th>
 | 
						|
											</tr>
 | 
						|
											<?php
 | 
						|
										}
 | 
						|
										unset($post);
 | 
						|
									} else {
 | 
						|
										echo '<tr><td colspan="2">This user has no posts</td></tr>';
 | 
						|
									}; ?>
 | 
						|
									</tbody>
 | 
						|
								</table>
 | 
						|
							</div>
 | 
						|
							<div class="tab-pane fade" id="tabs-chars">
 | 
						|
								<div class="row">
 | 
						|
									<?php
 | 
						|
									if (isset($account) && $account->isLoaded()) {
 | 
						|
										$account_players = Player::where('account_id', $account->getId())->orderBy('id')->get();
 | 
						|
										if (isset($account_players)) { ?>
 | 
						|
											<table class="table table-striped table-condensed table-responsive d-md-table">
 | 
						|
												<thead>
 | 
						|
												<tr>
 | 
						|
													<th>#</th>
 | 
						|
													<th>Name</th>
 | 
						|
													<th>Level</th>
 | 
						|
													<th>Vocation</th>
 | 
						|
													<th style="width: 40px">Edit</th>
 | 
						|
												</tr>
 | 
						|
												</thead>
 | 
						|
												<tbody>
 | 
						|
												<?php foreach ($account_players as $i => $player): ?>
 | 
						|
													<tr>
 | 
						|
														<th><?php echo $i + 1; ?></th>
 | 
						|
														<td><?php echo $player->name; ?></td>
 | 
						|
														<td><?php echo $player->level; ?></td>
 | 
						|
														<td><?php echo $player->vocation_name; ?></td>
 | 
						|
														<td><a href="?p=players&id=<?php echo $player->getKey() ?>" class=" btn btn-success btn-sm" title="Edit"><i class="fas fa-pencil-alt"></i></a></td>
 | 
						|
													</tr>
 | 
						|
												<?php endforeach ?>
 | 
						|
												</tbody>
 | 
						|
											</table>
 | 
						|
											<?php
 | 
						|
										}
 | 
						|
									} ?>
 | 
						|
								</div>
 | 
						|
							</div>
 | 
						|
						</div>
 | 
						|
					</div>
 | 
						|
					<div class="card-footer text-center">
 | 
						|
						<input type="hidden" name="save" value="yes"/>
 | 
						|
						<button type="submit" class="btn btn-info float-left"><i class="fas fa-update"></i> Update</button>
 | 
						|
						<a href="<?php echo ADMIN_URL; ?>?p=accounts&id=<?php echo $account->getId(); ?>" class="btn btn-secondary">Edit Account</a>
 | 
						|
						<a href="<?php echo ADMIN_URL; ?>?p=players" class="btn btn-danger float-right"><i class="fas fa-cancel"></i> Cancel</a>
 | 
						|
					</div>
 | 
						|
				</form>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
 | 
						|
		<script type="text/javascript">
 | 
						|
			$('#lastlogin').datetimepicker({format: "M d Y, H:i:s",});
 | 
						|
			$('#lastlogout').datetimepicker({format: "M d Y, H:i:s",});
 | 
						|
			$('#created').datetimepicker({format: "M d Y, H:i:s",});
 | 
						|
 | 
						|
			$(document).ready(function () {
 | 
						|
				const $headSpan = $('#look_head_val');
 | 
						|
				const $headvalue = $('#look_head');
 | 
						|
				$headSpan.html($headvalue.val());
 | 
						|
				$headvalue.on('input', () => {
 | 
						|
					$headSpan.html($headvalue.val());
 | 
						|
				});
 | 
						|
				$headvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
 | 
						|
				const $bodySpan = $('#look_body_val');
 | 
						|
				const $bodyvalue = $('#look_body');
 | 
						|
				$bodySpan.html($bodyvalue.val());
 | 
						|
				$bodyvalue.on('input', () => {
 | 
						|
					$bodySpan.html($bodyvalue.val());
 | 
						|
				});
 | 
						|
				$bodyvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
 | 
						|
				const $legsSpan = $('#look_legs_val');
 | 
						|
				const $legsvalue = $('#look_legs');
 | 
						|
				$legsSpan.html($legsvalue.val());
 | 
						|
				$legsvalue.on('input', () => {
 | 
						|
					$legsSpan.html($legsvalue.val());
 | 
						|
				});
 | 
						|
				$legsvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
 | 
						|
				const $feetSpan = $('#look_feet_val');
 | 
						|
				const $feetvalue = $('#look_feet');
 | 
						|
				$feetSpan.html($feetvalue.val());
 | 
						|
				$feetvalue.on('input', () => {
 | 
						|
					$feetSpan.html($feetvalue.val());
 | 
						|
				});
 | 
						|
				$feetvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
 | 
						|
				const $lookvalue = $('#look_type');
 | 
						|
				$lookvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
 | 
						|
				<?php if($hasLookAddons): ?>
 | 
						|
				const $addonvalue = $('#look_addons');
 | 
						|
				$addonvalue.on('change', () => {
 | 
						|
					updateOutfit();
 | 
						|
				});
 | 
						|
				<?php endif; ?>
 | 
						|
			});
 | 
						|
 | 
						|
			function updateOutfit() {
 | 
						|
				const look_head = $('#look_head').val();
 | 
						|
				const look_body = $('#look_body').val();
 | 
						|
				const look_legs = $('#look_legs').val();
 | 
						|
				const look_feet = $('#look_feet').val();
 | 
						|
				const look_type = $('#look_type').val();
 | 
						|
 | 
						|
				let look_addons = '';
 | 
						|
				<?php if($hasLookAddons): ?>
 | 
						|
				look_addons = '&addons=' + $('#look_addons').val();
 | 
						|
				<?php endif; ?>
 | 
						|
				$("#player_outfit").attr("src", '<?= setting('core.outfit_images_url'); ?>?id=' + look_type + look_addons + '&head=' + look_head + '&body=' + look_body + '&legs=' + look_legs + '&feet=' + look_feet);
 | 
						|
			}
 | 
						|
		</script>
 | 
						|
	<?php } ?>
 | 
						|
	<div class="col-12 col-sm-12 col-lg-2">
 | 
						|
		<div class="card card-info card-outline">
 | 
						|
			<div class="card-header">
 | 
						|
				<h5 class="m-0">Search Player</h5>
 | 
						|
			</div>
 | 
						|
			<div class="card-body row">
 | 
						|
				<div class="col-6 col-lg-12">
 | 
						|
					<form action="<?php echo $player_base; ?>" method="post">
 | 
						|
						<?php csrf(); ?>
 | 
						|
						<label for="search">Player Name:</label>
 | 
						|
						<div class="input-group input-group-sm">
 | 
						|
							<input type="text" class="form-control" id="search" name="search" value="<?= escapeHtml($search_player); ?>" maxlength="32" size="32">
 | 
						|
							<span class="input-group-append"><button type="submit" class="btn btn-info btn-flat">Search</button></span>
 | 
						|
						</div>
 | 
						|
					</form>
 | 
						|
				</div>
 | 
						|
				<div class="col-6 col-lg-12">
 | 
						|
					<form action="<?php echo $player_base; ?>" method="post">
 | 
						|
						<?php csrf(); ?>
 | 
						|
						<label for="id">Player ID:</label>
 | 
						|
						<div class="input-group input-group-sm">
 | 
						|
							<input type="text" class="form-control" id="id" name="id" value="<?= $id; ?>" maxlength="32" size="32">
 | 
						|
							<span class="input-group-append"><button type="submit" class="btn btn-info btn-flat">Search</button></span>
 | 
						|
						</div>
 | 
						|
					</form>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
</div>
 | 
						|
 | 
						|
<script>
 | 
						|
	$(function () {
 | 
						|
		$('.player_datatable').DataTable({
 | 
						|
			"order": [[0, "asc"]]
 | 
						|
		});
 | 
						|
	});
 | 
						|
</script>
 |