Skip to content

Commit

Permalink
Merge branch 'feature/plugins' into bleeding
Browse files Browse the repository at this point in the history
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/translators/PacketTranslatorRegistry.java
#	connector/src/main/java/org/geysermc/connector/network/translators/inventory/InventoryTranslator.java
#	connector/src/main/java/org/geysermc/connector/network/translators/item/ItemTranslator.java
#	connector/src/main/java/org/geysermc/connector/network/translators/sound/SoundHandlerRegistry.java
#	connector/src/main/java/org/geysermc/connector/network/translators/world/block/BlockTranslator.java
#	connector/src/main/java/org/geysermc/connector/utils/FileUtils.java
#	connector/src/main/java/org/geysermc/connector/utils/SkinUtils.java
  • Loading branch information
bundabrg committed Jul 11, 2020
2 parents 4ab71ad + 5950cdb commit e2546f5
Show file tree
Hide file tree
Showing 59 changed files with 880 additions and 123 deletions.
4 changes: 2 additions & 2 deletions bootstrap/bungeecord/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<parent>
<groupId>org.geysermc</groupId>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-bungeecord</artifactId>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.geysermc.connector.command.CommandManager;
import org.geysermc.connector.configuration.GeyserConfiguration;
import org.geysermc.connector.dump.BootstrapDumpInfo;
import org.geysermc.connector.event.events.geyser.GeyserStartEvent;
import org.geysermc.connector.ping.GeyserLegacyPingPassthrough;
import org.geysermc.connector.ping.IGeyserPingPassthrough;
import org.geysermc.connector.utils.FileUtils;
Expand Down Expand Up @@ -116,6 +117,9 @@ public void onEnable() {
}

this.getProxy().getPluginManager().registerCommand(this, new GeyserBungeeCommandExecutor(connector));

// Trigger GeyserStart Events
connector.getEventManager().triggerEvent(new GeyserStartEvent());
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion bootstrap/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<repositories>
<repository>
Expand Down
4 changes: 2 additions & 2 deletions bootstrap/spigot/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<parent>
<groupId>org.geysermc</groupId>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-spigot</artifactId>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.geysermc.connector.command.CommandManager;
import org.geysermc.connector.configuration.GeyserConfiguration;
import org.geysermc.connector.dump.BootstrapDumpInfo;
import org.geysermc.connector.event.events.geyser.GeyserStartEvent;
import org.geysermc.connector.network.translators.world.WorldManager;
import org.geysermc.connector.ping.GeyserLegacyPingPassthrough;
import org.geysermc.connector.ping.IGeyserPingPassthrough;
Expand Down Expand Up @@ -128,6 +129,9 @@ public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(blockPlaceListener, this);

this.getCommand("geyser").setExecutor(new GeyserSpigotCommandExecutor(connector));

// Trigger GeyserStart Events
connector.getEventManager().triggerEvent(new GeyserStartEvent());
}

@Override
Expand Down
4 changes: 2 additions & 2 deletions bootstrap/sponge/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<parent>
<groupId>org.geysermc</groupId>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-sponge</artifactId>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.geysermc.connector.bootstrap.GeyserBootstrap;
import org.geysermc.connector.command.CommandManager;
import org.geysermc.connector.dump.BootstrapDumpInfo;
import org.geysermc.connector.event.events.geyser.GeyserStartEvent;
import org.geysermc.connector.ping.GeyserLegacyPingPassthrough;
import org.geysermc.connector.ping.IGeyserPingPassthrough;
import org.geysermc.connector.utils.FileUtils;
Expand Down Expand Up @@ -128,6 +129,9 @@ public void onEnable() {

this.geyserCommandManager = new GeyserSpongeCommandManager(Sponge.getCommandManager(), connector);
Sponge.getCommandManager().register(this, new GeyserSpongeCommandExecutor(connector), "geyser");

// Trigger GeyserStart Events
connector.getEventManager().triggerEvent(new GeyserStartEvent());
}

