Make a new java file named MysteryBox.java and add all this in it:
And put that file in server>Model>Players>Content
package server.model.players.Content;
import server.model.players.Client;
import server.util.Misc;
import server.model.players.PlayerHandler;
import server.Server;
/*
Author : Mathy
*/
public class MysteryBox {
public static int mysteryBoxID = 6199;//Just incase I want a different box id.
public static boolean deleteBox = true;//Use this for reward testing.
//Using arrays for item, and amount.
private static int[][] commonRewards = {
{4067, 1},//
{990, 10},//
{1053, 1},//
{1055, 1},//
{1057, 1},//
};
private static int[][] uncommonRewards = {
{4067, 1},//
{16425, 1},//
{14484, 1},//
{12236, 1},//
{12233, 1},//
{12237, 1},//
{12235, 1},//
{12234, 1},//
{12238, 1},//
{12239, 1},//
{11638, 1},//
};
private static int[][] rareRewards = {
{20089, 1},//
{12230, 1},//
{12231, 1},//
{12225, 1},//
{12227, 1},//
{12229, 1},//
{12232, 1},//
{12228, 1},//
{20088, 1},//
{20093, 1},//
{6199, 1},//
};
private static int[][] veryRareRewards = {
{990, 10},//
{15017, 1},//
};
private static int[][] UltraRareRewards = {
{962, 1},//
};
public static void openBox(Client c){
///This part was just guesstimated, seeing as common would be used more, it has the highest chance of showing.
int randomReward = Misc.random(100);//Picking the random number
int itemToGive = 0, amountToGive = 0, rewardRoll;
if(randomReward >= 0 && randomReward <= 60){//For all common items..
rewardRoll = Misc.random(commonRewards.length-1);
itemToGive = commonRewards[rewardRoll][0];
amountToGive = commonRewards[rewardRoll][1];
}else if(randomReward >= 61 && randomReward <= 80){//Uncommon items.
rewardRoll = Misc.random(uncommonRewards.length-1);
itemToGive = uncommonRewards[rewardRoll][0];
amountToGive = uncommonRewards[rewardRoll][1];
}else if(randomReward >= 81 && randomReward <= 95){//Rare items
rewardRoll = Misc.random(rareRewards.length-1);
itemToGive = rareRewards[rewardRoll][0];
amountToGive = rareRewards[rewardRoll][1];
}else if(randomReward >= 96 && randomReward <= 99){//Very Rare items
rewardRoll = Misc.random(veryRareRewards.length-1);
itemToGive = veryRareRewards[rewardRoll][0];
amountToGive = veryRareRewards[rewardRoll][1];
}else if(randomReward >= 100){//Very Rare items
rewardRoll = Misc.random(UltraRareRewards.length-1);
itemToGive = UltraRareRewards[rewardRoll][0];
amountToGive = UltraRareRewards[rewardRoll][1];
for (int z = 0; z < Server.playerHandler.players.length; z++) {
if (Server.playerHandler.players[z] != null) {
Client o = (Client) Server.playerHandler.players[z];
o.sendMessage("<col=29184>["+Misc.optimizeText(c.playerName)+"]</col> <col=800000000>has just received a christmas cracker from mystery box!");
}
}
}
if(deleteBox)//Removing the box
c.getItems().deleteItem(mysteryBoxID, 1);
c.getItems().addItem(itemToGive, amountToGive);//Adding reward
if(itemToGive == 0)
c.sendMessage("You open the box to find nothing. What bad luck.");//If you got 0, it says you find nothing.
else
c.sendMessage("You open the box and find " + (amountToGive > 1 ? "some " : "a ")
+ c.getItems().getItemName(itemToGive) + ".");//If more than one item, use some, otherwise use a.
}
}
Somewhere in ClickItem.java add this:
if (itemId == 6199) {
MysteryBox.openBox(c);
}
If you get any errors, comment them, I should answer in the following minutes
OT: I know Dan is using a custom server and the reward are custom items, so just change the rewards to match your items to your liking