From 6b2641b2da003ef4737b19b82b9ead1a51d3b2a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sun, 10 Jun 2018 23:19:11 +0300 Subject: [PATCH 01/12] Add player visibility stuff --- build.gradle | 2 +- .../ch/njol/skript/conditions/CondCanSee.java | 89 +++++++++++++++ .../skript/effects/EffPlayerVisibility.java | 104 ++++++++++++++++++ .../skript/expressions/ExprHiddenPlayers.java | 95 ++++++++++++++++ .../ch/njol/skript/util/BlockStateBlock.java | 7 +- .../njol/skript/util/DelayedChangeBlock.java | 5 + 6 files changed, 300 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ch/njol/skript/conditions/CondCanSee.java create mode 100644 src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java create mode 100644 src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java diff --git a/build.gradle b/build.gradle index 2f26cb80b6e..a687b8cdd56 100644 --- a/build.gradle +++ b/build.gradle @@ -54,7 +54,7 @@ repositories { } dependencies { - compile 'com.destroystokyo.paper:paper-api:1.12.1-R0.1-SNAPSHOT' + compile 'com.destroystokyo.paper:paper-api:1.12.2-R0.1-SNAPSHOT' compile 'org.eclipse.jdt:org.eclipse.jdt.annotation:1.1.0' compile 'com.google.code.findbugs:findbugs:2.0.3' compile 'com.sk89q:worldguard:6.1.1-SNAPSHOT' diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java new file mode 100644 index 00000000000..7c9bd4a2743 --- /dev/null +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -0,0 +1,89 @@ +/** + * This file is part of Skript. + * + * Skript is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Skript is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Skript. If not, see . + * + * + * Copyright 2011-2017 Peter Güttinger and contributors + */ +package ch.njol.skript.conditions; + + +import org.eclipse.jdt.annotation.Nullable; +import ch.njol.skript.Skript; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Examples; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; +import ch.njol.skript.lang.Condition; +import ch.njol.skript.lang.Expression; +import ch.njol.skript.lang.SkriptParser; +import ch.njol.util.Checker; +import ch.njol.util.Kleenean; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.Bukkit; + +@Name("Can See") +@Description("Checks whether or not a player can see another player.") +@Examples({"if the player can't see the player-argument:", + "\tmessage \"The player %player-argument% is not online!\""}) +@Since("INSERT VERSION") +public class CondCanSee extends Condition { + + static { + Skript.registerCondition(CondCanSee.class, + "%players% (is|are) [(1¦in)]visible [for %players%]", + "[%players%] can see %players%", + "%players% (is|are)(n't| not) [(2¦in)]visible [for %players%]", + "[%players%] can('t| not) see %players%"); + } + + @SuppressWarnings("null") + private Expression players, targetPlayers; + + @Override + public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { + setNegated(((matchedPattern == 2 || matchedPattern == 3) && parseResult.mark != 2) || parseResult.mark == 1); + if (matchedPattern == 1 || matchedPattern == 3) { + players = (Expression) exprs[0]; + targetPlayers = (Expression) exprs[1]; + } else { + players = (Expression) exprs[1]; + targetPlayers = (Expression) exprs[0]; + } + return true; + } + + @Override + public boolean check(Event e) { + return players.check(e, new Checker() { + @Override + public boolean check(final Player player) { + return targetPlayers.check(e, new Checker() { + @Override + public boolean check(final Player targetPlayer) { + return player.canSee(targetPlayer); + } + }, isNegated()); + } + }); + } + + @Override + public String toString(@Nullable Event e, boolean debug) { + return players.toString(e, debug) + (isNegated() ? " can't see " : " can see ") + targetPlayers.toString(e, debug); + } + +} \ No newline at end of file diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java new file mode 100644 index 00000000000..f6cf659709f --- /dev/null +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -0,0 +1,104 @@ +/** + * This file is part of Skript. + * + * Skript is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Skript is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Skript. If not, see . + * + * + * Copyright 2011-2017 Peter Güttinger and contributors + */ +package ch.njol.skript.effects; + +import org.eclipse.jdt.annotation.Nullable; +import ch.njol.skript.Skript; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Examples; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; +import ch.njol.skript.lang.Effect; +import ch.njol.skript.lang.Expression; +import ch.njol.skript.lang.SkriptParser; +import ch.njol.skript.lang.util.SimpleLiteral; +import ch.njol.skript.expressions.ExprHiddenPlayers; +import ch.njol.util.Kleenean; +import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; + +@Name("Player Visibility") +@Description({"Change visibility of a player for the given players. If a player was hidden and relogs, it will be visible again.", + "When reveal is used in combination of the hidden players expression and the viewers are not specified, this will default it to the given player in the hidden players expression.", + "", + "Note: if a player was hidden and relogs, this player will be visible again."}) +@Examples({"on join:", + " if {vanished::%player's uuid%} is true:", + " hide the player from all players", + "", + "reveal hidden players of {_player}"}) +@Since("INSERT VERSION") +public class EffPlayerVisibility extends Effect { + + private static final boolean USE_DEPRECATED_METHOD = !Skript.methodExists(Player.class, "hidePlayer", Plugin.class, Player.class); + + static { + Skript.registerEffect(EffPlayerVisibility.class, + "hide %players% [(from|for) %players%]", + "show %players% [to %players%]", + "reveal %players% [(to|for|from) %players%]"); + } + + @SuppressWarnings("null") + private Expression players, targetPlayers; + private boolean reveal; + + @SuppressWarnings({"unchecked", "null"}) + @Override + public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { + reveal = matchedPattern > 0; + players = (Expression) exprs[0]; + if (reveal && players instanceof ExprHiddenPlayers) { + targetPlayers = (exprs.length > 1 && !exprs[1].isDefault()) ? (Expression) exprs[1] : ((ExprHiddenPlayers) players).getPlayers(); + } else { + targetPlayers = exprs.length > 1 ? (Expression) exprs[1] : null; + } + return true; + } + + @Override + protected void execute(Event e) { + for (Player targetPlayer : targetPlayers.getArray(e)) { + for (Player player : players.getArray(e)) { + if (reveal) { + if (USE_DEPRECATED_METHOD) { + targetPlayer.showPlayer(player); + } else { + targetPlayer.showPlayer(Skript.getInstance(), player); + } + } else { + if (USE_DEPRECATED_METHOD) { + targetPlayer.hidePlayer(player); + } else { + targetPlayer.hidePlayer(Skript.getInstance(), player); + } + } + } + } + } + + @Override + public String toString(@Nullable Event e, boolean debug) { + return (reveal ? "show " : "hide ") + players.toString(e, debug) + (reveal ? " to " : " from ") + targetPlayers.toString(e, debug); + } + +} \ No newline at end of file diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java new file mode 100644 index 00000000000..952de910e7c --- /dev/null +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -0,0 +1,95 @@ +/** + * This file is part of Skript. + * + * Skript is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Skript is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Skript. If not, see . + * + * + * Copyright 2011-2017 Peter Güttinger and contributors + */ +package ch.njol.skript.expressions; + +import java.util.List; +import java.util.ArrayList; +import org.eclipse.jdt.annotation.Nullable; +import ch.njol.skript.Skript; +import ch.njol.skript.classes.Changer.ChangeMode; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Examples; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; +import ch.njol.skript.lang.util.SimpleExpression; +import ch.njol.skript.lang.SkriptParser; +import ch.njol.skript.lang.Expression; +import ch.njol.skript.lang.ExpressionType; +import ch.njol.util.coll.CollectionUtils; +import ch.njol.util.Kleenean; +import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; + +@Name("Hidden Players") +@Description({"The players hidden from a player that hidden using the player visibility effect."}) +@Examples({"message \"You are currently hiding: %hidden players of the player%\""}) +@Since("INSERT VERSION") +public class ExprHiddenPlayers extends SimpleExpression { + + static { + Skript.registerExpression(ExprHiddenPlayers.class, Player.class, ExpressionType.PROPERTY, + "[(all [[of] the]|the)] hidden players [(of|for) %players%]", + "[(all [[of] the]|the)] players hidden [(from|for) %players%]", + "%players%'[s] [all] hidden players"); + } + + @SuppressWarnings("null") + private Expression players; + + @SuppressWarnings({"unchecked", "null"}) + @Override + public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { + players = (Expression) exprs[0]; + return true; + } + + @Override + public boolean isSingle() { + return false; + } + + @Override + @Nullable + public Player[] get(Event e) { + List list = new ArrayList<>(); + for (Player player : players.getArray(e)) { + list.addAll(player.spigot().getHiddenPlayers()); + } + return list.toArray(new Player[list.size()]); + } + + @Nullable + public Expression getPlayers() { + return players; + } + + @Override + public Class getReturnType() { + return Player.class; + } + + @Override + public String toString(@Nullable Event e, boolean debug) { + return "hidden players of " + players.toString(e, debug); + } + +} \ No newline at end of file diff --git a/src/main/java/ch/njol/skript/util/BlockStateBlock.java b/src/main/java/ch/njol/skript/util/BlockStateBlock.java index 209cac3b241..ec7a07ea55b 100644 --- a/src/main/java/ch/njol/skript/util/BlockStateBlock.java +++ b/src/main/java/ch/njol/skript/util/BlockStateBlock.java @@ -263,7 +263,12 @@ public BlockFace getFace(final Block block) { public BlockState getState() { return state; } - + + @Override + public BlockState getState(boolean b) { + return state; + } + @Override public Biome getBiome() { return state.getBlock().getBiome(); diff --git a/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java b/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java index 78a444f7e51..86692c92a5a 100644 --- a/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java +++ b/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java @@ -262,6 +262,11 @@ public BlockFace getFace(final Block block) { @Override public BlockState getState() { return b.getState(); + } + + @Override + public BlockState getState(boolean bool) { + return b.getState(bool); } @Override From f6110ef3cd906f9ca99849b273f87cc4245a1383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sun, 10 Jun 2018 23:26:42 +0300 Subject: [PATCH 02/12] Remove an unnecessary blank line and fix syntax description --- src/main/java/ch/njol/skript/conditions/CondCanSee.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index 7c9bd4a2743..6bbc11d12e9 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -19,7 +19,6 @@ */ package ch.njol.skript.conditions; - import org.eclipse.jdt.annotation.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.doc.Description; @@ -38,7 +37,7 @@ @Name("Can See") @Description("Checks whether or not a player can see another player.") @Examples({"if the player can't see the player-argument:", - "\tmessage \"The player %player-argument% is not online!\""}) + " message \"The player %player-argument% is not online!\""}) @Since("INSERT VERSION") public class CondCanSee extends Condition { @@ -86,4 +85,4 @@ public String toString(@Nullable Event e, boolean debug) { return players.toString(e, debug) + (isNegated() ? " can't see " : " can see ") + targetPlayers.toString(e, debug); } -} \ No newline at end of file +} From 9fe1019c53c424b6b40e5353a809e66192c6b251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Mon, 11 Jun 2018 00:09:55 +0300 Subject: [PATCH 03/12] Fixes --- .../ch/njol/skript/conditions/CondCanSee.java | 10 +++++----- .../skript/effects/EffPlayerVisibility.java | 20 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index 7c9bd4a2743..2a930f7f384 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -36,7 +36,7 @@ import org.bukkit.Bukkit; @Name("Can See") -@Description("Checks whether or not a player can see another player.") +@Description("Checks whether the given players can see another players.") @Examples({"if the player can't see the player-argument:", "\tmessage \"The player %player-argument% is not online!\""}) @Since("INSERT VERSION") @@ -45,9 +45,9 @@ public class CondCanSee extends Condition { static { Skript.registerCondition(CondCanSee.class, "%players% (is|are) [(1¦in)]visible [for %players%]", - "[%players%] can see %players%", - "%players% (is|are)(n't| not) [(2¦in)]visible [for %players%]", - "[%players%] can('t| not) see %players%"); + "%players% can see %players%", + "%players% (is|are)(n't| not) [(1¦in)]visible [for %players%]", + "%players% can('t| not) see %players%"); } @SuppressWarnings("null") @@ -55,7 +55,7 @@ public class CondCanSee extends Condition { @Override public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { - setNegated(((matchedPattern == 2 || matchedPattern == 3) && parseResult.mark != 2) || parseResult.mark == 1); + setNegated(matchedPattern > 1 ^ parseResult.mark == 1); if (matchedPattern == 1 || matchedPattern == 3) { players = (Expression) exprs[0]; targetPlayers = (Expression) exprs[1]; diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index f6cf659709f..7a3591febd9 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -37,8 +37,9 @@ import org.bukkit.event.Event; @Name("Player Visibility") -@Description({"Change visibility of a player for the given players. If a player was hidden and relogs, it will be visible again.", - "When reveal is used in combination of the hidden players expression and the viewers are not specified, this will default it to the given player in the hidden players expression.", +@Description({"Change visibility of a player for the given players.", + "When reveal is used in combination of the hidden players expression and the viewers are not specified, " + + "this will default it to the given player in the hidden players expression.", "", "Note: if a player was hidden and relogs, this player will be visible again."}) @Examples({"on join:", @@ -67,11 +68,10 @@ public class EffPlayerVisibility extends Effect { public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { reveal = matchedPattern > 0; players = (Expression) exprs[0]; - if (reveal && players instanceof ExprHiddenPlayers) { + if (reveal && players instanceof ExprHiddenPlayers) targetPlayers = (exprs.length > 1 && !exprs[1].isDefault()) ? (Expression) exprs[1] : ((ExprHiddenPlayers) players).getPlayers(); - } else { + else targetPlayers = exprs.length > 1 ? (Expression) exprs[1] : null; - } return true; } @@ -80,17 +80,15 @@ protected void execute(Event e) { for (Player targetPlayer : targetPlayers.getArray(e)) { for (Player player : players.getArray(e)) { if (reveal) { - if (USE_DEPRECATED_METHOD) { + if (USE_DEPRECATED_METHOD) targetPlayer.showPlayer(player); - } else { + else targetPlayer.showPlayer(Skript.getInstance(), player); - } } else { - if (USE_DEPRECATED_METHOD) { + if (USE_DEPRECATED_METHOD) targetPlayer.hidePlayer(player); - } else { + else targetPlayer.hidePlayer(Skript.getInstance(), player); - } } } } From 5a694994f57a1d34c73592bc48e2db6140df09f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Tue, 12 Jun 2018 00:14:41 +0300 Subject: [PATCH 04/12] Reviews --- .../ch/njol/skript/conditions/CondCanSee.java | 4 +- .../skript/effects/EffPlayerVisibility.java | 45 ++++++++++--------- .../skript/expressions/ExprHiddenPlayers.java | 5 +-- .../ch/njol/skript/util/BlockStateBlock.java | 2 +- .../njol/skript/util/DelayedChangeBlock.java | 4 +- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index 65e1623fe1c..d108efdf8ae 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -43,9 +43,9 @@ public class CondCanSee extends Condition { static { Skript.registerCondition(CondCanSee.class, - "%players% (is|are) [(1¦in)]visible [for %players%]", + "%players% (is|are) [(1¦in)]visible for %players%", "%players% can see %players%", - "%players% (is|are)(n't| not) [(1¦in)]visible [for %players%]", + "%players% (is|are)(n't| not) [(1¦in)]visible for %players%", "%players% can('t| not) see %players%"); } diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index 7a3591febd9..fffa7ef7253 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -54,9 +54,9 @@ public class EffPlayerVisibility extends Effect { static { Skript.registerEffect(EffPlayerVisibility.class, - "hide %players% [(from|for) %players%]", - "show %players% [to %players%]", - "reveal %players% [(to|for|from) %players%]"); + "hide %players% [(from|for) %-players%]", + "show %players% [to %-players%]", + "reveal %players% [(to|for|from) %-players%]"); } @SuppressWarnings("null") @@ -69,30 +69,31 @@ public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelaye reveal = matchedPattern > 0; players = (Expression) exprs[0]; if (reveal && players instanceof ExprHiddenPlayers) - targetPlayers = (exprs.length > 1 && !exprs[1].isDefault()) ? (Expression) exprs[1] : ((ExprHiddenPlayers) players).getPlayers(); + targetPlayers = exprs.length > 1 ? (Expression) exprs[1] : ((ExprHiddenPlayers) players).getPlayers(); else targetPlayers = exprs.length > 1 ? (Expression) exprs[1] : null; return true; } - @Override - protected void execute(Event e) { - for (Player targetPlayer : targetPlayers.getArray(e)) { - for (Player player : players.getArray(e)) { - if (reveal) { - if (USE_DEPRECATED_METHOD) - targetPlayer.showPlayer(player); - else - targetPlayer.showPlayer(Skript.getInstance(), player); - } else { - if (USE_DEPRECATED_METHOD) - targetPlayer.hidePlayer(player); - else - targetPlayer.hidePlayer(Skript.getInstance(), player); - } - } - } - } + @Override + protected void execute(Event e) { + Player[] targets = targetPlayers == null ? Bukkit.getOnlinePlayers().toArray(new Player[0]) : targetPlayers.getArray(e); + for (Player targetPlayer : targets) { + for (Player player : players.getArray(e)) { + if (reveal) { + if (USE_DEPRECATED_METHOD) + targetPlayer.showPlayer(player); + else + targetPlayer.showPlayer(Skript.getInstance(), player); + } else { + if (USE_DEPRECATED_METHOD) + targetPlayer.hidePlayer(player); + else + targetPlayer.hidePlayer(Skript.getInstance(), player); + } + } + } + } @Override public String toString(@Nullable Event e, boolean debug) { diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 952de910e7c..f5677f3aa37 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -47,9 +47,8 @@ public class ExprHiddenPlayers extends SimpleExpression { static { Skript.registerExpression(ExprHiddenPlayers.class, Player.class, ExpressionType.PROPERTY, - "[(all [[of] the]|the)] hidden players [(of|for) %players%]", - "[(all [[of] the]|the)] players hidden [(from|for) %players%]", - "%players%'[s] [all] hidden players"); + "[(all [[of] the]|the)] hidden players (of|for) %players%", + "[(all [[of] the]|the)] players hidden (from|for|by) %players%"); } @SuppressWarnings("null") diff --git a/src/main/java/ch/njol/skript/util/BlockStateBlock.java b/src/main/java/ch/njol/skript/util/BlockStateBlock.java index ec7a07ea55b..3336df7184f 100644 --- a/src/main/java/ch/njol/skript/util/BlockStateBlock.java +++ b/src/main/java/ch/njol/skript/util/BlockStateBlock.java @@ -265,7 +265,7 @@ public BlockState getState() { } @Override - public BlockState getState(boolean b) { + public BlockState getState(boolean useSnapshot) { return state; } diff --git a/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java b/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java index 86692c92a5a..4da58724ad1 100644 --- a/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java +++ b/src/main/java/ch/njol/skript/util/DelayedChangeBlock.java @@ -265,8 +265,8 @@ public BlockState getState() { } @Override - public BlockState getState(boolean bool) { - return b.getState(bool); + public BlockState getState(boolean useSnapshot) { + return b.getState(useSnapshot); } @Override From 0de3bfd3599e6c8576c5994f8bc262cb8da52fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Tue, 12 Jun 2018 21:08:14 +0300 Subject: [PATCH 05/12] Remove show effect --- src/main/java/ch/njol/skript/conditions/CondCanSee.java | 2 +- src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java | 3 +-- .../java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index d108efdf8ae..c28d8beae9b 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -85,4 +85,4 @@ public String toString(@Nullable Event e, boolean debug) { return players.toString(e, debug) + (isNegated() ? " can't see " : " can see ") + targetPlayers.toString(e, debug); } -} +} \ No newline at end of file diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index fffa7ef7253..f8b459f92f2 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -55,7 +55,6 @@ public class EffPlayerVisibility extends Effect { static { Skript.registerEffect(EffPlayerVisibility.class, "hide %players% [(from|for) %-players%]", - "show %players% [to %-players%]", "reveal %players% [(to|for|from) %-players%]"); } @@ -66,7 +65,7 @@ public class EffPlayerVisibility extends Effect { @SuppressWarnings({"unchecked", "null"}) @Override public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) { - reveal = matchedPattern > 0; + reveal = matchedPattern == 1; players = (Expression) exprs[0]; if (reveal && players instanceof ExprHiddenPlayers) targetPlayers = exprs.length > 1 ? (Expression) exprs[1] : ((ExprHiddenPlayers) players).getPlayers(); diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index f5677f3aa37..94fb574d2b2 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -88,7 +88,7 @@ public Class getReturnType() { @Override public String toString(@Nullable Event e, boolean debug) { - return "hidden players of " + players.toString(e, debug); + return "hidden players for " + players.toString(e, debug); } } \ No newline at end of file From cd092040c4799bf2de48d78eadd67c37be01e819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Thu, 14 Jun 2018 04:48:09 +0300 Subject: [PATCH 06/12] Remove an unnecessary import --- .../java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 94fb574d2b2..629ccdb8e3e 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import org.eclipse.jdt.annotation.Nullable; import ch.njol.skript.Skript; -import ch.njol.skript.classes.Changer.ChangeMode; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; @@ -91,4 +90,4 @@ public String toString(@Nullable Event e, boolean debug) { return "hidden players for " + players.toString(e, debug); } -} \ No newline at end of file +} From 3af27b3b8a9f80c0ba946387b13d13372928b8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sat, 16 Jun 2018 20:37:58 +0300 Subject: [PATCH 07/12] Fix copyrights --- src/main/java/ch/njol/skript/conditions/CondCanSee.java | 2 +- src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java | 2 +- src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index c28d8beae9b..15279aae9a6 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2017 Peter Güttinger and contributors + * Copyright 2011-2018 Peter Güttinger and contributors */ package ch.njol.skript.conditions; diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index f8b459f92f2..30edc77aeb4 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2017 Peter Güttinger and contributors + * Copyright 2011-2018 Peter Güttinger and contributors */ package ch.njol.skript.effects; diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 629ccdb8e3e..b37a73fa4bd 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2017 Peter Güttinger and contributors + * Copyright 2011-2018 Peter Güttinger and contributors */ package ch.njol.skript.expressions; From 60dc909ad3a7d5578bb81f8b70aa3bf7929b1200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sat, 16 Jun 2018 20:44:23 +0300 Subject: [PATCH 08/12] Revert "Fix copyrights" This reverts commit 3af27b3b8a9f80c0ba946387b13d13372928b8fd. --- src/main/java/ch/njol/skript/conditions/CondCanSee.java | 2 +- src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java | 2 +- src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index 15279aae9a6..c28d8beae9b 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2018 Peter Güttinger and contributors + * Copyright 2011-2017 Peter Güttinger and contributors */ package ch.njol.skript.conditions; diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index 30edc77aeb4..f8b459f92f2 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2018 Peter Güttinger and contributors + * Copyright 2011-2017 Peter Güttinger and contributors */ package ch.njol.skript.effects; diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index b37a73fa4bd..629ccdb8e3e 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -15,7 +15,7 @@ * along with Skript. If not, see . * * - * Copyright 2011-2018 Peter Güttinger and contributors + * Copyright 2011-2017 Peter Güttinger and contributors */ package ch.njol.skript.expressions; From a6dd95696ae2ce022712ae5e44940e75a3806a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sun, 1 Jul 2018 14:56:21 +0300 Subject: [PATCH 09/12] Remove unnecessary imports --- src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 629ccdb8e3e..0962ff0d77b 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -31,10 +31,8 @@ import ch.njol.skript.lang.SkriptParser; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; -import ch.njol.util.coll.CollectionUtils; import ch.njol.util.Kleenean; import org.bukkit.Bukkit; -import org.bukkit.plugin.Plugin; import org.bukkit.entity.Player; import org.bukkit.event.Event; From c8dcb26c2e4113c021a46052ff02fed983e341e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Sun, 1 Jul 2018 15:02:35 +0300 Subject: [PATCH 10/12] Resolve conflicts with build.gradle --- build.gradle | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index a687b8cdd56..a6faefaecf5 100644 --- a/build.gradle +++ b/build.gradle @@ -34,37 +34,37 @@ repositories { maven { url 'https://repo.destroystokyo.com/repository/maven-public/' } - + maven { url 'http://ci.emc.gs/nexus/content/groups/aikar/' } - + maven { url 'http://nexus.hc.to/content/repositories/pub_releases' } - + // maven { // url 'http://maven.elmakers.com/repository/' // } - - + + maven { url 'https://jitpack.io' } } dependencies { - compile 'com.destroystokyo.paper:paper-api:1.12.2-R0.1-SNAPSHOT' - compile 'org.eclipse.jdt:org.eclipse.jdt.annotation:1.1.0' - compile 'com.google.code.findbugs:findbugs:2.0.3' - compile 'com.sk89q:worldguard:6.1.1-SNAPSHOT' - compile 'net.milkbowl.vault:Vault:1.6.6' - compile 'com.github.marcelo-mason:PreciousStones:24e3d4bf67b7240ae36b32be10e99d4091938c5c' + implementation 'com.destroystokyo.paper:paper-api:1.12.2-R0.1-SNAPSHOT' + implementation 'org.eclipse.jdt:org.eclipse.jdt.annotation:1.1.0' + implementation 'com.google.code.findbugs:findbugs:2.0.3' + implementation 'com.sk89q:worldguard:6.1.1-SNAPSHOT' + implementation 'net.milkbowl.vault:Vault:1.6.6' + implementation 'com.github.marcelo-mason:PreciousStones:24e3d4bf67b7240ae36b32be10e99d4091938c5c' - testCompile 'junit:junit:4.12' - testCompile 'org.easymock:easymock:3.4' + testImplementation 'junit:junit:4.12' + testImplementation 'org.easymock:easymock:3.4' - compile fileTree(dir: 'lib', include: '*.jar') + implementation fileTree(dir: 'lib', include: '*.jar') } configurations.all { @@ -81,7 +81,7 @@ processResources { jar { archiveName System.getenv('SKRIPT_JAR_NAME') == null ? 'Skript.jar' : System.getenv("SKRIPT_JAR_NAME") - + manifest { attributes("Name": "ch/njol/skript", "Sealed": "true") @@ -132,10 +132,18 @@ publishing { } } } - + repositories { maven { url "file:///itemapi_repo/" } } } + +/* + Set compile encoding to UTF-8 + Fixes issue #850 + */ +compileJava.options.encoding = 'UTF-8' + +compileTestJava.options.encoding = 'UTF-8' From b867227698f6197a370aff37f331f6edc89753e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Tue, 17 Jul 2018 12:08:36 +0300 Subject: [PATCH 11/12] Fix import orders --- src/main/java/ch/njol/skript/conditions/CondCanSee.java | 2 +- src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java | 2 +- src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/conditions/CondCanSee.java b/src/main/java/ch/njol/skript/conditions/CondCanSee.java index c28d8beae9b..e432dcf5c20 100644 --- a/src/main/java/ch/njol/skript/conditions/CondCanSee.java +++ b/src/main/java/ch/njol/skript/conditions/CondCanSee.java @@ -19,7 +19,6 @@ */ package ch.njol.skript.conditions; -import org.eclipse.jdt.annotation.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; @@ -33,6 +32,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.Bukkit; +import org.eclipse.jdt.annotation.Nullable; @Name("Can See") @Description("Checks whether the given players can see another players.") diff --git a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java index f8b459f92f2..235f81d5727 100644 --- a/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java +++ b/src/main/java/ch/njol/skript/effects/EffPlayerVisibility.java @@ -19,7 +19,6 @@ */ package ch.njol.skript.effects; -import org.eclipse.jdt.annotation.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; @@ -35,6 +34,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.entity.Player; import org.bukkit.event.Event; +import org.eclipse.jdt.annotation.Nullable; @Name("Player Visibility") @Description({"Change visibility of a player for the given players.", diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 0962ff0d77b..8a3a6ba5a31 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.ArrayList; -import org.eclipse.jdt.annotation.Nullable; import ch.njol.skript.Skript; import ch.njol.skript.doc.Description; import ch.njol.skript.doc.Examples; @@ -35,6 +34,7 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Event; +import org.eclipse.jdt.annotation.Nullable; @Name("Hidden Players") @Description({"The players hidden from a player that hidden using the player visibility effect."}) From c10dfdc35e5b8c4115242eef131f365ae1b34b27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6kdeniz?= Date: Tue, 17 Jul 2018 12:15:31 +0300 Subject: [PATCH 12/12] Fix import order --- src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java index 8a3a6ba5a31..0fd58147055 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java +++ b/src/main/java/ch/njol/skript/expressions/ExprHiddenPlayers.java @@ -26,10 +26,10 @@ import ch.njol.skript.doc.Examples; import ch.njol.skript.doc.Name; import ch.njol.skript.doc.Since; -import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.skript.lang.SkriptParser; import ch.njol.skript.lang.Expression; import ch.njol.skript.lang.ExpressionType; +import ch.njol.skript.lang.util.SimpleExpression; import ch.njol.util.Kleenean; import org.bukkit.Bukkit; import org.bukkit.entity.Player;