Skip to content
This repository has been archived by the owner on Apr 12, 2022. It is now read-only.

Commit

Permalink
Add PlayerJoins event
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Oct 18, 2016
1 parent db0be45 commit 621a5c3
Show file tree
Hide file tree
Showing 3 changed files with 180 additions and 90 deletions.
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down
@@ -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<String, AbstractTagObject> getDefinitions(ScriptEventData data) {
HashMap<String, AbstractTagObject> 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<String, AbstractTagObject> getDefinitions(ScriptEventData data) {
HashMap<String, AbstractTagObject> 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);
}
}
@@ -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

This comment has been minimized.

Copy link
@mcmonkey4eva

mcmonkey4eva Oct 18, 2016

Member

ok

This comment has been minimized.

Copy link
@Morphan1

Morphan1 Oct 18, 2016

Author Contributor

they'll never know what hit them muahaha

//
// @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<String, AbstractTagObject> getDefinitions(ScriptEventData data) {
HashMap<String, AbstractTagObject> 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);
}
}

0 comments on commit 621a5c3

Please sign in to comment.