|
1 | 1 | package org.mvplugins.multiverse.netherportals.listeners; |
2 | 2 |
|
3 | 3 | import com.dumptruckman.minecraft.util.Logging; |
| 4 | +import org.mvplugins.multiverse.external.vavr.control.Try; |
4 | 5 | import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals; |
5 | 6 | import org.mvplugins.multiverse.netherportals.utils.EndPlatformCreator; |
6 | 7 | import org.mvplugins.multiverse.netherportals.utils.MVLinkChecker; |
@@ -49,8 +50,14 @@ public MVNPPlayerListener( |
49 | 50 | this.worldManager = worldManager; |
50 | 51 | this.endPlatformCreator = endPlatformCreator; |
51 | 52 |
|
52 | | - this.enterNetherAdvancement = this.plugin.getServer().getAdvancement(NamespacedKey.minecraft("story/enter_the_nether")); |
53 | | - this.enterEndAdvancement = this.plugin.getServer().getAdvancement(NamespacedKey.minecraft("story/enter_the_end")); |
| 53 | + this.enterNetherAdvancement = tryGetAdvancement("story/enter_the_nether"); |
| 54 | + this.enterEndAdvancement = tryGetAdvancement("story/enter_the_end"); |
| 55 | + } |
| 56 | + |
| 57 | + private Advancement tryGetAdvancement(String advancementName) { |
| 58 | + return Try.of(() -> this.plugin.getServer().getAdvancement(NamespacedKey.minecraft(advancementName))) |
| 59 | + .recover(e -> null) |
| 60 | + .getOrNull(); |
54 | 61 | } |
55 | 62 |
|
56 | 63 | @EventHandler |
@@ -133,9 +140,9 @@ public void onPlayerPortal(PlayerPortalEvent event) { |
133 | 140 | } |
134 | 141 |
|
135 | 142 | // Advancements need to be triggered manually |
136 | | - if (type == PortalType.NETHER && event.getTo().getWorld().getEnvironment() == World.Environment.NETHER) { |
| 143 | + if (type == PortalType.NETHER && event.getTo().getWorld().getEnvironment() == World.Environment.NETHER && enterNetherAdvancement != null) { |
137 | 144 | awardAdvancement(player, enterNetherAdvancement, ENTER_NETHER_CRITERIA); |
138 | | - } else if (type == PortalType.ENDER && event.getTo().getWorld().getEnvironment() == World.Environment.THE_END) { |
| 145 | + } else if (type == PortalType.ENDER && event.getTo().getWorld().getEnvironment() == World.Environment.THE_END && enterEndAdvancement != null) { |
139 | 146 | awardAdvancement(player, enterEndAdvancement, ENTER_END_CRITERIA); |
140 | 147 | } |
141 | 148 | } |
|
0 commit comments