@Override
Expand Down
10 changes: 8 additions & 2 deletions bootstrap/standalone/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<parent>
<groupId>org.geysermc</groupId>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-standalone</artifactId>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -70,6 +70,12 @@
<artifactId>log4j-slf4j18-impl</artifactId>
<version>2.13.1</version>
</dependency>
<!-- Provide SQLite for sharing with plugins -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.32.3</version>
</dependency>
</dependencies>
<build>
<finalName>${outputName}</finalName>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import org.geysermc.connector.command.CommandManager;
import org.geysermc.connector.configuration.GeyserConfiguration;
import org.geysermc.connector.dump.BootstrapDumpInfo;
import org.geysermc.connector.event.events.geyser.GeyserStartEvent;
import org.geysermc.connector.ping.GeyserLegacyPingPassthrough;
import org.geysermc.connector.ping.IGeyserPingPassthrough;
import org.geysermc.connector.utils.FileUtils;
Expand Down Expand Up @@ -127,6 +128,9 @@ public void onEnable() {

geyserPingPassthrough = GeyserLegacyPingPassthrough.init(connector);

// Trigger GeyserStart Events
connector.getEventManager().triggerEvent(new GeyserStartEvent());

if (!useGui) {
geyserLogger.start(); // Throws an error otherwise
}
Expand Down
4 changes: 2 additions & 2 deletions bootstrap/velocity/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
<parent>
<groupId>org.geysermc</groupId>
<artifactId>bootstrap-parent</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>bootstrap-velocity</artifactId>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import org.geysermc.connector.GeyserConnector;
import org.geysermc.connector.bootstrap.GeyserBootstrap;
import org.geysermc.connector.dump.BootstrapDumpInfo;
import org.geysermc.connector.event.events.geyser.GeyserStartEvent;
import org.geysermc.connector.ping.GeyserLegacyPingPassthrough;
import org.geysermc.connector.ping.IGeyserPingPassthrough;
import org.geysermc.connector.utils.FileUtils;
Expand Down Expand Up @@ -124,6 +125,9 @@ public void onEnable() {
} else {
this.geyserPingPassthrough = new GeyserVelocityPingPassthrough(proxyServer);
}

// Trigger GeyserStart Events
connector.getEventManager().triggerEvent(new GeyserStartEvent());
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<relativePath>../</relativePath>
</parent>
<artifactId>common</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

public class DropdownComponent extends FormComponent {
Expand All @@ -38,7 +39,7 @@ public class DropdownComponent extends FormComponent {

@Getter
@Setter
private List<String> options;
private List<String> options = new ArrayList<>();

@Getter
@Setter
Expand Down
4 changes: 2 additions & 2 deletions connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
<relativePath>../</relativePath>
</parent>
<artifactId>connector</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.geysermc</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
<version>1.1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import org.geysermc.connector.command.CommandManager;
import org.geysermc.connector.event.EventManager;
import org.geysermc.connector.configuration.GeyserConfiguration;
import org.geysermc.connector.event.events.network.BedrockCodecRegistryEvent;
import org.geysermc.connector.metrics.Metrics;
import org.geysermc.connector.network.ConnectorServerEventHandler;
import org.geysermc.connector.network.remote.RemoteServer;
Expand All @@ -56,8 +57,7 @@
import org.geysermc.connector.network.translators.world.block.BlockTranslator;
import org.geysermc.connector.network.translators.world.block.entity.BlockEntityTranslator;
import org.geysermc.connector.plugin.PluginManager;
import org.geysermc.connector.event.events.GeyserStopEvent;
import org.geysermc.connector.event.events.GeyserStartEvent;
import org.geysermc.connector.event.events.geyser.GeyserStopEvent;
import org.geysermc.connector.utils.DimensionUtils;
import org.geysermc.connector.utils.DockerCheck;
import org.geysermc.connector.utils.LocaleUtils;
Expand Down Expand Up @@ -118,8 +118,6 @@ private GeyserConnector(PlatformType platformType, GeyserBootstrap bootstrap) th
instance = this;

this.bootstrap = bootstrap;
this.eventManager = new EventManager(this);
this.pluginManager = new PluginManager(this, bootstrap.getConfigFolder().resolve("plugins").toFile());

logger = bootstrap.getGeyserLogger();
config = bootstrap.getGeyserConfig();
Expand All @@ -140,6 +138,14 @@ private GeyserConnector(PlatformType platformType, GeyserBootstrap bootstrap) th
GeyserEdition.registerEdition("bedrock", org.geysermc.connector.edition.mcpe.Edition.class);
GeyserEdition.registerEdition("education", org.geysermc.connector.edition.mcee.Edition.class);

this.eventManager = new EventManager(this);
this.pluginManager = new PluginManager(this, bootstrap.getConfigFolder().resolve("plugins").toFile());

// Set Codec
// BEDROCK_PACKET_CODEC = eventManager.triggerEvent(new BedrockCodecRegistryEvent(Bedrock_v407.V407_CODEC)).getEvent().getCodec();

PacketTranslatorRegistry.init();

try {
this.edition = GeyserEdition.create(this, config.getBedrock().getEdition());
} catch (GeyserEdition.InvalidEditionException e) {
Expand Down Expand Up @@ -205,6 +211,9 @@ private GeyserConnector(PlatformType platformType, GeyserBootstrap bootstrap) th
}
}

// Enable Plugins
pluginManager.enablePlugins();

double completeTime = (System.currentTimeMillis() - startupTime) / 1000D;
String message = LanguageUtils.getLocaleStringLog("geyser.core.finish.done", new DecimalFormat("#.###").format(completeTime)) + " ";
if (isGui) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,24 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.PriorityBlockingQueue;

@SuppressWarnings("unused")
@Getter
@AllArgsConstructor
public class EventManager {
private final Map<Class<? extends GeyserEvent>, PriorityQueue<EventHandler<? extends GeyserEvent>>> eventHandlers = new HashMap<>();
@Getter
private static EventManager instance;
private final Map<Class<? extends GeyserEvent>, PriorityBlockingQueue<EventHandler<? extends GeyserEvent>>> eventHandlers = new ConcurrentHashMap<>();
private final Map<Object, ArrayList<EventHandler<?>>> classEventHandlers = new HashMap<>();

private final GeyserConnector connector;

public EventManager(GeyserConnector connector) {
instance = this;
this.connector = connector;
}

/**
* Trigger a new event.
*
Expand All @@ -62,6 +69,7 @@ public class EventManager {
*/
public <T extends GeyserEvent> TriggerResult<T> triggerEvent(T event, Class<?> filter) {
if (eventHandlers.containsKey(event.getClass())) {

for (EventHandler<?> handler : eventHandlers.get(event.getClass())) {
if (handler.hasFilter(filter)) {
try {
Expand Down Expand Up @@ -92,7 +100,7 @@ public <T extends GeyserEvent> LambdaEventHandler.Builder<T> on(Class<T> cls, La
*/
public <T extends GeyserEvent> void register(EventHandler<T> handler) {
if (!eventHandlers.containsKey(handler.getEventClass())) {
eventHandlers.put(handler.getEventClass(), new PriorityQueue<>());
eventHandlers.put(handler.getEventClass(), new PriorityBlockingQueue<>());
}
eventHandlers.get(handler.getEventClass()).add(handler);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,12 @@

package org.geysermc.connector.event.events;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Getter
@ToString
@EqualsAndHashCode(callSuper = true)
@Data
public abstract class CancellableGeyserEvent extends GeyserEvent {
@Setter
private boolean cancelled = false;
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,8 @@

package org.geysermc.connector.event.events;

import lombok.Data;

@Data
public abstract class GeyserEvent {
}
Loading

0 comments on commit e2546f5

Please sign in to comment.