Skip to content

Commit

Permalink
Code review, fixing some stuff, also fix some typos and the name conv.
Browse files Browse the repository at this point in the history
With Love Coffee..
  • Loading branch information
SkJson authored and SkJson committed Oct 31, 2023
1 parent cc40b31 commit 0e91da1
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 82 deletions.
Expand Up @@ -27,56 +27,52 @@
@Since("1.2")
public class CondMainHand extends Condition {

enum MainHandSide {
LEFT, RIGHT, UNKNOWN;
}


static {
Skript.registerCondition(CondMainHand.class, "(%player%'s main[(-| )]hand|main[(-| )]hand of %player%) (is|are) (:right|:left)", "(%player%'s main[(-| )]hand|main[(-| )]hand of %player%) (isn't|is not|aren't|are not) (:right|:left)");
Skript.registerCondition(CondMainHand.class,
"%players%'s main hand (0:is|1:is( not|'nt)) (:left|:right)",
"main hand of %players% (0:is|1:is( not|'nt)) (:left|:right)"
);
}

Expression<Player> player;

int matpat;

String side;
MainHandSide side;

@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?>[] expressions, int matchedPattern, @NotNull Kleenean isDelayed, SkriptParser.ParseResult parser) {
this.player = (Expression<Player>) expressions[0];
matpat = matchedPattern;
if (parser.hasTag("right")){
side = "right";
}
else if (parser.hasTag("left")){
side = "left";
}
boolean negated = parser.mark == 1;
if (parser.hasTag("right")) side = MainHandSide.RIGHT;
else if (parser.hasTag("left")) side = MainHandSide.LEFT;
setNegated(negated);
return true;
}

@Override
public @NotNull String toString(@Nullable Event event, boolean debug) {
return "main hand of " + player.toString(event, debug);
return "main hand of " + player.toString(event, debug) + " is " + side.toString();
}

