• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/org/cyclops/integrateddynamics/core/network/event/NetworkEventBus.java
1
package org.cyclops.integrateddynamics.core.network.event;
2

3
import com.google.common.collect.Maps;
4
import net.neoforged.bus.EventBus;
5
import org.cyclops.cyclopscore.helper.CollectionHelpers;
6
import org.cyclops.integrateddynamics.api.network.IEventListenableNetworkElement;
7
import org.cyclops.integrateddynamics.api.network.INetwork;
8
import org.cyclops.integrateddynamics.api.network.INetworkElement;
9
import org.cyclops.integrateddynamics.api.network.INetworkEventListener;
10
import org.cyclops.integrateddynamics.api.network.event.ICancelableNetworkEvent;
11
import org.cyclops.integrateddynamics.api.network.event.INetworkEvent;
12
import org.cyclops.integrateddynamics.api.network.event.INetworkEventBus;
13

14
import java.util.Collections;
15
import java.util.Map;
16
import java.util.Set;
17

18
/**
19
 * An event bus for {@link INetwork} events where
20
 * {@link INetworkElement} instances can listen to.
21
 *
22
 * Partially based on Minecraft Forge's {@link EventBus} implementation.
23
 *
24
 * @author rubensworks
25
 */
26
public class NetworkEventBus implements INetworkEventBus {
×
27

28
    private final Map<Class<? extends INetworkEvent>, Set<IEventListenableNetworkElement<?>>> listeners = Collections.synchronizedMap(Maps.<Class<? extends INetworkEvent>, Set<IEventListenableNetworkElement<?>>>newHashMap());
×
29

30
    @Override
31
    public void register(IEventListenableNetworkElement<?> target, Class<? extends INetworkEvent> eventType) {
32
        CollectionHelpers.addToMapSet(this.listeners, eventType, target);
×
33
    }
×
34

35
    @Override
36
    public void unregister(IEventListenableNetworkElement<?> target, Class<? extends INetworkEvent> eventType) {
37
        Set<IEventListenableNetworkElement<?>> listeners = this.listeners.get(eventType);
×
38
        if(listeners != null) {
×
39
            listeners.remove(target);
×
40
        }
41
    }
×
42

43
    @Override
44
    public void unregister(IEventListenableNetworkElement<?> target) {
45
        target.getNetworkEventListener().ifPresent(listener -> {
×
46
            for(Class<? extends INetworkEvent> eventType : listener.getSubscribedEvents()) {
×
47
                unregister(target, eventType);
×
48
            }
×
49
        });
×
50
    }
×
51

52
    @Override
53
    public void post(INetworkEvent event) {
54
        Set<IEventListenableNetworkElement<?>> listeners = this.listeners.get(event.getClass());
×
55
        if(listeners != null) {
×
56
            for (IEventListenableNetworkElement<?> listener : listeners) {
×
57
                listener.getNetworkEventListener().ifPresent(l -> ((INetworkEventListener) l).onEvent(event, listener));
×
58
            }
×
59
        }
60
    }
×
61

62
    @Override
63
    public boolean postCancelable(ICancelableNetworkEvent event) {
64
        post(event);
×
65
        return !event.isCanceled();
×
66
    }
67

68
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc