RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
MysteryBox.java
1package com.osroyale.content.mysterybox;
2
3import com.osroyale.content.mysterybox.impl.BronzeMysteryBox;
4import com.osroyale.content.mysterybox.impl.GoldMysteryBox;
5import com.osroyale.content.mysterybox.impl.PetMysteryBox;
6import com.osroyale.content.mysterybox.impl.SilverMysteryBox;
7
8import java.util.HashMap;
9import java.util.Map;
10import java.util.Optional;
11
49
50public abstract class MysteryBox {
51
53 private static Map<Integer, MysteryBox> MYSTERY_BOXES = new HashMap<>();
54
56 public static void load() {
57 MysteryBox BRONZE_BOX = new BronzeMysteryBox();
58 MysteryBox SILVER_BOX = new SilverMysteryBox();
59 MysteryBox GOLD_BOX = new GoldMysteryBox();
60 MysteryBox PET_BOX = new PetMysteryBox();
61
62 MYSTERY_BOXES.put(BRONZE_BOX.item(), BRONZE_BOX);
63 MYSTERY_BOXES.put(SILVER_BOX.item(), SILVER_BOX);
64 MYSTERY_BOXES.put(GOLD_BOX.item(), GOLD_BOX);
65 MYSTERY_BOXES.put(PET_BOX.item(), PET_BOX);
66 }
67
69 static Optional<MysteryBox> getMysteryBox(int item) {
70 return MYSTERY_BOXES.containsKey(item) ? Optional.of(MYSTERY_BOXES.get(item)) : Optional.empty();
71 }
72
74 protected abstract String name();
75
77 protected abstract int item();
78
80 protected abstract MysteryItem[] rewards();
81}