How did I get this idea?
I got this idea while i was searching for CS:GO skins i could buy. Suddenly I thought: "Hey! This would be a good idea for a plugin". So i started working on this plugin.
This plugin will allow you to buy a case for a (currently) set price. When you open the case you will get an enchanted book (configurable soon) with a skin name, rarity, condition and the real life price of it. There are 5 rarities: Mil-Spec, Restricted, Classified, Covert and LEGENDARY. Currently there are only 3 cases, but expect a lot of more cases soon because I'm actively working on this project. This plugin is not useful for your server, but it could be a lot of fun for players if they can collect hundreds of skins. And maybe it could even keep them playing on your server because you can keep collecting different skins.
Spoiler: Config
wc1-price: 500 (Price of Weapon Case 1)
ec13-price: 500 (Price of eSports 2013 Case)
bravo-price: 500 (Price of Operation Bravo Case)
katowice-2014-price: 250 (Price of Katowice 2014 sticker capsule)
skin-material: enchanted_book (Material of the skin)
case-material: ender_chest (Material of the case)
sticker-material: paper (Material of a sticker)
Code (configyml (Unknown Language)):
wc1-price: 500 (Price of Weapon Case 1)
ec13-price: 500 (Price of eSports 2013 Case)
bravo-price: 500 (Price of Operation Bravo Case)
katowice-2014-price: 250 (Price of Katowice 2014 sticker capsule)
skin-material: enchanted_book (Material of the skin)
case-material: ender_chest (Material of the case)
sticker-material: paper (Material of a sticker)
This plugin is still in early BETA, so if you find any bugs, please tell me. PLEASE DO NOT DISCUSS BUGS OR FEATURES IN THE REVIEWS (DISCUSS THIS IN THE DISCUSSIONS SECTION).
You can request features in the discussions section.
/csgo - The main command. This will show you help for the plugin.
There are no current permissions as I think everyone should be able to open cases. Soon i will add a feature to make a showcase of your skins which other people can see (this will have permissions).
YOU MUST HAVE INSTALLED VAULT AND A WORKING ECONOMY PLUGIN WHICH RUNS ON VAULT TO USE THIS PLUGIN. YOU WILL ALSO NEED TITLEAPI TO MAKE THIS PLUGIN RUN!!!
Spoiler: Weapon Case 1
Mil-Spec:
- MP7 | Skulls
- SG 553 | Ultraviolet
- AUG | Wings
Restricted:
- USP-S | Dark Water
- M4A1-S | Dark Water
- Glock-18 | Dragon Tattoo
Classified:
- Desert Eagle | Hypnotic
- AK-47 | Case-Hardened
Covert:
- AWP | Lightning Strike
LEGENDARY:
- An extreme rare special knife
- MP7 | Skulls
- SG 553 | Ultraviolet
- AUG | Wings
Restricted:
- USP-S | Dark Water
- M4A1-S | Dark Water
- Glock-18 | Dragon Tattoo
Classified:
- Desert Eagle | Hypnotic
- AK-47 | Case-Hardened
Covert:
- AWP | Lightning Strike
LEGENDARY:
- An extreme rare special knife
Spoiler: eSports 2013 Case
Mil-Spec:
- FAMAS | Doomkitty
- MAG-7 | Memento
- M4A4 | Faded Zebra
Restricted:
- Galil-AR | Orange DDPAT
- Sawed-Off | Orange DDPAT
- P250 | Splash
Classified:
- AWP | BOOM
- AK-47 | Red Laminate
Covert:
- P90 | Death By Kitty
LEGENDARY:
- An extreme rare special knife
- FAMAS | Doomkitty
- MAG-7 | Memento
- M4A4 | Faded Zebra
Restricted:
- Galil-AR | Orange DDPAT
- Sawed-Off | Orange DDPAT
- P250 | Splash
Classified:
- AWP | BOOM
- AK-47 | Red Laminate
Covert:
- P90 | Death By Kitty
LEGENDARY:
- An extreme rare special knife
Spoiler: Operation Bravo Case
Mil-Spec:
- SG 553 | Wave Spray
- Dual Berettas | Black Limba
- G3SG1 | Demeter
- Nova | Tempest
- UMP-45 | Bone Pile
- Galil AR | Shattered
Restricted:
- M4A1-S | Bright Water
- M4A4 | Zirka
- MAC-10 | Graven
- USP-S | Overgrowth
Classified:
- P2000 | Ocean Foam
- AWP | Graphite
- P90 | Emerald Dragon
Covert:
- Desert Eagle | Golden Koi
- AK-47 | Fire Serpent
LEGENDARY:
- An extreme rare special knife
- SG 553 | Wave Spray
- Dual Berettas | Black Limba
- G3SG1 | Demeter
- Nova | Tempest
- UMP-45 | Bone Pile
- Galil AR | Shattered
Restricted:
- M4A1-S | Bright Water
- M4A4 | Zirka
- MAC-10 | Graven
- USP-S | Overgrowth
Classified:
- P2000 | Ocean Foam
- AWP | Graphite
- P90 | Emerald Dragon
Covert:
- Desert Eagle | Golden Koi
- AK-47 | Fire Serpent
LEGENDARY:
- An extreme rare special knife
Old Version! From July 6th.
Version 0.9.6 - COMING SOON.
N/A
Do not steal my code, as a developer it is a lot of work and then its never fun if people steal your project. I made this plugin a free one because I know it can be annoying if you're poor or are saving up for a new computer, etc.
If you have made an add-on for this plugin please let me know in a private message. If you have a server which runs on this plugin please let me know in a private message and I might feature it on the page.
I might be releasing a Wiki soon but i can't confirm that yet.
API:
Spoiler: Documentation
This API is used to create your own custom skins. There is 1 simplle method to use. Here is an example:
SkinAPI api = new SkinAPI(); //Creates an API object to grab the methods from my project.
void test(){ //Creates a standard void
api.newSkin(String displayName, double realLifeWorth, Rarity r, Weapon w, Condition c, Player p, Material skinMaterial, boolean StatTrak);
//This gives Player p the skin you just configured.
}
So here is some indepth explanation:
displayName is basically just the name of the skin you're configuring.
double realLifeWorth is the worth of the skin which will show up in the lore.
Rarity is an ENUM class so just set the rarity by doing for example: Rarity.COVERT
Weapon is another ENUM class so just set the weapon by doing for exaple: Weapon.AWP
Condition is another ENUM class so just set the condition by doing for example Condition.FACTORY_NEW
Player p is the player who recieves the skin.
Material skinMaterial is the material the skin is like for example: Material.IRON_INGOT.
boolean StatTrak is the variable you need to use for enabling StatTraks. True for yes False for no.
This is all you need to do. The plugin formats everything automatically for your and gives the item automatically too.
So lets create a covert skin:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(!(sender instanceof Player)){
//Send a only player message
return true;
}
if(cmd.getName().equalsIgnoreCase("getmeaskin"){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
//This creates a new skin called AWP | Dragon Lore with the worth of 1000 euros, it sets the rarity to covert, condition to factory new and disables StatTrak. Then it gives the skin to the command sender.
}
return false;
}
So lets create a simple case:
public void openCase(Player p){
Random random = new Random();
int r = random.nextInt(2);
//In this case we are gonna have 2 skins in our case.
if(r == 0){
Random condRandom = new Random();
int cr = condRandom.nextInt(5);
//We want all of our weapons to have every condition possible.
if(cr == 0){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 1){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.MINIMAL_WEAR, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 2){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FIELD_TESTED, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 3){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.WELL_WORN, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 4){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
}
if(r == 1){
Random condRandom = new Random();
int cr = condRandom.nextInt(5);
//We want all of our weapons to have every condition possible.
if(cr == 0){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 1){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.MINIMAL_WEAR, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 2){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.FIELD_TESTED, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 3){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.WELL_WORN, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 4){
api.newSkin("Sand Dune", 1.0, Rarity.MIL-SPEC, Weapon.P250, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
}
//Now the only thing you need to do is call the openCase() method anywhere you want to open a case for a certain person.
}
Ofcourse I didn't make the chances even like I did above. In my code I made a random of 10.000 posibillities and gave every skin a few thousand numbers chance so i was able to make te chances reasonable.
There is also a method for opening cases premade in this plugin.
CSGOSkins csgoskins = new CSGOSkins();
void test(Player p){
//Now you can call the following methods:
randomWC1(p); //Gives p a random skin from Weapon Case 1
randomEC13(p); //Gives p a random skin from Esports 2013 Case
randomBravo(p); //Gives p a random skin from Operation Bravo Case
}
Code (apiusageexample (Unknown Language)):
SkinAPI api = new SkinAPI(); //Creates an API object to grab the methods from my project.
void test(){ //Creates a standard void
api.newSkin(String displayName, double realLifeWorth, Rarity r, Weapon w, Condition c, Player p, Material skinMaterial, boolean StatTrak);
//This gives Player p the skin you just configured.
}
displayName is basically just the name of the skin you're configuring.
double realLifeWorth is the worth of the skin which will show up in the lore.
Rarity is an ENUM class so just set the rarity by doing for example: Rarity.COVERT
Weapon is another ENUM class so just set the weapon by doing for exaple: Weapon.AWP
Condition is another ENUM class so just set the condition by doing for example Condition.FACTORY_NEW
Player p is the player who recieves the skin.
Material skinMaterial is the material the skin is like for example: Material.IRON_INGOT.
boolean StatTrak is the variable you need to use for enabling StatTraks. True for yes False for no.
This is all you need to do. The plugin formats everything automatically for your and gives the item automatically too.
So lets create a covert skin:
Code (covertskinexample (Unknown Language)):
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
if(!(sender instanceof Player)){
//Send a only player message
return true;
}
if(cmd.getName().equalsIgnoreCase("getmeaskin"){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
//This creates a new skin called AWP | Dragon Lore with the worth of 1000 euros, it sets the rarity to covert, condition to factory new and disables StatTrak. Then it gives the skin to the command sender.
}
return false;
}
So lets create a simple case:
Code (caseexample (Unknown Language)):
public void openCase(Player p){
Random random = new Random();
int r = random.nextInt(2);
//In this case we are gonna have 2 skins in our case.
if(r == 0){
Random condRandom = new Random();
int cr = condRandom.nextInt(5);
//We want all of our weapons to have every condition possible.
if(cr == 0){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 1){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.MINIMAL_WEAR, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 2){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FIELD_TESTED, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 3){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.WELL_WORN, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 4){
api.newSkin("Dragon Lore", 1000.0, Rarity.COVERT, Weapon.AWP, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
}
if(r == 1){
Random condRandom = new Random();
int cr = condRandom.nextInt(5);
//We want all of our weapons to have every condition possible.
if(cr == 0){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 1){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.MINIMAL_WEAR, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 2){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.FIELD_TESTED, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 3){
api.newSkin("Sand Dune", 1.0, Rarity.MIL_SPEC, Weapon.P250, Condition.WELL_WORN, (Player) sender, Material.ENCHANTED_BOOK, false);
}
if(cr == 4){
api.newSkin("Sand Dune", 1.0, Rarity.MIL-SPEC, Weapon.P250, Condition.FACTORY_NEW, (Player) sender, Material.ENCHANTED_BOOK, false);
}
}
//Now the only thing you need to do is call the openCase() method anywhere you want to open a case for a certain person.
}
There is also a method for opening cases premade in this plugin.
Code (caseexample (Unknown Language)):
CSGOSkins csgoskins = new CSGOSkins();
void test(Player p){
//Now you can call the following methods:
randomWC1(p); //Gives p a random skin from Weapon Case 1
randomEC13(p); //Gives p a random skin from Esports 2013 Case
randomBravo(p); //Gives p a random skin from Operation Bravo Case
}
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.11, 1.12
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
CSGOSkins [Trading Card like plugin] [CS:GO Cases] is a free Minecraft Java mod. Compatible with Minecraft 1.11, 1.12. Downloaded 1,686 times (via Spigot). Download it and open it directly in the game.