Skip to content

Commit 16b1ed2

Browse files
committed
hacky fix for plugins using paper loader
1 parent 9ab5417 commit 16b1ed2

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

paper/src/main/java/org/incendo/interfaces/paper/PaperInterfaceListeners.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,17 @@ public class PaperInterfaceListeners implements Listener {
7676
"PLAYER", "UNKNOWN", "PLUGIN"
7777
);
7878

79-
private final @NonNull Plugin plugin;
79+
private static Plugin targetPlugin;
80+
81+
/**
82+
* Reference to plugin using Interfaces
83+
*
84+
* @return plugin reference
85+
*/
86+
public static Plugin plugin() {
87+
return targetPlugin;
88+
}
89+
8090
private final @NonNull Map<@NonNull SelfUpdatingInterfaceView, @NonNull Integer> updatingRunnables;
8191

8292
private final @Nullable Cache<UUID, Long> spamPrevention;
@@ -87,7 +97,7 @@ public class PaperInterfaceListeners implements Listener {
8797
* @param plugin the plugin instance to register against
8898
*/
8999
public PaperInterfaceListeners(final @NonNull Plugin plugin) {
90-
this.plugin = plugin;
100+
targetPlugin = plugin;
91101
this.updatingRunnables = new ConcurrentHashMap<>();
92102
this.spamPrevention = null;
93103
}
@@ -99,7 +109,7 @@ public PaperInterfaceListeners(final @NonNull Plugin plugin) {
99109
* @param clickThrottle the minimum amount of ticks between every accepted click
100110
*/
101111
public PaperInterfaceListeners(final @NonNull Plugin plugin, final long clickThrottle) {
102-
this.plugin = plugin;
112+
targetPlugin = plugin;
103113
this.updatingRunnables = new ConcurrentHashMap<>();
104114
this.spamPrevention = CacheBuilder.newBuilder().expireAfterWrite(
105115
50L * clickThrottle,
@@ -123,7 +133,7 @@ public static void install(final @NonNull Plugin plugin) {
123133
*/
124134
@EventHandler
125135
public void onDisable(final @NonNull PluginDisableEvent event) {
126-
if (event.getPlugin() != this.plugin) {
136+
if (event.getPlugin() != targetPlugin) {
127137
return;
128138
}
129139

@@ -184,10 +194,10 @@ public void run() {
184194

185195
if (view instanceof SelfUpdatingInterfaceView) {
186196
SelfUpdatingInterfaceView selfUpdating = (SelfUpdatingInterfaceView) view;
187-
runnable.runTaskTimerAsynchronously(this.plugin, updatingInterface.updateDelay(), updatingInterface.updateDelay());
197+
runnable.runTaskTimerAsynchronously(targetPlugin, updatingInterface.updateDelay(), updatingInterface.updateDelay());
188198
this.updatingRunnables.put(selfUpdating, runnable.getTaskId());
189199
} else {
190-
runnable.runTaskLaterAsynchronously(this.plugin, updatingInterface.updateDelay());
200+
runnable.runTaskLaterAsynchronously(targetPlugin, updatingInterface.updateDelay());
191201
}
192202
}
193203
}

paper/src/main/java/org/incendo/interfaces/paper/view/ChestView.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.incendo.interfaces.core.util.Vector2;
1919
import org.incendo.interfaces.core.view.InterfaceView;
2020
import org.incendo.interfaces.core.view.SelfUpdatingInterfaceView;
21+
import org.incendo.interfaces.paper.PaperInterfaceListeners;
2122
import org.incendo.interfaces.paper.PlayerViewer;
2223
import org.incendo.interfaces.paper.element.ItemStackElement;
2324
import org.incendo.interfaces.paper.pane.ChestPane;
@@ -33,6 +34,7 @@
3334
import java.util.HashSet;
3435
import java.util.List;
3536
import java.util.Map;
37+
import java.util.Objects;
3638
import java.util.Set;
3739

3840
/**
@@ -104,7 +106,10 @@ public ChestView(
104106
this.pane = new ChestPane(this.backing.rows());
105107
}
106108

107-
this.plugin = JavaPlugin.getProvidingPlugin(this.getClass());
109+
this.plugin = Objects.requireNonNullElseGet(
110+
PaperInterfaceListeners.plugin(),
111+
() -> JavaPlugin.getProvidingPlugin(this.getClass())
112+
);
108113

109114
if (Bukkit.isPrimaryThread()) {
110115
this.inventory = this.createInventory();

paper/src/main/java/org/incendo/interfaces/paper/view/CombinedView.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.incendo.interfaces.core.util.Vector2;
2020
import org.incendo.interfaces.core.view.InterfaceView;
2121
import org.incendo.interfaces.core.view.SelfUpdatingInterfaceView;
22+
import org.incendo.interfaces.paper.PaperInterfaceListeners;
2223
import org.incendo.interfaces.paper.PlayerViewer;
2324
import org.incendo.interfaces.paper.element.ItemStackElement;
2425
import org.incendo.interfaces.paper.pane.ChestPane;
@@ -35,6 +36,7 @@
3536
import java.util.HashSet;
3637
import java.util.List;
3738
import java.util.Map;
39+
import java.util.Objects;
3840
import java.util.Set;
3941

4042
/**
@@ -106,7 +108,10 @@ public CombinedView(
106108
this.pane = new CombinedPane(this.backing.totalRows());
107109
}
108110

109-
this.plugin = JavaPlugin.getProvidingPlugin(this.getClass());
111+
this.plugin = Objects.requireNonNullElseGet(
112+
PaperInterfaceListeners.plugin(),
113+
() -> JavaPlugin.getProvidingPlugin(this.getClass())
114+
);
110115

111116
if (Bukkit.isPrimaryThread()) {
112117
this.inventory = this.createInventory();

paper/src/main/java/org/incendo/interfaces/paper/view/PlayerInventoryView.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.incendo.interfaces.core.transform.InterruptUpdateException;
1717
import org.incendo.interfaces.core.view.InterfaceView;
1818
import org.incendo.interfaces.core.view.SelfUpdatingInterfaceView;
19+
import org.incendo.interfaces.paper.PaperInterfaceListeners;
1920
import org.incendo.interfaces.paper.PlayerViewer;
2021
import org.incendo.interfaces.paper.element.ItemStackElement;
2122
import org.incendo.interfaces.paper.pane.PlayerPane;
@@ -28,6 +29,7 @@
2829
import java.util.HashMap;
2930
import java.util.List;
3031
import java.util.Map;
32+
import java.util.Objects;
3133
import java.util.WeakHashMap;
3234

3335
public final class PlayerInventoryView implements
@@ -67,7 +69,11 @@ public PlayerInventoryView(
6769
oldView.close();
6870
}
6971

70-
this.plugin = JavaPlugin.getProvidingPlugin(this.getClass());
72+
this.plugin = Objects.requireNonNullElseGet(
73+
PaperInterfaceListeners.plugin(),
74+
() -> JavaPlugin.getProvidingPlugin(this.getClass())
75+
);
76+
7177
this.viewer = viewer;
7278
this.backing = backing;
7379
this.arguments = argument;

0 commit comments

Comments
 (0)