* @author Slawkens * @copyright 2017 MyAAC * @version 0.1.2 * @link http://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); $title = 'Guilds'; if(tableExist('guild_members')) define('GUILD_MEMBERS_TABLE', 'guild_members'); else define('GUILD_MEMBERS_TABLE', 'guild_membership'); if($action == 'login') { if(check_guild_name($_REQUEST['guild'])) $guild = $_REQUEST['guild']; if($_REQUEST['redirect'] == 'guild' || $_REQUEST['redirect'] == 'guilds') $redirect = $_REQUEST['redirect']; if(!$logged) echo 'Please enter your account number and your password.
Create an account if you do not have one yet.

Account Login
Account Number:
Password:

'; else { echo '

Now you are logged. Redirecting...

'; if($redirect == 'guilds') header("Location: ?subtopic=guilds"); elseif($redirect == 'guild') header("Location: ?subtopic=guilds&action=show&guild=".$guild); else echo 'Wrong address to redirect!'; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show list of guilds if($action == '') { $guilds_list = $ots->createObject('Guilds_List'); if(!isset($_REQUEST['preview'])) $_REQUEST['preview'] = 1; $guilds_list->orderBy("name"); //echo 'Guilds needs to have atleast 4 members, otherwise it will be deleted automatically after 4 days.

Guild statistics are self-updated once per 3 days.

'; echo 'Normal preview / Advanced ranks & statistics

