Guilds Hotfix

- Removed debug messages
- Added a safecheck when a player tries to load an invalid guild
- Fixed a co-mod exception
- Fixed having to be in a party for guild chatting
This commit is contained in:
Aria 2019-11-30 20:04:14 +01:00
parent 6b05f32d4c
commit 279f12b45d
3 changed files with 14 additions and 22 deletions

View File

@ -29,9 +29,6 @@ public class Guild {
*/ */
private UUID owner; private UUID owner;
// used to check if two parties are the same
// private UUID uuid = UUID.randomUUID();
public Guild(UUID owner, String name, String tag) { public Guild(UUID owner, String name, String tag) {
this.owner = owner; this.owner = owner;
this.guildId = tag.toLowerCase(); this.guildId = tag.toLowerCase();
@ -67,22 +64,16 @@ public class Guild {
invites.remove(player.getUniqueId()); invites.remove(player.getUniqueId());
} }
//public void disband() { public void removeMember(UUID uuid)
//for(UUID uuid : getMembers().members) { removeMember(uuid, false); }
// removeMember(uuid, true);
// Disband boolean is to prevent co-modification exception when disbanding a guild
//} public void removeMember(UUID uuid, boolean disband) {
//public void removeMember(UUID uuid)
//{ removeMember(uuid, false); }
public void removeMember(UUID uuid) {//, boolean disband) {
PlayerData data = PlayerData.get(uuid); PlayerData data = PlayerData.get(uuid);
if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory) if (data != null && data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof GuildViewInventory)
InventoryManager.GUILD_CREATION.newInventory(data).open(); InventoryManager.GUILD_CREATION.newInventory(data).open();
members.remove(uuid); if(!disband) members.remove(uuid);
if(data != null) data.setGuild(null); if(data != null) data.setGuild(null);
reopenInventories(); reopenInventories();
@ -114,7 +105,6 @@ public class Guild {
} }
public void registerMember(UUID uuid) { public void registerMember(UUID uuid) {
MMOCore.log("Registered Member");
members.add(uuid); members.add(uuid);
} }
@ -168,10 +158,6 @@ public class Guild {
members.forEach(action); members.forEach(action);
} }
public int count() {
return members.size();
}
public int countOnline() { public int countOnline() {
int online = 0; int online = 0;
@ -181,5 +167,10 @@ public class Guild {
return online; return online;
} }
public int count()
{ return members.size(); }
public void clear()
{ members.clear(); }
} }
} }

View File

@ -19,7 +19,7 @@ public class GuildListener implements Listener {
return; return;
PlayerData data = PlayerData.get(event.getPlayer()); PlayerData data = PlayerData.get(event.getPlayer());
if (!data.hasParty()) if (!data.inGuild())
return; return;
event.setCancelled(true); event.setCancelled(true);

View File

@ -37,7 +37,8 @@ public class GuildManager extends MMOManager {
} }
public void unregisterGuild(Guild guild) { public void unregisterGuild(Guild guild) {
guild.getMembers().forEach(member -> guild.removeMember(member)); guild.getMembers().forEach(member -> guild.removeMember(member, true));
guild.getMembers().clear();
guilds.remove(guild.getId()); guilds.remove(guild.getId());
new ConfigFile(guild).delete(); new ConfigFile(guild).delete();
@ -121,7 +122,7 @@ public class GuildManager extends MMOManager {
// Used to check if player was kicked while offline // Used to check if player was kicked while offline
public Guild stillInGuild(UUID uuid, String id) { public Guild stillInGuild(UUID uuid, String id) {
Guild guild = getGuild(id); Guild guild = getGuild(id);
if(guild.getMembers().has(uuid)) if(guild != null && guild.getMembers().has(uuid))
return guild; return guild;
return null; return null;
} }