Skip to content

Commit ecc95dd

Browse files
committed
🚑️ Events deprecated + 1.21.3
1 parent 6493734 commit ecc95dd

File tree

4 files changed

+113
-112
lines changed

4 files changed

+113
-112
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99
# 💻 For Developers
1010

11-
This library is designed to work specifically with PaperMC version 1.21.1.<br/>
11+
This library is designed to work specifically with PaperMC version 1.21.3.<br/>
1212
Running on Java 21. Use with other Minecraft versions at your own risk.
1313

1414
Based on our testing, version 4.2.0 of Plus is the most compatible with older versions of Minecraft.
15-
If you are using a Minecraft version other than 1.21.1, we recommend using Plus version 4.3.1.
16-
For Minecraft 1.21.1 or newer, use the latest version of Plus for optimal compatibility.
15+
If you are using a Minecraft version other than 1.21.3, we recommend using Plus version 4.3.1.
16+
For Minecraft 1.21.3 or newer, use the latest version of Plus for optimal compatibility.
1717

1818
## 🐘 Gradle
1919
### Groovy
@@ -23,7 +23,7 @@ repositories {
2323
}
2424
2525
dependencies {
26-
implementation 'com.marcusslover:plus:4.3.1-SNAPSHOT'
26+
implementation 'com.marcusslover:plus:4.3.3-SNAPSHOT'
2727
}
2828
```
2929
### Kotlin
@@ -33,7 +33,7 @@ repositories {
3333
}
3434

3535
dependencies {
36-
implementation("com.marcusslover:plus:4.3.1-SNAPSHOT")
36+
implementation("com.marcusslover:plus:4.3.3-SNAPSHOT")
3737
}
3838
```
3939
## 🦢 Maven
@@ -46,6 +46,6 @@ dependencies {
4646
<dependency>
4747
<groupId>com.marcusslover</groupId>
4848
<artifactId>plus</artifactId>
49-
<version>4.3.1-SNAPSHOT</version>
49+
<version>4.3.3-SNAPSHOT</version>
5050
</dependency>
5151
```

build.gradle

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ repositories {
1111
}
1212

1313
dependencies {
14-
compileOnly 'org.jetbrains:annotations:24.0.0'
15-
compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
16-
compileOnly 'com.comphenix.protocol:ProtocolLib:4.8.0'
14+
compileOnly 'org.jetbrains:annotations:26.0.1'
15+
compileOnly 'io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT'
16+
compileOnly 'com.comphenix.protocol:ProtocolLib:5.3.0'
1717

18-
compileOnly 'org.projectlombok:lombok:1.18.34'
19-
annotationProcessor 'org.projectlombok:lombok:1.18.34'
18+
compileOnly 'org.projectlombok:lombok:1.18.36'
19+
annotationProcessor 'org.projectlombok:lombok:1.18.36'
2020

21-
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
22-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
23-
testImplementation 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
21+
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.4'
22+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.4'
23+
testImplementation 'io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT'
2424
}
2525

2626
group 'com.marcusslover'
27-
version '4.3.1-SNAPSHOT'
27+
version '4.3.3-SNAPSHOT'
2828
ext.isReleaseVersion = !version.endsWith("SNAPSHOT")
2929

3030
java {

src/main/java/com/marcusslover/plus/lib/events/Events.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.function.Consumer;
1212

1313
// not sure if this is a good idea
14+
@Deprecated
1415
public class Events {
1516

1617
/**

src/main/java/com/marcusslover/plus/lib/item/MenuManager.java

Lines changed: 97 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.marcusslover.plus.lib.item;
22

3-
import com.marcusslover.plus.lib.events.EventReference;
4-
import com.marcusslover.plus.lib.events.Events;
53
import com.marcusslover.plus.lib.item.Button.DetectableArea;
64
import com.marcusslover.plus.lib.item.Canvas.ItemDecorator;
75
import com.marcusslover.plus.lib.item.event.PlayerMenuOpenEvent;
86
import org.bukkit.Bukkit;
97
import org.bukkit.entity.Player;
8+
import org.bukkit.event.EventHandler;
9+
import org.bukkit.event.HandlerList;
10+
import org.bukkit.event.Listener;
1011
import org.bukkit.event.inventory.InventoryClickEvent;
1112
import org.bukkit.event.inventory.InventoryCloseEvent;
1213
import org.bukkit.inventory.Inventory;
@@ -19,138 +20,138 @@
1920
import java.util.List;
2021
import java.util.Set;
2122

22-
public final class MenuManager {
23+
public final class MenuManager implements Listener {
2324
private final @NotNull Plugin plugin;
2425
private final @NotNull List<@NotNull Menu> menus = new LinkedList<>();
2526

26-
private final @NotNull EventReference<InventoryCloseEvent> closeEvent;
27-
private final @NotNull EventReference<InventoryClickEvent> clickEvent;
28-
2927
// Global click context
3028
private @Nullable Canvas.GenericClick genericClick = null;
3129

3230
public MenuManager(@NotNull Plugin plugin) {
3331
this.plugin = plugin;
34-
this.closeEvent = Events.listen(InventoryCloseEvent.class).handler(event -> {
35-
InventoryView view = event.getView();
36-
Inventory inventory = view.getTopInventory();
37-
Player player = (Player) event.getPlayer();
32+
Bukkit.getPluginManager().registerEvents(this, plugin);
33+
}
3834

39-
if (!(inventory.getHolder() instanceof Canvas canvas)) {
40-
return;
41-
}
35+
@EventHandler
36+
public void onClose(InventoryCloseEvent event) {
37+
InventoryView view = event.getView();
38+
Inventory inventory = view.getTopInventory();
39+
Player player = (Player) event.getPlayer();
4240

43-
// empty or invalid inventory shouldn't be handled
44-
if (canvas.assosiatedInventory() == null) return;
41+
if (!(inventory.getHolder() instanceof Canvas canvas)) {
42+
return;
43+
}
4544

46-
// handle the close event action
47-
Canvas.ClickContext closeInventory = canvas.closeInventory();
48-
if (closeInventory != null) {
49-
Canvas.CloseInventory function = closeInventory.closeInventory();
50-
if (function != null) {
51-
try {
52-
function.onClose(player, event, canvas);
53-
} catch (Throwable e) {
54-
if (closeInventory.throwableConsumer() != null) {
55-
closeInventory.throwableConsumer().accept(e);
56-
} else {
57-
Bukkit.getLogger().warning(e.getMessage());
58-
}
45+
// empty or invalid inventory shouldn't be handled
46+
if (canvas.assosiatedInventory() == null) return;
47+
48+
// handle the close event action
49+
Canvas.ClickContext closeInventory = canvas.closeInventory();
50+
if (closeInventory != null) {
51+
Canvas.CloseInventory function = closeInventory.closeInventory();
52+
if (function != null) {
53+
try {
54+
function.onClose(player, event, canvas);
55+
} catch (Throwable e) {
56+
if (closeInventory.throwableConsumer() != null) {
57+
closeInventory.throwableConsumer().accept(e);
58+
} else {
59+
Bukkit.getLogger().warning(e.getMessage());
5960
}
6061
}
6162
}
63+
}
6264

63-
Menu menu = canvas.assosiatedMenu();
64-
Canvas remove = menu.canvasMap().remove(player.getUniqueId());
65-
if (remove != null) {
66-
remove.clear(); // help the gc
67-
}
68-
menu.close(canvas, player); // call the close method so developers can handle it
65+
Menu menu = canvas.assosiatedMenu();
66+
Canvas remove = menu.canvasMap().remove(player.getUniqueId());
67+
if (remove != null) {
68+
remove.clear(); // help the gc
69+
}
70+
menu.close(canvas, player); // call the close method so developers can handle it
71+
}
6972

70-
}).asRegistered(plugin);
73+
@EventHandler
74+
public void onClick(InventoryClickEvent event) {
75+
InventoryView view = event.getView();
76+
Inventory inventory = view.getTopInventory();
7177

72-
this.clickEvent = Events.listen(InventoryClickEvent.class).handler(event -> {
73-
InventoryView view = event.getView();
74-
Inventory inventory = view.getTopInventory();
78+
if (!(inventory.getHolder() instanceof Canvas canvas)) {
79+
return;
80+
}
7581

76-
if (!(inventory.getHolder() instanceof Canvas canvas)) {
77-
return;
78-
}
82+
event.setCancelled(true);
83+
int slot = event.getRawSlot();
84+
int size = inventory.getSize();
7985

80-
event.setCancelled(true);
81-
int slot = event.getRawSlot();
82-
int size = inventory.getSize();
86+
Item item = Item.of(event.getCurrentItem());
8387

84-
Item item = Item.of(event.getCurrentItem());
88+
// handle the generic click context (global)
89+
if (this.genericClick != null) {
90+
try {
91+
this.genericClick.onClick((Player) event.getWhoClicked(), item, event, canvas);
92+
} catch (Throwable e) {
93+
Bukkit.getLogger().warning(e.getMessage());
94+
}
95+
}
8596

86-
// handle the generic click context (global)
87-
if (this.genericClick != null) {
97+
Canvas.ClickContext genericClick = canvas.genericClick();
98+
if (genericClick != null) {
99+
Canvas.ButtonClick buttonClick = genericClick.click();
100+
if (buttonClick != null) {
88101
try {
89-
this.genericClick.onClick((Player) event.getWhoClicked(), item, event, canvas);
102+
buttonClick.onClick((Player) event.getWhoClicked(), item, event, canvas);
90103
} catch (Throwable e) {
91-
Bukkit.getLogger().warning(e.getMessage());
104+
if (genericClick.throwableConsumer() != null) {
105+
genericClick.throwableConsumer().accept(e);
106+
} else {
107+
Bukkit.getLogger().warning(e.getMessage());
108+
}
92109
}
93110
}
111+
}
94112

95-
Canvas.ClickContext genericClick = canvas.genericClick();
96-
if (genericClick != null) {
97-
Canvas.ButtonClick buttonClick = genericClick.click();
113+
if (slot > size) {
114+
Canvas.ClickContext selfInventory = canvas.selfInventory();
115+
if (selfInventory != null) {
116+
Canvas.ButtonClick buttonClick = selfInventory.click();
98117
if (buttonClick != null) {
99118
try {
100119
buttonClick.onClick((Player) event.getWhoClicked(), item, event, canvas);
101120
} catch (Throwable e) {
102-
if (genericClick.throwableConsumer() != null) {
103-
genericClick.throwableConsumer().accept(e);
121+
if (selfInventory.throwableConsumer() != null) {
122+
selfInventory.throwableConsumer().accept(e);
104123
} else {
105124
Bukkit.getLogger().warning(e.getMessage());
106125
}
107126
}
108127
}
109128
}
129+
return;
130+
}
110131

111-
if (slot > size) {
112-
Canvas.ClickContext selfInventory = canvas.selfInventory();
113-
if (selfInventory != null) {
114-
Canvas.ButtonClick buttonClick = selfInventory.click();
115-
if (buttonClick != null) {
116-
try {
117-
buttonClick.onClick((Player) event.getWhoClicked(), item, event, canvas);
118-
} catch (Throwable e) {
119-
if (selfInventory.throwableConsumer() != null) {
120-
selfInventory.throwableConsumer().accept(e);
121-
} else {
122-
Bukkit.getLogger().warning(e.getMessage());
123-
}
124-
}
132+
canvas.buttons().stream()
133+
.filter(button -> button.within(slot))
134+
.findFirst()
135+
.ifPresent(button -> {
136+
Player player = (Player) event.getWhoClicked();
137+
Canvas.ClickContext context = button.clickContext();
138+
if (context == null) {
139+
return;
125140
}
126-
}
127-
return;
128-
}
129-
130-
canvas.buttons().stream()
131-
.filter(button -> button.within(slot))
132-
.findFirst()
133-
.ifPresent(button -> {
134-
Player player = (Player) event.getWhoClicked();
135-
Canvas.ClickContext context = button.clickContext();
136-
if (context == null) {
137-
return;
138-
}
139-
Canvas.ButtonClick click = context.click();
140-
if (click == null) {
141-
return;
142-
}
143-
try {
144-
click.onClick(player, item, event, canvas);
145-
} catch (Throwable e) {
146-
if (context.throwableConsumer() != null) {
147-
context.throwableConsumer().accept(e);
148-
} else {
149-
Bukkit.getLogger().warning(e.getMessage());
150-
}
141+
Canvas.ButtonClick click = context.click();
142+
if (click == null) {
143+
return;
144+
}
145+
try {
146+
click.onClick(player, item, event, canvas);
147+
} catch (Throwable e) {
148+
if (context.throwableConsumer() != null) {
149+
context.throwableConsumer().accept(e);
150+
} else {
151+
Bukkit.getLogger().warning(e.getMessage());
151152
}
152-
});
153-
}).asRegistered(plugin);
153+
}
154+
});
154155
}
155156

156157
@Deprecated
@@ -370,7 +371,6 @@ private void updateInventory(@NotNull Player player, @NotNull Inventory inventor
370371
*/
371372
public void clearMenus() {
372373
this.menus.clear();
373-
this.clickEvent.unregister();
374-
this.closeEvent.unregister();
374+
HandlerList.unregisterAll(this);
375375
}
376376
}

0 commit comments

Comments
 (0)