|
45 | 45 | import org.bukkit.metadata.FixedMetadataValue;
|
46 | 46 | import org.bukkit.metadata.Metadatable;
|
47 | 47 | import org.bukkit.persistence.PersistentDataType;
|
| 48 | +import org.bukkit.plugin.Plugin; |
48 | 49 | import org.bukkit.plugin.PluginManager;
|
49 | 50 | import org.bukkit.plugin.java.JavaPlugin;
|
50 | 51 | import org.bukkit.potion.PotionType;
|
@@ -164,6 +165,7 @@ public void onLoad() {
|
164 | 165 | addCompatibility("EliteMobs", EMCompatibility::new);
|
165 | 166 | addCompatibility("ViaVersion", ViaCompatibility::new);
|
166 | 167 | addCompatibility("VillagerTradeLimiter", VTLCompatibility::new);
|
| 168 | + addCompatibility("MarriageMaster", MarriageCompatibility::new); |
167 | 169 |
|
168 | 170 | logger.info("Compatibilities loaded!");
|
169 | 171 | logger.info("");
|
@@ -760,6 +762,7 @@ public String getNPCTextureURL(@Nullable IVillagerNPC npc) {
|
760 | 762 |
|
761 | 763 | TextureProperty textures = tracker.getTextures(npc.getSex(), "none", npc.getSkinTextureId());
|
762 | 764 | return textures.getName().equals("error") ? UNKNOWN_HEAD_TEXTURE : PluginUtils.getURLFromTexture(textures.getValue());
|
| 765 | + |
763 | 766 | }
|
764 | 767 |
|
765 | 768 | private @NotNull Set<Color> getColors(@NotNull FileConfiguration config, String path, String effect, String needed) {
|
@@ -793,11 +796,20 @@ public void saveResource(String name) {
|
793 | 796 | File file = new File(getDataFolder(), name);
|
794 | 797 | if (!file.exists()) saveResource(name, false);
|
795 | 798 | }
|
| 799 | + //MarriageMaster |
| 800 | + |
| 801 | + |
| 802 | + private boolean marriedPlayer(@NotNull Player player) { |
796 | 803 |
|
| 804 | + Plugin marriage = Bukkit.getServer().getPluginManager().getPlugin("MarriageMaster"); |
| 805 | + if (marriage == null) return false; |
| 806 | + return getCompatibilityManager().marriedPlayer(player); |
| 807 | + } |
797 | 808 | public boolean isMarried(@NotNull Player player) {
|
798 | 809 | String partner = player.getPersistentDataContainer().get(marriedWith, PersistentDataType.STRING);
|
799 | 810 | if (partner == null) return false;
|
800 | 811 |
|
| 812 | + if (!marriedPlayer(player)) return false; |
801 | 813 | IVillagerNPC partnerInfo = tracker.getOffline(UUID.fromString(partner));
|
802 | 814 | if (partnerInfo == null) {
|
803 | 815 | player.getPersistentDataContainer().remove(marriedWith);
|
@@ -855,6 +867,7 @@ public Gift getWantedItem(IVillagerNPC npc, ItemStack item, boolean isItemPickup
|
855 | 867 | return GiftCategory.appliesToVillager(wantedItems, npc, item, isItemPickup);
|
856 | 868 | }
|
857 | 869 |
|
| 870 | + |
858 | 871 | public @Nullable LivingEntity getUnloadedOffline(@NotNull IVillagerNPC offline) {
|
859 | 872 | LivingEntity bukkit = offline.bukkit();
|
860 | 873 | if (bukkit != null) return bukkit;
|
|
0 commit comments