Jump to content

Featured Replies

Posted
comment_13270

Ticket system where a player requests a ticket, a message would then be sent to the staff online and could then be accepted.

package com.elvarg.game.content.ticket;

import com.elvarg.game.World;
import com.elvarg.game.entity.impl.player.Player;
import com.elvarg.util.Misc;

import java.util.*;
import java.util.stream.Collectors;

public class TicketManager {

    private final Queue<TicketEntry> entries = new ArrayDeque<>();

    public static final TicketManager INSTANCE = new TicketManager();

    public void acceptRequest(Player staff) {
        if (entries.peek() == null) {
            staff.getPacketSender().sendMessage("No tickets have been requested.");
            return;
        }

        TicketEntry entry = entries.peek();
        entries.poll();
        Player player = entry.getRequester();

        player.getPacketSender().sendMessage(staff.getUsername() + " has accepted your ticket");
        staff.getPacketSender().sendMessage("Teleporting to " + player.getUsername());
        staff.moveTo(player.getPosition().copy());
        staff.forceChat("How may I help you " + Misc.capitalize(player.getUsername()) + "?");
    }
package com.elvarg.game.content.ticket;

import com.elvarg.game.entity.impl.player.Player;

public final class TicketEntry {

    private final Player requester;

    public TicketEntry(Player requester) {
        this.requester = requester;
    }

    public Player getRequester() {
        return requester;
    }
}

Add this OwnerCommands

if (parts[0].startsWith("acceptticket")) {
			TicketManager.INSTANCE.acceptRequest(player);
}

Add this under PlayerCommands

if (parts[0].startsWith("request")) {
			TicketManager.INSTANCE.requestTicket(player);
}
  • 1 year later...
  • 3 years later...
  • 1 year later...

Create an account or sign in to comment