Small Update

* Disabled The Old Dialogue System
* Converted CooksAssistant/Lumbridge Cook Dialogue
* Only Show Log Info For New Dialogue System When Server Is In Debug Mode
This commit is contained in:
Dark98
2021-12-15 02:08:54 +00:00
parent 8d0000de0b
commit 3c61ba69f3
8 changed files with 183 additions and 168 deletions
@@ -0,0 +1,26 @@
package plugin.quests.cooksassistant
import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo
import com.rs2.event.impl.NpcFirstClickEvent
import com.rs2.game.players.Player
import plugin.quests.cooksassistant.dialogue.LumbridgeCookDialogue
@SubscribesTo(NpcFirstClickEvent::class)
class FirstClick : EventSubscriber<NpcFirstClickEvent> {
override fun subscribe(context: EventContext, player: Player, event: NpcFirstClickEvent) {
when(event.npc) {
//Lumbridge Cook (278)
278 -> {
if (player.playerRights >= 3) {
player.packetSender.sendMessage("[click= npc], [type = first/quest], [id= ${event.npc}], [Type= ${event.npc}]")
}
player.dialogueFactory.sendDialogue(LumbridgeCookDialogue())
}
}
}
}
@@ -0,0 +1,151 @@
package plugin.quests.cooksassistant.dialogue
import com.rs2.game.content.quests.QuestAssistant
import com.rs2.game.content.quests.QuestRewards
import com.rs2.game.dialogues.DialogueFactoryPlugin
import com.rs2.game.dialogues.DialoguePlugin
import com.rs2.game.dialogues.ExpressionPlugin
/**
* The Dialogue For The Lumbridge Castle Cook/Cooks Assistant Quest
*/
class LumbridgeCookDialogue : DialoguePlugin() {
override fun sendDialogues(factory: DialogueFactoryPlugin) {
if (factory.player.cookAss == 0) {
factory
.sendNPCChat(ExpressionPlugin.ANXIOUS, "What am I to do?")
.sendOption("What's wrong?", {
factory
.onAction {
factory
.sendPlayerChat("What's wrong?")
.sendNPCChat(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!"
)
.sendNPCChat(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?"
)
.sendOption("I'm always happy to help a cook in distress", {
factory.onAction {
factory
.sendPlayerChat("Yes, I'll help you.")
.sendNPCChat(
"Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me."
)
.sendPlayerChat("So where do I find these ingredients then?")
.sendNPCChat(
"You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow"
)
.execute()
.player.cookAss = 1
QuestAssistant.sendStages(factory.player)
}
},
"I can't right now, Maybe later.", {
factory.onAction {
factory
.sendPlayerChat("I can't right now, Maybe later.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
})
}
}, "Can you cook me a cake?", {
factory
.onAction {
factory
.sendNPCChat("Does it look like I have the time?")
.execute()
}
}, "You don't look very happy.", {
factory
.sendPlayerChat(ExpressionPlugin.ANXIOUS, "You don't look so happy.")
.sendNPCChat(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!"
)
.sendNPCChat(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?"
)
.sendOption("I'm always happy to help a cook in distress", {
factory.onAction {
factory
.sendPlayerChat("Yes, I'll help you.")
.sendNPCChat(
"Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me."
)
.sendPlayerChat("So where do I find these ingredients then?")
.sendNPCChat(
"You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow"
)
.execute()
.player.cookAss = 1
QuestAssistant.sendStages(factory.player)
}
},
"I can't right now, Maybe later.", {
factory.onAction {
factory
.sendPlayerChat("I can't right now, Maybe later.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
})
}, "Nice hat.") {
factory
.sendNPCChat("I don't have time for your jibber-jabber!")
}
.execute()
} else if(factory.player.cookAss == 1) {
factory
.sendNPCChat("How are you getting on with finding the ingredients?")
if (factory.player.itemAssistant.playerHasItem(1944, 1)
&& factory.player.itemAssistant.playerHasItem(1927, 1)
&& factory.player.itemAssistant.playerHasItem(1933, 1)
) {
factory.sendPlayerChat("Here's all the items!")
factory.player.itemAssistant.deleteItem(1944, 1)
factory.player.itemAssistant.deleteItem(1927, 1)
factory.player.itemAssistant.deleteItem(1933, 1)
factory.player.cookAss = 2
factory.sendNPCChat("You brought me everything I need! I'm saved!", "Thank you!")
.sendPlayerChat("So do I get to go to the Duke's Party?")
.sendNPCChat("I'm afraid not, only the big cheeses get to dine with the", "Duke.")
.sendPlayerChat("Well, maybe one day I'll be important enough to sit on", "the Duke's table")
.sendNPCChat("Maybe, but I won't be holding my breath.")
QuestRewards.cookReward(factory.player)
} else {
factory.sendPlayerChat("I don't have all the items yet.")
.sendNPCChat("Oh please! Hurry then!")
.execute()
}
} else if(factory.player.cookAss == 2) {
factory
.sendPlayerChat("So do I get to go to the Duke's Party?")
.sendNPCChat("I'm afraid not, only the big cheeses get to dine with the", "Duke.")
.sendPlayerChat("Well, maybe one day I'll be important enough to sit on", "the Duke's table")
.sendNPCChat("Maybe, but I won't be holding my breath.")
QuestRewards.cookReward(factory.player)
} else if(factory.player.cookAss == 3) {
factory.sendNPCChat("Thanks for helping me out friend!")
}
}
}
@@ -670,7 +670,9 @@ public final class DialogueFactoryPlugin {
private final String[] splitLines(String... text) { private final String[] splitLines(String... text) {
if(text.length > 1){ if(text.length > 1){
logger.log(Level.INFO, "Detected more than 1 Dialogue line. Assuming Dialogues have been split already."); if(GameConstants.SERVER_DEBUG) {
logger.log(Level.INFO, "Detected more than 1 Dialogue line. Assuming Dialogues have been split already.");
}
return text; return text;
} }
int characters = text[0].length(); int characters = text[0].length();
@@ -317,140 +317,6 @@ public class DialogueHandler {
player.nextChat = 0; player.nextChat = 0;
player.ptjob = 2; player.ptjob = 2;
break; break;
case 50:
sendNpcChat1("What am I to do?", player.talkingNpc, "Cook");
player.nextChat = 51;
break;
case 51:
sendOption("What's wrong?", "Can you cook me a cake?",
"You don't look very happy.", "Nice hat.");
player.dialogueAction = 52;
break;
case 52:
sendPlayerChat("What's wrong?");
player.nextChat = 54;
break;
case 54:
sendNpcChat3(
"Oh dear, oh dear, oh dear, I'm in a terrible terrible",
"mess! It's the Duke's birthday today, and I should be",
"making him a lovely big birthday cake!",
player.talkingNpc, "Cook");
player.nextChat = 55;
break;
case 55:
sendNpcChat4(
"I've forgotten to buy the ingredients. I'll never get",
"them in time now. He'll sack me! What will I do? I have",
"four children and a goat to look after. Would you help",
"me? Please?", player.talkingNpc, "Cook");
player.nextChat = 56;
break;
case 56:
sendOption("I'm always happy to help a cook in distress.",
"I can't right now, Maybe later.");
player.dialogueAction = 57;
break;
case 57:
sendPlayerChat("Yes, I'll help you.");// 9157
player.nextChat = 60;
break;
case 58:
sendPlayerChat("I can't right now, Maybe later.");// 9158
player.nextChat = 59;
break;
case 59:
sendNpcChat1("Oh please! Hurry then!", player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 60:
sendNpcChat2("Oh thank you, thank you. I need milk, an egg, and",
"flour. I'd be very grateful if you can get them for me.",
player.talkingNpc, "Cook");
player.cookAss = 1;
QuestAssistant.sendStages(player);
player.nextChat = 61;
break;
case 61:
sendPlayerChat("So where do I find these ingredients then?");
player.nextChat = 62;
break;
case 62:
sendNpcChat3("You can find flour in any of the shops here.",
"You can find eggs by killing chickens.",
"You can find milk by using a bucket on a cow",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 63:
sendNpcChat1("I don't have time for your jibber-jabber!",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 64:
sendNpcChat1("Does it look like I have the time?",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 65:
sendPlayerChat("You don't look so happy.");
player.nextChat = 54;
break;
case 66:
sendNpcChat1(
"How are you getting on with finding the ingredients?",
player.talkingNpc, "Cook");
player.nextChat = 67;
break;
case 67:
if (player.getItemAssistant().playerHasItem(1944, 1)
&& player.getItemAssistant().playerHasItem(1927, 1)
&& player.getItemAssistant().playerHasItem(1933, 1)) {
sendPlayerChat("Here's all the items!");
player.nextChat = 68;
} else {
sendPlayerChat("I don't have all the items yet.");
player.nextChat = 59;
}
break;
case 68:
player.getItemAssistant().deleteItem(1944, 1);
player.getItemAssistant().deleteItem(1927, 1);
player.getItemAssistant().deleteItem(1933, 1);
player.cookAss = 2;
sendNpcChat2("You brought me everything I need! I'm saved!",
"Thank you!", player.talkingNpc, "Cook");
player.nextChat = 69;
break;
case 69:
sendPlayerChat("So do I get to go to the Duke's Party?");
player.nextChat = 70;
break;
case 70:
sendNpcChat2(
"I'm afraid not, only the big cheeses get to dine with the",
"Duke.", player.talkingNpc, "Cook");
player.nextChat = 72;
break;
case 72:
sendPlayerChat(
"Well, maybe one day I'll be important enough to sit on",
"the Duke's table");
player.nextChat = 74;
break;
case 74:
sendNpcChat1("Maybe, but I won't be holding my breath.",
player.talkingNpc, "Cook");
player.nextChat = 75;
break;
case 75:
QuestRewards.cookReward(player);
break;
case 76:
sendNpcChat1("Thanks for helping me out friend!",
player.talkingNpc, "Cook");
player.nextChat = 0;
break;
case 84: case 84:
sendNpcChat1("How are you getting on finding all my supplies", sendNpcChat1("How are you getting on finding all my supplies",
player.talkingNpc, "Doric"); player.talkingNpc, "Doric");
@@ -393,9 +393,6 @@ public class DialogueOptions {
} else if (player.dialogueAction == 56) { } else if (player.dialogueAction == 56) {
player.getDialogueHandler().sendDialogues(96, player.npcType); player.getDialogueHandler().sendDialogues(96, player.npcType);
return; return;
} else if (player.dialogueAction == 57) {
player.getDialogueHandler().sendDialogues(57, player.npcType);
return;
} else if (player.dialogueAction == 3222) { } else if (player.dialogueAction == 3222) {
player.getBarrows().checkCoffins(); player.getBarrows().checkCoffins();
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
@@ -692,9 +689,6 @@ public class DialogueOptions {
} else if (player.dialogueAction == 74) { } else if (player.dialogueAction == 74) {
player.getDialogueHandler().sendDialogues(535, player.npcType); player.getDialogueHandler().sendDialogues(535, player.npcType);
return; return;
} else if (player.dialogueAction == 57) {
player.getDialogueHandler().sendDialogues(58, player.npcType);
return;
} else if (player.dialogueAction == 62) { } else if (player.dialogueAction == 62) {
player.getDialogueHandler().sendDialogues(309, player.npcType); player.getDialogueHandler().sendDialogues(309, player.npcType);
return; return;
@@ -944,9 +938,6 @@ public class DialogueOptions {
if (player.dialogueAction == 113) { if (player.dialogueAction == 113) {
player.getDialogueHandler().sendDialogues(3540, player.npcType); player.getDialogueHandler().sendDialogues(3540, player.npcType);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(52, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3524,player.npcType); player.getDialogueHandler().sendDialogues(3524,player.npcType);
} }
@@ -1017,9 +1008,6 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(3293, 3174, 0, "modern"); player.getPlayerAssistant().gloryTeleport(3293, 3174, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(64, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523, player.npcType); player.getDialogueHandler().sendDialogues(3523, player.npcType);
} }
@@ -1093,9 +1081,6 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(2911, 3152, 0, "modern"); player.getPlayerAssistant().gloryTeleport(2911, 3152, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(65, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523,player.npcType); player.getDialogueHandler().sendDialogues(3523,player.npcType);
} }
@@ -1154,9 +1139,6 @@ public class DialogueOptions {
player.getPlayerAssistant().gloryTeleport(3103, 3249, 0, "modern"); player.getPlayerAssistant().gloryTeleport(3103, 3249, 0, "modern");
Teles.necklaces(player); Teles.necklaces(player);
} }
if (player.dialogueAction == 52) {
player.getDialogueHandler().sendDialogues(63, player.npcType);
}
if (player.dialogueAction == 1000) { if (player.dialogueAction == 1000) {
player.getDialogueHandler().sendDialogues(3523, player.npcType); player.getDialogueHandler().sendDialogues(3523, player.npcType);
} }
@@ -724,18 +724,6 @@ public class NpcActions {
} }
break; break;
case 278:
if (player.cookAss == 0) {
player.getDialogueHandler().sendDialogues(50, npcType);
} else if (player.cookAss == 1) {
player.getDialogueHandler().sendDialogues(67, npcType);
} else if (player.cookAss == 2) {
player.getDialogueHandler().sendDialogues(69, npcType);
} else if (player.cookAss == 3) {
player.getDialogueHandler().sendDialogues(76, npcType);
}
break;
case 608: case 608:
if (player.blackKnight == 0 && player.questPoints >= 12) { if (player.blackKnight == 0 && player.questPoints >= 12) {
player.getDialogueHandler().sendDialogues(3902, npcType); player.getDialogueHandler().sendDialogues(3902, npcType);
@@ -59,7 +59,7 @@ public class ClickingButtons implements PacketType {
SilverCrafting.makeSilver(player, actionButtonId, 0); SilverCrafting.makeSilver(player, actionButtonId, 0);
Climbing.handleLadderButtons(player, actionButtonId); Climbing.handleLadderButtons(player, actionButtonId);
Specials.specialClicking(player, actionButtonId); Specials.specialClicking(player, actionButtonId);
DialogueOptions.handleDialogueOptions(player, actionButtonId); //DialogueOptions.handleDialogueOptions(player, actionButtonId);
DairyChurn.churnItem(player, actionButtonId); DairyChurn.churnItem(player, actionButtonId);
if (EnchantStaff.staffButtons(player, actionButtonId)) { if (EnchantStaff.staffButtons(player, actionButtonId)) {
return; return;
@@ -16,11 +16,11 @@ public class DialoguePacket implements PacketType {
to the new system. Expect to see flickering in some Astraeus Dialogues as the old to the new system. Expect to see flickering in some Astraeus Dialogues as the old
dialogue handler activates before it. dialogue handler activates before it.
*/ */
if (player.nextChat > 0) { /*if (player.nextChat > 0) {
player.getDialogueHandler().sendDialogues(player.nextChat, player.talkingNpc); player.getDialogueHandler().sendDialogues(player.nextChat, player.talkingNpc);
} else { } else {
player.getDialogueHandler().sendDialogues(0, -1); player.getDialogueHandler().sendDialogues(0, -1);
} }*/
// New Dialogue System // New Dialogue System
player.getDialogueFactory().execute(); player.getDialogueFactory().execute();