Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add PlayerReceivesMessageScriptEvent
- Loading branch information
Showing
3 changed files
with
102 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
82 changes: 82 additions & 0 deletions
82
src/main/java/net/aufdemrand/denizen/events/player/PlayerReceivesMessageScriptEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
package net.aufdemrand.denizen.events.player; | ||
|
||
import net.aufdemrand.denizen.BukkitScriptEntryData; | ||
import net.aufdemrand.denizen.events.BukkitScriptEvent; | ||
import net.aufdemrand.denizen.objects.dPlayer; | ||
import net.aufdemrand.denizencore.objects.Element; | ||
import net.aufdemrand.denizencore.objects.dObject; | ||
import net.aufdemrand.denizencore.scripts.ScriptEntryData; | ||
import net.aufdemrand.denizencore.scripts.containers.ScriptContainer; | ||
import net.aufdemrand.denizencore.utilities.CoreUtilities; | ||
|
||
public class PlayerReceivesMessageScriptEvent extends BukkitScriptEvent { | ||
|
||
// <--[event] | ||
// @Events | ||
// player receives message | ||
// | ||
// @Regex ^on player receives message$ | ||
// | ||
// @Cancellable true | ||
// | ||
// @Triggers when a player receives any chat message from the server. | ||
// | ||
// @Context | ||
// <context.message> returns an Element of the message. | ||
// <context.system_message> returns true if the message is a system message (not player chat). | ||
// | ||
// @Determine | ||
// "MESSAGE:" + Element to change the message. | ||
// | ||
// --> | ||
|
||
public PlayerReceivesMessageScriptEvent() { | ||
instance = this; | ||
} | ||
|
||
public static PlayerReceivesMessageScriptEvent instance; | ||
public Element message; | ||
public Element system; | ||
public dPlayer player; | ||
|
||
@Override | ||
public boolean couldMatch(ScriptContainer scriptContainer, String s) { | ||
return CoreUtilities.toLowerCase(s).startsWith("player receives message"); | ||
} | ||
|
||
@Override | ||
public boolean matches(ScriptContainer scriptContainer, String s) { | ||
return true; | ||
} | ||
|
||
@Override | ||
public String getName() { | ||
return "PlayerReceivesMessage"; | ||
} | ||
|
||
@Override | ||
public boolean applyDetermination(ScriptContainer container, String determination) { | ||
String lower = CoreUtilities.toLowerCase(determination); | ||
if (lower.startsWith("message:")) { | ||
message = new Element(determination.substring("message:".length())); | ||
return true; | ||
} | ||
return super.applyDetermination(container, determination); | ||
} | ||
|
||
@Override | ||
public ScriptEntryData getScriptEntryData() { | ||
return new BukkitScriptEntryData(player, null); | ||
} | ||
|
||
@Override | ||
public dObject getContext(String name) { | ||
if (name.equals("message")) { | ||
return message; | ||
} | ||
if (name.equals("system_message")) { | ||
return system; | ||
} | ||
return super.getContext(name); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters