Compatibility with new MythicDungeons API

This commit is contained in:
Jules 2024-05-01 22:42:29 -07:00
parent be62d73fcb
commit 2d08d4403b
4 changed files with 41 additions and 21 deletions

View File

@ -109,6 +109,14 @@
<id>simonsators Repo</id>
<url>https://simonsator.de/repo</url>
</repository>
<!-- MythicDungeons repository -->
<repository>
<id>aestrus-releases</id>
<name>Aestrus's Repository</name>
<url>https://maven.aestrus.io/releases</url>
</repository>
</repositories>
<dependencies>
@ -144,6 +152,13 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.playavalon</groupId>
<artifactId>MythicDungeons</artifactId>
<version>1.3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>fr.phoenixdevt</groupId>
<artifactId>Profile-API</artifactId>
@ -216,13 +231,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.playavalon</groupId>
<artifactId>DungeonParties</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alessiodp</groupId>
<artifactId>Parties</artifactId>

View File

@ -17,6 +17,10 @@ public interface AbstractParty {
*/
List<PlayerData> getOnlineMembers();
/**
* @deprecated Prefer using {@link #getOnlineMembers()}
*/
@Deprecated
default PlayerData getMember(int n) {
return getOnlineMembers().get(n);
}

View File

@ -7,15 +7,15 @@ import org.bukkit.Bukkit;
import javax.inject.Provider;
public enum PartyModuleType {
MMOCORE("MMOCore", MMOCorePartyModule::new),
// DUNGEONS("Dungeons", DungeonsPartyModule::new),
DUNGEONSXL("DungeonsXL", DungeonsXLPartyModule::new),
MCMMO("mcMMO", McMMOPartyModule::new),
MMOCORE("MMOCore", MMOCorePartyModule::new),
PARTIES("Parties", PartiesPartyModule::new),
MYTHICDUNGEONS("MythicDungeons", DungeonPartiesPartyModule::new),
MYTHICDUNGEONS("MythicDungeons", MythicDungeonsPartyModule::new),
OBTEAM("OBTeam", OBTeamPartyModule::new),
PARTY_AND_FRIENDS("PartyAndFriends", PAFPartyModule::new),
PARTY_AND_FRIENDS_BUNGEECORD_VELOCITY("Spigot-Party-API-PAF", PAFProxyPartyModule::new),
PARTIES("Parties", PartiesPartyModule::new),
;
private final String pluginName;

View File

@ -3,9 +3,10 @@ package net.Indyuce.mmocore.party.compat;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.party.AbstractParty;
import net.Indyuce.mmocore.party.PartyModule;
import net.playavalon.avnparty.AvNParty;
import net.playavalon.avnparty.party.Party;
import net.playavalon.avnparty.player.AvalonPlayer;
import net.playavalon.mythicdungeons.api.MythicDungeonsService;
import net.playavalon.mythicdungeons.player.party.partysystem.MythicParty;
import org.apache.commons.lang3.Validate;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.Nullable;
@ -13,26 +14,33 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
public class DungeonPartiesPartyModule implements PartyModule, Listener {
public class MythicDungeonsPartyModule implements PartyModule, Listener {
private final MythicDungeonsService hook;
public MythicDungeonsPartyModule() {
this.hook = Bukkit.getServer().getServicesManager().load(MythicDungeonsService.class);
Validate.notNull(hook, "Could not load compatibility with MythicDungeons");
}
@Nullable
@Override
public AbstractParty getParty(PlayerData playerData) {
final @Nullable Party party = AvNParty.plugin.players.get(playerData.getPlayer()).getParty();
final MythicParty party = hook.getParty(playerData.getPlayer());
return party == null ? null : new CustomParty(party);
}
class CustomParty implements AbstractParty {
private final Party party;
public CustomParty(Party party) {
static class CustomParty implements AbstractParty {
private final MythicParty party;
public CustomParty(MythicParty party) {
this.party = party;
}
@Override
public boolean hasMember(Player player) {
for (AvalonPlayer member : party.getPlayers())
if (member.getPlayer().getUniqueId().equals(player.getUniqueId())) return true;
for (Player member : party.getPlayers())
if (member.getUniqueId().equals(player.getUniqueId())) return true;
return false;
}
@ -40,7 +48,7 @@ public class DungeonPartiesPartyModule implements PartyModule, Listener {
public List<PlayerData> getOnlineMembers() {
final List<PlayerData> list = new ArrayList<>();
for (AvalonPlayer member : party.getPlayers())
for (Player member : party.getPlayers())
try {
list.add(PlayerData.get(member.getPlayer()));
} catch (Exception ignored) {