RediSkript/RediSkript-bukkit/src/main/java/net/limework/rediskript/skript/elements/ExprChannel.java

48 lines
1.3 KiB
Java
Raw Normal View History

package net.limework.rediskript.skript.elements;
2020-05-10 06:52:06 +00:00
import ch.njol.skript.ScriptLoader;
import ch.njol.skript.Skript;
2020-05-10 06:52:06 +00:00
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.SkriptParser;
import ch.njol.skript.lang.util.SimpleExpression;
import ch.njol.skript.log.ErrorQuality;
2020-05-10 06:52:06 +00:00
import ch.njol.util.Kleenean;
import net.limework.rediskript.events.RedisMessageEvent;
2020-05-10 06:52:06 +00:00
import org.bukkit.event.Event;
public class ExprChannel extends SimpleExpression<String> {
@Override
public boolean isSingle() {
return true;
}
@Override
public Class<? extends String> getReturnType() {
return String.class;
}
@Override
2021-01-26 08:51:31 +00:00
public String toString(Event event, boolean b) { return "redis channel"; }
2020-05-10 06:52:06 +00:00
@Override
public boolean init(final Expression<?>[] expressions, final int matchedPattern, final Kleenean isDelayed, final SkriptParser.ParseResult parseResult) {
if (!ScriptLoader.isCurrentEvent(RedisMessageEvent.class)) {
Skript.error("Cannot use 'redis channel' outside of a redis message event", ErrorQuality.SEMANTIC_ERROR);
return false;
}
2020-05-10 06:52:06 +00:00
return true;
}
@Override
protected String[] get(Event e) {
2020-06-28 14:40:53 +00:00
if (e instanceof RedisMessageEvent){
return new String[]{((RedisMessageEvent) e).getChannelName()};
2020-05-10 06:52:06 +00:00
}
return null;
}
}