Skip to content

Commit 5d7d256

Browse files
jhg023aramperes
authored andcommitted
Implement InventoryOpenEvent (#938)
Related to #922.
1 parent 5ea0b55 commit 5d7d256

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/main/java/net/glowstone/entity/GlowHumanEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ private GlowInventory getTopInventory() {
440440
return (GlowInventory) getOpenInventory().getTopInventory();
441441
}
442442

443-
private void resetInventoryView() {
443+
void resetInventoryView() {
444444
openInventory(new GlowInventoryView(this));
445445
}
446446

src/main/java/net/glowstone/entity/GlowPlayer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160
import org.bukkit.event.entity.EntityRegainHealthEvent;
161161
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
162162
import org.bukkit.event.entity.FoodLevelChangeEvent;
163+
import org.bukkit.event.inventory.InventoryOpenEvent;
163164
import org.bukkit.event.player.AsyncPlayerChatEvent;
164165
import org.bukkit.event.player.PlayerAchievementAwardedEvent;
165166
import org.bukkit.event.player.PlayerBedEnterEvent;
@@ -3042,6 +3043,13 @@ public void openInventory(InventoryView view) {
30423043
invMonitor = new InventoryMonitor(getOpenInventory());
30433044
int viewId = invMonitor.getId();
30443045
if (viewId != 0) {
3046+
InventoryOpenEvent event = EventFactory.getInstance().callEvent(
3047+
new InventoryOpenEvent(view));
3048+
if (event.isCancelled()) {
3049+
// close the inventory but don't fire the InventoryCloseEvent
3050+
resetInventoryView();
3051+
return;
3052+
}
30453053
String title = view.getTitle();
30463054
boolean defaultTitle = Objects.equals(view.getType().getDefaultTitle(), title);
30473055
if (view.getTopInventory() instanceof PlayerInventory && defaultTitle) {

0 commit comments

Comments
 (0)