diff --git a/.gitignore b/.gitignore index 15a72642..e769c860 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ -/bin/ -/.m2/ -/target/ -/.settings/ -/.idea/ +bin/ +.m2/ +target/ +.settings/ +.idea/ .classpath .project MMOCore.eml diff --git a/MMOCore-API/pom.xml b/MMOCore-API/pom.xml index 3e361016..352fa758 100644 --- a/MMOCore-API/pom.xml +++ b/MMOCore-API/pom.xml @@ -204,7 +204,6 @@ - de.simonsator DevelopmentPAFSpigot @@ -212,6 +211,20 @@ provided + + de.simonsator + Party-and-Friends-MySQL-Edition-Spigot-API + 1.5.4-RELEASE + provided + + + + de.simonsator + spigot-party-api-for-party-and-friends + 1.0.4-RELEASE + 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..ee001aac 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_BUNGEECORD_VELOCITY("Spigot-Party-API-PAF", PAFProxyPartyModule::new), ; private final String pluginName; diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyPartyModule.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyPartyModule.java new file mode 100644 index 00000000..db9a3cbd --- /dev/null +++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/PAFProxyPartyModule.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 PAFProxyPartyModule 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..1c928261 100644 --- a/MMOCore-Dist/src/main/resources/config.yml +++ b/MMOCore-Dist/src/main/resources/config.yml @@ -1,4 +1,3 @@ - # DO NOT TOUCH config-version: 9 @@ -57,7 +56,8 @@ protect-custom-mine: false # - mmocore # - dungeonsxl # - parties -# - party_and_friends +# - party_and_friends (Use this one if you are using Party and Friends Extended for Spigot) +# - party_and_friends_bungeecord_velocity (Use this one if you are using Party and Friends For Bungeecord, Party and Friends For Velocity or Party and Friends Extended Edition for Bungeecord/Velocity. This one requires https://www.spigotmc.org/resources/spigot-party-api-for-party-and-friends.39751/ to be installed) # - mcmmo party-plugin: mmocore