RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ClanShowcase.java
1package com.osroyale.content.clanchannel.content;
2
3import com.osroyale.content.clanchannel.channel.ClanChannel;
4import com.osroyale.content.clanchannel.channel.ClanChannelHandler;
5import com.osroyale.game.world.entity.mob.player.Player;
6import com.osroyale.game.world.items.Item;
7import com.osroyale.game.world.items.ItemDefinition;
8import com.osroyale.net.packet.out.SendItemOnInterface;
9import com.osroyale.net.packet.out.SendMessage;
10import com.osroyale.net.packet.out.SendString;
11
12import java.util.ArrayList;
13import java.util.List;
14
47
48public class ClanShowcase {
49 private final ClanChannel channel;
50 public int[] showcase = new int[3];
51 public List<Integer> showcaseItems = new ArrayList<>(28);
52 private int currentItem = -1, currentSlot = -1;
53 private int showcaseSlot;
54
55 public ClanShowcase(ClanChannel channel) {
56 this.channel = channel;
57 }
58
59 public void openShowcase(Player player, int slot) {
60 Item[] showcase = new Item[28];
61 for (int index = 0; index < showcaseItems.size(); index++) {
62 showcase[index] = new Item(showcaseItems.get(index));
63 }
64 player.send(new SendString(channel.getName() + "'s Showcase", 57702));
65 player.send(new SendString(showcaseItems.size() + "/28", 57718));
66 player.send(new SendItemOnInterface(57716, showcase));
67 player.send(new SendItemOnInterface(57717));
68 showcaseSlot = slot;
69 currentSlot = -1;
70 currentItem = -1;
71 player.interfaceManager.open(57700);
72 }
73
74 public void select(Player player, int item, int slot) {
75 if (!player.interfaceManager.isInterfaceOpen(57700) || slot < 0 || slot >= showcaseItems.size())
76 return;
77
78 int id = showcaseItems.get(slot);
79 if (item == id) {
80 currentSlot = slot;
81 currentItem = id;
82 player.send(new SendItemOnInterface(57717, new Item(id)));
83 }
84 }
85
86 public void set(Player player) {
87 if (!player.interfaceManager.isInterfaceOpen(57700) || showcaseSlot < 0 || showcaseSlot >= 3)
88 return;
89
90 if (currentSlot == -1 || currentItem == -1) {
91 player.send(new SendMessage("You should select an item first."));
92 return;
93 }
94
95 showcase[showcaseSlot] = currentItem;
96 ClanChannelHandler.manage(player);
97 Item[] showcase = new Item[28];
98 for (int index = 0; index < showcaseItems.size(); index++) {
99 showcase[index] = new Item(showcaseItems.get(index));
100 }
101 player.send(new SendItemOnInterface(57716));
102 player.send(new SendItemOnInterface(57716, showcase));
103 player.send(new SendMessage("You have successfully changed your showcase."));
104 }
105
106 public void remove(Player player) {
107 if (!player.interfaceManager.isInterfaceOpen(57700))
108 return;
109
110 if (currentSlot == -1 || currentItem == -1) {
111 player.send(new SendMessage("You should select an item first."));
112 return;
113 }
114
115 if (showcaseItems.size() <= 3) {
116 player.send(new SendMessage("You need a minimum of 3 showcase items. This action can not be performed."));
117 return;
118 }
119
120 player.dialogueFactory.sendStatement(
121 "Are you sure you want to delete <col=225>" + ItemDefinition.get(currentItem).getName() + "</col>?",
122 "Once this action is performed it can not be undone!")
123 .sendOption("Yes", () -> {
124 showcaseItems.remove(currentSlot);
125 openShowcase(player, currentItem);
126 player.send(new SendMessage("You have successfully removed that item from your showcase."));
127 }, "Nevermind", () -> player.dialogueFactory.clear()).execute();
128 }
129}
final DialogueFactory sendStatement(String... lines)
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)