Skip to content

Commit b6e93e6

Browse files
committed
marriagemaster compability
1 parent 6cc6eed commit b6e93e6

File tree

8 files changed

+70
-1
lines changed

8 files changed

+70
-1
lines changed

core/pom.xml

+11
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@
149149
<id>viaversion-repo</id>
150150
<url>https://repo.viaversion.com</url>
151151
</repository>
152+
<repository>
153+
<id>pcgf-repo</id>
154+
<url>https://repo.pcgamingfreaks.at/repository/maven-everything</url>
155+
</repository>
152156
</repositories>
153157

154158
<dependencies>
@@ -227,5 +231,12 @@
227231
<version>2.7.0</version>
228232
<scope>provided</scope>
229233
</dependency>
234+
<!-- Marriage Master API -->
235+
<dependency>
236+
<groupId>at.pcgamingfreaks</groupId>
237+
<artifactId>MarriageMaster-API-Bukkit</artifactId>
238+
<version>2.4</version><!-- Check api-version shield for newest version -->
239+
<scope>provided</scope>
240+
</dependency>
230241
</dependencies>
231242
</project>

core/src/main/java/me/matsubara/realisticvillagers/RealisticVillagers.java

+13
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.bukkit.metadata.FixedMetadataValue;
4646
import org.bukkit.metadata.Metadatable;
4747
import org.bukkit.persistence.PersistentDataType;
48+
import org.bukkit.plugin.Plugin;
4849
import org.bukkit.plugin.PluginManager;
4950
import org.bukkit.plugin.java.JavaPlugin;
5051
import org.bukkit.potion.PotionType;
@@ -164,6 +165,7 @@ public void onLoad() {
164165
addCompatibility("EliteMobs", EMCompatibility::new);
165166
addCompatibility("ViaVersion", ViaCompatibility::new);
166167
addCompatibility("VillagerTradeLimiter", VTLCompatibility::new);
168+
addCompatibility("MarriageMaster", MarriageCompatibility::new);
167169

168170
logger.info("Compatibilities loaded!");
169171
logger.info("");
@@ -760,6 +762,7 @@ public String getNPCTextureURL(@Nullable IVillagerNPC npc) {
760762

761763
TextureProperty textures = tracker.getTextures(npc.getSex(), "none", npc.getSkinTextureId());
762764
return textures.getName().equals("error") ? UNKNOWN_HEAD_TEXTURE : PluginUtils.getURLFromTexture(textures.getValue());
765+
763766
}
764767

765768
private @NotNull Set<Color> getColors(@NotNull FileConfiguration config, String path, String effect, String needed) {
@@ -793,11 +796,20 @@ public void saveResource(String name) {
793796
File file = new File(getDataFolder(), name);
794797
if (!file.exists()) saveResource(name, false);
795798
}
799+
//MarriageMaster
800+
801+
802+
private boolean marriedPlayer(@NotNull Player player) {
796803

804+
Plugin marriage = Bukkit.getServer().getPluginManager().getPlugin("MarriageMaster");
805+
if (marriage == null) return false;
806+
return getCompatibilityManager().marriedPlayer(player);
807+
}
797808
public boolean isMarried(@NotNull Player player) {
798809
String partner = player.getPersistentDataContainer().get(marriedWith, PersistentDataType.STRING);
799810
if (partner == null) return false;
800811

812+
if (!marriedPlayer(player)) return false;
801813
IVillagerNPC partnerInfo = tracker.getOffline(UUID.fromString(partner));
802814
if (partnerInfo == null) {
803815
player.getPersistentDataContainer().remove(marriedWith);
@@ -855,6 +867,7 @@ public Gift getWantedItem(IVillagerNPC npc, ItemStack item, boolean isItemPickup
855867
return GiftCategory.appliesToVillager(wantedItems, npc, item, isItemPickup);
856868
}
857869

870+
858871
public @Nullable LivingEntity getUnloadedOffline(@NotNull IVillagerNPC offline) {
859872
LivingEntity bukkit = offline.bukkit();
860873
if (bukkit != null) return bukkit;

core/src/main/java/me/matsubara/realisticvillagers/command/MainCommand.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.github.retrooper.packetevents.protocol.player.TextureProperty;
44
import me.matsubara.realisticvillagers.RealisticVillagers;
5+
import me.matsubara.realisticvillagers.compatibility.CompatibilityManager;
56
import me.matsubara.realisticvillagers.entity.IVillagerNPC;
67
import me.matsubara.realisticvillagers.files.Config;
78
import me.matsubara.realisticvillagers.files.Messages;
@@ -29,6 +30,7 @@
2930
import org.bukkit.event.Listener;
3031
import org.bukkit.inventory.ItemStack;
3132
import org.bukkit.persistence.PersistentDataType;
33+
import org.bukkit.plugin.Plugin;
3234
import org.bukkit.util.StringUtil;
3335
import org.jetbrains.annotations.NotNull;
3436
import org.jetbrains.annotations.Nullable;
@@ -41,6 +43,8 @@
4143
import java.util.stream.IntStream;
4244
import java.util.stream.Stream;
4345

46+
import static org.bukkit.Bukkit.getServer;
47+
4448
public class MainCommand implements CommandExecutor, TabCompleter {
4549

4650
private final RealisticVillagers plugin;
@@ -309,7 +313,7 @@ private String getAgeStage(CommandSender sender, String string) {
309313
plugin.getMessages().send(sender, notFound);
310314
return null;
311315
}
312-
316+
private CompatibilityManager compatibilityManager;
313317
private void handleForceDivorce(CommandSender sender, @NotNull String[] args) {
314318
Messages messages = plugin.getMessages();
315319
VillagerTracker tracker = plugin.getTracker();
@@ -343,6 +347,7 @@ private void handleForceDivorce(CommandSender sender, @NotNull String[] args) {
343347
return;
344348
}
345349

350+
346351
for (IVillagerNPC offlineVillager : tracker.getOfflineVillagers()) {
347352
if (!offlineVillager.getUniqueId().equals(partnerUUID)) continue;
348353

core/src/main/java/me/matsubara/realisticvillagers/compatibility/CompatibilityManager.java

+3
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,7 @@ public boolean handleVTL(Plugin plugin, Player player, Villager villager) {
2929
public boolean shouldCancelMetadata(Player player) {
3030
return compatibilities.get("ViaVersion") instanceof ViaCompatibility via && via.cancelMetadata(player);
3131
}
32+
public boolean marriedPlayer(Player player) {
33+
return compatibilities.get("MarriageMaster") instanceof MarriageCompatibility marriage && marriage.marriedPlayer(player);
34+
}
3235
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package me.matsubara.realisticvillagers.compatibility;
2+
3+
import at.pcgamingfreaks.MarriageMaster.API.MarriageMasterPlugin;
4+
5+
import at.pcgamingfreaks.MarriageMaster.API.MarriageManager;
6+
import at.pcgamingfreaks.MarriageMaster.API.MarriagePlayer;
7+
import org.bukkit.entity.Player;
8+
import org.bukkit.plugin.Plugin;
9+
import org.bukkit.Bukkit;
10+
import org.bukkit.entity.Villager;
11+
import org.jetbrains.annotations.NotNull;
12+
13+
import java.util.UUID;
14+
15+
16+
public class MarriageCompatibility implements Compatibility {
17+
18+
public MarriageMasterPlugin getMarriageMaster() {
19+
Plugin bukkitPlugin = Bukkit.getPluginManager().getPlugin("MarriageMaster");
20+
return (MarriageMasterPlugin) bukkitPlugin;
21+
22+
}
23+
public boolean marriedPlayer(@NotNull Player player) {
24+
25+
UUID playerUUID = player.getUniqueId();
26+
MarriagePlayer data = getMarriageMaster().getPlayerData(playerUUID);
27+
return data.isMarried();
28+
}
29+
@Override
30+
public boolean shouldTrack(Villager villager) {return true;}
31+
}
32+

core/src/main/java/me/matsubara/realisticvillagers/listener/PlayerListeners.java

+1
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ public void onPlayerMove(@NotNull PlayerMoveEvent event) {
127127

128128
@EventHandler(priority = EventPriority.HIGHEST)
129129
public void onPlayerInteract(PlayerInteractEvent event) {
130+
130131
handleWhistle(event);
131132
handleBabySpawn(event);
132133

core/src/main/java/me/matsubara/realisticvillagers/manager/ExpectingManager.java

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import me.matsubara.realisticvillagers.manager.gift.GiftCategory;
1212
import me.matsubara.realisticvillagers.util.ItemStackUtils;
1313
import me.matsubara.realisticvillagers.util.PluginUtils;
14+
import at.pcgamingfreaks.MarriageMaster.Bukkit.API.Events.DivorcedEvent;
15+
import at.pcgamingfreaks.MarriageMaster.API.MarriagePlayer;
1416
import org.bukkit.Bukkit;
1517
import org.bukkit.EntityEffect;
1618
import org.bukkit.NamespacedKey;
@@ -61,6 +63,7 @@ public void onEntityDeath(@NotNull EntityDeathEvent event) {
6163
villagerExpectingCache.entrySet().removeIf(next -> next.getValue().bukkit().equals(villager));
6264
}
6365

66+
6467
@EventHandler(priority = EventPriority.HIGHEST)
6568
public void onVillagerFish(@NotNull VillagerFishEvent event) {
6669
if (event.getState() != VillagerFishEvent.State.CAUGHT_FISH) return;

core/src/main/resources/plugin.yml

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ softdepend:
1414
- ViaBackwards
1515
- ViaRewind
1616
- Geyser-Spigot
17+
- MarriageMaster
1718

1819
commands:
1920
realisticvillagers:

0 commit comments

Comments
 (0)