Make a new class to model folder called DialogueQueue
Code:
package com.rs2hd.model;
import java.util.LinkedList;
import java.util.Queue;
import com.rs2hd.definitionhandling.DefinitionHandler;
public class DialogueQueue {
/**
* Whos dialogues are we dealing with?
*/
private Player player;
/**
* Array where all dialogues are stored.
*/
private Queue<Dialogue> dialogueQueue;
public DialogueQueue(Player player) {
this.player = player;
this.dialogueQueue = new LinkedList<Dialogue>();
}
public void add(Dialogue d) {
dialogueQueue.add(d);
display(dialogueQueue.remove());
}
public void add(Dialogue[] d) {
for(int i = 0; i < d.length; i++) {
dialogueQueue.add(d[i]);
}
display(dialogueQueue.poll());
}
public Dialogue getNext() {
Dialogue next = dialogueQueue.poll();
if(next == null) {
return null;
}
display(next);
return next;
}
public void display(Dialogue d) {
if(d.getNpcId() > -1) {
String npcName = DefinitionHandler.getNPCDef(d.getNpcId()).getName() == null ? "Unknown" : DefinitionHandler.getNPCDef(d.getNpcId()).getName();
player.getActionSender().sendNpcHead(d.getNpcId(), 241, 2);
player.getActionSender().sendString(npcName, 241, 3);
} else {
player.getActionSender().sendString(player.getUsername(), 241, 3);
player.getActionSender().sendPlayerHead(241, 2);
}
player.getActionSender().sendChatboxInterface(241);
player.getActionSender().animateInterface(9847, 241, 2);
player.getActionSender().sendString(d.getText(), 241, 4);
}
}
And a class called Dialogue
Code:
package com.rs2hd.model;
public class Dialogue {
private Player owner;
private String text;
private int npcId;
public Dialogue(Player p, String str, int npcId) {
this.owner = p;
this.text = str;
this.npcId = npcId;
}
public String getText() {
return text;
}
public int getNpcId() {
return npcId;
}
public Player getOwner() {
return owner;
}
}
Add this to player class:
Code:
/**
* Dialogues
*/
private DialogueQueue dialogueQueue;
/**
* Handles player dialogues.
*/
public DialogueQueue getDialogueQueue() {
return dialogueQueue;
}
Declare this where you set constructors:
Code:
dialogueQueue = new DialogueQueue(this);
Add this to where you handle buttons for interfaces/chatboxinterfaces
Code:
case 241:
if(button == 5) {
player.getActionSender().sendCloseChatboxInterface();
player.getDialogueQueue().getNext();
}
break;
Have fun. 
Usage:
Code:
player.getDialogueQueue().add(new Dialogue[]{
new Dialogue(player, "Hello!", -1),
new Dialogue(player, "Hi!", affectedNpc.getId()),
new Dialogue(player, "How's it going?", -1),
new Dialogue(player, "I'm fine thank you.", affectedNpc.getId())});
or single dialogue:
Code:
player.getDialogueQueue().add(new Dialogue(player, "Hello!", -1));