diff --git a/MMOCore-API/pom.xml b/MMOCore-API/pom.xml
index cab7f459..26f77a47 100644
--- a/MMOCore-API/pom.xml
+++ b/MMOCore-API/pom.xml
@@ -196,6 +196,13 @@
provided
+
+ com.civious
+ OBTeam
+ 1.1
+ 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 5c497ea9..bf93487f 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
@@ -12,6 +12,7 @@ public enum PartyModuleType {
MCMMO("mcMMO", McMMOPartyModule::new),
MMOCORE("MMOCore", MMOCorePartyModule::new),
PARTIES("Parties", PartiesPartyModule::new),
+ OBTEAM("OBTeam", OBTeamPartyModule::new),
PARTY_AND_FRIENDS("PartyAndFriends", PAFPartyModule::new),
PARTY_AND_FRIENDS_BUNGEECORD_VELOCITY("Spigot-Party-API-PAF", PAFProxyPartyModule::new),
;
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
index 92f89b17..381ef5e7 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/DungeonsXLPartyModule.java
@@ -68,7 +68,7 @@ public class DungeonsXLPartyModule implements PartyModule, Listener {
MMOCore.plugin.partyManager.getBonuses().forEach(buff -> buff.unregister(player.getMMOPlayerData()));
}
- class CustomParty implements AbstractParty, Listener {
+ class CustomParty implements AbstractParty {
private final PlayerGroup group;
public CustomParty(PlayerGroup group) {
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
index 5da0bf71..ac2bf019 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/McMMOPartyModule.java
@@ -74,12 +74,11 @@ public class McMMOPartyModule implements PartyModule, Listener {
MMOCore.plugin.partyManager.getBonuses().forEach(buff -> buff.unregister(player.getMMOPlayerData()));
}
- class CustomParty implements AbstractParty, Listener {
+ class CustomParty implements AbstractParty {
private final Party party;
public CustomParty(Party party) {
this.party = party;
- Bukkit.getPluginManager().registerEvents(this, MMOCore.plugin);
}
@Override
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/OBTeamPartyModule.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/OBTeamPartyModule.java
new file mode 100644
index 00000000..72217bc3
--- /dev/null
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/compat/OBTeamPartyModule.java
@@ -0,0 +1,59 @@
+package net.Indyuce.mmocore.party.compat;
+
+import com.civious.obteam.mechanics.Team;
+import com.civious.obteam.mechanics.TeamManager;
+import com.civious.obteam.mechanics.TeamMember;
+import net.Indyuce.mmocore.MMOCore;
+import net.Indyuce.mmocore.api.player.PlayerData;
+import net.Indyuce.mmocore.party.AbstractParty;
+import net.Indyuce.mmocore.party.PartyModule;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Listener;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class OBTeamPartyModule implements PartyModule, Listener {
+
+ @Nullable
+ @Override
+ public AbstractParty getParty(PlayerData playerData) {
+ final @Nullable Team team = TeamManager.getInstance().getTeam(playerData.getPlayer());
+ return team == null ? null : new CustomParty(team);
+ }
+
+ class CustomParty implements AbstractParty {
+ private final Team team;
+
+ public CustomParty(Team team) {
+ this.team = team;
+ }
+
+ @Override
+ public boolean hasMember(Player player) {
+ for (TeamMember member : team.getMembers())
+ if (member.getOfflinePlayer().getUniqueId().equals(player.getUniqueId())) return true;
+ return false;
+ }
+
+ @Override
+ public List getOnlineMembers() {
+ final List list = new ArrayList<>();
+
+ for (TeamMember member : team.getMembersAndOwner())
+ try {
+ list.add(PlayerData.get(member.getOfflinePlayer().getUniqueId()));
+ } catch (Exception ignored) {
+ }
+
+ return list;
+ }
+
+ @Override
+ public int countMembers() {
+ return team.getMembersAndOwner().size();
+ }
+ }
+}
diff --git a/MMOCore-Dist/src/main/resources/config.yml b/MMOCore-Dist/src/main/resources/config.yml
index 6744a1da..2cfd8575 100644
--- a/MMOCore-Dist/src/main/resources/config.yml
+++ b/MMOCore-Dist/src/main/resources/config.yml
@@ -60,6 +60,7 @@ protect-custom-mine: false
# - 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
+# - obteam (addon for DungeonMMO)
party-plugin: mmocore
# Edit the plugin handling guilds here.