From 621a5c3051a6d2561553d6f3732598a85679da71 Mon Sep 17 00:00:00 2001 From: Morphan1 Date: Tue, 18 Oct 2016 19:41:32 -0400 Subject: [PATCH] Add PlayerJoins event --- .../denizen2sponge/Denizen2Sponge.java | 2 + .../events/player/PlayerChatsScriptEvent.java | 180 +++++++++--------- .../events/player/PlayerJoinsScriptEvent.java | 88 +++++++++ 3 files changed, 180 insertions(+), 90 deletions(-) create mode 100644 src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerJoinsScriptEvent.java diff --git a/src/main/java/com/denizenscript/denizen2sponge/Denizen2Sponge.java b/src/main/java/com/denizenscript/denizen2sponge/Denizen2Sponge.java index 5ba513c..aa2816b 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/Denizen2Sponge.java +++ b/src/main/java/com/denizenscript/denizen2sponge/Denizen2Sponge.java @@ -16,6 +16,7 @@ import com.denizenscript.denizen2sponge.events.entity.EntityDamagedScriptEvent; import com.denizenscript.denizen2sponge.events.player.PlayerBreaksBlockScriptEvent; import com.denizenscript.denizen2sponge.events.player.PlayerChatsScriptEvent; +import com.denizenscript.denizen2sponge.events.player.PlayerJoinsScriptEvent; import com.denizenscript.denizen2sponge.events.player.PlayerPlacesBlockScriptEvent; import com.denizenscript.denizen2sponge.events.player.PlayerRightClicksBlockScriptEvent; import com.denizenscript.denizen2sponge.events.player.PlayerRightClicksEntityScriptEvent; @@ -118,6 +119,7 @@ public void onServerStart(GamePreInitializationEvent event) { // Events: Player Denizen2Core.register(new PlayerBreaksBlockScriptEvent()); Denizen2Core.register(new PlayerChatsScriptEvent()); + Denizen2Core.register(new PlayerJoinsScriptEvent()); Denizen2Core.register(new PlayerPlacesBlockScriptEvent()); Denizen2Core.register(new PlayerRightClicksBlockScriptEvent()); Denizen2Core.register(new PlayerRightClicksEntityScriptEvent()); diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerChatsScriptEvent.java b/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerChatsScriptEvent.java index d5c6faa..eec117c 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerChatsScriptEvent.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerChatsScriptEvent.java @@ -1,90 +1,90 @@ -package com.denizenscript.denizen2sponge.events.player; - -import com.denizenscript.denizen2core.events.ScriptEvent; -import com.denizenscript.denizen2core.tags.AbstractTagObject; -import com.denizenscript.denizen2sponge.Denizen2Sponge; -import com.denizenscript.denizen2sponge.tags.objects.FormattedTextTag; -import com.denizenscript.denizen2sponge.tags.objects.PlayerTag; -import org.spongepowered.api.Sponge; -import org.spongepowered.api.entity.living.player.Player; -import org.spongepowered.api.event.Listener; -import org.spongepowered.api.event.filter.cause.Root; -import org.spongepowered.api.event.message.MessageChannelEvent; - -import java.util.HashMap; - -public class PlayerChatsScriptEvent extends ScriptEvent { - - // <--[event] - // @Events - // player chats - // - // @Updated 2016/10/18 - // - // @Cancellable true - // - // @Triggers when a player sends a chat message. - // - // @Context - // player (PlayerTag) returns the player that sent the message. - // message (FormattedTextTag) returns the chat message. - // - // @Determinations - // None. - // --> - - @Override - public String getName() { - return "PlayerChats"; - } - - @Override - public boolean couldMatch(ScriptEventData data) { - return data.eventPath.startsWith("player chats"); - } - - @Override - public boolean matches(ScriptEventData data) { - return true; - } - - public PlayerTag player; - - public FormattedTextTag message; - - public MessageChannelEvent.Chat internal; - - @Override - public HashMap getDefinitions(ScriptEventData data) { - HashMap defs = super.getDefinitions(data); - defs.put("player", player); - defs.put("message", message); - return defs; - } - - @Override - public void enable() { - Sponge.getEventManager().registerListeners(Denizen2Sponge.instance, this); - } - - @Override - public void disable() { - Sponge.getEventManager().unregisterListeners(this); - } - - @Listener - public void onChat(MessageChannelEvent.Chat evt, @Root Player player) { - PlayerChatsScriptEvent event = (PlayerChatsScriptEvent) clone(); - event.internal = evt; - event.player = new PlayerTag(player); - event.message = new FormattedTextTag(evt.getRawMessage()); - event.cancelled = evt.isCancelled(); - event.run(); - evt.setCancelled(event.cancelled); - } - - @Override - public void applyDetermination(boolean errors, String determination, AbstractTagObject value) { - super.applyDetermination(errors, determination, value); - } -} +package com.denizenscript.denizen2sponge.events.player; + +import com.denizenscript.denizen2core.events.ScriptEvent; +import com.denizenscript.denizen2core.tags.AbstractTagObject; +import com.denizenscript.denizen2sponge.Denizen2Sponge; +import com.denizenscript.denizen2sponge.tags.objects.FormattedTextTag; +import com.denizenscript.denizen2sponge.tags.objects.PlayerTag; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.entity.living.player.Player; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.filter.cause.Root; +import org.spongepowered.api.event.message.MessageChannelEvent; + +import java.util.HashMap; + +public class PlayerChatsScriptEvent extends ScriptEvent { + + // <--[event] + // @Events + // player chats + // + // @Updated 2016/10/18 + // + // @Cancellable true + // + // @Triggers when a player sends a chat message. + // + // @Context + // player (PlayerTag) returns the player that sent the message. + // message (FormattedTextTag) returns the chat message. + // + // @Determinations + // None. + // --> + + @Override + public String getName() { + return "PlayerChats"; + } + + @Override + public boolean couldMatch(ScriptEventData data) { + return data.eventPath.startsWith("player chats"); + } + + @Override + public boolean matches(ScriptEventData data) { + return true; + } + + public PlayerTag player; + + public FormattedTextTag message; + + public MessageChannelEvent.Chat internal; + + @Override + public HashMap getDefinitions(ScriptEventData data) { + HashMap defs = super.getDefinitions(data); + defs.put("player", player); + defs.put("message", message); + return defs; + } + + @Override + public void enable() { + Sponge.getEventManager().registerListeners(Denizen2Sponge.instance, this); + } + + @Override + public void disable() { + Sponge.getEventManager().unregisterListeners(this); + } + + @Listener + public void onChat(MessageChannelEvent.Chat evt, @Root Player player) { + PlayerChatsScriptEvent event = (PlayerChatsScriptEvent) clone(); + event.internal = evt; + event.player = new PlayerTag(player); + event.message = new FormattedTextTag(evt.getRawMessage()); + event.cancelled = evt.isCancelled(); + event.run(); + evt.setCancelled(event.cancelled); + } + + @Override + public void applyDetermination(boolean errors, String determination, AbstractTagObject value) { + super.applyDetermination(errors, determination, value); + } +} diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerJoinsScriptEvent.java b/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerJoinsScriptEvent.java new file mode 100644 index 0000000..53e8751 --- /dev/null +++ b/src/main/java/com/denizenscript/denizen2sponge/events/player/PlayerJoinsScriptEvent.java @@ -0,0 +1,88 @@ +package com.denizenscript.denizen2sponge.events.player; + +import com.denizenscript.denizen2core.events.ScriptEvent; +import com.denizenscript.denizen2core.tags.AbstractTagObject; +import com.denizenscript.denizen2sponge.Denizen2Sponge; +import com.denizenscript.denizen2sponge.tags.objects.FormattedTextTag; +import com.denizenscript.denizen2sponge.tags.objects.PlayerTag; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.entity.living.player.Player; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.filter.cause.Root; +import org.spongepowered.api.event.network.ClientConnectionEvent; + +import java.util.HashMap; + +public class PlayerJoinsScriptEvent extends ScriptEvent { + + // <--[event] + // @Events + // player chats + // + // @Updated 2016/10/18 + // + // @Cancellable false + // + // @Triggers when a player successfully joins the server. + // + // @Context + // player (PlayerTag) returns the player that joined. + // message (FormattedTextTag) returns the message that will be broadcast to the server. + // + // @Determinations + // None. + // --> + + @Override + public String getName() { + return "PlayerJoins"; + } + + @Override + public boolean couldMatch(ScriptEventData data) { + return data.eventPath.startsWith("player joins"); + } + + @Override + public boolean matches(ScriptEventData data) { + return true; + } + + public PlayerTag player; + + public FormattedTextTag message; + + public ClientConnectionEvent.Join internal; + + @Override + public HashMap getDefinitions(ScriptEventData data) { + HashMap defs = super.getDefinitions(data); + defs.put("player", player); + defs.put("message", message); + return defs; + } + + @Override + public void enable() { + Sponge.getEventManager().registerListeners(Denizen2Sponge.instance, this); + } + + @Override + public void disable() { + Sponge.getEventManager().unregisterListeners(this); + } + + @Listener + public void onJoin(ClientConnectionEvent.Join evt, @Root Player player) { + PlayerJoinsScriptEvent event = (PlayerJoinsScriptEvent) clone(); + event.internal = evt; + event.player = new PlayerTag(player); + event.message = new FormattedTextTag(evt.getMessage()); + event.run(); + } + + @Override + public void applyDetermination(boolean errors, String determination, AbstractTagObject value) { + super.applyDetermination(errors, determination, value); + } +}