@Override
public boolean check(@NotNull Event event) {
Player p = player.getSingle(event);
assert p != null;
String mh = p.getMainHand().toString().toLowerCase();
if (Objects.equals(side, "right")){
if (matpat == 0){
return mh.equals("right");
}
else{
return !mh.equals("right");
}
}
else if (Objects.equals(side, "left")){
if (matpat == 0){
return mh.equals("left");
}
else{
return !mh.equals("left");
}
}
return false;
String mh = p.getMainHand().toString();

if (side == MainHandSide.LEFT && MainHandSide.valueOf(mh) == MainHandSide.LEFT)
return !isNegated();
else if (side == MainHandSide.RIGHT && MainHandSide.valueOf(mh) == MainHandSide.RIGHT)
return !isNegated();

return isNegated();
}
}
Expand Up @@ -5,6 +5,7 @@
import ch.njol.skript.doc.Examples;
import ch.njol.skript.doc.Name;
import ch.njol.skript.doc.Since;
import ch.njol.skript.expressions.base.PropertyExpression;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.ExpressionType;
import ch.njol.skript.lang.SkriptParser;
Expand All @@ -20,13 +21,15 @@
"send player's main hand"
})
@Since("1.2")
public class ExprMainHand extends SimpleExpression<String> {
public class ExprMainHand extends PropertyExpression<Player, String> {

static {
Skript.registerExpression(ExprMainHand.class, String.class, ExpressionType.PROPERTY, "[the] main[(-| )]hand of %player%", "%player%'s main[(-| )]hand");
register(ExprMainHand.class, String.class,
"[the] main[(-| )]hand",
"players"
);
}

private Expression<Player> player;

@Override
public @NotNull Class<? extends String> getReturnType() {
Expand All @@ -41,10 +44,7 @@ public boolean isSingle() {
@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, @NotNull Kleenean isDelayed, SkriptParser.@NotNull ParseResult parser) {
if (exprs.length == 0){
return false;
}
player = (Expression<Player>) exprs[0];
setExpr((Expression<Player>) exprs[0]);
return true;
}

Expand All @@ -54,8 +54,9 @@ public boolean init(Expression<?>[] exprs, int matchedPattern, @NotNull Kleenean
}

@Override
protected String @NotNull [] get(@NotNull Event event) {
Player p = player.getSingle(event);
protected String @NotNull [] get(@NotNull Event event, Player[] source) {
if (source.length < 1) return new String[0];
Player p = source[0];
assert p != null;
return new String[]{p.getMainHand().toString().toLowerCase()};
}
Expand Down
Expand Up @@ -26,7 +26,8 @@
public class ExprUnkwnCmdMsg extends SimpleExpression<String> {

static {
Skript.registerExpression(ExprUnkwnCmdMsg.class, String.class, ExpressionType.SIMPLE, "[the] unknown command message");
Skript.registerExpression(ExprUnkwnCmdMsg.class, String.class, ExpressionType.SIMPLE,
"[the] unknown command message");
}

@Override
Expand All @@ -40,7 +41,6 @@ public boolean isSingle() {
}


@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?> @NotNull [] exprs, int matchedPattern, @NotNull Kleenean isDelayed, SkriptParser.@NotNull ParseResult parser) {
if (!getParser().isCurrentEvent(UnknownCommandEvent.class)){
Expand All @@ -61,7 +61,7 @@ public boolean init(Expression<?> @NotNull [] exprs, int matchedPattern, @NotNul
String cmdline = String.valueOf(((UnknownCommandEvent) e).message());
return new String[]{cmdline};
}
return null;
return new String[0];
}

@Override
Expand All @@ -78,7 +78,7 @@ public void change(@NotNull Event event, Object @NotNull [] delta, Changer.@NotN
if (mode == Changer.ChangeMode.SET) {
return CollectionUtils.array(String.class);
}
return null;
return CollectionUtils.array();
}


Expand Down
Expand Up @@ -26,11 +26,11 @@
@Since("1.0")


class ExprPlayerFace extends PropertyExpression<Player, BufferedImage> {
public class ExprPlayerFace extends PropertyExpression<Player, BufferedImage> {

static {
register(ExprPlayerFace.class, BufferedImage.class,
"face [(at|with)] size %-number%] (:with|:without) (a|an) [outer[( |-)]]layer",
"face [(at|with) size %-number%] (:with|:without) (a|an) [outer[( |-)]]layer",
"players"
);
}
Expand All @@ -39,13 +39,14 @@ class ExprPlayerFace extends PropertyExpression<Player, BufferedImage> {
private boolean without;

@Override
protected BufferedImage @NotNull [] get(@NotNull Event event, Player[] source) {
protected BufferedImage @NotNull [] get(@NotNull Event event, Player @NotNull [] source) {
if (source.length < 1) return new BufferedImage[0];
Player player = source[0] != null ? source[0] : null;
Number size = null;
if (this.size != null) size = this.size.getSingle(event);
if (player == null || size == null) return new BufferedImage[0];
if (player == null) return new BufferedImage[0];
try {
var buffer = PlayerFace.get(player, size, !without);
var buffer = PlayerFace.get(player, size == null ? 16 : size, !without);
return new BufferedImage[]{buffer};
} catch (Exception e) {
throw new RuntimeException(e);
Expand All @@ -61,15 +62,22 @@ class ExprPlayerFace extends PropertyExpression<Player, BufferedImage> {
public @NotNull String toString(Event event, boolean debug) {
if (this.size != null) {
return Classes.getDebugMessage(getExpr()) + "'face with size " + this.size.toString(event, debug) +
(without ? "without" : "with") + " an layer";
(without ? " without" : " with") + " an layer";
}
return Classes.getDebugMessage(getExpr()) + "'face " +
(without ? "without" : "with") + " an layer";
}

@Override
@SuppressWarnings("unchecked")
public boolean init(Expression<?> @NotNull [] exprs, int matchedPattern, @NotNull Kleenean isDelayed, @NotNull ParseResult parseResult) {
this.size = LiteralUtils.defendExpression(exprs[1]);
if (matchedPattern == 1) {
setExpr((Expression<? extends Player>) exprs[0]);
this.size = (Expression<Number>) exprs[1];
} else if (matchedPattern == 0) {
setExpr((Expression<? extends Player>) exprs[1]);
this.size = (Expression<Number>) exprs[0];
}
this.without = parseResult.hasTag("without");
return LiteralUtils.canInitSafely(this.size);
}
Expand Down
Expand Up @@ -48,7 +48,9 @@ public class ExprPlayerSig extends PropertyExpression<Player, String> {
}

@Override
@SuppressWarnings("unchecked")
public boolean init(Expression<?> @NotNull [] exprs, int matchedPattern, @NotNull Kleenean isDelayed, @NotNull ParseResult parseResult) {
setExpr((Expression<? extends Player>) exprs[0]);
return true;
}
}
Expand Down
Expand Up @@ -5,6 +5,7 @@
import ch.njol.skript.doc.Examples;
import ch.njol.skript.doc.Name;
import ch.njol.skript.doc.Since;
import ch.njol.skript.expressions.base.PropertyExpression;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.ExpressionType;
import ch.njol.skript.lang.SkriptParser.ParseResult;
Expand All @@ -24,17 +25,14 @@
})
@Since("1.0")

public class ExprPlayerTexImg extends SimpleExpression<BufferedImage> {
public class ExprPlayerTexImg extends PropertyExpression<Player, BufferedImage> {

static {
Skript.registerExpression(ExprPlayerTexImg.class, BufferedImage.class, ExpressionType.PROPERTY,
"[the] [skin] texture of %player% as image",
"%player%'s [skin] texture as image");
register(ExprPlayerTexImg.class, BufferedImage.class,
"[the] [skin] texture image",
"players");
}

private Expression<Player> player;


@Override
public @NotNull Class<? extends BufferedImage> getReturnType() {
return BufferedImage.class;
Expand All @@ -48,19 +46,20 @@ public boolean isSingle() {
@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, @NotNull Kleenean isDelayed, @NotNull ParseResult parser) {
player = (Expression<Player>) exprs[0];
setExpr((Expression<? extends Player>) exprs[0]);
return true;
}

@Override
public @NotNull String toString(Event event, boolean debug) {
return "Player Skin Texture Image";
return getExpr().toString(event, debug ) + " Skin Texture Image";
}

@Override
protected BufferedImage @NotNull [] get(@NotNull Event event) {
protected BufferedImage @NotNull [] get(@NotNull Event event, Player @NotNull [] source) {
try {
var player = this.player.getSingle(event);
if (source.length < 1) return new BufferedImage[0];
var player = source[0];
return new BufferedImage[] {PlayerTexture.imgTexture(player)};
} catch (Exception e) {
throw new RuntimeException(e);
Expand Down
Expand Up @@ -5,6 +5,7 @@
import ch.njol.skript.doc.Examples;
import ch.njol.skript.doc.Name;
import ch.njol.skript.doc.Since;
import ch.njol.skript.expressions.base.PropertyExpression;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.ExpressionType;
import ch.njol.skript.lang.SkriptParser.ParseResult;
Expand All @@ -24,17 +25,15 @@
})
@Since("1.0")

public class ExprPlayerTexURL extends SimpleExpression<String> {
public class ExprPlayerTexURL extends PropertyExpression<Player, String> {

static {
Skript.registerExpression(ExprPlayerTexURL.class, String.class, ExpressionType.PROPERTY,
"[the] [skin] texture of %player% as url",
"%player%'s [skin] texture as url"
register(ExprPlayerTexURL.class, String.class,
"[the] [skin] texture url",
"players"
);
}

private Expression<Player> player;

@Override
public @NotNull Class<? extends String> getReturnType() {
return String.class;
Expand All @@ -48,19 +47,21 @@ public boolean isSingle() {
@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, @NotNull Kleenean isDelayed, @NotNull ParseResult parser) {
player = (Expression<Player>) exprs[0];
setExpr((Expression<? extends Player>) exprs[0]);
return true;
}

@Override
public @NotNull String toString(Event event, boolean debug) {
return "Player Skin Texture URL";
return getExpr().toString(event, debug) + " Skin Texture URL";
}

@Override
protected String @NotNull [] get(@NotNull Event event) {
protected String @NotNull [] get(@NotNull Event event, Player @NotNull [] source) {
try {
return new String[] {PlayerTexture.urlTexture(Objects.requireNonNull(player.getSingle(event)))};
if (source.length < 1) return new String[0];
var player = source[0];
return new String[] {PlayerTexture.urlTexture(player)};
} catch (Exception e) {
throw new RuntimeException(e);
}
Expand Down
Expand Up @@ -5,6 +5,7 @@
import ch.njol.skript.doc.Examples;
import ch.njol.skript.doc.Name;
import ch.njol.skript.doc.Since;
import ch.njol.skript.expressions.base.PropertyExpression;
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.ExpressionType;
import ch.njol.skript.lang.SkriptParser.ParseResult;
Expand All @@ -23,17 +24,15 @@
})
@Since("1.0")

public class ExprPlayerVal extends SimpleExpression<String> {
public class ExprPlayerVal extends PropertyExpression<Player, String> {

static {
Skript.registerExpression(ExprPlayerVal.class, String.class, ExpressionType.PROPERTY,
"[the] [(texture|skin)] value of %player%",
"%player%'s [(texture|skin)] value"
register(ExprPlayerVal.class, String.class,
"[the] texture|skin value",
"players"
);
}

private Expression<Player> player;

@Override
public @NotNull Class<? extends String> getReturnType() {
return String.class;
Expand All @@ -47,18 +46,19 @@ public boolean isSingle() {
@SuppressWarnings("unchecked")
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, @NotNull Kleenean isDelayed, @NotNull ParseResult parser) {
player = (Expression<Player>) exprs[0];
setExpr ((Expression<Player>) exprs[0]);
return true;
}

@Override
public @NotNull String toString(Event event, boolean debug) {
return "Player Skin Value ";
return getExpr().toString(event, debug) + " Skin Value ";
}

@Override
protected String @NotNull [] get(@NotNull Event event) {
Player p = player.getSingle(event);
protected String @NotNull [] get(@NotNull Event event, Player[] source) {
if (source.length < 1) return new String[0];
Player p = source[0];
assert p != null;
return new String[]{Property.getProfileProperties(p).getValue()};
}
Expand Down

0 comments on commit 0e91da1

Please sign in to comment.