mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Trigger change event for party create/disband (#4620)
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
package com.gmail.nossr50.commands.party;
 | 
					package com.gmail.nossr50.commands.party;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.datatypes.party.Party;
 | 
					import com.gmail.nossr50.datatypes.party.Party;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
				
			||||||
import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
					import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason;
 | 
				
			||||||
import com.gmail.nossr50.locale.LocaleLoader;
 | 
					import com.gmail.nossr50.locale.LocaleLoader;
 | 
				
			||||||
import com.gmail.nossr50.party.PartyManager;
 | 
					import com.gmail.nossr50.party.PartyManager;
 | 
				
			||||||
@@ -15,13 +16,14 @@ public class PartyDisbandCommand implements CommandExecutor {
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
 | 
					    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
 | 
				
			||||||
        if (args.length == 1) {
 | 
					        if (args.length == 1) {
 | 
				
			||||||
            if (UserManager.getPlayer((Player) sender) == null) {
 | 
					            final McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
 | 
				
			||||||
 | 
					            if (mcMMOPlayer == null) {
 | 
				
			||||||
                sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
 | 
					                sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
 | 
				
			||||||
                return true;
 | 
					                return true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Party playerParty = UserManager.getPlayer((Player) sender).getParty();
 | 
					            final Party playerParty = mcMMOPlayer.getParty();
 | 
				
			||||||
            String partyName = playerParty.getName();
 | 
					            final String partyName = playerParty.getName();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (Player member : playerParty.getOnlineMembers()) {
 | 
					            for (Player member : playerParty.getOnlineMembers()) {
 | 
				
			||||||
                if (!PartyManager.handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) {
 | 
					                if (!PartyManager.handlePartyChangeEvent(member, partyName, null, EventReason.KICKED_FROM_PARTY)) {
 | 
				
			||||||
@@ -31,7 +33,7 @@ public class PartyDisbandCommand implements CommandExecutor {
 | 
				
			|||||||
                member.sendMessage(LocaleLoader.getString("Party.Disband"));
 | 
					                member.sendMessage(LocaleLoader.getString("Party.Disband"));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            PartyManager.disbandParty(playerParty);
 | 
					            PartyManager.disbandParty(mcMMOPlayer, playerParty);
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "disband"));
 | 
					        sender.sendMessage(LocaleLoader.getString("Commands.Usage.1", "party", "disband"));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,6 +53,16 @@ public class McMMOPartyChangeEvent extends PlayerEvent implements Cancellable {
 | 
				
			|||||||
     * A list of reasons why the event may have been fired
 | 
					     * A list of reasons why the event may have been fired
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public enum EventReason {
 | 
					    public enum EventReason {
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * Created a party.
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        CREATED_PARTY,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * Disbanded a party.
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        DISBANDED_PARTY,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * Joined a party for the first time.
 | 
					         * Joined a party for the first time.
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -347,10 +347,20 @@ public final class PartyManager {
 | 
				
			|||||||
     * Disband a party. Kicks out all members and removes the party.
 | 
					     * Disband a party. Kicks out all members and removes the party.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param party The party to remove
 | 
					     * @param party The party to remove
 | 
				
			||||||
 | 
					     * @deprecated Use {@link #disbandParty(McMMOPlayer, Party)}
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void disbandParty(Party party) {
 | 
					    public static void disbandParty(Party party) {
 | 
				
			||||||
 | 
					        disbandParty(null, party);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Disband a party. Kicks out all members and removes the party.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param party The party to remove
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static void disbandParty(McMMOPlayer mcMMOPlayer, Party party) {
 | 
				
			||||||
        //TODO: Potential issues with unloaded profile?
 | 
					        //TODO: Potential issues with unloaded profile?
 | 
				
			||||||
        for (Player member : party.getOnlineMembers()) {
 | 
					        for (final Player member : party.getOnlineMembers()) {
 | 
				
			||||||
            //Profile not loaded
 | 
					            //Profile not loaded
 | 
				
			||||||
            if(UserManager.getPlayer(member) == null)
 | 
					            if(UserManager.getPlayer(member) == null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -366,6 +376,9 @@ public final class PartyManager {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        parties.remove(party);
 | 
					        parties.remove(party);
 | 
				
			||||||
 | 
					        if (mcMMOPlayer != null) {
 | 
				
			||||||
 | 
					            handlePartyChangeEvent(mcMMOPlayer.getPlayer(), party.getName(), null, EventReason.DISBANDED_PARTY);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -388,6 +401,7 @@ public final class PartyManager {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        player.sendMessage(LocaleLoader.getString("Commands.Party.Create", party.getName()));
 | 
					        player.sendMessage(LocaleLoader.getString("Commands.Party.Create", party.getName()));
 | 
				
			||||||
        addToParty(mcMMOPlayer, party);
 | 
					        addToParty(mcMMOPlayer, party);
 | 
				
			||||||
 | 
					        handlePartyChangeEvent(player, null, partyName, EventReason.CREATED_PARTY);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user