'; if($_REQUEST['preview'] == 2) { echo ' '; /* ';*/ } else echo ' '; echo ' '; $showed_guilds = 0; if($_REQUEST['preview'] == 2) { if(count($guilds_list) > 0) { foreach($guilds_list as $guild) { $guild_logo = $guild->getCustomField('logo_name'); if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) $guild_logo = "default.gif"; echo ''; // echo ''; } } else echo ''; } else { if(count($guilds_list) > 0) { foreach($guilds_list as $guild) { $guild_logo = $guild->getCustomField('logo_name'); if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) $guild_logo = "default.gif"; $description = $guild->getCustomField('description'); $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
', $description, $count); if($count < $config['guild_description_lines_limit']) $description = wordwrap(nl2br($description), 60, "
", true); //$description = $description_with_lines; echo ''; } } else echo ''; } echo '
Active Guilds on '.$config['lua']['serverName'].'
Rank Logo Guild nameMembers Total level Average level FragsLogo Description
'.($show_ranks ? $showed_guilds.'.' : '-').' '.$guild->getName().'
'; if(admin()) echo '
Delete this guild (for ADMIN only!)'; echo '
'.$guild->getCustomField('total_members').''.$guild->getCustomField('total_level').''; //if($guild->getCustomField('total_members') > 0) // echo ceil($guild->getCustomField('total_level')/$guild->getCustomField('total_members')); //echo ''.$guild->getCustomField('frags').'
- Create guild
Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
'; if($logged) echo '
'; echo '
'.$guild->getName().'
'.$description.''; if(admin()) echo '
Delete this guild (for ADMIN only!)'; echo '
Create guild
Actually there is no guild on server.' . ($logged ? ' Create first! Press button "Create Guild".' : '') . '
'; if($logged) echo '
'; echo '


'; if($logged) echo '

If you have any problem with guilds try:
Cleanup players - can\'t join guild/be invited? Can\'t create guild? Try cleanup players.
Cleanup guilds - made guild, you are a leader, but you are not on players list? Cleanup guilds!'; else echo 'Before you can create guild you must login.
'; } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'show') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) $guild_errors[] = 'Invalid guild name format.'; if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } if(!empty($guild_errors)) { //show errors echo '
The Following Errors Have Occurred:
'; foreach($guild_errors as $guild_error) echo '
  • '.$guild_error; //errors and back button echo '

  • '; } else { $title = $guild->getName() . ' - ' . $title; //check is it vice or/and leader account (leader has vice + leader rights) $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $guild_vice = false; $level_in_guild = 0; $players_from_account_in_guild = array(); if($logged) { $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $players_from_account_ids[] = $player->getId(); $player_rank = $player->getRank(); if($player_rank->isLoaded()) { foreach($rank_list as $rank_in_guild) { if($rank_in_guild->isLoaded() && $player_rank->isLoaded() && $rank_in_guild->getId() == $player_rank->getId()) { $players_from_account_in_guild[] = $player->getName(); if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; } else if($player_rank->getLevel() > 1) { $guild_vice = true; $level_in_guild = $player_rank->getLevel(); } } } } } } //show guild page $guild_logo = $guild->getCustomField('logo_name'); if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) $guild_logo = "default.gif"; $description = $guild->getCustomField('description'); $description_with_lines = str_replace(array("\r\n", "\n", "\r"), '
    ', $description, $count); if($count < $config['guild_description_lines_limit']) $description = wordwrap(nl2br($description), 60, "
    ", true); //$description = $description_with_lines; $guild_owner = $guild->getOwner(); if($guild_owner->isLoaded()) $guild_owner = $guild_owner->getName(); echo '

    '.$guild->getName().'


    '.$description.'

    '.$guild_owner.' is guild leader of '.$guild->getName().'.
    The guild was founded on '.$config['lua']['serverName'].' on '.date("j F Y", $guild->getCreationData()).'.'; if($guild_leader) echo '   Manage Guild'; echo '

    '; //Slaw stats values //$s_total_members = 0; //$s_members_online = 0; //$s_total_level = 0; //End Slaw stats values $showed_players = 1; foreach($rank_list as $rank) { if(tableExist(GUILD_MEMBERS_TABLE)) $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); else if(fieldExist('rank_id', 'players')) $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); $players_with_rank_number = $players_with_rank->rowCount(); if($players_with_rank_number > 0) { $bgcolor = getStyle($showed_players); $showed_players++; echo ' '; } } echo '
    Guild Members
    Rank Name, title, level & status
    '.$rank->getName().' '; foreach($players_with_rank as $result) { $player = $ots->createObject('Player'); $player->load($result['id']); if(!$player->isLoaded()) continue; //$s_total_members++; //$s_total_level += $player->getLevel(); echo ''; } echo '
    ' . getPlayerLink($player->getName()); $guild_nick = $player->getGuildNick(); if($logged) { if(in_array($player->getId(), $players_from_account_ids)) echo ' ()'; else { if(!empty($guild_nick)) echo ' ('.htmlentities($player->getGuildNick()).')'; } } else if(!empty($guild_nick)) echo ' ('.htmlentities($player->getGuildNick()).')'; if($level_in_guild > $rank->getLevel() || $guild_leader) if($guild_leader_char->getName() != $player->getName()) echo ' {KICK}'; if($player->isOnline()) $s_members_online++; echo '
    '.$player->getLevel().'Online' : 'red">Offline').'
    '; /* //Statistics ;) echo '
    '; //guild hall? $houseInfo = $db->query('SELECT `id`, `name` FROM `houses` WHERE `owner` = ' . $guild->getId() . ' AND `guild` = 1'); if($houseInfo->rowCount() > 0) //have guild hall { $houseInfo = $houseInfo->fetch(); echo ''; } echo '
    Statistics
    Total members: '.$s_total_members.'
    Members currently online: '.$s_members_online.'
    Total members level: '.$s_total_level.'
    Average members level: '.ceil($s_total_level/$s_total_members).'
    Frags: '.$guild->getCustomField('frags').'
    Guildhall: '.$houseInfo['name'].'
    '; */ //End statistics //Lets update some stuff in database //$db->query('UPDATE `guilds` SET `total_members` = '.$s_total_members.', `members_online` = '.$s_members_online.', `total_level` = '.$s_total_level.', `average_level` = '.ceil($s_total_level/$s_total_members).' WHERE `id` = '.$guild->getId()); include(SYSTEM . 'libs/pot/InvitesDriver.php'); new InvitesDriver($guild); $invited_list = $guild->listInvites(); $show_accept_invite = 0; if(count($invited_list) == 0) echo '
    Invited Characters
    No invited characters found.
    '; else { echo '

    '; $showed_invited = 1; foreach($invited_list as $invited_player) { if(count($account_players) > 0) foreach($account_players as $player_from_acc) if($player_from_acc->getName() == $invited_player->getName()) $show_accept_invite++; if(is_int($showed_invited / 2)) { $bgcolor = $config['darkborder']; } else { $bgcolor = $config['lightborder']; } $showed_invited++; echo ''; } echo '
    Invited Characters
    ' . getPlayerLink($invited_player->getName()); if($guild_vice) echo ' (Cancel Invitation)'; echo '
    '; } echo '

    '; if(!$logged) echo ''; else { if($show_accept_invite > 0) echo ''; if($guild_vice) { echo ''; echo ''; } if(count($players_from_account_in_guild) > 0) echo ''; } echo '
    '; } } //-------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------- //change rank of player in guild if($action == 'changerank') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) $guild_errors[] = 'Invalid guild name format.'; if(!$logged) $guild_errors[] = 'You are not logged in. You can\'t change rank.'; if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } if(!empty($guild_errors)) { //show errors echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) echo '
  • '.$guild_error; //errors and back button echo '

  • '; } else { //check is it vice or/and leader account (leader has vice + leader rights) $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $guild_vice = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $player_rank = $player->getRank(); if($player_rank->isLoaded()) { foreach($rank_list as $rank_in_guild) { if($rank_in_guild->getId() == $player_rank->getId()) { $players_from_account_in_guild[] = $player->getName(); if($player_rank->getLevel() > 1) { $guild_vice = true; $level_in_guild = $player_rank->getLevel(); } if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; } } } } } //tworzenie listy osob z nizszymi uprawnieniami i rank z nizszym levelem if($guild_vice) { $rid = 0; $sid = 0; foreach($rank_list as $rank) { if($guild_leader || $rank->getLevel() < $level_in_guild) { $ranks[$rid]['0'] = $rank->getId(); $ranks[$rid]['1'] = $rank->getName(); $rid++; if(fieldExist('rank_id', 'players')) $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); else $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); $players_with_rank_number = $players_with_rank->rowCount(); if(count($players_with_rank) > 0) { foreach($players_with_rank as $result) { $player = $ots->createObject('Player'); $player->load($result['id']); if(!$player->isLoaded()) continue; if($guild->getOwner()->getId() != $player->getId() || $guild_leader) { $players_with_lower_rank[$sid]['0'] = $player->getName(); $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; $sid++; } } } } } if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $player_name = stripslashes($_REQUEST['name']); $new_rank = (int) $_REQUEST['rankid']; if(!check_name($player_name)) $change_errors[] = 'Invalid player name format.'; $rank = $ots->createObject('GuildRank'); $rank->load($new_rank); if(!$rank->isLoaded()) $change_errors[] = 'Rank with this ID doesn\'t exist.'; if($level_in_guild <= $rank->getLevel() && !$guild_leader) $change_errors[] = 'You can\'t set ranks with equal or higher level than your.'; if(empty($change_errors)) { $player_to_change = $ots->createObject('Player'); $player_to_change->find($player_name); if(!$player_to_change->isLoaded()) $change_errors[] = 'Player with name '.$player_name.' doesn\'t exist.'; else { $player_in_guild = false; if($guild->getName() == $player_to_change->getRank()->getGuild()->getName() || $guild_leader) { $player_in_guild = true; $player_has_lower_rank = false; if($player_to_change->getRank()->getLevel() < $level_in_guild || $guild_leader) $player_has_lower_rank = true; } } $rank_in_guild = false; foreach($rank_list as $rank_from_guild) if($rank_from_guild->getId() == $rank->getId()) $rank_in_guild = true; if(!$player_in_guild) $change_errors[] = 'This player isn\'t in your guild.'; if(!$rank_in_guild) $change_errors[] = 'This rank isn\'t in your guild.'; if(!$player_has_lower_rank) $change_errors[] = 'This player has higher rank in guild than you. You can\'t change his/her rank.'; } if(empty($change_errors)) { $player_to_change->setRank($rank); echo '
    Guild Deleted
    Rank of player '.$player_to_change->getName().' has been changed to '.$rank->getName().'.

    '; unset($players_with_lower_rank); unset($ranks); $rid = 0; $sid= 0; foreach($rank_list as $rank) { if($guild_leader || $rank->getLevel() < $level_in_guild) { $ranks[$rid]['0'] = $rank->getId(); $ranks[$rid]['1'] = $rank->getName(); $rid++; if(fieldExist('rank_id', 'players')) $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); else $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); $players_with_rank_number = $players_with_rank->rowCount(); if(count($players_with_rank) > 0) { foreach($players_with_rank as $result) { $player = $ots->createObject('Player'); $player->load($result['id']); if(!$player->isLoaded()) continue; if($guild->getOwner()->getId() != $player->getId() || $guild_leader) { $players_with_lower_rank[$sid]['0'] = $player->getName(); $players_with_lower_rank[$sid]['1'] = $player->getName().' ('.$rank->getName().')'; $sid++; } } } } } } else { echo '
    The Following Errors Have Occurred:
    '; foreach($change_errors as $change_error) echo '
  • '.$change_error; echo '

  • '; } } echo '
    Change Rank
    Name:  Rank:    
    '; } else echo 'Error. You are not a leader or vice leader in guild '.$guild->getName().'.
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'deleteinvite') { //set rights in guild $guild_name = $_REQUEST['guild']; $name = stripslashes($_REQUEST['name']); if(!$logged) $guild_errors[] = 'You are not logged in. You can\'t delete invitations.'; if(!check_guild_name($guild_name)) $guild_errors[] = 'Invalid guild name format.'; if(!check_name($name)) $guild_errors[] = 'Invalid name format.'; if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } if(empty($guild_errors)) { $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $guild_vice = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $player_rank = $player->getRank(); if($player_rank->isLoaded()) { foreach($rank_list as $rank_in_guild) { if($rank_in_guild->getId() == $player_rank->getId()) { $players_from_account_in_guild[] = $player->getName(); if($player_rank->getLevel() > 1) { $guild_vice = true; $level_in_guild = $player_rank->getLevel(); } if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; } } } } } } if(empty($guild_errors)) { $player = new OTS_Player(); $player->find($name); if(!$player->isLoaded()) $guild_errors[] = 'Player with name '.$name.' doesn\'t exist.'; } if(!$guild_vice) $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'; if(empty($guild_errors)) { include(SYSTEM . 'libs/pot/InvitesDriver.php'); new InvitesDriver($guild); $invited_list = $guild->listInvites(); if(count($invited_list) > 0) { $is_invited = false; foreach($invited_list as $invited) if($invited->getName() == $player->getName()) $is_invited = true; if(!$is_invited) $guild_errors[] = ''.$player->getName().' isn\'t invited to your guild.'; } else $guild_errors[] = 'No one is invited to your guild.'; } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) echo '
  • '.$guild_error; echo '

  • '; } else { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $guild->deleteInvite($player); echo '
    Delete player invitation
    Player with name '.$player->getName().' has been deleted from "invites list".

    '; } else echo '
    Delete player invitation
    Are you sure you want to delete player with name '.$player->getName().' from "invites list"?

      
      
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'invite') { //set rights in guild $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; if(!$logged) { $guild_errors[] = 'You are not logged in. You can\'t invite players.'; } if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $guild_vice = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $player_rank = $player->getRank(); if($player_rank->isLoaded()) { foreach($rank_list as $rank_in_guild) { if($rank_in_guild->getId() == $player_rank->getId()) { $players_from_account_in_guild[] = $player->getName(); if($player_rank->getLevel() > 1) { $guild_vice = true; $level_in_guild = $player_rank->getLevel(); } if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; } } } } } } if(!$guild_vice) { $guild_errors[] = 'You are not a leader or vice leader of guild '.$guild_name.'.'.$level_in_guild; } if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(!check_name($name)) { $guild_errors[] = 'Invalid name format.'; } if(empty($guild_errors)) { $player = new OTS_Player(); $player->find($name); if(!$player->isLoaded()) { $guild_errors[] = 'Player with name '.$name.' doesn\'t exist.'; } else { $rank_of_player = $player->getRank(); if($player_rank->isLoaded()) { $guild_errors[] = 'Player with name '.$name.' is already in guild. He must leave guild before you can invite him.'; } } } } if(empty($guild_errors)) { include(SYSTEM . 'libs/pot/InvitesDriver.php'); new InvitesDriver($guild); $invited_list = $guild->listInvites(); if(count($invited_list) > 0) { foreach($invited_list as $invited) { if($invited->getName() == $player->getName()) { $guild_errors[] = ''.$invited->getName().' is already invited to your guild.'; } } } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } else { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $guild->invite($player); echo '
    Invite player
    Player with name '.$player->getName().' has been invited to your guild.

    '; } else { echo '
    Invite player
    Invite player with name:      

    '; } } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'acceptinvite') { //set rights in guild $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; if(!$logged) { $guild_errors[] = 'You are not logged in. You can\'t accept invitations.'; } if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(!check_name($name)) { $guild_errors[] = 'Invalid name format.'; } if(empty($guild_errors)) { $player = new OTS_Player(); $player->find($name); if(!$player->isLoaded()) { $guild_errors[] = 'Player with name '.$name.' doesn\'t exist.'; } else { $rank_of_player = $player->getRank(); if($rank_of_player->isLoaded()) { $guild_errors[] = 'Character with name '.$name.' is already in guild. You must leave guild before you join other guild.'; } } } } if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(empty($guild_errors)) { $is_invited = false; include(SYSTEM . 'libs/pot/InvitesDriver.php'); new InvitesDriver($guild); $invited_list = $guild->listInvites(); if(count($invited_list) > 0) { foreach($invited_list as $invited) { if($invited->getName() == $player->getName()) { $is_invited = true; } } } if(!$is_invited) { $guild_errors[] = 'Character '.$player->getName.' isn\'t invited to guild '.$guild->getName().'.'; } } } else { if(empty($guild_errors)) { $acc_invited = false; $account_players = $account_logged->getPlayers(); include(SYSTEM . 'libs/pot/InvitesDriver.php'); new InvitesDriver($guild); $invited_list = $guild->listInvites(); if(count($invited_list) > 0) { foreach($invited_list as $invited) { foreach($account_players as $player_from_acc) { if($invited->getName() == $player_from_acc->getName()) { $acc_invited = true; $list_of_invited_players[] = $player_from_acc->getName(); } } } } } if(!$acc_invited) { $guild_errors[] = 'Any character from your account isn\'t invited to '.$guild->getName().'.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } else { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $guild->acceptInvite($player); echo '
    Accept invitation
    Player with name '.$player->getName().' has been added to guild '.$guild->getName().'.

    '; } else { echo ''; echo ''; echo '
    Accept invitation
    Select character to join guild:
    '; sort($list_of_invited_players); $i = 0; foreach($list_of_invited_players as $invited_player_from_list) { echo '
    '; } echo '

    '; } } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'kickplayer') { //set rights in guild $guild_name = $_REQUEST['guild']; $name = stripslashes($_REQUEST['name']); if(!$logged) { $guild_errors[] = 'You are not logged in. You can\'t kick characters.'; } if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(!check_name($name)) { $guild_errors[] = 'Invalid name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $guild_vice = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $player_rank = $player->getRank(); if($player_rank->isLoaded()) { foreach($rank_list as $rank_in_guild) { if($rank_in_guild->getId() == $player_rank->getId()) { $players_from_account_in_guild[] = $player->getName(); if($player_rank->getLevel() > 1) { $guild_vice = true; $level_in_guild = $player_rank->getLevel(); } if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; } } } } } } if(empty($guild_errors)) { if(!$guild_leader && $level_in_guild < 3) { $guild_errors[] = 'You are not a leader of guild '.$guild_name.'. You can\'t kick players.'; } } if(empty($guild_errors)) { $player = new OTS_Player(); $player->find($name); if(!$player->isLoaded()) { $guild_errors[] = 'Character '.$name.' doesn\'t exist.'; } else { if($player->getRank()->isLoaded() && $player->getRank()->getGuild()->isLoaded() && $player->getRank()->getGuild()->getName() != $guild->getName()) { $guild_errors[] = 'Character '.$name.' isn\'t from your guild.'; } } } if(empty($guild_errors)) { if($player->getRank()->isLoaded() && $player->getRank()->getLevel() >= $level_in_guild && !$guild_leader) { $guild_errors[] = 'You can\'t kick character '.$name.'. Too high access level.'; } } if(empty($guild_errors)) { if($guild->getOwner()->getName() == $player->getName()) { $guild_errors[] = 'It\'s not possible to kick guild owner!'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } else { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $player->setRank(); echo '
    Kick player
    Player with name '.$player->getName().' has been kicked from your guild.

    '; } else { echo '
    Kick player
    Are you sure you want to kick player with name '.$player->getName().' from your guild?

      
      
    '; } } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //show guild page if($action == 'leaveguild') { //set rights in guild $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; if(!$logged) { $guild_errors[] = 'You are not logged in. You can\'t leave guild.'; } if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } $array_of_player_ig = array(); if(empty($guild_errors)) { $guild_owner_name = $guild->getOwner()->getName(); if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { if(!check_name($name)) { $guild_errors[] = 'Invalid name format.'; } if(empty($guild_errors)) { $player = new OTS_Player(); $player->find($name); if(!$player->isLoaded()) { $guild_errors[] = 'Character '.$name.' doesn\'t exist.'; } else { if($player->getAccount()->getId() != $account_logged->getId()) { $guild_errors[] = 'Character '.$name.' isn\'t from your account!'; } } } if(empty($guild_errors)) { $player_loaded_rank = $player->getRank(); if($player_loaded_rank->isLoaded()) { if($player_loaded_rank->getGuild()->getName() != $guild->getName()) { $guild_errors[] = 'Character '.$name.' isn\'t from guild '.$guild->getName().'.'; } } else { $guild_errors[] = 'Character '.$name.' isn\'t in any guild.'; } } if(empty($guild_errors)) { if($guild_owner_name == $player->getName()) { $guild_errors[] = 'You can\'t leave guild. You are an owner of guild.'; } } } else { $account_players = $account_logged->getPlayers(); foreach($account_players as $player_fac) { $player_rank = $player_fac->getRank(); if($player_rank->isLoaded()) { if($player_rank->getGuild()->getId() == $guild->getId()) { if($guild_owner_name != $player_fac->getName()) { $array_of_player_ig[] = $player_fac->getName(); } } } } } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } else { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $player->setRank(); echo '
    Leave guild
    Player with name '.$player->getName().' leaved guild '.$guild->getName().'.

    '; } else { echo ''; if(count($array_of_player_ig) > 0) { echo ''; echo '
    Leave guild
    Select character to leave guild:
    '; sort($array_of_player_ig); foreach($array_of_player_ig as $player_to_leave) { echo ''.$player_to_leave.'
    '; } echo '
    '; } else { echo 'Any of your characters can\'t leave guild.'; } echo ''; if(count($array_of_player_ig) > 0) { echo ''; } echo '
    '; } } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //create guild if($action == 'createguild') { $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; $name = isset($_REQUEST['name']) ? stripslashes($_REQUEST['name']) : NULL; $todo = isset($_REQUEST['todo']) ? $_REQUEST['todo'] : NULL; if(!$logged) { $guild_errors[] = 'You are not logged in. You can\'t create guild.'; } $array_of_player_nig = array(); if(empty($guild_errors)) { $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { $player_rank = $player->getRank(); if(!$player_rank->isLoaded()) { if($player->getLevel() >= $config['guild_need_level']) { if(!$config['guild_need_premium'] || $account_logged->isPremium()) { $array_of_player_nig[] = $player->getName(); } } } } } if(empty($todo)) { if(count($array_of_player_nig) == 0) { $guild_errors[] = 'On your account all characters are in guilds, have too low level to create new guild' . ($config['guild_need_premium'] ? ' or you don\' have a premium account' : '') . '.'; } } if($todo == 'save') { if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; $guild_name = ''; } if(!check_name($name)) { $guild_errors[] = 'Invalid character name format.'; $name = ''; } if(empty($guild_errors)) { $player = $ots->createObject('Player'); $player->find($name); if(!$player->isLoaded()) { $guild_errors[] = 'Character '.$name.' doesn\'t exist.'; } } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if($guild->isLoaded()) { $guild_errors[] = 'Guild '.$guild_name.' already exist. Select other name.'; } } if(empty($guild_errors)) { $bad_char = true; foreach($array_of_player_nig as $nick_from_list) { if($nick_from_list == $player->getName()) { $bad_char = false; } } if($bad_char) { $guild_errors[] = 'Character '.$name.' isn\'t on your account or is already in guild.'; } } if(empty($guild_errors)) { if($player->getLevel() < $config['guild_need_level']) { $guild_errors[] = 'Character '.$name.' has too low level. To create guild you need character with level '.$config['guild_need_level'].'.'; } if($config['guild_need_premium'] && !$account_logged->isPremium()) { $guild_errors[] = 'Character '.$name.' is on FREE account. To create guild you need PREMIUM account.'; } } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; unset($todo); } if(isset($todo) && $todo == 'save') { $new_guild = new OTS_Guild(); $new_guild->setCreationData(time()); $new_guild->setName($guild_name); $new_guild->setOwner($player); $new_guild->save(); $new_guild->setCustomField('description', 'New guild. Leader must edit this text :)'); //$new_guild->setCustomField('creationdata', time()); $ranks = $new_guild->getGuildRanksList(); $ranks->orderBy('level', POT::ORDER_DESC); foreach($ranks as $rank) { if($rank->getLevel() == 3) { $player->setRank($rank); } } echo '
    Create guild
    Congratulations!
    You have created guild '.$guild_name.'. '.$player->getName().' is leader of this guild. Now you can invite players, change picture, description and motd of guild. Press submit to open guild manager.

    '; /*$db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "the Leader", 3)'); $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Vice-Leader", 2)'); $db->query('INSERT INTO `guild_ranks` (`id`, `guild_id`, `name`, `level`) VALUES (null, '.$new_guild->getId().', "a Member", 1)');*/ } else { echo '
    Create a ' . $config['lua']['serverName'] . ' Guild
    '; echo '
    Leader:
    (Name of leader of new guild.)
    Guild name:
    (Here write name of your new guild.)



    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'manager') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild_leader_char->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { echo '

    Welcome to guild manager!

    Here you can change names of ranks, delete and add ranks, pass leadership to other guild member and delete guild.'; echo '

    OptionDescription
    Pass LeadershipPass leadership of guild to other guild member.
    Delete GuildDelete guild, kick all members.
    Change DescriptionChange description of guild.
    Change MOTDChange MOTD of guild.
    Change guild logoUpload new guild logo.
    '; echo '
    Add new rank
    New rank name:
    '; echo '

    Change rank names and levels

    '; $number_of_ranks = count($rank_list); $number_of_rows = 0; foreach($rank_list as $rank) { echo ''; } echo '
    ID/Delete Rank     NameLevel of RANK in guild
    Leader (3)Vice (2)Member (1)
    '.$rank->getId().' // Delete RankgetLevel() == 3) { echo ' checked="checked"'; } echo ' />getLevel() == 2) { echo ' checked="checked"'; } echo ' />getLevel() == 1) { echo ' checked="checked"'; } echo ' />
      
    '; echo '

    Ranks info:

    0. Owner of guild - it\'s highest rank, only one player in guild may has this rank. Player with this rank can:
  • Invite/Cancel Invitation/Kick Player from guild
  • Change ranks of all players in guild
  • Delete guild or pass leadership to other guild member
  • Change names, levels(leader,vice,member), add and delete ranks
  • Change MOTD, logo and description of guild
    3. Leader - it\'s second rank in guild. Player with this rank can:
  • Invite/Cancel Invitation/Kick Player from guild (only with lower rank than his)
  • Change ranks of players with lower rank level ("vice leader", "member") in guild
    2. Vice Leader - it\'s third rank in guild. Player with this rank can:
  • Invite/Cancel Invitation
  • Change ranks of players with lower rank level ("member") in guild
    1. Member - it\'s lowest rank in guild. Player with this rank can:
  • Be a member of guild'; echo '
    '; } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'changelogo') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild_leader_char->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { $max_image_size_b = $config['guild_image_size_kb'] * 1024; $allowed_ext = array('image/gif', 'image/jpg', 'image/pjpeg', 'image/jpeg', 'image/bmp', 'image/png', 'image/x-png'); $ext_name = array('image/gif' => 'gif', 'image/jpg' => 'jpg', 'image/jpeg' => 'jpg', 'image/pjpeg' => 'jpg', 'image/bmp' => 'bmp', 'image/png' => 'png', 'image/x-png' => 'png'); $save_file_name = str_replace(' ', '_', strtolower($guild->getName())); $save_path = 'images/guilds/' . $save_file_name; if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $file = $_FILES['newlogo']; if(is_uploaded_file($file['tmp_name'])) { if($file['size'] > $max_image_size_b) { $upload_errors[] = 'Uploaded image is too big. Size: '.$file['size'].' bytes, Max. size: '.$max_image_size_b.' bytes.'; } $type = strtolower($file['type']); if(!in_array($type, $allowed_ext)) { $upload_errors[] = 'Your file type isn\' allowed. Allowed: gif, jpg, bmp, png. Your file type: '.$type.' If it\'s valid image contact with admin.'; } } else { $upload_errors[] = 'You didn\'t send file or file is too big. Limit: '.$config['guild_image_size_kb'].' KB.'; } if(empty($upload_errors)) { $extension = $ext_name[$type]; if(!move_uploaded_file($file['tmp_name'], $save_path.'.'.$extension)) { $upload_errors[] = 'Sorry! Can\'t save your image.'; } } if(empty($upload_errors)) { $guild_logo = $guild->getCustomField('logo_name'); $guild_logo = str_replace(array('..', '/', '\\'), array('','',''), $guild->getCustomField('logo_name')); if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { $guild_logo = "default.gif"; } if($guild_logo != "default.gif" && $guild_logo != $save_file_name.'.'.$extension) { unlink('images/guilds/' . $guild_logo); } } //show errors or save file if(!empty($upload_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($upload_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; } else { $guild->setCustomField('logo_name', $save_file_name.'.'.$extension); } } $guild_logo = $guild->getCustomField('logo_name'); if(empty($guild_logo) || !file_exists('images/guilds/' . $guild_logo)) { $guild_logo = "default.gif"; } echo '

    Change guild logo

    Here you can change logo of your guild.
    Actuall logo:

    '; echo '
    Select new logo:
    Only jpg, gif, png, bmp pictures. Max. size: '.$config['guild_image_size_kb'].' KB
    '; echo '
    '; } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'deleterank') { $guild_name = $_REQUEST['guild']; $rank_to_delete = (int) $_REQUEST['rankid']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { $rank = new OTS_GuildRank(); $rank->load($rank_to_delete); if(!$rank->isLoaded()) { $guild_errors2[] = 'Rank with ID '.$rank_to_delete.' doesn\'t exist.'; } else { if($rank->getGuild()->getId() != $guild->getId()) { $guild_errors2[] = 'Rank with ID '.$rank_to_delete.' isn\'t from your guild.'; } else { if(count($rank_list) < 2) { $guild_errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.'; } else { if(fieldExist('rank_id', 'players')) $players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;'); else $players_with_rank = $db->query('SELECT `players`.`id` as `id`, `' . GUILD_MEMBERS_TABLE . '`.`rank_id` as `rank_id` FROM `players`, `' . GUILD_MEMBERS_TABLE . '` WHERE `' . GUILD_MEMBERS_TABLE . '`.`rank_id` = ' . $rank->getId() . ' AND `players`.`id` = `' . GUILD_MEMBERS_TABLE . '`.`player_id` ORDER BY `name`;'); $players_with_rank_number = $players_with_rank->rowCount(); if($players_with_rank_number > 0) { foreach($rank_list as $checkrank) { if($checkrank->getId() != $rank->getId()) { if($checkrank->getLevel() <= $rank->getLevel()) { $new_rank = $checkrank; } } } if(empty($new_rank)) { $new_rank = new OTS_GuildRank(); $new_rank->setGuild($guild); $new_rank->setLevel($rank->getLevel()); $new_rank->setName('New Rank level '.$rank->getLevel()); $new_rank->save(); } foreach($players_with_rank as $player_in_guild) { $player_in_guild->setRank($new_rank); } } $rank->delete(); $saved = true; } } } if($saved) { echo '
    Rank Deleted
    Rank '.$rank->getName().' has been deleted. Players with this rank has now other rank.
    '; } else { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors2 as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; } //back button echo '
    '; } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'addrank') { $guild_name = $_REQUEST['guild']; $ranknew = $_REQUEST['rank_name']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { if(!check_rank_name($ranknew)) { $guild_errors[] = 'Invalid rank name format.'; } if(!$logged) { $guild_errors[] = 'You are not logged.'; } $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } if(empty($guild_errors)) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild_leader_char->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { $new_rank = new OTS_GuildRank(); $new_rank->setGuild($guild); $new_rank->setLevel(1); $new_rank->setName($ranknew); $new_rank->save(); header("Location: ?subtopic=guilds&guild=".$guild->getName()."&action=manager"); echo 'New rank added. Redirecting...'; } else { $guild_errors[] = 'You are not a leader of guild!'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; echo '
    '; } } else { if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; echo '
    '; } } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'changedescription') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } $saved = false; if($guild_leader) { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $description = htmlspecialchars(stripslashes(substr(trim($_REQUEST['description']),0,$config['guild_description_chars_limit']))); $guild->setCustomField('description', $description); $saved = true; } echo '

    Change guild description

    '; if($saved) { echo '
    CHANGES HAS BEEN SAVED!

    '; } echo 'Here you can change description of your guild.
    '; echo '

    (max. '.$config['guild_description_lines_limit'].' lines, max. '.$config['guild_description_chars_limit'].' chars)

    '; echo '
    '; } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

    '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'passleadership') { $guild_name = isset($_REQUEST['guild']) ? $_REQUEST['guild'] : NULL; $pass_to = isset($_REQUEST['player']) ? stripslashes($_REQUEST['player']) : NULL; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if(isset($_POST['todo']) && $_POST['todo'] == 'save') { if(!check_name($pass_to)) { $guild_errors2[] = 'Invalid player name format.'; } if(empty($guild_errors2)) { $to_player = new OTS_Player(); $to_player->find($pass_to); if(!$to_player->isLoaded()) { $guild_errors2[] = 'Player with name '.$pass_to.' doesn\'t exist.'; } if(empty($guild_errors2)) { $to_player_rank = $to_player->getRank(); if($to_player_rank->isLoaded()) { $to_player_guild = $to_player_rank->getGuild(); if($to_player_guild->getId() != $guild->getId()) { $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; } } else { $guild_errors2[] = 'Player with name '.$to_player->getName().' isn\'t from your guild.'; } } } } } if(empty($guild_errors) && empty($guild_errors2)) { if($logged) { $guild_leader_char = $guild->getOwner(); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild_leader_char->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } $saved = false; if($guild_leader) { if(isset($_POST['todo']) && $_POST['todo'] == 'save') { $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` ASC LIMIT 1')->fetch(); if($query) { $guild_leader_char->setRankId($query['id'], $guild->getId()); } $query = $db->query('SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild->getId() . ' ORDER BY `level` DESC LIMIT 1')->fetch(); if($query) { $to_player->setRankId($query['id'], $guild->getId()); } $guild->setOwner($to_player); $guild->save(); $saved = true; } if($saved) { echo '
    Guild Deleted
    '.$to_player->getName().' is now a Leader of '.$guild_name.'.
    '; echo '
    '; } else { echo '
    Guild Deleted
    Pass leadership to:
    '; echo '
    '; } } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(empty($guild_errors) && !empty($guild_errors2)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors2 as $guild_error2) { echo '
  • '.$guild_error2; } echo '

    '; echo '
    '; } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error . '
  • '; } if(!empty($guild_errors2)) { foreach($guild_errors2 as $guild_error2) { echo '
  • '.$guild_error2 . '
  • '; } } echo '

    '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'deleteguild') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { $saved = false; if(isset($_POST['todo']) && $_POST['todo'] == 'save') { delete_guild($guild->getId()); $saved = true; } if($saved) { echo '
    Guild Deleted
    Guild with name '.$guild_name.' has been deleted.
    '; echo '
    '; } else { echo '
    Guild Deleted
    Are you sure you want delete guild '.$guild_name.'?
    '; echo '
    '; } } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'deletebyadmin') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { if(admin()) { $saved = false; if(isset($_POST['todo']) && $_POST['todo'] == 'save') { delete_guild($guild->getId()); $saved = true; } if($saved) { echo '
    Guild Deleted
    Guild with name '.$guild_name.' has been deleted.
    '; echo '
    '; } else { echo '
    Guild Deleted
    Are you sure you want delete guild '.$guild_name.'?
    '; echo '
    '; } } else { $guild_errors[] = 'You are not an admin!'; } } else { $guild_errors[] = 'You are not logged. You can\'t delete guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'changemotd') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild->getOwner()->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } $saved = false; if($guild_leader) { if(isset($_REQUEST['todo']) && $_REQUEST['todo'] == 'save') { $motd = htmlspecialchars(stripslashes(substr(trim($_REQUEST['motd']),0,$config['guild_motd_chars_limit']))); $guild->setCustomField('motd', $motd); $saved = true; } echo '

    Change guild MOTD

    '; if($saved) { echo '
    CHANGES HAS BEEN SAVED!

    '; } echo 'Here you can change MOTD (Message of the Day, showed in game!) of your guild.
    '; echo '

    (max. '.$config['guild_motd_chars_limit'].' chars)

    '; echo '
    '; } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; echo '
    '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'saveranks') { $guild_name = $_REQUEST['guild']; if(!check_guild_name($guild_name)) { $guild_errors[] = 'Invalid guild name format.'; } if(empty($guild_errors)) { $guild = $ots->createObject('Guild'); $guild->find($guild_name); if(!$guild->isLoaded()) { $guild_errors[] = 'Guild with name '.$guild_name.' doesn\'t exist.'; } } if(empty($guild_errors)) { if($logged) { $guild_leader_char = $guild->getOwner(); $rank_list = $guild->getGuildRanksList(); $rank_list->orderBy('level', POT::ORDER_DESC); $guild_leader = false; $account_players = $account_logged->getPlayers(); foreach($account_players as $player) { if($guild_leader_char->getId() == $player->getId()) { $guild_vice = true; $guild_leader = true; $level_in_guild = 3; } } if($guild_leader) { foreach($rank_list as $rank) { $rank_id = $rank->getId(); $name = $_REQUEST[$rank_id.'_name']; $level = (int) $_REQUEST[$rank_id.'_level']; if(check_rank_name($name)) { $rank->setName($name); } else { $ranks_errors[] = 'Invalid rank name. Please use only a-Z, 0-9 and spaces. Rank ID '.$rank_id.'.'; } if($level > 0 && $level < 4) { $rank->setLevel($level); } else { $ranks_errors[] = 'Invalid rank level. Contact with admin. Rank ID '.$rank_id.'.'; } $rank->save(); } //show errors or redirect if(!empty($ranks_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($ranks_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } else { header("Location: ?subtopic=guilds&action=manager&guild=".$guild->getName()); } } else { $guild_errors[] = 'You are not a leader of guild!'; } } else { $guild_errors[] = 'You are not logged. You can\'t manage guild.'; } } if(!empty($guild_errors)) { echo '
    The Following Errors Have Occurred:
    '; foreach($guild_errors as $guild_error) { echo '
  • '.$guild_error; } echo '

  • '; } } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'cleanup_players') { if($logged) { if(admin()) { $players_list = new OTS_Players_List(); $players_list->init(); } else $players_list = $account_logged->getPlayersList(); if(count($players_list) > 0) { foreach($players_list as $player) { $player_rank = $player->getRank(); if($player_rank->isLoaded()) { if($player_rank->isLoaded()) { $rank_guild = $player_rank->getGuild(); if(!$rank_guild->isLoaded()) { $player->setRank(); $player->setGuildNick(); $changed_ranks_of[] = $player->getName(); $deleted_ranks[] = 'ID: '.$player_rank->getId().' - '.$player_rank->getName(); $player_rank->delete(); } } else { $player->setRank(); $player->setGuildNick(''); $changed_ranks_of[] = $player->getName(); } } } echo "Deleted ranks (this ranks guilds doesn't exist [bug fix]):"; if(!empty($deleted_ranks)) foreach($deleted_ranks as $rank) echo "
  • ".$rank; echo "

    Changed ranks of players (rank or guild of rank doesn't exist [bug fix]):"; if(!empty($changed_ranks_of)) foreach($changed_ranks_of as $name) echo "
  • ".$name; } else echo "0 players found."; } else echo "You are not logged in."; echo "

    BACK

    "; } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'cleanup_guilds') { if($logged) { $guilds_list = new OTS_Guilds_List(); $guilds_list->init(); if(count($guilds_list) > 0) { foreach($guilds_list as $guild) { $error = 0; $leader = $guild->getOwner(); if($leader->isLoaded()) { $leader_rank = $leader->getRank(); if($leader_rank->isLoaded()) { if($leader_rank->isLoaded()) { $leader_guild = $leader_rank->getGuild(); if($leader_guild->isLoaded()) { if($leader_guild->getId() != $guild->getId()) $error = 1; } else $error = 1; } else $error = 1; } else $error = 1; } else $error = 1; if($error == 1) { $deleted_guilds[] = $guild->getName(); $status = delete_guild($guild->getId()); } } echo "Deleted guilds (leaders of this guilds are not members of this guild [fix bugged guilds]):"; if(!empty($deleted_guilds)) foreach($deleted_guilds as $guild) echo "
  • ".$guild; } else echo "0 guilds found."; } else echo "You are not logged in."; echo "

    BACK

    "; } //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------//----------------------------------------------------------------------------- if($action == 'change_nick') { if($logged) { $player_n = stripslashes($_REQUEST['name']); $new_nick = stripslashes($_REQUEST['nick']); $player = new OTS_Player(); $player->find($player_n); $player_from_account = false; if(strlen($new_nick) <= 40) { if($player->isLoaded()) { $account_players = $account_logged->getPlayersList(); if(count($account_players)) { foreach($account_players as $acc_player) { if($acc_player->getId() == $player->getId()) $player_from_account = true; } if($player_from_account) { $player->setGuildNick($new_nick); echo 'Guild nick of player '.$player->getName().' changed to '.htmlentities($new_nick).'.'; $addtolink = '&action=show&guild='.$player->getRank()->getGuild()->getName(); } else echo 'This player is not from your account.'; } else echo 'This player is not from your account.'; } else echo 'Unknow error occured.'; } else echo 'Too long guild nick. Max. 30 chars, your: '.strlen($new_nick); } else echo 'You are not logged.'; echo '

    BACK

    '; } ?>