diff --git a/engine/function/users.php b/engine/function/users.php
index 530f943..03f8a9f 100644
--- a/engine/function/users.php
+++ b/engine/function/users.php
@@ -371,7 +371,8 @@ function guild_player_join($cid, $gid) {
// Add to guild if rank id was found:
if ($rid != false) {
// Remove the invite:
- guild_remove_invitation($cid, $gid);
+ //guild_remove_invitation($cid, $gid);
+ guild_remove_all_invitations($cid);
// Add to guild:
mysql_update("UPDATE `players` SET `rank_id`='$rid' WHERE `id`=$cid");
$status = true;
@@ -383,7 +384,8 @@ function guild_player_join($cid, $gid) {
if ($guildrank !== false) {
$rid = $guildrank['id'];
// Remove invite
- guild_remove_invitation($cid, $gid);
+ //guild_remove_invitation($cid, $gid);
+ guild_remove_all_invitations($cid);
// Add to guild
mysql_insert("INSERT INTO `guild_membership` (`player_id`, `guild_id`, `rank_id`, `nick`) VALUES ('$cid', '$gid', '$rid', '');");
// Return success
@@ -400,6 +402,12 @@ function guild_remove_invitation($cid, $gid) {
mysql_delete("DELETE FROM `guild_invites` WHERE `player_id`='$cid' AND `guild_id`='$gid';");
}
+// Remove ALL invitations
+function guild_remove_all_invitations($cid) {
+ $cid = (int)$cid;
+ mysql_delete("DELETE FROM `guild_invites` WHERE `player_id`='$cid';");
+}
+
// Invite character to guild
function guild_invite_player($cid, $gid) {
$cid = (int)$cid;
diff --git a/guilds.php b/guilds.php
index f89cef1..63cfd2d 100644
--- a/guilds.php
+++ b/guilds.php
@@ -171,7 +171,7 @@ if (user_logged_in() === true) {
Failed to find guild position representing member.';
+ // Ensure player is not already a member of another guild
+ if (get_character_guild_rank($joining_player_id) === false) {
+ if (guild_player_join($joining_player_id, (int)$gid)) {
+ header('Location: guilds.php?name='. $_GET['name']);
+ exit();
+ } else echo 'Failed to find guild position representing member.';
+ } else {
+ $already_guild = get_player_guild_data($joining_player_id);
+ $already_guild_name = get_guild_name($already_guild['guild_id']);
+ echo "You are already {$already_guild['rank_name']} of another guild: {$already_guild_name}.
You need to leave that guild first before you can join another one.";
+ }
} else echo 'Character must be offline before joining guild.';
}
}