Skip to content

Commit e010fb3

Browse files
authored
Remove duplicate registration checks, and some minor code cleanup (#60)
1 parent f29ef3d commit e010fb3

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

src/main/java/net/minecraftforge/eventbus/ASMEventHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ASMEventHandler implements IEventListener {
1313
private final IEventListenerFactory factory;
1414
private final IEventListener handler;
1515
private final SubscribeEvent subInfo;
16-
private String readable;
16+
private final String readable;
1717
private Type filter = null;
1818

1919
public ASMEventHandler(IEventListenerFactory factory, Object target, Method method, boolean isGeneric) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, ClassNotFoundException {

src/main/java/net/minecraftforge/eventbus/EventBus.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
public class EventBus implements IEventExceptionHandler, IEventBus {
2525
private static final Logger LOGGER = LogManager.getLogger();
2626
private static final boolean checkTypesOnDispatchProperty = Boolean.parseBoolean(System.getProperty("eventbus.checkTypesOnDispatch", "false"));
27-
private static AtomicInteger maxID = new AtomicInteger(0);
27+
private static final AtomicInteger maxID = new AtomicInteger(0);
2828
private final boolean trackPhases;
2929

30-
private ConcurrentHashMap<Object, List<IEventListener>> listeners = new ConcurrentHashMap<>();
30+
private final ConcurrentHashMap<Object, List<IEventListener>> listeners = new ConcurrentHashMap<>();
3131
private final int busID = maxID.getAndIncrement();
3232
private final IEventExceptionHandler exceptionHandler;
3333
private volatile boolean shutdown = false;
@@ -161,34 +161,32 @@ private void registerListener(final Object target, final Method method, final Me
161161

162162
private static final Predicate<Event> checkCancelled = e -> !e.isCanceled();
163163
@SuppressWarnings("unchecked")
164-
private <T extends Event> Predicate<T> passCancelled(boolean ignored) {
164+
private static <T extends Event> Predicate<T> passCancelled(boolean ignored) {
165165
return ignored ? null : (Predicate<T>)checkCancelled;
166166
}
167167

168-
private <T extends GenericEvent<? extends F>, F> Predicate<T> passGenericFilter(Class<F> type, boolean ignored) {
168+
private static <T extends GenericEvent<? extends F>, F> Predicate<T> passGenericFilter(Class<F> type, boolean ignored) {
169169
if (ignored)
170170
return e -> e.getGenericType() == type;
171171
return e -> e.getGenericType() == type && !e.isCanceled();
172172
}
173173

174-
private void checkNotGeneric(final Consumer<? extends Event> consumer) {
174+
private static void checkNotGeneric(final Consumer<? extends Event> consumer) {
175175
checkNotGeneric(getEventClass(consumer));
176176
}
177177

178-
private void checkNotGeneric(final Class<? extends Event> eventType) {
178+
private static void checkNotGeneric(final Class<? extends Event> eventType) {
179179
if (GenericEvent.class.isAssignableFrom(eventType))
180180
throw new IllegalArgumentException("Cannot register a generic event listener with addListener, use addGenericListener");
181181
}
182182

183183
@Override
184184
public <T extends Event> void addListener(final Consumer<T> consumer) {
185-
checkNotGeneric(consumer);
186185
addListener(EventPriority.NORMAL, consumer);
187186
}
188187

189188
@Override
190189
public <T extends Event> void addListener(final EventPriority priority, final Consumer<T> consumer) {
191-
checkNotGeneric(consumer);
192190
addListener(priority, false, consumer);
193191
}
194192

@@ -225,7 +223,7 @@ public <T extends GenericEvent<? extends F>, F> void addGenericListener(final Cl
225223
}
226224

227225
@SuppressWarnings("unchecked")
228-
private <T extends Event> Class<T> getEventClass(Consumer<T> consumer) {
226+
private static <T extends Event> Class<T> getEventClass(Consumer<T> consumer) {
229227
final Class<T> eventClass = (Class<T>) TypeResolver.resolveRawArgument(Consumer.class, consumer.getClass());
230228
if ((Class<?>)eventClass == TypeResolver.Unknown.class) {
231229
LOGGER.error(EVENTBUS, "Failed to resolve handler for \"{}\"", consumer.toString());
@@ -252,7 +250,7 @@ private <T extends Event> void addListener(final EventPriority priority, final P
252250
}
253251

254252
@SuppressWarnings("unchecked")
255-
private <T extends Event> void doCastFilter(final Predicate<? super T> filter, final Class<T> eventClass, final Consumer<T> consumer, final Event e) {
253+
private static <T extends Event> void doCastFilter(final Predicate<? super T> filter, final Class<T> eventClass, final Consumer<T> consumer, final Event e) {
256254
T cast = (T)e;
257255
if (filter == null || filter.test(cast))
258256
consumer.accept(cast);

src/main/java/net/minecraftforge/eventbus/ListenerList.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717

1818

1919
public class ListenerList {
20-
private static List<ListenerList> allLists = new ArrayList<>();
20+
private static final List<ListenerList> allLists = new ArrayList<>();
2121
private static int maxSize = 0;
2222

2323
@Nullable
24-
private ListenerList parent;
24+
private final ListenerList parent;
2525
private ListenerListInst[] lists = new ListenerListInst[0];
2626

2727
public ListenerList() {
@@ -97,13 +97,13 @@ public static synchronized void unregisterAll(int id, IEventListener listener) {
9797
list.unregister(id, listener);
9898
}
9999

100-
private class ListenerListInst {
100+
private static class ListenerListInst {
101101
private boolean rebuild = true;
102102
private AtomicReference<IEventListener[]> listeners = new AtomicReference<>();
103-
private ArrayList<ArrayList<IEventListener>> priorities;
103+
private final ArrayList<ArrayList<IEventListener>> priorities;
104104
private ListenerListInst parent;
105105
private List<ListenerListInst> children;
106-
private Semaphore writeLock = new Semaphore(1, true);
106+
private final Semaphore writeLock = new Semaphore(1, true);
107107

108108
private ListenerListInst() {
109109
int count = EventPriority.values().length;

0 commit comments

Comments
 (0)