|
1 | 1 | package com.wasteofplastic.invswitcher.listeners; |
2 | 2 |
|
| 3 | +import org.bukkit.World; |
3 | 4 | import org.bukkit.event.EventHandler; |
4 | 5 | import org.bukkit.event.EventPriority; |
5 | 6 | import org.bukkit.event.Listener; |
@@ -34,22 +35,21 @@ public PlayerListener(InvSwitcher addon) { |
34 | 35 | */ |
35 | 36 | @EventHandler(priority = EventPriority.HIGH, ignoreCancelled=true) |
36 | 37 | public void onWorldEnter(final PlayerChangedWorldEvent event) { |
37 | | - if (!Util.sameWorld(event.getPlayer().getWorld(), event.getFrom()) |
38 | | - && (addon.getWorlds().contains(event.getPlayer().getWorld()) |
39 | | - || addon.getWorlds().contains(event.getFrom()))) { |
40 | | - addon.getStore().getInventory(event.getPlayer(), event.getPlayer().getWorld()); |
41 | | - } |
42 | | - } |
43 | | - |
44 | | - /** |
45 | | - * Saves inventory |
46 | | - * @param event - event |
47 | | - */ |
48 | | - @EventHandler(priority = EventPriority.LOW, ignoreCancelled=true) |
49 | | - public void onWorldExit(final PlayerChangedWorldEvent event) { |
50 | | - if (!Util.sameWorld(event.getPlayer().getWorld(), event.getFrom())) { |
51 | | - addon.getStore().storeInventory(event.getPlayer(), event.getFrom()); |
| 38 | + /* |
| 39 | + * 0. From same world (e.g., nether/end) to same world. |
| 40 | + * 1. From non-game world to non-game world |
| 41 | + * 2. From non-game world to game world |
| 42 | + * 3. From game world to non-game world |
| 43 | + * 4. From game world to another game world |
| 44 | + * |
| 45 | + */ |
| 46 | + World from = event.getFrom(); |
| 47 | + World to = event.getPlayer().getWorld(); |
| 48 | + if (Util.sameWorld(to, from) || (!addon.getWorlds().contains(from) && !addon.getWorlds().contains(to))) { |
| 49 | + return; |
52 | 50 | } |
| 51 | + addon.getStore().storeInventory(event.getPlayer(), from); |
| 52 | + addon.getStore().getInventory(event.getPlayer(), to); |
53 | 53 | } |
54 | 54 |
|
55 | 55 |
|
|
0 commit comments