RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.content.preset.PresetManager Class Reference

Handles managing the preset system. More...

Collaboration diagram for com.runehive.content.preset.PresetManager:

Public Member Functions

void activate ()
 Activates the preset.
void delete ()
 Handles deleting the preset.
void name (String name)
 Handles naming the preset.
void open ()
 Opens the preset to the last viewed slot.
void open (int slot)
 Opens the preset to a specific slot.
void openSettings ()
 Handles opening the settings menu for the preset.
 PresetManager (Player player)
 Constructs a new PresetManager.
void refresh ()
 Refreshes all the components on the interface.
void upload ()
 Handles uploading the preset content.

Public Attributes

boolean autoDeposit
 The automatically deposit items on activate flag.
boolean deathOpen
 The preset opening on death flag.
Preset[] preset = new Preset[SIZE]
 The presets.

Static Public Attributes

static final int SIZE = 10
 The total preset size.

Private Member Functions

void equipment (Preset preset)
int getSlot ()
 Gets the current slot of the preset.
int getTaken ()
 Gets the taken preset amount.
boolean hasItemRequirements (Player player, int[] requirements)
void inventory (Preset preset)
boolean valid (boolean open)
 Checks if the preset is valid.

Private Attributes

boolean permitted
 If the player is allowed all presets.
final Player player
 The player instance.

Detailed Description

Handles managing the preset system.

Author
Daniel

Definition at line 27 of file PresetManager.java.

Constructor & Destructor Documentation

◆ PresetManager()

com.runehive.content.preset.PresetManager.PresetManager ( Player player)

Constructs a new PresetManager.

Definition at line 48 of file PresetManager.java.

48 {
49 this.player = player;
50 }

References player.

Member Function Documentation

◆ activate()

void com.runehive.content.preset.PresetManager.activate ( )

Activates the preset.

Definition at line 158 of file PresetManager.java.

158 {
159 if (!valid(false))
160 return;
161
162 int slot = getSlot();
163
164 if (preset[slot] == null) {
165 player.send(new SendMessage("You have nothing assigned to this preset!"));
166 return;
167 }
168
169 if (autoDeposit) {
170 player.bank.depositeInventory(false);
171 player.bank.depositeEquipment(false);
172 }
173
174 if (!player.inventory.isEmpty() || !player.equipment.isEmpty()) {
175 player.send(new SendMessage("Please deposit all items from your inventory and equipment."));
176 return;
177 }
178
179 player.updateFlags.add(UpdateFlag.APPEARANCE);
180
181 equipment(preset[slot]);
182 inventory(preset[slot]);
183
184 Autocast.reset(player);
185 player.prayer.reset();
186 player.equipment.login();
187 player.inventory.refresh();
188 player.quickPrayers.only(preset[slot].getPrayer().getEnabled().toArray(new Prayer[0]));
189 player.spellbook = preset[slot].getSpellbook();
190 player.interfaceManager.setSidebar(Config.MAGIC_TAB, player.spellbook.getInterfaceId());
191 player.send(new SendMessage("<col=ff0000>" + preset[slot].getName() + "</col> has been activated."));
192
193 if (player.pvpInstance) {
194 player.playerAssistant.setValueIcon();
195 }
196 }

References com.runehive.game.world.entity.mob.UpdateFlag.APPEARANCE, autoDeposit, equipment(), getSlot(), inventory(), com.runehive.Config.MAGIC_TAB, player, preset, com.runehive.game.world.entity.combat.magic.Autocast.reset(), and valid().

Here is the call graph for this function:

◆ delete()

void com.runehive.content.preset.PresetManager.delete ( )

Handles deleting the preset.

Definition at line 278 of file PresetManager.java.

278 {
279 if (!valid(false))
280 return;
281 int slot = getSlot();
282 if (preset[slot] == null)
283 return;
284 player.dialogueFactory.sendOption("Delete " + preset[slot].getName() + " (<col=f44259>CANT BE UNDONE</col>)", () -> {
285 preset[slot] = null;
286 refresh();
287 player.send(new SendMessage("You have successfully cleared preset #" + (slot + 1) + "."));
288 player.dialogueFactory.clear();
289 }, "Nevermind", () -> player.dialogueFactory.clear()).execute();
290 }

References getSlot(), player, preset, refresh(), and valid().

Here is the call graph for this function:

◆ equipment()

void com.runehive.content.preset.PresetManager.equipment ( Preset preset)
private

Definition at line 198 of file PresetManager.java.

