RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ClanRankDialogue.java
1package com.osroyale.content.dialogue.impl;
2
3import com.osroyale.content.clanchannel.ClanMember;
4import com.osroyale.content.clanchannel.ClanRank;
5import com.osroyale.content.clanchannel.channel.ClanChannel;
6import com.osroyale.content.dialogue.Dialogue;
7import com.osroyale.content.dialogue.DialogueFactory;
8import com.osroyale.game.world.entity.mob.player.Player;
9import com.osroyale.net.packet.out.SendMessage;
10
30
31public class ClanRankDialogue extends Dialogue {
32
33 @Override
34 public void sendDialogues(DialogueFactory factory) {
35 Player player = factory.getPlayer();
36 ClanChannel channel = player.clanChannel;
37 if (channel == null)
38 return;
39 ClanMember playerMember = channel.getMember(player.getName()).orElse(null);
40 if (playerMember == null || !channel.canManage(playerMember)) {
41 player.send(new SendMessage("You do not have the required rank to do this."));
42 return;
43 }
44 ClanMember member = player.attributes.get("CLAN_RANK_MEMBER", ClanMember.class);
45 if (member == null)
46 return;
47 factory.sendOption("Recruit", () -> factory.onAction(() -> {
48 setRank(player, channel, member, ClanRank.RECRUIT);
49 }), "Corporal", () -> factory.onAction(() -> {
50 setRank(player, channel, member, ClanRank.CORPORAL);
51 }), "Sergeant", () -> factory.onAction(() -> {
52 setRank(player, channel, member, ClanRank.SERGEANT);
53 }), "Lieutenant", () -> factory.onAction(() -> {
54 setRank(player, channel, member, ClanRank.LIEUTENANT);
55 }), "Next", () -> {
56 factory.onAction(() -> {
57 factory.sendOption("Captain", () -> factory.onAction(() -> {
58 setRank(player, player.clanChannel, member, ClanRank.CAPTAIN);
59 }), "General", () -> factory.onAction(() -> {
60 setRank(player, player.clanChannel, member, ClanRank.GENERAL);
61 }), "Nevermind", () -> factory.onAction(factory::clear));
62 });
63 }).execute();
64 }
65
66 private void setRank(Player player, ClanChannel channel, ClanMember member, ClanRank rank) {
67 channel.setRank(member, rank);
68 player.dialogueFactory.sendStatement("You have promoted " + member.name + " to " + rank.getString() + " " + rank.name).execute();
69 player.interfaceManager.close();
70 }
71
72}
final DialogueFactory sendStatement(String... lines)
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)
final DialogueFactory onAction(Runnable action)