Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23179c62ae |
No files matched your search
@@ -10,6 +10,8 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@@ -74,7 +76,8 @@ public final class CombatFeedback implements AbilityFeedback {
|
||||
}
|
||||
|
||||
private static void send(Player player, String message) {
|
||||
try { player.sendMessage(message); } catch (RuntimeException ignored) { }
|
||||
try { player.sendMessage(Component.text(message, NamedTextColor.GRAY)); }
|
||||
catch (RuntimeException ignored) { }
|
||||
}
|
||||
|
||||
private static boolean recipientEffect(AbilityReport.Type type) {
|
||||
|
||||
@@ -36,6 +36,7 @@ class FantasyFeedbackCommandNativeTest {
|
||||
fixture.plugin.setEnabled(true);
|
||||
assertTrue(fixture.feedbackCommand.execute(player.player, "fantasyfeedback", new String[]{}));
|
||||
assertEquals("Fantasy feedback is off.", player.messages.getLast());
|
||||
assertTrue(player.messageComponents.isEmpty(), "preference/status notices keep their existing presentation");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +56,7 @@ class FantasyFeedbackCommandNativeTest {
|
||||
assertTrue(((games.dmg.fantasystick.persistence.PlayerFeedbackPreferences)
|
||||
FantasyStickLifecycleNativeTest.Fixture.field(fixture.plugin, "feedbackPreferences"))
|
||||
.enabled(player.core.id));
|
||||
assertTrue(player.messageComponents.isEmpty(), "refusals are not routine outcome components");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +77,10 @@ class FantasyFeedbackCommandNativeTest {
|
||||
String healing = "Mending Light healed " + target.core.record.name() + " for 1.23 health.";
|
||||
assertEquals(1, source.messages.stream().filter(healing::equals).count());
|
||||
assertEquals(1, target.messages.stream().filter(healing::equals).count());
|
||||
assertEquals(net.kyori.adventure.text.format.NamedTextColor.GRAY,
|
||||
source.messageComponents.getLast().color());
|
||||
assertEquals(net.kyori.adventure.text.format.NamedTextColor.GRAY,
|
||||
target.messageComponents.getLast().color());
|
||||
|
||||
fixture.feedbackCommand.execute(source.player, "fantasyfeedback", new String[]{"off"}); fixture.tick();
|
||||
feedback.report("Sanctuary", source.player,
|
||||
@@ -114,10 +120,19 @@ class FantasyFeedbackCommandNativeTest {
|
||||
assertTrue(source.messages.contains("Stone Skin prevented 1.01 damage to "
|
||||
+ target.core.record.name() + "."));
|
||||
assertTrue(source.messages.contains("Rallying Cry added 0.5 damage against Zombie."));
|
||||
assertEquals(6, source.messageComponents.size());
|
||||
assertEquals(2, target.messageComponents.size());
|
||||
assertTrue(source.messageComponents.stream().allMatch(component ->
|
||||
net.kyori.adventure.text.format.NamedTextColor.GRAY.equals(component.color())));
|
||||
assertTrue(target.messageComponents.stream().allMatch(component ->
|
||||
net.kyori.adventure.text.format.NamedTextColor.GRAY.equals(component.color())));
|
||||
assertTrue(source.messages.stream().noneMatch(message -> message.indexOf('\u00a7') >= 0));
|
||||
int messages = source.messages.size();
|
||||
int components = source.messageComponents.size();
|
||||
feedback.report("No-op", source.player,
|
||||
games.dmg.fantasystick.ability.AbilityReport.Type.DAMAGE, zombie, java.math.BigDecimal.ZERO);
|
||||
assertEquals(messages, source.messages.size());
|
||||
assertEquals(components, source.messageComponents.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1332,6 +1332,7 @@ class FantasyStickLifecycleNativeTest {
|
||||
// Location holds a WeakReference: the fixture must model the server's world ownership.
|
||||
final org.bukkit.World world = mock(org.bukkit.World.class);
|
||||
final List<String> messages = new ArrayList<>();
|
||||
final List<net.kyori.adventure.text.Component> messageComponents = new ArrayList<>();
|
||||
final List<org.bukkit.inventory.ItemStack> books = new ArrayList<>();
|
||||
final List<org.bukkit.inventory.Inventory> inventories = new ArrayList<>();
|
||||
int inventoryCloses;
|
||||
@@ -1414,7 +1415,14 @@ class FantasyStickLifecycleNativeTest {
|
||||
case "isSprinting" -> sprinting;
|
||||
case "setSprinting" -> { sprinting = (Boolean) args[0]; yield null; }
|
||||
case "getScoreboard" -> craftBoard;
|
||||
case "sendMessage" -> { messages.add((String) args[0]); yield null; }
|
||||
case "sendMessage" -> {
|
||||
if (args[0] instanceof net.kyori.adventure.text.Component component) {
|
||||
messageComponents.add(component);
|
||||
messages.add(net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer.plainText()
|
||||
.serialize(component));
|
||||
} else messages.add((String) args[0]);
|
||||
yield null;
|
||||
}
|
||||
case "openBook" -> { books.add(((org.bukkit.inventory.ItemStack) args[0]).clone()); yield null; }
|
||||
case "openInventory" -> { inventories.add((org.bukkit.inventory.Inventory) args[0]); yield core.view; }
|
||||
case "closeInventory" -> { inventoryCloses++; yield null; }
|
||||
|
||||
Reference in new issue
Block a user