Guest User

guilds.php

a guest
Mar 4th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.26 KB | None | 0 0
  1. <?php
  2. if (!defined('INITIALIZED'))
  3. exit;
  4.  
  5. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  6. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  7. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  8. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  9. //show list of guilds
  10. if ($action == '')
  11. {
  12.  
  13. $main_content .= '<div class="panel panel-default"><div class="panel-heading">';
  14. if ($logged)
  15. $main_content .= '<a class="btn btn-sm btn-success pull-right" style="top:-7px;position:relative;" href="?view=guilds&action=createguild"><i class="fa fa-plus"></i> Create a new guild</a>';
  16. $main_content .= '<h3 class="panel-title">Guilds</h3></div><div class="panel-body">';
  17.  
  18. $guilds_list = new DatabaseList('Guild');
  19. $guilds_list->addOrder(new SQL_Order(new SQL_Field('name'), SQL_Order::ASC));
  20.  
  21. if (count($guilds_list) > 0) {
  22. $main_content .= '<table class="table table-striped table-condensed"><thead><tr><th>Name</th><th width="20%">Members</th><th width="20%">Average Level</th></tr></thead><tbody>';
  23. foreach($guilds_list as $guild) {
  24. $description = $guild->getDescription();
  25. $newlines = array("\r\n", "\n", "\r");
  26. $description_with_lines = str_replace($newlines, '<br />', $description, $count);
  27. if ($count < $config['site']['guild_description_lines_limit'])
  28. $description = $description_with_lines;
  29.  
  30. $info = $guild->getInfo();
  31. $main_content .= '<tr><td><a href="?view=guilds&action=show&guild='.$guild->getId().'" data-toggle="tooltip" data-placement="top" data-original-title="'.$description.'">'.htmlspecialchars($guild->getName()).'</a></td><td>'.$info['members'].'</td><td>'.$info['avg'].'</td></tr>';
  32. }
  33. $main_content .= '</tbody></table>';
  34. } else {
  35. $main_content .= '<div class="alert alert-info">No guilds found.</div>';
  36. }
  37.  
  38. $main_content .= '</div></div>';
  39. }
  40. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  41. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  42. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  43. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  44. //show guild page
  45. if ($action == 'show') {
  46. $guild_id = (int) $_REQUEST['guild'];
  47. $guild = new Guild();
  48. $guild->load($guild_id);
  49. if (!$guild->isLoaded())
  50. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  51.  
  52. if (!empty($guild_errors)) {
  53. //show errors
  54. foreach($guild_errors as $guild_error)
  55. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  56.  
  57. } else {
  58. //check is it vice or/and leader account (leader has vice + leader rights)
  59. $guild_leader_char = $guild->getOwner();
  60. $rank_list = $guild->getGuildRanksList();
  61. $guild_leader = FALSE;
  62. $guild_vice = FALSE;
  63. if ($logged) {
  64. $account_players = $account_logged->getPlayers();
  65. foreach ($account_players as $player) {
  66. $players_from_account_ids[] = $player->getId();
  67. $player_rank = $player->getRank();
  68. if (!empty($player_rank)) {
  69. foreach ($rank_list as $rank_in_guild) {
  70. if ($rank_in_guild->getId() == $player_rank->getId()) {
  71. $players_from_account_in_guild[] = $player->getName();
  72. if ($player_rank->getLevel() > 1) {
  73. $guild_vice = TRUE;
  74. $level_in_guild = $player_rank->getLevel();
  75. }
  76.  
  77. if ($guild->getOwner()->getId() == $player->getId()) {
  78. $guild_vice = TRUE;
  79. $guild_leader = TRUE;
  80. }
  81. }
  82. }
  83. }
  84. }
  85. }
  86. ?>
  87.  
  88. <div class="panel panel-default">
  89. <div class="panel-heading">
  90. <?php if ($players_from_account_in_guild > 0 && ($guild_vice || $guild_leader)) { ?>
  91. <div class="btn-group pull-right" style="top:-9px;position:relative;">
  92. <a href="#" class="btn btn-primary">Actions</a>
  93. <a href="#" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
  94. <span class="caret"></span>
  95. </a>
  96. <ul class="dropdown-menu">
  97. <?php if ($guild_vice) { ?>
  98. <li><a href="?view=guilds&action=invite&guild=<?php echo $guild_id; ?>">Invite Player</a></li>
  99. <?php } ?>
  100.  
  101. <?php if ($guild_leader) { ?>
  102. <li><a href="?view=guilds&action=guildwarstart&guild=<?php echo $guild_id; ?>">Start Guild War</a></li>
  103. <li><a href="?view=guilds&action=changedescription&guild=<?php echo $guild_id; ?>">Edit Description</a></li>
  104. <li><a href="?view=guilds&action=deleteguild&guild=<?php echo $guild_id; ?>">Disband Guild</a></li>
  105. <li><a href="?view=guilds&action=passleadership&guild=<?php echo $guild_id; ?>">Pass Leadership</a></li>
  106. <?php } ?>
  107. </ul>
  108. </div>
  109. <?php } ?>
  110. <h3 class="panel-title">Guild: <?php echo $guild->getName(); ?></h3>
  111. </div>
  112. <div class="panel-body">
  113. <p>The guild was founded on <?php echo date("j M Y, H:i:s", $guild->getCreationData()); ?>.</p>
  114. <p><?php echo htmlspecialchars($guild->getDescription()); ?></p>
  115. <ul class="nav nav-tabs">
  116. <li class="active"><a href="#general" data-toggle="tab" aria-expanded="true">General</a></li>
  117. <li><a href="#statistics" data-toggle="tab" aria-expanded="true">Statistics</a></li>
  118. <li><a href="#activewars" data-toggle="tab" aria-expanded="true">Active Wars</a></li>
  119. <li><a href="#wardeclarations" data-toggle="tab" aria-expanded="true">War Declarations</a></li>
  120. <li><a href="#warhistory" data-toggle="tab" aria-expanded="true">War History</a></li>
  121. </ul>
  122.  
  123. <div id="guildContent" class="tab-content">
  124. <div class="tab-pane fade active in" id="general">
  125. <table class="table table-striped">
  126. <thead>
  127. <tr>
  128. <th width="25%">Rank</th>
  129. <th>Name</th>
  130. <th width="45%"></th>
  131. </tr>
  132. </thead>
  133. <tbody>
  134. <?php
  135. $showed_players = 1;
  136. foreach ($rank_list as $rank) {
  137. $players_with_rank = $rank->getPlayersList();
  138. $players_with_rank_number = count($players_with_rank);
  139. if ($players_with_rank_number > 0) {
  140. $first = true;
  141. foreach($players_with_rank as $player) {
  142. if ($first) {
  143. ?> <?php $first = false; ?>
  144. <tr>
  145. <td><?php echo htmlspecialchars($rank->getName()); ?></td>
  146. <?php } else { ?>
  147. <tr>
  148. <td></td>
  149. <?php } ?>
  150.  
  151. <td>
  152. <a href="?view=characters&name=<?php echo urlencode($player->getName()); ?>"><?php echo htmlspecialchars($player->getName()); ?></a>
  153. <?php
  154. $guild_nick = $player->getGuildNick();
  155. if (!empty($guild_nick)) {
  156. echo ' ('.htmlspecialchars($guild_nick).')';
  157. }
  158. ?>
  159. </td>
  160. <td>
  161. <div class="pull-right">
  162. <span class="label label-info"><?php echo $player->getLevel(); ?> <?php echo $vocation_name[$player->getVocation()]; ?></span>
  163.  
  164. <?php
  165. if ($logged) {
  166. if (in_array($player->getId(), $players_from_account_ids)) {
  167. $rank = $player->getRank();
  168. if (!empty($rank)) {
  169. if ($rank->getLevel() < 3) {
  170. ?>
  171. <a class="btn btn-xs btn-warning" style="margin-left:5px;" href="?view=guilds&action=leave&guild=<?php echo $guild->getId(); ?>&name=<?php echo urlencode($player->getName()); ?>"><i class="fa fa-sign-out"></i> Leave</a>
  172. <?php
  173. }
  174. }
  175. ?>
  176. <a class="btn btn-xs btn-info" style="margin-left:5px;" href="?view=guilds&action=changenick&guild=<?php echo $guild->getId(); ?>&name=<?php echo urlencode($player->getName()); ?>"><i class="fa fa-pencil"></i> Edit Nick</a>
  177. <?php
  178. }
  179. }
  180. ?>
  181.  
  182.  
  183. <?php
  184.  
  185. if ($level_in_guild > $rank->getLevel() || $guild_leader) {
  186. if ($guild_leader_char->getName() != $player->getName()) {
  187. ?>
  188. <?php
  189. $rank = $player->getRank();
  190. if (!empty($rank) && $rank->getLevel() == 1) {
  191. ?>
  192.  
  193. <a class="btn btn-xs btn-success" style="margin-left:5px;" href="?view=guilds&action=promote&guild=<?php echo $guild->getId(); ?>&name=<?php echo urlencode($player->getName()); ?>"><i class="fa fa-plus"></i> Promote</a>
  194. <?php } else if (!empty($rank) && $rank->getLevel() == 2) { ?>
  195. <a class="btn btn-xs btn-danger" style="margin-left:5px;" href="?view=guilds&action=demote&guild=<?php echo $guild->getId(); ?>&name=<?php echo urlencode($player->getName()); ?>"><i class="fa fa-close"></i> Demote</a>
  196. <?php } ?>
  197. <?php
  198. if ($logged && $account_logged->getID() != $player->getAccountId()) {
  199. ?>
  200. <a class="btn btn-xs btn-danger" style="margin-left:5px;" href="?view=guilds&action=kick&guild=<?php echo $guild->getId(); ?>&name=<?php echo urlencode($player->getName()); ?>"><i class="fa fa-close"></i> Kick</a>
  201. <?php
  202. }
  203. }
  204. }
  205. ?>
  206. </div>
  207. </td>
  208. </tr>
  209. <?php
  210. }
  211. }
  212. }
  213. ?>
  214. </tbody>
  215. </table>
  216.  
  217. <?php
  218. $invited_list = $guild->listInvites();
  219. if (count($invited_list) > 0) {
  220. ?>
  221. <table class="table table-striped">
  222. <thead>
  223. <tr>
  224. <th>Invited characters</th>
  225. </tr>
  226. </thead>
  227. <tbody>
  228. <?php
  229. $show_accept_invite = 0;
  230. $showed_invited = 1;
  231. foreach($invited_list as $invited_player) {
  232. if (count($account_players) > 0) {
  233. foreach($account_players as $player_from_acc) {
  234. if ($player_from_acc->getName() == $invited_player->getName()) {
  235. $show_accept_invite++;
  236. }
  237. }
  238. }
  239. ?>
  240. <tr>
  241. <td>
  242. <a href="?view=characters&name=<?php echo urlencode($invited_player->getName()); ?>"><?php echo htmlspecialchars($invited_player->getName()); ?></a>
  243. <div class="pull-right">
  244. <?php if ($invited_player->getAccountId() == $account_logged->getID() && $show_accept_invite > 0) { ?>
  245. <a class="btn btn-xs btn-success" style="margin-right: 5px;" href="?view=guilds&action=join&guild=<?php echo $guild_id; ?>&name=<?php echo urlencode($invited_player->getName()); ?>"><i class="fa fa-plus"></i> Join</a>
  246. <?php } ?>
  247.  
  248. <?php if ($guild_vice) { ?>
  249. <a class="btn btn-xs btn-danger" href="?view=guilds&action=revokeinvitation&guild=<?php echo $guild_id; ?>&name=<?php echo urlencode($invited_player->getName()); ?>"><i class="fa fa-cross"></i> Remove Invitation</a>
  250. <?php } ?>
  251. </div>
  252. </td>
  253. </tr>
  254. <?php } ?>
  255. </tbody>
  256. </table>
  257.  
  258. <?php } ?>
  259. </div>
  260.  
  261. <?php
  262. $info = $guild->getInfo();
  263. ?>
  264. <div class="tab-pane fade" id="statistics">
  265. <table class="table table-striped">
  266. <tr>
  267. <td width="20%">Members Online</td>
  268. <td><?php echo $info['online']; ?> out of <?php echo $info['members']; ?></td>
  269. </tr>
  270. <tr>
  271. <td width="40%">Highest Level</td>
  272. <td><a href="?view=characters&name=<?php echo urlencode($info['highest']['name']); ?>"><?php echo $info['highest']['name']; ?></a> (<?php echo $info['highest']['level']; ?>)</td>
  273. </tr>
  274. <tr>
  275. <td width="40%">Average Level</td>
  276. <td><?php echo $info['avg']; ?></td>
  277. </tr>
  278. <tr>
  279. <td width="40%">Lowest Level</td>
  280. <td><a href="?view=characters&name=<?php echo urlencode($info['lowest']['name']); ?>"><?php echo $info['lowest']['name']; ?></a> (<?php echo $info['lowest']['level']; ?>)</td>
  281. </tr>
  282. <tr>
  283. <td width="40%">Total Level</td>
  284. <td><?php echo $info['total']; ?></td>
  285. </tr>
  286. </table>
  287. </div>
  288.  
  289. <?php
  290. $activeData = '';
  291. $declaredData = '';
  292. $historyData = '';
  293. foreach ($guild->getWarIds() as $warId) {
  294. $war = new GuildWar($warId);
  295. if ($war->isLoaded()) {
  296.  
  297. $guildName = getValidGuildName($war->getGuild1ID(), $war->getGuild1Name());
  298. $enemyName = getValidGuildName($war->getGuild2ID(), $war->getGuild2Name());
  299. switch($war->getStatus()) {
  300. case 0: {
  301. $declaredData .= '<tr><td>'.$guildName.' has declared war against '.$enemyName;
  302. if ($guild_leader) {
  303. $declaredData .= '<div class="pull-right">';
  304.  
  305. if ($guild_id == $war->getGuild1ID()) {
  306. $declaredData .= '<a class="btn btn-mini btn-warning" href="?view=guilds&action=guildwarcancel&guild='.$guild_id.'&warId='.$war->getID().'"><i class="fa fa-close"></i> Cancel</a>';
  307. }
  308.  
  309. if ($guild_id == $war->getGuild2ID()) {
  310. $declaredData .= '<a class="btn btn-mini btn-success" style="margin-right: 5px;" href="?view=guilds&action=guildwaraccept&guild='.$guild_id.'&warId='.$war->getID().'"><i class="fa fa-plus"></i> Accept</a><a class="btn btn-mini btn-danger" href="?view=guilds&action=guildwarreject&guild='.$guild_id.'&warId='.$war->getID().'"><i class="fa fa-close"></i> Reject</a>';
  311. }
  312.  
  313. $declaredData .= '</div>';
  314. }
  315. $declaredData .= '</td><td><a class="btn btn-mini btn-info" href="?view=wars&id='.$war->getId().'">View</a></td></tr>';
  316. break;
  317. }
  318.  
  319. case 1: {
  320. $activeData .= '<tr><td>'.$guildName.' are at war against '.$enemyName.'.</td><td>'.date("j M Y, H:i:s", $war->getStarted()).'</td><td><strong>'.$war->getGuild1Kills().'</strong> - <strong>'.$war->getGuild2Kills().'</strong></td><td><a class="btn btn-mini btn-info" href="?view=wars&id='.$war->getId().'">View</a></td></tr>';
  321. break;
  322. }
  323.  
  324. case 4: {
  325. $historyData .= '<tr><td>'.$guildName.' were at war against '.$enemyName.'.</td><td>'.date("j M Y, H:i:s", $war->getEnded()).'</td><td><strong>'.$war->getGuild1Kills().'</strong> - <strong>'.$war->getGuild2Kills().'</strong></td><td><a class="btn btn-mini btn-info" href="?view=wars&id='.$war->getId().'">View</a></td></tr>';
  326. break;
  327. }
  328.  
  329. default: {
  330. break;
  331. }
  332. }
  333. }
  334. }
  335. ?>
  336.  
  337. <?php $wars = $guild->getWars(); ?>
  338. <div class="tab-pane fade" id="activewars">
  339. <table class="table table-striped">
  340. <thead>
  341. <tr>
  342. <th>Description</th>
  343. <th style="width:25%">Started</th>
  344. <th style="width:12%">Stats</th>
  345. <th style="width:10%">Details</th>
  346. </tr>
  347. </thead>
  348. <tbody>
  349. <?php
  350. if (!$activeData) {
  351. echo '<tr><td colspan="4">' . $guild->getName() . ' are not participating in any war at the moment.</td></tr>';
  352. } else {
  353. echo $activeData;
  354. }
  355. ?>
  356. </tbody>
  357. </table>
  358. </div>
  359.  
  360. <div class="tab-pane fade" id="wardeclarations">
  361. <table class="table table-striped">
  362. <thead>
  363. <tr>
  364. <th>Description</th>
  365. <th style="width:10%">Details</th>
  366. </tr>
  367. </thead>
  368. <tbody>
  369. <?php
  370. if (!$declaredData) {
  371. echo '<tr><td colspan="2">There are no pending war declarations related to ' . $guild->getName() . '.</td></tr>';
  372. } else {
  373. echo $declaredData;
  374. }
  375. ?>
  376. </tbody>
  377. </table>
  378. </div>
  379.  
  380. <div class="tab-pane fade" id="warhistory">
  381. <table class="table table-striped">
  382. <thead>
  383. <tr>
  384. <th>Description</th>
  385. <th style="width:25%">Ended</th>
  386. <th style="width:12%">Stats</th>
  387. <th style="width:10%">Details</th>
  388. </tr>
  389. </thead>
  390. <tbody>
  391. <?php
  392. if (!$historyData) {
  393. echo '<tr><td colspan="4">' . $guild->getName() . ' does not have any war history.</td></tr>';
  394. } else {
  395. echo $historyData;
  396. }
  397. ?>
  398. </tbody>
  399. </table>
  400. </div>
  401. </div>
  402. </div>
  403. </div>
  404. <?php
  405. }
  406. }
  407.  
  408. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  409. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  410. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  411. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  412. //show guild page
  413. if ($action == 'invite')
  414. {
  415. //set rights in guild
  416. $guild_id = (int) $_REQUEST['guild'];
  417. $name = $_REQUEST['name'];
  418. if (!$logged)
  419. $guild_errors[] = 'You are not logged in. You can\'t invite players.';
  420. if (empty($guild_errors))
  421. {
  422. $guild = new Guild();
  423. $guild->load($guild_id);
  424. if (!$guild->isLoaded())
  425. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  426. }
  427. if (empty($guild_errors))
  428. {
  429. $rank_list = $guild->getGuildRanksList();
  430. $guild_leader = FALSE;
  431. $guild_vice = FALSE;
  432. $account_players = $account_logged->getPlayers();
  433. foreach($account_players as $player)
  434. {
  435. $player_rank = $player->getRank();
  436. if (!empty($player_rank))
  437. foreach($rank_list as $rank_in_guild)
  438. if ($rank_in_guild->getId() == $player_rank->getId())
  439. {
  440. $players_from_account_in_guild[] = $player->getName();
  441. if ($player_rank->getLevel() > 1)
  442. {
  443. $guild_vice = TRUE;
  444. $level_in_guild = $player_rank->getLevel();
  445. }
  446. if ($guild->getOwner()->getId() == $player->getId())
  447. {
  448. $guild_vice = TRUE;
  449. $guild_leader = TRUE;
  450. }
  451. }
  452. }
  453. }
  454. if (!$guild_vice)
  455. $guild_errors[] = 'You are not a leader or vice leader of guild ID <b>'.$guild_id.'</b>.';
  456. if ($_REQUEST['todo'] == 'save')
  457. {
  458. if (!check_name($name))
  459. $guild_errors[] = 'Invalid name format.';
  460. if (empty($guild_errors))
  461. {
  462. $player = new Player();
  463. $player->find($name);
  464. if (!$player->isLoaded())
  465. $guild_errors[] = 'Player with name <b>'.htmlspecialchars($name).'</b> doesn\'t exist.';
  466. else
  467. {
  468. $rank_of_player = $player->getRank();
  469. if (!empty($rank_of_player))
  470. $guild_errors[] = 'Player with name <b>'.htmlspecialchars($name).'</b> is already in guild. He must leave guild before you can invite him.';
  471. }
  472. }
  473. if (empty($guild_errors))
  474. {
  475. $invited_list = $guild->listInvites();
  476. if (count($invited_list) > 0)
  477. foreach($invited_list as $invited)
  478. if ($invited->getName() == $player->getName())
  479. $guild_errors[] = '<b>'.htmlspecialchars($player->getName()).'</b> is already invited to your guild.';
  480. }
  481. }
  482.  
  483. if (!empty($guild_errors)) {
  484. foreach($guild_errors as $guild_error)
  485. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  486. }
  487.  
  488. if (empty($guild_errors) && $_REQUEST['todo'] == 'save') {
  489. $guild->invite($player);
  490. $main_content .= '
  491. <div class="panel panel-default">
  492. <div class="panel-heading">
  493. <h3 class="panel-title">Invite Player</h3>
  494. </div>
  495. <div class="panel-body">
  496. <p>Player with name <b>'.htmlspecialchars($player->getName()).'</b> has been invited to your guild.</p>
  497. <div class="text-center">
  498. <a href="?view=guilds&action=show&guild='.$guild_id.'" class="btn btn-primary">Back</a>
  499. </div>
  500. </div>
  501. </div>';
  502. } else {
  503. $main_content .= '
  504. <div class="panel panel-default">
  505. <div class="panel-heading">
  506. <h3 class="panel-title">Invite Player</h3>
  507. </div>
  508. <div class="panel-body">
  509. <form class="form-horizontal" role="form" action="?view=guilds&action=invite&guild='.$guild_id.'&todo=save" method="post">
  510. <fieldset>
  511.  
  512. <div class="form-group">
  513. <label for="name" class="col-lg-2 control-label">Name</label>
  514. <div class="col-lg-10">
  515. <input type="text" class="form-control" id="name" name="name" placeholder="" maxlength="30" required>
  516. </div>
  517. </div>
  518.  
  519. <div class="text-center">
  520. <button type="submit" class="btn btn-primary">Submit</button>
  521. <a href="?view=guilds&action=show&guild='.$guild_id.'" class="btn btn-default">Back</a>
  522. </div>
  523. </fieldset>
  524. </form>
  525. </div>
  526. </div>';
  527. }
  528. }
  529. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  530. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  531. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  532. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  533. //create guild
  534. if ($action == 'createguild')
  535. {
  536. $new_guild_name = trim($_REQUEST['guild']);
  537. $name = $_REQUEST['name'];
  538. $todo = $_REQUEST['todo'];
  539. if (!$logged)
  540. $guild_errors[] = 'You are not logged in. You can\'t create guild.';
  541. if (empty($guild_errors))
  542. {
  543. $account_players = $account_logged->getPlayers();
  544. foreach($account_players as $player)
  545. {
  546. $player_rank = $player->getRank();
  547. if (empty($player_rank))
  548. if ($player->getLevel() >= $config['site']['guild_need_level'])
  549. if (!$config['site']['guild_need_pacc'] || $account_logged->isPremium())
  550. $array_of_player_nig[] = $player->getName();
  551. }
  552. }
  553.  
  554. if (count($array_of_player_nig) == 0)
  555. $guild_errors[] = 'On your account all characters are in guilds or have too low level to create new guild.';
  556. if ($todo == 'save')
  557. {
  558. if (!check_guild_name($new_guild_name))
  559. {
  560. $guild_errors[] = 'Invalid guild name format.';
  561. }
  562. if (!check_name($name))
  563. {
  564. $guild_errors[] = 'Invalid character name format.';
  565. }
  566. if (empty($guild_errors))
  567. {
  568. $player = new Player();
  569. $player->find($name);
  570. if (!$player->isLoaded())
  571. $guild_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> doesn\'t exist.';
  572. }
  573. if (empty($guild_errors))
  574. {
  575. $guild = new Guild();
  576. $guild->find($new_guild_name);
  577. if ($guild->isLoaded())
  578. $guild_errors[] = 'Guild <b>'.htmlspecialchars($new_guild_name).'</b> already exist. Select another name.';
  579. }
  580. if (empty($guild_errors))
  581. {
  582. $bad_char = TRUE;
  583. foreach($array_of_player_nig as $nick_from_list)
  584. if ($nick_from_list == $player->getName())
  585. $bad_char = FALSE;
  586. if ($bad_char)
  587. $guild_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> isn\'t on your account or is already in guild.';
  588. }
  589. if (empty($guild_errors))
  590. {
  591. if ($player->getLevel() < $config['site']['guild_need_level'])
  592. $guild_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> has too low level. To create guild you need character with level <b>'.$config['site']['guild_need_level'].'</b>.';
  593. if ($config['site']['guild_need_pacc'] && !$account_logged->isPremium())
  594. $guild_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> is on FREE account. To create guild you need PREMIUM account.';
  595. }
  596. }
  597. if (!empty($guild_errors))
  598. {
  599. foreach($guild_errors as $guild_error)
  600. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  601. unset($todo);
  602. }
  603.  
  604. if ($todo == 'save')
  605. {
  606. $new_guild = new Guild();
  607. $new_guild->setCreationData(time());
  608. $new_guild->setName($new_guild_name);
  609. $new_guild->setOwner($player);
  610. $new_guild->setDescription('New guild. Leader must edit this text :)');
  611. $new_guild->setGuildLogo('image/gif', Website::getFileContents('./images/default_guild_logo.gif'));
  612.  
  613. $new_guild->save();
  614. $ranks = $new_guild->getGuildRanksList(true);
  615. foreach($ranks as $rank)
  616. if ($rank->getLevel() == 3)
  617. {
  618. $player->setRank($rank);
  619. $player->save();
  620. }
  621.  
  622. $main_content .= '<div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">Create Guild</h3></div><div class="panel-body"><p>Congratulations!</p><p>You have created guild <b>'.htmlspecialchars($new_guild_name).'</b>. <b>'.htmlspecialchars($player->getName()).'</b> is leader of this guild. Now you can invite players, change picture, description and motd of guild. Press submit to open guild manager.</p><div class="text-center"><a class="btn btn-sm btn-primary" href="?view=guilds&action=show&guild='.$new_guild->getId().'">View</a></div></div></div>';
  623. }
  624. else
  625. {
  626.  
  627. $main_content .= '<div class="panel panel-default"><div class="panel-heading"><h3 class="panel-title">Create Guild</h3></div><div class="panel-body">
  628. <form class="form-horizontal" role="form" action="?view=guilds&action=createguild&todo=save" method="post">
  629. <fieldset>
  630.  
  631. <div class="form-group">
  632. <label for="select" class="col-lg-2 control-label">Leader</label>
  633. <div class="col-lg-10">
  634. <select class="form-control" name="name">';
  635. if (count($array_of_player_nig) > 0) {
  636. sort($array_of_player_nig);
  637. foreach($array_of_player_nig as $nick)
  638. $main_content .= '<option value="'.htmlspecialchars($nick).'">'.htmlspecialchars($nick).'</option>';
  639. }
  640.  
  641. $main_content .= '</select>
  642. </div>
  643. </div>
  644.  
  645. <div class="form-group">
  646. <label for="guild" class="col-lg-2 control-label">Guild Name</label>
  647. <div class="col-lg-10">
  648. <input type="text" class="form-control" id="guild" name="guild" placeholder="" maxlength="50" required>
  649. </div>
  650. </div>
  651.  
  652. <div class="text-center">
  653. <button type="submit" class="btn btn-primary">Submit</button>
  654. <a class="btn btn-default" href="?view=guilds">Back</a>
  655. </div>
  656.  
  657. </fieldset>
  658. </form>';
  659.  
  660. $main_content .= '</div></div>';
  661. }
  662. }
  663. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  664. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  665. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  666. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  667. if ($action == 'changedescription')
  668. {
  669. $guild_id = (int) $_REQUEST['guild'];
  670. if (empty($guild_errors)) {
  671. $guild = new Guild();
  672. $guild->load($guild_id);
  673. if (!$guild->isLoaded())
  674. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  675. }
  676.  
  677. if (empty($guild_errors)) {
  678. if (!$logged) {
  679. $guild_errors[] = 'You are not logged in. You cannot change the guild description for this guild.';
  680. }
  681.  
  682. $guild_leader_char = $guild->getOwner();
  683. $rank_list = $guild->getGuildRanksList();
  684. $guild_leader = FALSE;
  685. $account_players = $account_logged->getPlayers();
  686. foreach($account_players as $player) {
  687. if ($guild->getOwner()->getId() == $player->getId()) {
  688. $guild_vice = TRUE;
  689. $guild_leader = TRUE;
  690. $level_in_guild = 3;
  691. }
  692. }
  693.  
  694. if (!$guild_leader) {
  695. $guild_errors[] = 'You are not the leader of this guild!';
  696. }
  697. }
  698.  
  699. if (!empty($guild_errors)) {
  700. foreach($guild_errors as $guild_error) {
  701. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  702. }
  703. }
  704.  
  705. if (empty($guild_errors) && $_REQUEST['todo'] == 'save') {
  706. $description = htmlspecialchars(substr(trim($_REQUEST['description']),0,$config['site']['guild_description_chars_limit']));
  707. $guild->set('description', $description);
  708. $guild->save();
  709.  
  710. $main_content .= '
  711. <div class="panel panel-default">
  712. <div class="panel-heading"><h3 class="panel-title">Guild Description</h3></div>
  713. <div class="panel-body">
  714. <p>The guild description has been changed.</p><br>
  715. <div class="text-center">
  716. <a class="btn btn-primary" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  717. </div>
  718. </div>
  719. </div>
  720. ';
  721. } else {
  722. $main_content .= '
  723. <div class="panel panel-default">
  724. <div class="panel-heading"><h3 class="panel-title">Edit Guild Description for <b>'.htmlspecialchars($guild->getName()).'</b></h3></div>
  725. <div class="panel-body">
  726. <form class="form-horizontal" role="form" action="?view=guilds&action=changedescription&guild='.$guild_id.'" method="post">
  727. <input type="hidden" name="todo" value="save" />
  728. <fieldset>
  729. <div class="form-group">
  730. <label for="desc" class="col-lg-2 control-label">Description</label>
  731. <div class="col-lg-10">
  732. <textarea class="form-control" rows="'.($config['site']['guild_description_lines_limit'] - 1).'" id="description" name="description">'.$guild->getDescription().'</textarea>
  733. </div>
  734. </div>
  735.  
  736. <div class="text-center">
  737. <button type="submit" class="btn btn-primary" value="Save description">Save</button>
  738. <a class="btn btn-default" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  739. </div>
  740. </fieldset>
  741. </form>
  742. </div>
  743. </div>
  744. ';
  745. }
  746. }
  747.  
  748. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  749. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  750. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  751. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  752. if ($action == 'passleadership')
  753. {
  754. $guild_id = (int) $_REQUEST['guild'];
  755. $pass_to = trim($_REQUEST['player']);
  756. if (empty($guild_errors)) {
  757. $guild = new Guild();
  758. $guild->load($guild_id);
  759.  
  760. if (!$guild->isLoaded())
  761. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  762. }
  763.  
  764. if (empty($guild_errors)) {
  765. if ($_POST['todo'] == 'save') {
  766.  
  767. if (!check_name($pass_to))
  768. $guild_errors2[] = 'Invalid player name format.';
  769.  
  770. if (empty($guild_errors2)) {
  771. $to_player = new Player();
  772. $to_player->find($pass_to);
  773.  
  774. if (!$to_player->isLoaded())
  775. $guild_errors2[] = 'Player with name <b>'.htmlspecialchars($pass_to).'</b> doesn\'t exist.';
  776.  
  777. if (empty($guild_errors2)) {
  778. $to_player_rank = $to_player->getRank();
  779. if (!empty($to_player_rank)) {
  780. $to_player_guild = $to_player_rank->getGuild();
  781. if ($to_player_guild->getId() != $guild->getId())
  782. $guild_errors2[] = 'Player with name <b>'.htmlspecialchars($to_player->getName()).'</b> isn\'t from your guild.';
  783. } else {
  784. $guild_errors2[] = 'Player with name <b>'.htmlspecialchars($to_player->getName()).'</b> isn\'t from your guild.';
  785. }
  786. }
  787. }
  788. }
  789. }
  790.  
  791. if (empty($guild_errors) && empty($guild_errors2)) {
  792. if (!$logged) {
  793. $guild_errors[] = 'You are not logged in. You cannot pass the leadership to another player.';
  794. }
  795.  
  796. $guild_leader_char = $guild->getOwner();
  797. $guild_leader = FALSE;
  798. $account_players = $account_logged->getPlayers();
  799. foreach ($account_players as $player) {
  800. if ($guild_leader_char->getId() == $player->getId()) {
  801. $guild_vice = TRUE;
  802. $guild_leader = TRUE;
  803. $level_in_guild = 3;
  804. }
  805. }
  806.  
  807. if (!$guild_leader) {
  808. $guild_errors[] = 'You are not the leader of this guild!';
  809. }
  810. }
  811.  
  812. if (!empty($guild_errors)) {
  813. foreach($guild_errors as $guild_error) {
  814. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  815. }
  816. }
  817.  
  818. if (!empty($guild_errors2)) {
  819. foreach($guild_errors2 as $guild_error2) {
  820. $main_content .= '<div class="alert alert-danger">'.$guild_error2.'</div>';
  821. }
  822. }
  823.  
  824. if (empty($guild_errors) && empty($guild_errors2) && $_POST['todo'] == 'save') {
  825. $guild->setOwner($to_player);
  826. $guild->save();
  827. $main_content .= '
  828. <div class="panel panel-default">
  829. <div class="panel-heading"><h3 class="panel-title">Pass Leadership</h3></div>
  830. <div class="panel-body">
  831. <p>The leadership has been passed onto <b>'.htmlspecialchars($to_player->getName()).'</b>. <b>'.htmlspecialchars($to_player->getName()).'</b> is now the leader of <b>'.htmlspecialchars($guild->getName()).'</b>.</p><br>
  832. <div class="text-center">
  833. <a class="btn btn-primary" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  834. </div>
  835. </div>
  836. </div>
  837. ';
  838. } else {
  839. $main_content .= '
  840. <div class="panel panel-default">
  841. <div class="panel-heading"><h3 class="panel-title">Pass Leadership</h3></div>
  842. <div class="panel-body">
  843. <form class="form-horizontal" role="form" action="?view=guilds&guild='.$guild_id.'&action=passleadership" method="post">
  844. <input type="hidden" name="todo" value="save">
  845. <fieldset>
  846. <div class="form-group">
  847. <label for="player" class="col-lg-2 control-label">Name</label>
  848. <div class="col-lg-10">
  849. <input type="text" class="form-control" id="player" name="player" placeholder="2 to 30 characters" maxlength="30" required>
  850. </div>
  851. </div>
  852. <div class="text-center">
  853. <button type="submit" class="btn btn-primary" value="Save">Submit</button>
  854. <a class="btn btn-default" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  855. </div>
  856. </fieldset>
  857. </form>
  858. </div>
  859. </div>
  860. ';
  861. }
  862.  
  863. }
  864. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  865. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  866. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  867. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  868. if ($action == 'deleteguild')
  869. {
  870. $guild_id = (int) $_REQUEST['guild'];
  871. if (empty($guild_errors)) {
  872. $guild = new Guild();
  873. $guild->load($guild_id);
  874. if (!$guild->isLoaded())
  875. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  876. }
  877.  
  878. if (!$logged) {
  879. $guild_errors[] = 'You are not logged. You cannot disband a guild.';
  880. }
  881.  
  882. $guild_leader_char = $guild->getOwner();
  883. $rank_list = $guild->getGuildRanksList();
  884. $guild_leader = FALSE;
  885. $account_players = $account_logged->getPlayers();
  886. foreach($account_players as $player) {
  887. if ($guild->getOwner()->getId() == $player->getId()) {
  888. $guild_vice = TRUE;
  889. $guild_leader = TRUE;
  890. $level_in_guild = 3;
  891. }
  892. }
  893.  
  894. if (!$guild_leader) {
  895. $guild_errors[] = 'You are not a leader of guild!';
  896. }
  897.  
  898. if (!empty($guild_errors)) {
  899. foreach($guild_errors as $guild_error)
  900. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  901. }
  902.  
  903. if (empty($guild_errors) && $_REQUEST['todo'] == 'save') {
  904. $guild->delete();
  905. $main_content .= '
  906. <div class="panel panel-default">
  907. <div class="panel-heading"><h3 class="panel-title">Guild Disbanded</h3></div>
  908. <div class="panel-body">
  909. <p>Your guild has been disbanded.</p><br>
  910. <div class="text-center">
  911. <a class="btn btn-primary" href="?view=guilds">Back</a>
  912. </div>
  913. </div>
  914. </div>
  915. ';
  916. } else {
  917. $main_content .= '
  918. <div class="panel panel-default">
  919. <div class="panel-heading"><h3 class="panel-title">Disband Guild</h3></div>
  920. <div class="panel-body">
  921. <form class="form-horizontal" role="form" action="?view=guilds&guild='.$guild_id.'&action=deleteguild" method="post">
  922. <input type="hidden" name="todo" value="save">
  923. <fieldset>
  924. <p>Are you sure you want to disband the guild?</p><br>
  925. <div class="text-center">
  926. <button type="submit" class="btn btn-danger" value="Yes, delete">Delete</button>
  927. <a class="btn btn-default" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  928. </div>
  929. </fieldset>
  930. </form>
  931. </div>
  932. </div>
  933. ';
  934. }
  935. }
  936.  
  937. if ($action == 'changenick') {
  938. if (!$logged) {
  939. $errors[] = 'You have to be logged in, in order to change your guild nickname.';
  940. }
  941.  
  942. $guild_id = (int) $_REQUEST['guild'];
  943. $player_n = $_REQUEST['name'];
  944. $new_nick = $_REQUEST['nick'];
  945. $player = new Player();
  946. $player->find($player_n);
  947. $player_from_account = FALSE;
  948. if (strlen($new_nick) > 15) {
  949. $errors[] = 'The nickname is too long!';
  950. }
  951.  
  952. if (!$player->isLoaded()) {
  953. $errors[] = 'Unknown error occured.';
  954. }
  955.  
  956. $account_players = $account_logged->getPlayersList();
  957. if (count($account_players) > 0) {
  958. foreach($account_players as $acc_player) {
  959. if ($acc_player->getId() == $player->getId()) {
  960. $player_from_account = TRUE;
  961. }
  962. }
  963. }
  964. if (!$player_from_account) {
  965. $errors[] = 'This player is not from your account.';
  966. }
  967.  
  968. if (!empty($errors)) {
  969. foreach($errors as $error) {
  970. $main_content .= '<div class="alert alert-danger">'.$error.'</div>';
  971. }
  972. }
  973.  
  974. if (empty($errors) && $_REQUEST['todo'] == 'save') {
  975. $player->setGuildNick($new_nick);
  976. $player->save();
  977. $main_content .= '
  978. <div class="panel panel-default">
  979. <div class="panel-heading"><h3 class="panel-title">Nickname for '.htmlspecialchars($player->getName()).' changed</h3></div>
  980. <div class="panel-body">
  981. <p>You have changed your guild nickname to <b>'.htmlspecialchars($new_nick).'</b>.</p><br>
  982. <div class="text-center">
  983. <a class="btn btn-primary" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  984. </div>
  985. </div>
  986. </div>
  987. ';
  988.  
  989. } else {
  990. $main_content .= '
  991. <div class="panel panel-default">
  992. <div class="panel-heading"><h3 class="panel-title">Edit nickname for <b>'.htmlspecialchars($player->getName()).'</b></h3></div>
  993. <div class="panel-body">
  994. <form class="form-horizontal" role="form" action="?view=guilds&action=changenick&guild='.$guild_id.'&name='.urlencode($player->getName()).'" method="post">
  995. <input type="hidden" name="todo" value="save" />
  996. <fieldset>
  997. <div class="form-group">
  998. <label for="nick" class="col-lg-2 control-label">Nick</label>
  999. <div class="col-lg-10">
  1000. <input type="text" class="form-control" id="nick" name="nick" placeholder="'.htmlspecialchars($player->getGuildNick()).'" maxlength="15" required>
  1001. </div>
  1002. </div>
  1003. <div class="text-center">
  1004. <button type="submit" class="btn btn-primary" value="Save nick">Save</button>
  1005. <a class="btn btn-default" href="?view=guilds&action=show&guild='.$guild_id.'">Back</a>
  1006. </div>
  1007. </fieldset>
  1008. </form>
  1009. </div>
  1010. </div>
  1011. ';
  1012.  
  1013. }
  1014. }
  1015.  
  1016. if ($action == 'promote') {
  1017. $name = trim($_GET['name']);
  1018. $gid = (int) $_GET['guild'];
  1019. if (empty($name) || empty($gid) || !$logged) {
  1020. header("Location: ?view=guilds");
  1021. return;
  1022. }
  1023.  
  1024. $guild = getGuild($gid);
  1025. if (!$guild) {
  1026. header("Location: ?view=guilds");
  1027. return;
  1028. }
  1029.  
  1030. $accIsInGuild = $account_logged->isInGuild($gid);
  1031. if (!$accIsInGuild) {
  1032. header("Location: ?view=guilds");
  1033. return;
  1034. }
  1035.  
  1036. $accGuildLevel = $account_logged->getGuildLevel($gid);
  1037. if ($accGuildLevel < 3) {
  1038. header("Location: ?view=guilds");
  1039. return;
  1040. }
  1041.  
  1042. $player = getPlayer($name);
  1043. if (!$player || !$player->isInGuild($gid)) {
  1044. header("Location: ?view=guilds");
  1045. return;
  1046. }
  1047.  
  1048. $playerRank = $player->getRank();
  1049. if (empty($playerRank) || $playerRank->getLevel() != 1) {
  1050. header('Location: ?view=guilds');
  1051. return;
  1052. }
  1053.  
  1054. $ranks = $guild->getGuildRanksList(true);
  1055. foreach ($ranks as $rank) {
  1056. if ($rank->getLevel() == 2) {
  1057. $player->setRank($rank);
  1058. $player->save();
  1059. break;
  1060. }
  1061. }
  1062.  
  1063. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1064. }
  1065.  
  1066. if ($action == 'demote') {
  1067. $name = trim($_GET['name']);
  1068. $gid = (int) $_GET['guild'];
  1069. if (empty($name) || empty($gid) || !$logged) {
  1070. header("Location: ?view=guilds");
  1071. return;
  1072. }
  1073.  
  1074. $guild = getGuild($gid);
  1075. if (!$guild) {
  1076. header("Location: ?view=guilds");
  1077. return;
  1078. }
  1079.  
  1080. $accIsInGuild = $account_logged->isInGuild($gid);
  1081. if (!$accIsInGuild) {
  1082. header("Location: ?view=guilds");
  1083. return;
  1084. }
  1085.  
  1086. $accGuildLevel = $account_logged->getGuildLevel($gid);
  1087. if ($accGuildLevel < 3) {
  1088. header("Location: ?view=guilds");
  1089. return;
  1090. }
  1091.  
  1092. $player = getPlayer($name);
  1093. if (!$player || !$player->isInGuild($gid)) {
  1094. header("Location: ?view=guilds");
  1095. return;
  1096. }
  1097.  
  1098. $playerRank = $player->getRank();
  1099. if (empty($playerRank) || $playerRank->getLevel() != 2) {
  1100. header('Location: ?view=guilds');
  1101. return;
  1102. }
  1103.  
  1104. $ranks = $guild->getGuildRanksList(true);
  1105. foreach ($ranks as $rank) {
  1106. if ($rank->getLevel() == 1) {
  1107. $player->setRank($rank);
  1108. $player->save();
  1109. break;
  1110. }
  1111. }
  1112.  
  1113. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1114. }
  1115.  
  1116. if ($action == 'join') {
  1117. $name = trim($_GET['name']);
  1118. $gid = (int) $_GET['guild'];
  1119. if (empty($name) || empty($gid) || !$logged) {
  1120. header("Location: ?view=guilds");
  1121. return;
  1122. }
  1123.  
  1124. $guild = getGuild($gid);
  1125. if (!$guild || !$guild->hasInvited($name)) {
  1126. header("Location: ?view=guilds");
  1127. return;
  1128. }
  1129.  
  1130. $player = getPlayer($name);
  1131. if (!$player || $player->hasGuild()) {
  1132. header("Location: ?view=guilds");
  1133. return;
  1134. }
  1135.  
  1136. $account = $player->getAccount();
  1137. if ($account->getID() != $account_logged->getID()) {
  1138. header("Location: ?view=guilds");
  1139. return;
  1140. }
  1141.  
  1142. $guild->acceptInvite($player);
  1143. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1144. }
  1145.  
  1146. if ($action == 'leave') {
  1147. $name = trim($_GET['name']);
  1148. $gid = (int) $_GET['guild'];
  1149. if (empty($name) || empty($gid) || !$logged) {
  1150. header("Location: ?view=guilds");
  1151. return;
  1152. }
  1153.  
  1154. $player = getPlayer($name);
  1155. if (!$player || !$player->isInGuild($gid)) {
  1156. header("Location: ?view=guilds");
  1157. return;
  1158. }
  1159.  
  1160. $account = $player->getAccount();
  1161. if ($account->getID() != $account_logged->getID()) {
  1162. header("Location: ?view=guilds");
  1163. return;
  1164. }
  1165.  
  1166. $player->setRank();
  1167. $player->save();
  1168. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1169. }
  1170.  
  1171. if ($action == 'kick') {
  1172. $name = trim($_GET['name']);
  1173. $gid = (int) $_GET['guild'];
  1174. if (empty($name) || empty($gid) || !$logged) {
  1175. header("Location: ?view=guilds");
  1176. return;
  1177. }
  1178.  
  1179. $accIsInGuild = $account_logged->isInGuild($gid);
  1180. if (!$accIsInGuild) {
  1181. header("Location: ?view=guilds");
  1182. return;
  1183. }
  1184.  
  1185. $accGuildLevel = $account_logged->getGuildLevel($gid);
  1186. if ($accGuildLevel < 2) {
  1187. header("Location: ?view=guilds");
  1188. return;
  1189. }
  1190.  
  1191. $player = getPlayer($name);
  1192. if (!$player || !$player->isInGuild($gid)) {
  1193. header("Location: ?view=guilds");
  1194. return;
  1195. }
  1196.  
  1197. $player->setRank();
  1198. $player->save();
  1199. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1200. }
  1201.  
  1202. if ($action == 'revokeinvitation') {
  1203. $name = trim($_GET['name']);
  1204. $gid = (int) $_GET['guild'];
  1205. if (empty($name) || empty($gid) || !$logged) {
  1206. header("Location: ?view=guilds");
  1207. return;
  1208. }
  1209.  
  1210. $guild = getGuild($gid);
  1211. if (!$guild || !$guild->hasInvited($name)) {
  1212. header("Location: ?view=guilds");
  1213. return;
  1214. }
  1215.  
  1216. $accIsInGuild = $account_logged->isInGuild($gid);
  1217. if (!$accIsInGuild) {
  1218. header("Location: ?view=guilds");
  1219. return;
  1220. }
  1221.  
  1222. $accGuildLevel = $account_logged->getGuildLevel($gid);
  1223. if ($accGuildLevel < 2) {
  1224. header("Location: ?view=guilds");
  1225. return;
  1226. }
  1227.  
  1228. $player = getPlayer($name);
  1229. if (!$player || $player->isInGuild($gid)) {
  1230. header("Location: ?view=guilds");
  1231. return;
  1232. }
  1233.  
  1234. $guild->deleteInvite($player);
  1235. header('Location: ?view=guilds&action=show&guild='.urlencode($gid));
  1236. }
  1237.  
  1238. if ($action == 'guildwaraccept')
  1239. {
  1240. $guild_id = (int) $_REQUEST['guild'];
  1241. $war_id = (int) $_REQUEST['warId'];
  1242. if (!$logged)
  1243. $guild_errors[] = 'You are not logged.';
  1244. if (empty($guild_errors)) {
  1245. $guild = new Guild($guild_id);
  1246. if (!$guild->isLoaded())
  1247. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  1248. if (empty($guild_errors)) {
  1249. $guild_leader_char = $guild->getOwner();
  1250. $guild_leader = FALSE;
  1251. $account_players = $account_logged->getPlayers();
  1252. foreach($account_players as $player) {
  1253. if ($guild_leader_char->getId() == $player->getId()) {
  1254. $guild_leader = TRUE;
  1255. }
  1256. }
  1257. if ($guild_leader) {
  1258. $war = new GuildWar($war_id);
  1259. if (!$war->isLoaded())
  1260. $guild_errors[] = 'War with ID <b>'.$war_id.'</b> doesn\'t exist.';
  1261.  
  1262. if (empty($guild_errors)) {
  1263. if ($war->getGuild2ID() != $guild->getID() || $war->getStatus() != GuildWar::STATE_INVITED) {
  1264. $guild_errors[] = 'Your guild is not invited to that war.';
  1265. }
  1266.  
  1267. if (empty($guild_errors)) {
  1268. $war->setStatus(GuildWar::STATE_ON_WAR);
  1269. $war->setStarted(time());
  1270. $war->setEnded(0);
  1271. $war->save();
  1272. header("Location: ?view=guilds&action=show&guild=".$guild_id."");
  1273. }
  1274. }
  1275. } else
  1276. $guild_errors[] = 'You are not a leader of guild!';
  1277. }
  1278. }
  1279. if (!empty($guild_errors)) {
  1280. foreach($guild_errors as $guild_error)
  1281. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  1282. }
  1283. }
  1284. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1285. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1286. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1287. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1288. if ($action == 'guildwarreject')
  1289. {
  1290. $guild_id = (int) $_REQUEST['guild'];
  1291. $war_id = (int) $_REQUEST['warId'];
  1292. if (!$logged)
  1293. $guild_errors[] = 'You are not logged.';
  1294. if (empty($guild_errors)) {
  1295. $guild = new Guild($guild_id);
  1296. if (!$guild->isLoaded())
  1297. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  1298. if (empty($guild_errors)) {
  1299. $guild_leader_char = $guild->getOwner();
  1300. $guild_leader = FALSE;
  1301. $account_players = $account_logged->getPlayers();
  1302. foreach($account_players as $player) {
  1303. if ($guild_leader_char->getId() == $player->getId()) {
  1304. $guild_leader = TRUE;
  1305. }
  1306. }
  1307. if ($guild_leader) {
  1308. $war = new GuildWar($war_id);
  1309. if (!$war->isLoaded())
  1310. $guild_errors[] = 'War with ID <b>'.$war_id.'</b> doesn\'t exist.';
  1311.  
  1312. if (empty($guild_errors)) {
  1313. if ($war->getGuild2ID() != $guild->getID() || $war->getStatus() != GuildWar::STATE_INVITED) {
  1314. $guild_errors[] = 'Your guild is not invited to that war.';
  1315. }
  1316.  
  1317. if (empty($guild_errors)) {
  1318. $war->setStatus(GuildWar::STATE_REJECTED);
  1319. $war->setEnded(time());
  1320. $war->save();
  1321. header("Location: ?view=guilds&action=show&guild=".$guild_id."");
  1322. }
  1323. }
  1324. } else
  1325. $guild_errors[] = 'You are not a leader of guild!';
  1326. }
  1327. }
  1328. if (!empty($guild_errors)) {
  1329. foreach($guild_errors as $guild_error)
  1330. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  1331. }
  1332. }
  1333. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1334. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1335. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1336. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1337. if ($action == 'guildwarcancel')
  1338. {
  1339. $guild_id = (int) $_REQUEST['guild'];
  1340. $war_id = (int) $_REQUEST['warId'];
  1341. if (!$logged)
  1342. $guild_errors[] = 'You are not logged.';
  1343. if (empty($guild_errors)) {
  1344. $guild = new Guild($guild_id);
  1345. if (!$guild->isLoaded())
  1346. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  1347. if (empty($guild_errors)) {
  1348. $guild_leader_char = $guild->getOwner();
  1349. $guild_leader = FALSE;
  1350. $account_players = $account_logged->getPlayers();
  1351. foreach($account_players as $player) {
  1352. if ($guild_leader_char->getId() == $player->getId()) {
  1353. $guild_leader = TRUE;
  1354. }
  1355. }
  1356. if ($guild_leader) {
  1357. $war = new GuildWar($war_id);
  1358. if (!$war->isLoaded())
  1359. $guild_errors[] = 'War with ID <b>'.$war_id.'</b> doesn\'t exist.';
  1360.  
  1361. if (empty($guild_errors)) {
  1362. if ($war->getGuild1ID() != $guild->getID() || $war->getStatus() != GuildWar::STATE_INVITED) {
  1363. $guild_errors[] = 'Your guild is not invited to this war.';
  1364. }
  1365.  
  1366. if (empty($guild_errors)) {
  1367. $war->setStatus(GuildWar::STATE_CANCELED);
  1368. $war->setEnded(time());
  1369. $war->save();
  1370. header("Location: ?view=guilds&action=show&guild=".$guild_id."");
  1371. }
  1372. }
  1373. } else
  1374. $guild_errors[] = 'You are not a leader of guild!';
  1375. }
  1376. }
  1377. if (!empty($guild_errors))
  1378. {
  1379. foreach($guild_errors as $guild_error)
  1380. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  1381. }
  1382. }
  1383.  
  1384. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1385. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1386. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1387. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1388. if ($action == 'guildwarstart')
  1389. {
  1390. $guild_id = (int) $_REQUEST['guild'];
  1391. if (!$logged)
  1392. $guild_errors[] = 'You are not logged.';
  1393. if (empty($guild_errors)) {
  1394. $guild = new Guild($guild_id);
  1395. if (!$guild->isLoaded())
  1396. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> doesn\'t exist.';
  1397. if (empty($guild_errors)) {
  1398. $guild_leader_char = $guild->getOwner();
  1399. $guild_leader = FALSE;
  1400. $account_players = $account_logged->getPlayers();
  1401. foreach($account_players as $player) {
  1402. if ($guild_leader_char->getId() == $player->getId()) {
  1403. $guild_leader = TRUE;
  1404. }
  1405. }
  1406. if ($guild_leader) {
  1407. $currentWars = array();
  1408. $wars = new DatabaseList('GuildWar');
  1409. foreach($wars as $war)
  1410. {
  1411. if ($war->getStatus() == GuildWar::STATE_INVITED || $war->getStatus() == GuildWar::STATE_ON_WAR)
  1412. {
  1413. if ($war->getGuild1ID() == $guild->getID())
  1414. $currentWars[$war->getGuild2ID()] = $war->getStatus();
  1415. elseif ($war->getGuild2ID() == $guild->getID())
  1416. $currentWars[$war->getGuild1ID()] = $war->getStatus();
  1417. }
  1418. }
  1419.  
  1420. $guildsList = new DatabaseList('Guild');
  1421. $guildsList->addOrder(new SQL_Order(new SQL_Field('name'), SQL_Order::ASC));
  1422. $shown_guilds = 0;
  1423.  
  1424. $optionsData = '';
  1425. foreach($guildsList as $enemyGuild) {
  1426. if ($enemyGuild->getID() != $guild->getID()) {
  1427. if (!isset($currentWars[$enemyGuild->getID()])) {
  1428. $optionsData .= '<option value="' . $enemyGuild->getID() . '">'.htmlspecialchars($enemyGuild->getName()).'</option>';
  1429. }
  1430. }
  1431. }
  1432.  
  1433. $main_content .= '
  1434. <div class="panel panel-default">
  1435. <div class="panel-heading"><h3 class="panel-title">War Declaration</h3></div>
  1436. <div class="panel-body">
  1437. <form class="form-horizontal" role="form" action="?view=guilds&action=guildwarinvite&guild='.$guild_id.'" method="post">
  1438. <fieldset>';
  1439. if (!empty($optionsData)) {
  1440. $main_content .= '
  1441. <div class="form-group">
  1442. <label for="select" class="col-lg-3 control-label">Opponent guild</label>
  1443. <div class="col-lg-9">
  1444. <select class="form-control" name="enemy">
  1445. '.$optionsData.'
  1446. </select>
  1447. </div>
  1448. </div>
  1449.  
  1450. <div class="text-center">
  1451. <button type="submit" class="btn btn-primary">Send a war declaration</button>
  1452. <a href="?view=guilds&action=show&guild='.$guild_id.'" class="btn btn-default">Back</a>
  1453. </div>
  1454. ';
  1455. } else {
  1456. $main_content .= '
  1457. <p>There are no guilds to declare against at the moment.</p>
  1458. <div class="text-center">
  1459. <a href="?view=guilds&action=show&guild='.$guild_id.'" class="btn btn-primary">Back</a>
  1460. </div>
  1461. ';
  1462. }
  1463.  
  1464. $main_content .= '
  1465. </fieldset>
  1466. </form>
  1467. </div>
  1468. </div>
  1469. ';
  1470. } else
  1471. $guild_errors[] = 'You are not a leader of guild!';
  1472. }
  1473. }
  1474. if (!empty($guild_errors))
  1475. {
  1476. foreach($guild_errors as $guild_error)
  1477. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  1478. }
  1479. }
  1480.  
  1481.  
  1482. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1483. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1484. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1485. //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------
  1486. if ($action == 'guildwarinvite')
  1487. {
  1488. $guild_id = (int) $_REQUEST['guild'];
  1489. $enemy_id = (int) $_POST['enemy'];
  1490. var_dump($guild_id);
  1491. var_dump($enemy_id);
  1492. if (!$logged)
  1493. $guild_errors[] = 'You are not logged.';
  1494. if (empty($guild_errors)) {
  1495. $guild = new Guild($guild_id);
  1496. $enemyGuild = new Guild($enemy_id);
  1497. if (!$guild->isLoaded() || !$enemyGuild->isLoaded())
  1498. $guild_errors[] = 'Guild with ID <b>'.$guild_id.'</b> or ID <b>'.$enemy_id.'</b> doesn\'t exist.';
  1499. if (empty($guild_errors)) {
  1500. $guild_leader_char = $guild->getOwner();
  1501. $guild_leader = FALSE;
  1502. $account_players = $account_logged->getPlayers();
  1503. foreach($account_players as $player) {
  1504. if ($guild_leader_char->getId() == $player->getId()) {
  1505. $guild_leader = TRUE;
  1506. }
  1507. }
  1508. if ($guild_leader) {
  1509. if ($enemyGuild->getID() != $guild->getID()) {
  1510. $currentWars = array();
  1511. $wars = new DatabaseList('GuildWar');
  1512. foreach($wars as $war) {
  1513. if ($war->getStatus() == GuildWar::STATE_INVITED || $war->getStatus() == GuildWar::STATE_ON_WAR) {
  1514. if ($war->getGuild1ID() == $guild->getID())
  1515. $currentWars[$war->getGuild2ID()] = $war->getStatus();
  1516. elseif ($war->getGuild2ID() == $guild->getID())
  1517. $currentWars[$war->getGuild1ID()] = $war->getStatus();
  1518. }
  1519. }
  1520. if (isset($currentWars[$enemyGuild->getID()])) {
  1521. // in war or invited
  1522. if ($currentWars[$enemyGuild->getID()] == GuildWar::STATE_INVITED) {
  1523. // guild already invited you or you invited that guild
  1524. $guild_errors[] = 'There is already invitation between your and this guild.';
  1525. } else {
  1526. // you are on war with this guild
  1527. $guild_errors[] = 'There is already war between your and this guild.';
  1528. }
  1529. } else {
  1530. // can invite
  1531. $war = new GuildWar();
  1532. $war->setGuild1ID($guild->getID());
  1533. $war->setGuild2ID($enemyGuild->getID());
  1534. $war->setGuild1Name($guild->getName());
  1535. $war->setGuild2Name($enemyGuild->getName());
  1536. $war->setStatus(GuildWar::STATE_INVITED);
  1537. $war->setStarted(time());
  1538. $war->setEnded(0);
  1539. $war->setLimit(isset($_POST['limit']) ? (int) $_POST['limit'] : 100);
  1540. $war->save();
  1541. header("Location: ?view=guilds&action=show&guild=".$guild_id."");
  1542. }
  1543. } else {
  1544. $guild_errors[] = 'You cannot invite same guild!';
  1545. }
  1546. } else
  1547. $guild_errors[] = 'You are not a leader of guild!';
  1548. }
  1549. }
  1550. if (!empty($guild_errors)) {
  1551. foreach($guild_errors as $guild_error)
  1552. $main_content .= '<div class="alert alert-danger">'.$guild_error.'</div>';
  1553. }
  1554. }
Add Comment
Please, Sign In to add comment