198 {
199 List<String> requirements = new ArrayList<>();
200 for (Item item : preset.getEquipment()) {
201 if (item == null)
202 continue;
203
204 if (!hasItemRequirements(player, item.getRequirements())) {
205 requirements.add(item.getName());
206 continue;
207 }
208
209 int tabSlot = player.bank.computeIndexForId(item.getId());
210 if (tabSlot <= -1)
211 continue;
212
213 int tab = player.bank.tabForSlot(tabSlot);
214 if (tab <= -1)
215 continue;
216
217 int amount = player.bank.get(tabSlot).getAmount();
218 if (amount <= 0)
219 continue;
220
221 if (item.getAmount() > amount) {
222 item = item.copy();
223 item.setAmount(amount);
224 }
225
226 if (player.bank.remove(item.unnoted(), tabSlot, false)) {
227 if (!player.bank.indexOccupied(tabSlot)) {
228 player.bank.changeTabAmount(tab, -1);
229 player.bank.shift();
230 }
231
232 player.equipment.manualWear(item.copy());
233 }
234 }
235
236 if (!requirements.isEmpty()) {
237 player.send(new SendMessage("<col=ff0000>Some items could not be equipped due to not having the skill requirements."));
238 }
239 }

References hasItemRequirements(), player, and preset.

Referenced by activate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSlot()

int com.runehive.content.preset.PresetManager.getSlot ( )
private

Gets the current slot of the preset.

Definition at line 334 of file PresetManager.java.

334 {
335 return player.attributes.get("PRELOADING_SLOT_KEY", Integer.class);
336 }

References player.

Referenced by activate(), delete(), name(), open(), refresh(), and upload().

Here is the caller graph for this function:

◆ getTaken()

int com.runehive.content.preset.PresetManager.getTaken ( )
private

Gets the taken preset amount.

Definition at line 323 of file PresetManager.java.

323 {
324 int taken = SIZE;
325 for (int i = 0; i < SIZE; i++) {
326 if (preset[i] != null || i >= PlayerRight.getPresetAmount(player)) {
327 taken--;
328 }
329 }
330 return taken;
331 }

References com.runehive.game.world.entity.mob.player.PlayerRight.getPresetAmount(), player, preset, and SIZE.

Referenced by refresh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasItemRequirements()

boolean com.runehive.content.preset.PresetManager.hasItemRequirements ( Player player,
int[] requirements )
private

Definition at line 338 of file PresetManager.java.

338 {
339 for (int i = 0; i < requirements.length; i++) {
340 int level = player.skills.getMaxLevel(i);
341 int required = requirements[i];
342
343 if (level < required) {
344 return false;
345 }
346 }
347 return true;
348 }

References player.

Referenced by equipment().

Here is the caller graph for this function:

◆ inventory()

void com.runehive.content.preset.PresetManager.inventory ( Preset preset)
private

Definition at line 241 of file PresetManager.java.

241 {
242 Item[] inventory = preset.getInventory();
243 for (int index = 0; index < inventory.length; index++) {
244 Item item = inventory[index];
245
246 if (item == null)
247 continue;
248
249 int tabSlot = player.bank.computeIndexForId(item.getId());
250 if (tabSlot <= -1)
251 continue;
252
253 int tab = player.bank.tabForSlot(tabSlot);
254 if (tab <= -1)
255 continue;
256
257 int amount = player.bank.get(tabSlot).getAmount();
258 if (amount <= 0)
259 continue;
260
261 if (item.getAmount() > amount) {
262 item = item.copy();
263 item.setAmount(amount);
264 }
265
266 if (player.bank.remove(item.unnoted(), tabSlot, false)) {
267 if (!player.bank.indexOccupied(tabSlot)) {
268 player.bank.changeTabAmount(tab, -1);
269 player.bank.shift();
270 }
271
272 player.inventory.set(index, item.copy(), false);
273 }
274 }
275 }
val index

References com.runehive.game.world.items.Item.copy(), com.runehive.game.world.items.Item.getAmount(), com.runehive.game.world.items.Item.getId(), inventory(), player, preset, com.runehive.game.world.items.Item.setAmount(), and com.runehive.game.world.items.Item.unnoted().

Referenced by activate(), and inventory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ name()

void com.runehive.content.preset.PresetManager.name ( String name)

Handles naming the preset.

Definition at line 110 of file PresetManager.java.

110 {
111 int slot = getSlot();
112
113 if (!permitted && slot >= 5) {
114 player.dialogueFactory.sendStatement("You need to be a donator for more preset slots!").execute();
115 return;
116 }
117
118 if (preset[slot] == null) {
119 preset[slot] = new Preset(name);
120 } else {
121 preset[slot].setName(name);
122 }
123 refresh();
124 player.send(new SendMessage("You have successfully titles preset #" + (slot + 1) + " to " + name + "."));
125 }

References getSlot(), name(), permitted, player, preset, and refresh().

Referenced by name(), and refresh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ open() [1/2]

