diff --git a/MMOCore-API/pom.xml b/MMOCore-API/pom.xml index 3e361016..14e1cc33 100644 --- a/MMOCore-API/pom.xml +++ b/MMOCore-API/pom.xml @@ -204,7 +204,13 @@ - + + de.simonsator + Party-and-Friends-MySQL-Edition-Spigot-API + 1.5.3 + provided + + de.simonsator DevelopmentPAFSpigot @@ -212,6 +218,13 @@ provided + + de.simonsator + Spigot-Party-API-For-RedisBungee + 1.0.3-SNAPSHOT + provided + + com.alessiodp Parties diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java index d6a10708..088a867a 100644 --- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/PartyModuleType.java @@ -1,10 +1,7 @@ package net.Indyuce.mmocore.party; -import net.Indyuce.mmocore.party.compat.DungeonsXLPartyModule; -import net.Indyuce.mmocore.party.compat.McMMOPartyModule; -import net.Indyuce.mmocore.party.compat.PAFPartyModule; +import net.Indyuce.mmocore.party.compat.*; import net.Indyuce.mmocore.party.provided.MMOCorePartyModule; -import net.Indyuce.mmocore.party.compat.PartiesPartyModule; import org.bukkit.Bukkit; import javax.inject.Provider; @@ -16,6 +13,7 @@ public enum PartyModuleType { MMOCORE("MMOCore", MMOCorePartyModule::new), PARTIES("Parties", PartiesPartyModule::new), PARTY_AND_FRIENDS("PartyAndFriends", PAFPartyModule::new), + PARTY_AND_FRIENDS_EXTENDED_BUNGEECORD_VELOCITY("Spigot-Party-API-PAF", PAFProxyExtendedPartyModule::new), ; private final String pluginName; diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyExtendedPartyModule.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyExtendedPartyModule.java new file mode 100644 index 00000000..c943c2f8 --- /dev/null +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyExtendedPartyModule.java @@ -0,0 +1,52 @@ +package net.Indyuce.mmocore.party.compat; + +import de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayer; +import de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayerManager; +import de.simonsator.partyandfriends.spigot.api.party.PartyManager; +import de.simonsator.partyandfriends.spigot.api.party.PlayerParty; +import net.Indyuce.mmocore.api.player.PlayerData; +import net.Indyuce.mmocore.party.AbstractParty; +import net.Indyuce.mmocore.party.PartyModule; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +public class PAFProxyExtendedPartyModule implements PartyModule { + + @Nullable + @Override + public AbstractParty getParty(PlayerData playerData) { + PlayerParty party = PartyManager.getInstance().getParty(PAFPlayerManager.getInstance().getPlayer(playerData.getUniqueId())); + return party == null ? null : new CustomParty(party); + } + + class CustomParty implements AbstractParty { + private final PlayerParty party; + + public CustomParty(PlayerParty party) { + this.party = party; + } + + @Override + public boolean hasMember(Player player) { + return party.isInParty(PAFPlayerManager.getInstance().getPlayer(player.getUniqueId())); + } + + @Override + public List getOnlineMembers() { + List list = new ArrayList<>(); + + for (PAFPlayer online : party.getAllPlayers()) + list.add(PlayerData.get(online.getUniqueId())); + + return list; + } + + @Override + public int countMembers() { + return party.getAllPlayers().size(); + } + } +} diff --git a/MMOCore-Dist/src/main/resources/config.yml b/MMOCore-Dist/src/main/resources/config.yml index cb4e59a4..c05749b2 100644 --- a/MMOCore-Dist/src/main/resources/config.yml +++ b/MMOCore-Dist/src/main/resources/config.yml @@ -58,6 +58,7 @@ protect-custom-mine: false # - dungeonsxl # - parties # - party_and_friends +# - party_and_friends_extended_bungeecord_velocity # - mcmmo party-plugin: mmocore