The first thing we need to do is open our player.java and insert this into it.
This chunk of code saves the ids of the items that we want to save for the player, and also allows us to call the ids.
Code:
int HelmID;
int AuraID;
int CapeID;
int neckID;
int ammoID;
int SwordID;
int shieldID;
int chestID;
int legsID;
int glovesID;
int bootsID;
int ringID;
public int getHelm(){
return HelmID;
}
public void setHelm(int HelmID){
this.HelmID = HelmID;
}
public int getAura(){
return AuraID;
}
public void setAura(int AuraID){
this.AuraID = AuraID;
}
public int getCape(){
return CapeID;
}
public void setCape(int CapeID){
this.CapeID = CapeID;
}
public int getNeck(){
return neckID;
}
public void setNeck(int neckID){
this.neckID = neckID;
}
public int getAmmo(){
return ammoID;
}
public void setAmmo(int ammoID){
this.ammoID = ammoID;
}
public int getSword(){
return SwordID;
}
public void setSword(int SwordID){
this.SwordID = SwordID;
}
public int getShield(){
return shieldID;
}
public void setShield(int shieldID){
this.shieldID = shieldID;
}
public int getChest(){
return chestID;
}
public void setChest(int chestID){
this.chestID = chestID;
}
public int getLegs(){
return legsID;
}
public void setLegs(int legsID){
this.legsID = legsID;
}
public int getGloves(){
return glovesID;
}
public void setGloves(int glovesID){
this.glovesID = glovesID;
}
public int getBoots(){
return bootsID;
}
public void setBoots(int bootsID){
this.bootsID = bootsID;
}
public int getRing(){
return ringID;
}
public void setRing(int ringID){
this.ringID = ringID;
}
The Next thing we are doing is adding two commands to save the current items, and equip the items to the player.
The first command saves all the item ids that the player is wearing, and saves it to the ids we already made it player.java
The second command grabs the ids that we saved, and equips them to the player, then refreshes the players items and appearance.
You save this in commands.java
Code:
if (cmd[0].equalsIgnoreCase("savearmor")) {
if(player.getEquipment().wearingArmour()){
player.getAppearence().generateAppearenceData();
player.setHelm(player.getEquipment().getHatId());
//player.setAura(player.getEquipment().getAuraId());
player.setCape(player.getEquipment().getCapeId());
player.setNeck(player.getEquipment().getAmuletId());
//player.setAmmo(player.getEquipment().getAmmoId());
player.setSword(player.getEquipment().getWeaponId());
player.setShield(player.getEquipment().getShieldId());
player.setChest(player.getEquipment().getChestId());
player.setLegs(player.getEquipment().getLegsId());
player.setGloves(player.getEquipment().getGlovesId());
player.setBoots(player.getEquipment().getBootsId());
player.setRing(player.getEquipment().getRingId());
player.sendMessage("You have saved your armor.");
return true;
} else {
player.getPackets().sendGameMessage("You need to be wearing some armor to save.");
}
}
if (cmd[0].equalsIgnoreCase("setarmor")) {
if(!player.getEquipment().wearingArmour()){
player.getEquipment().getItems().set(Equipment.SLOT_HAT, new Item(player.getHelm(), 1));
//player.getEquipment().getItems().set(Equipment.SLOT_AURA, new Item(player.getAura(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_CAPE, new Item(player.getCape(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_AMULET, new Item(player.getNeck(), 1));
//player.getEquipment().getItems().set(Equipment.SLOT_ARROWS, new Item(player.getAmmo(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_WEAPON, new Item(player.getSword(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_SHIELD, new Item(player.getShield(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_CHEST, new Item(player.getChest(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_LEGS, new Item(player.getLegs(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_HANDS, new Item(player.getGloves(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_FEET, new Item(player.getBoots(), 1));
player.getEquipment().getItems().set(Equipment.SLOT_RING, new Item(player.getRing(), 1));
for(int i = 0; i < 15; i++){
player.getEquipment().refresh(i);
}
player.getAppearence().generateAppearenceData();
player.getPackets().sendGameMessage("Spawned your custom set!");
return true;
} else {
player.getPackets().sendGameMessage("You need to remove your armor to set it");
return false;
}
}
If you want to add exceptions to what players can and cannot save, you have to check what the player is trying to save.
You would need to check this before you set each of the items, you can check it with any sort of item list you have, from donator items, to shop items.
Code:
for(int item : unspawnables) {
if(player.getEquipment().getHatId() == item) {
player.sendMessage("You can't save this hat.");
return false;
}
}
I used the interface 549 for mine, to make it more user friendly.
The first part of the code, is the buttons on the interface, the second part checks, then saves the armor on the player.
You save this in ButtonHandler.java
Code:
else if (interfaceId == 549) {
player.stopAll();
WorldTile destTile = null;
setarmor(player);
player.closeInterfaces();
if(componentId == 31) {
player.closeInterfaces();
}
else if(componentId == 33) {
setarmor(player);
player.closeInterfaces();
}
if(componentId == 35) {
}
player.stopAll();
setarmor(player);
WorldTile destTile = null;
} else {
player.getPackets().sendGameMessage("CI: " + componentId);
}
}
public static void setarmor(Player player) {
int itemId = player.getEquipment().getHatId();
int itemId1 = player.getEquipment().getCapeId();
int itemId2 = player.getEquipment().getAmuletId();
int itemId3 = player.getEquipment().getWeaponId();
int itemId4 = player.getEquipment().getShieldId();
int itemId5 = player.getEquipment().getChestId();
int itemId6 = player.getEquipment().getLegsId();
int itemId7 = player.getEquipment().getGlovesId();
int itemId8 = player.getEquipment().getBootsId();
int itemId9 = player.getEquipment().getRingId();
if(player.getEquipment().wearingArmour()){
ItemDefinitions def = ItemDefinitions.getItemDefinitions(itemId);
ItemDefinitions def1 = ItemDefinitions.getItemDefinitions(itemId1);
ItemDefinitions def2 = ItemDefinitions.getItemDefinitions(itemId2);
ItemDefinitions def3 = ItemDefinitions.getItemDefinitions(itemId3);
ItemDefinitions def4 = ItemDefinitions.getItemDefinitions(itemId4);
ItemDefinitions def5 = ItemDefinitions.getItemDefinitions(itemId5);
ItemDefinitions def6 = ItemDefinitions.getItemDefinitions(itemId6);
ItemDefinitions def7 = ItemDefinitions.getItemDefinitions(itemId7);
ItemDefinitions def8 = ItemDefinitions.getItemDefinitions(itemId8);
ItemDefinitions def9 = ItemDefinitions.getItemDefinitions(itemId9);
for(String itemName : Commands.unspawnablesNames) { //Hat Check
if(def.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this helmet.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Cape Check
if(def1.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this cape.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Amulet Check
if(def2.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this amulet.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Wep Check
if(def3.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this weapon.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Shield Check
if(def4.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this shield.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Chest Check
if(def5.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this chest.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Legs Check
if(def6.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save these legs.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Gloves Check
if(def7.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save these gloves.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Boots Check
if(def8.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save these boots.");
return;
}
}
for(String itemName : Commands.unspawnablesNames) { //Ring Check
if(def9.getName().toLowerCase().contains(itemName)) {
player.sendMessage("You can't save this ring.");
return;
}
}
player.getAppearence().generateAppearenceData();
player.setHelm(player.getEquipment().getHatId());
//player.setAura(player.getEquipment().getAuraId());
player.setCape(player.getEquipment().getCapeId());
player.setNeck(player.getEquipment().getAmuletId());
//player.setAmmo(player.getEquipment().getAmmoId());
player.setSword(player.getEquipment().getWeaponId());
player.setShield(player.getEquipment().getShieldId());
player.setChest(player.getEquipment().getChestId());
player.setLegs(player.getEquipment().getLegsId());
player.setGloves(player.getEquipment().getGlovesId());
player.setBoots(player.getEquipment().getBootsId());
player.setRing(player.getEquipment().getRingId());
player.getPackets().sendGameMessage("You have just saved your armour.");
return;
} else {
player.getPackets().sendGameMessage("You need to be wearing some armour to save.");
return;
}
}
The way I set the armor for the player was when i used the interface was using a dialogue with the rest of my quick spawns
This would go in a dialogue that you already have, if you need help making one, let me know.
Code:
if(componentId == OPTION_4) {//Cust
if (!player.canSpawn()) {
player.getPackets().sendGameMessage("You can't be in the wilderness to spawn sets");
end();
} else {
if(!player.getEquipment().wearingArmour()){
if(player.getHelm() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_HAT, new Item(player.getHelm(), 1));
//player.getEquipment().getItems().set(Equipment.SLOT_AURA, new Item(player.getAura(), 1));
if(player.getCape() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_CAPE, new Item(player.getCape(), 1));
if(player.getNeck() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_AMULET, new Item(player.getNeck(), 1));
//player.getEquipment().getItems().set(Equipment.SLOT_ARROWS, new Item(player.getAmmo(), 1));
if(player.getSword() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_WEAPON, new Item(player.getSword(), 1));
if(player.getShield() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_SHIELD, new Item(player.getShield(), 1));
if((player.getChest() != -1))
player.getEquipment().getItems().set(Equipment.SLOT_CHEST, new Item(player.getChest(), 1));
if(player.getLegs() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_LEGS, new Item(player.getLegs(), 1));
if(player.getGloves() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_HANDS, new Item(player.getGloves(), 1));
if(player.getBoots() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_FEET, new Item(player.getBoots(), 1));
if(player.getRing() != -1)
player.getEquipment().getItems().set(Equipment.SLOT_RING, new Item(player.getRing(), 1));
if(player.getHelm() != -1){
player.getEquipment().refresh(0);
}
if(player.getCape() != -1){
player.getEquipment().refresh(1);
}
if(player.getNeck() != -1){
player.getEquipment().refresh(2);
}
if(player.getSword() != -1){
player.getEquipment().refresh(3);
}
if(player.getChest() != -1){
player.getEquipment().refresh(4);
}
if(player.getShield() != -1){
player.getEquipment().refresh(5);
}
if(player.getLegs() != -1){
player.getEquipment().refresh(7);
}
if(player.getGloves() != -1){
player.getEquipment().refresh(9);
}
if(player.getBoots() != -1){
player.getEquipment().refresh(10);
}
if(player.getRing() != -1){
player.getEquipment().refresh(12);
}
player.getAppearence().generateAppearenceData();
player.getPackets().sendGameMessage("Spawned your custom set!");
end();
} else {
player.getPackets().sendGameMessage("You need to remove your armour to spawn it");
end();
}
end();
}
}
Thanks for reading.
if i missed anything, let me know.
I know the code is not the most efficient or pretty, it works, and that's what matters, right?