void com.runehive.content.preset.PresetManager.open ( )

Opens the preset to the last viewed slot.

Definition at line 53 of file PresetManager.java.

53 {
54 open(getSlot());
55 }

References getSlot(), and open().

Referenced by open(), and valid().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ open() [2/2]

void com.runehive.content.preset.PresetManager.open ( int slot)

Opens the preset to a specific slot.

Definition at line 58 of file PresetManager.java.

58 {
59 if (valid(true)) {
60 permitted = slot <= PlayerRight.getPresetAmount(player);
61
62 if (!permitted) {
63 player.dialogueFactory.sendStatement("You need to be a donator for more preset slots!").execute();
64 return;
65 }
66
67 player.attributes.set("PRELOADING_SLOT_KEY", slot);
68 refresh();
69 player.interfaceManager.open(57_000);
70 }
71 }

References com.runehive.game.world.entity.mob.player.PlayerRight.getPresetAmount(), permitted, player, refresh(), and valid().

Here is the call graph for this function:

◆ openSettings()

void com.runehive.content.preset.PresetManager.openSettings ( )

Handles opening the settings menu for the preset.

Definition at line 293 of file PresetManager.java.

293 {
294 DialogueFactory factory = player.dialogueFactory;
295 factory.sendOption("View current settings", () -> {
296 factory.onAction(() -> {
297 factory.sendInformationBox("<col=3E74B8>Preset Settings", "</col>Open on death: " + (deathOpen ? "<col=0E8716>Enabled" : "<col=F01818>Disabled"), "</col>Automatic deposit: " + (autoDeposit ? "<col=0E8716>Enabled" : "<col=F01818>Disabled")).execute();
298 });
299 }, "Toggle open on death", () -> factory.onAction(() -> {
300 deathOpen = !deathOpen;
301 factory.sendStatement("The preset interface will now " + (deathOpen ? "" : "<col=F01818>not</col> ") + "open on death", "automatically.").execute();
302 }), "Toggle automatic deposit", () -> {
303 factory.onAction(() -> {
304 autoDeposit = !autoDeposit;
305 factory.sendStatement("Your items will now " + (autoDeposit ? "" : "<col=F01818>not</col> ") + "automatically deposit on activation.").execute();
306 });
307 }, "Nevermind", () -> factory.onAction(factory::clear)).execute();
308 }

References autoDeposit, deathOpen, com.runehive.content.dialogue.DialogueFactory.execute(), com.runehive.content.dialogue.DialogueFactory.onAction(), player, com.runehive.content.dialogue.DialogueFactory.sendInformationBox(), com.runehive.content.dialogue.DialogueFactory.sendOption(), and com.runehive.content.dialogue.DialogueFactory.sendStatement().

Here is the call graph for this function:

◆ refresh()

void com.runehive.content.preset.PresetManager.refresh ( )

Refreshes all the components on the interface.

Definition at line 74 of file PresetManager.java.

74 {
75 int slot = getSlot();
76 int slotId = 57049;
77 for (int i = 0; i < SIZE; i++) {
78 boolean locked = i >= PlayerRight.getPresetAmount(player);
79 String defaultName = locked ? "<col=F23030>Locked" : (preset[i] == null ? "---" : preset[i].getName());
80 String name = (i == slot ? "<col=ffffff>" : "<col=39BF5B>") + defaultName;
81 player.send(new SendString(name, slotId));
82 slotId += 4;
83 }
84
85 int attack = preset[slot] == null ? 1 : player.skills.get(Skill.ATTACK).getMaxLevel();
86 int strength = preset[slot] == null ? 1 : player.skills.get(Skill.STRENGTH).getMaxLevel();
87 int defence = preset[slot] == null ? 1 : player.skills.get(Skill.DEFENCE).getMaxLevel();
88 int hitpoints = preset[slot] == null ? 10 : player.skills.get(Skill.HITPOINTS).getMaxLevel();
89 int prayer = preset[slot] == null ? 1 : player.skills.get(Skill.PRAYER).getMaxLevel();
90 int ranged = preset[slot] == null ? 1 : player.skills.get(Skill.RANGED).getMaxLevel();
91 int magic = preset[slot] == null ? 1 : player.skills.get(Skill.MAGIC).getMaxLevel();
92 player.send(new SendString(attack, 57014));
93 player.send(new SendString(strength, 57015));
94 player.send(new SendString(defence, 57016));
95 player.send(new SendString(hitpoints, 57017));
96 player.send(new SendString(prayer, 57018));
97 player.send(new SendString(ranged, 57019));
98 player.send(new SendString(magic, 57020));
99 player.send(new SendString("Cmb Lvl: " + player.skills.getCombatLevel(), 57041));
100
101 boolean prayers = preset[slot] == null || preset[slot].getPrayer() == null;
102 player.send(new SendString("<col=99E823>" + (prayers ? "Not " : "") + "Set!", 57013));
103 player.send(new SendString("<col=BD23E8>" + (preset[slot] == null ? "Not Set!" : preset[slot].getSpellbook().getName()), 57011));
104 player.send(new SendString("Available " + getTaken() + "/" + PlayerRight.getPresetAmount(player), 57024));
105 player.send(new SendItemOnInterface(57023, preset[slot] == null ? new Item[0] : preset[slot].getInventory()));
106 player.send(new SendItemOnInterface(57022, preset[slot] == null ? new Item[0] : preset[slot].getEquipment()));
107 }

