mirror of
https://github.com/Minestom/Minestom.git
synced 2025-01-20 23:21:24 +01:00
Added AdvancementTabEvent
This commit is contained in:
parent
87fcb83837
commit
2ab7427b94
@ -0,0 +1,7 @@
|
|||||||
|
package net.minestom.server.advancements;
|
||||||
|
|
||||||
|
public enum AdvancementAction {
|
||||||
|
|
||||||
|
OPENED_TAB, CLOSED_SCREEN
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package net.minestom.server.event.player;
|
||||||
|
|
||||||
|
import net.minestom.server.advancements.AdvancementAction;
|
||||||
|
import net.minestom.server.entity.Player;
|
||||||
|
import net.minestom.server.event.Event;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the players open the advancement screens or switch the tab
|
||||||
|
* and when he closes the screen
|
||||||
|
*/
|
||||||
|
public class AdvancementTabEvent extends Event {
|
||||||
|
|
||||||
|
private final Player player;
|
||||||
|
private final AdvancementAction action;
|
||||||
|
private final String tabId;
|
||||||
|
|
||||||
|
public AdvancementTabEvent(Player player, AdvancementAction action, String tabId) {
|
||||||
|
this.player = player;
|
||||||
|
this.action = action;
|
||||||
|
this.tabId = tabId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player responsive for the event
|
||||||
|
*
|
||||||
|
* @return the player
|
||||||
|
*/
|
||||||
|
public Player getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the action
|
||||||
|
*
|
||||||
|
* @return the action
|
||||||
|
*/
|
||||||
|
public AdvancementAction getAction() {
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the tab id
|
||||||
|
* <p>
|
||||||
|
* Not null ony if {@link #getAction()} is equal to {@link AdvancementAction#OPENED_TAB}
|
||||||
|
*
|
||||||
|
* @return the tab id
|
||||||
|
*/
|
||||||
|
public String getTabId() {
|
||||||
|
return tabId;
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,17 @@
|
|||||||
package net.minestom.server.listener;
|
package net.minestom.server.listener;
|
||||||
|
|
||||||
|
import net.minestom.server.advancements.AdvancementAction;
|
||||||
import net.minestom.server.entity.Player;
|
import net.minestom.server.entity.Player;
|
||||||
|
import net.minestom.server.event.player.AdvancementTabEvent;
|
||||||
import net.minestom.server.network.packet.client.play.ClientAdvancementTabPacket;
|
import net.minestom.server.network.packet.client.play.ClientAdvancementTabPacket;
|
||||||
|
|
||||||
public class AdvancementTabListener {
|
public class AdvancementTabListener {
|
||||||
|
|
||||||
public static void listener(ClientAdvancementTabPacket packet, Player player) {
|
public static void listener(ClientAdvancementTabPacket packet, Player player) {
|
||||||
// Currentely unused and don't see much usage for an API
|
final AdvancementAction action = packet.action;
|
||||||
// TODO: Create an Event?
|
final String tabId = packet.tabIdentifier;
|
||||||
|
AdvancementTabEvent advancementTabEvent = new AdvancementTabEvent(player, action, tabId);
|
||||||
|
|
||||||
|
player.callEvent(AdvancementTabEvent.class, advancementTabEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,25 +1,21 @@
|
|||||||
package net.minestom.server.network.packet.client.play;
|
package net.minestom.server.network.packet.client.play;
|
||||||
|
|
||||||
|
import net.minestom.server.advancements.AdvancementAction;
|
||||||
import net.minestom.server.network.packet.PacketReader;
|
import net.minestom.server.network.packet.PacketReader;
|
||||||
import net.minestom.server.network.packet.client.ClientPlayPacket;
|
import net.minestom.server.network.packet.client.ClientPlayPacket;
|
||||||
|
|
||||||
public class ClientAdvancementTabPacket extends ClientPlayPacket {
|
public class ClientAdvancementTabPacket extends ClientPlayPacket {
|
||||||
|
|
||||||
public Action action;
|
public AdvancementAction action;
|
||||||
public String tabIdentifier;
|
public String tabIdentifier;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(PacketReader reader) {
|
public void read(PacketReader reader) {
|
||||||
this.action = Action.values()[reader.readVarInt()];
|
this.action = AdvancementAction.values()[reader.readVarInt()];
|
||||||
|
|
||||||
if (action == Action.OPENED_TAB) {
|
if (action == AdvancementAction.OPENED_TAB) {
|
||||||
this.tabIdentifier = reader.readSizedString();
|
this.tabIdentifier = reader.readSizedString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Action {
|
|
||||||
OPENED_TAB,
|
|
||||||
CLOSED_SCREEN
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user