mirror of https://github.com/Minestom/Minestom.git
84 lines
2.7 KiB
Java
84 lines
2.7 KiB
Java
package net.minestom.server.advancements;
|
|
|
|
import net.kyori.adventure.text.Component;
|
|
import net.minestom.testing.Env;
|
|
import net.minestom.testing.EnvTest;
|
|
import net.minestom.server.coordinate.Pos;
|
|
import net.minestom.server.item.Material;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
@EnvTest
|
|
public class AdvancementIntegrationTest {
|
|
|
|
@Test
|
|
public void addAndRemoveViewer(Env env) {
|
|
var instance = env.createFlatInstance();
|
|
var player = env.createPlayer(instance, new Pos(0, 42, 0));
|
|
|
|
AdvancementRoot root = new AdvancementRoot(
|
|
Component.text("title"),
|
|
Component.text("description"),
|
|
Material.DIAMOND,
|
|
FrameType.TASK,
|
|
0,
|
|
0,
|
|
"minecraft:textures/block/stone.png"
|
|
);
|
|
|
|
AdvancementTab tab = env.process().advancement().createTab("minestom:minestom_tab", root);
|
|
|
|
// Add viewer
|
|
tab.addViewer(player);
|
|
assertEquals(1, tab.getViewers().size());
|
|
assertTrue(tab.getViewers().contains(player));
|
|
|
|
assertNotNull(AdvancementTab.getTabs(player));
|
|
assertEquals(1, AdvancementTab.getTabs(player).size());
|
|
assertTrue(AdvancementTab.getTabs(player).contains(tab));
|
|
|
|
// Remove viewer
|
|
tab.removeViewer(player);
|
|
assertEquals(0, tab.getViewers().size());
|
|
|
|
assertNull(AdvancementTab.getTabs(player));
|
|
}
|
|
|
|
@Test
|
|
public void removeViewerOnDisconnect(Env env) {
|
|
var instance = env.createFlatInstance();
|
|
var player = env.createPlayer(instance, new Pos(0, 42, 0));
|
|
|
|
AdvancementRoot root1 = new AdvancementRoot(
|
|
Component.text("title"),
|
|
Component.text("description"),
|
|
Material.DIAMOND,
|
|
FrameType.TASK,
|
|
0,
|
|
0,
|
|
"minecraft:textures/block/stone.png"
|
|
);
|
|
|
|
AdvancementRoot root2 = new AdvancementRoot(
|
|
Component.text("title2"),
|
|
Component.text("description"),
|
|
Material.DIAMOND,
|
|
FrameType.TASK,
|
|
0,
|
|
0,
|
|
"minecraft:textures/block/stone.png"
|
|
);
|
|
|
|
AdvancementTab tab1 = env.process().advancement().createTab("minestom:minestom_tab1", root1);
|
|
AdvancementTab tab2 = env.process().advancement().createTab("minestom:minestom_tab2", root2);
|
|
tab1.addViewer(player);
|
|
tab2.addViewer(player);
|
|
|
|
player.remove(); // Disconnect
|
|
assertEquals(0, tab1.getViewers().size());
|
|
assertEquals(0, tab2.getViewers().size());
|
|
assertNull(AdvancementTab.getTabs(player));
|
|
}
|
|
}
|