References com.runehive.game.world.entity.skill.Skill.ATTACK, com.runehive.game.world.entity.skill.Skill.DEFENCE, com.runehive.game.world.entity.mob.player.PlayerRight.getPresetAmount(), getSlot(), getTaken(), com.runehive.game.world.entity.skill.Skill.HITPOINTS, com.runehive.game.world.entity.skill.Skill.MAGIC, name(), player, com.runehive.game.world.entity.skill.Skill.PRAYER, preset, com.runehive.game.world.entity.skill.Skill.RANGED, SIZE, and com.runehive.game.world.entity.skill.Skill.STRENGTH.

Referenced by delete(), name(), open(), and upload().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ upload()

void com.runehive.content.preset.PresetManager.upload ( )

Handles uploading the preset content.

Definition at line 128 of file PresetManager.java.

128 {
129 if (!valid(false))
130 return;
131
132 int slot = getSlot();
133
134 if (!permitted && slot >= 5) {
135 player.dialogueFactory.sendStatement("You need to be a donator for more preset slots!").execute();
136 return;
137 }
138
139 if (preset[slot] == null) {
140 player.dialogueFactory.sendStatement("Please name your preset before uploading your gear!").execute();
141 return;
142 }
143
144 player.dialogueFactory.sendOption("Upload preset", () -> {
145 PrayerBook prayerBook = new PrayerBook();
146 if (player.quickPrayers != null) {
147 prayerBook.only(player.quickPrayers.getEnabled().toArray(new Prayer[0]));
148 }
149 preset[slot] = new Preset(preset[slot].getName(), player.inventory.toArray(), player.equipment.getEquipment(), prayerBook, player.spellbook);
150 player.send(new SendMessage("You have successfully uploaded your preset."));
151 refresh();
152 AchievementHandler.activate(player, AchievementKey.PRELOAD_SETUP, 1);
153 player.dialogueFactory.clear();
154 }, "Nevermind", () -> player.dialogueFactory.clear()).execute();
155 }

References com.runehive.content.achievement.AchievementHandler.activate(), getSlot(), com.runehive.game.world.entity.mob.prayer.PrayerBook.only(), permitted, player, com.runehive.content.achievement.AchievementKey.PRELOAD_SETUP, preset, refresh(), and valid().

Here is the call graph for this function:

◆ valid()

boolean com.runehive.content.preset.PresetManager.valid ( boolean open)
private

Checks if the preset is valid.

Definition at line 311 of file PresetManager.java.

311 {
312 if (!open && !player.interfaceManager.isInterfaceOpen(57_000))
313 return false;
314 if (player.getCombat().inCombat()) {
315 player.send(new SendMessage("You can not do this while in combat!"));
316 return false;
317 }
318
319 return !player.positionChange;
320 }

References open(), and player.

Referenced by activate(), delete(), open(), and upload().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ autoDeposit

boolean com.runehive.content.preset.PresetManager.autoDeposit

The automatically deposit items on activate flag.

Definition at line 42 of file PresetManager.java.

Referenced by activate(), and openSettings().

◆ deathOpen

boolean com.runehive.content.preset.PresetManager.deathOpen

The preset opening on death flag.

Definition at line 39 of file PresetManager.java.

Referenced by openSettings().

◆ permitted

boolean com.runehive.content.preset.PresetManager.permitted
private

If the player is allowed all presets.

Definition at line 45 of file PresetManager.java.

Referenced by name(), open(), and upload().

◆ player

final Player com.runehive.content.preset.PresetManager.player
private

◆ preset

Preset [] com.runehive.content.preset.PresetManager.preset = new Preset[SIZE]

The presets.

Definition at line 36 of file PresetManager.java.

Referenced by activate(), delete(), equipment(), getTaken(), inventory(), name(), refresh(), and upload().

◆ SIZE

final int com.runehive.content.preset.PresetManager.SIZE = 10
static

The total preset size.

Definition at line 30 of file PresetManager.java.

Referenced by getTaken(), and refresh().


The documentation for this class was generated from the following file: