tmorph: clean up, beautify, and more! (#1453)
* tmorph: clean up, beautify, and more! * kittype: added name for mapping. * tmorph: fix all maps being the same.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package net.runelite.client.plugins.tmorph;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
@Singleton
|
||||
public class Parse
|
||||
{
|
||||
public static boolean parse(String value)
|
||||
{
|
||||
try
|
||||
{
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (String str : value.split("\n"))
|
||||
{
|
||||
if (!str.startsWith("//"))
|
||||
{
|
||||
sb.append(str).append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
final Splitter NEWLINE_SPLITTER = Splitter
|
||||
.on("\n")
|
||||
.omitEmptyStrings()
|
||||
.trimResults();
|
||||
|
||||
final Map<String, String> tmp = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(sb);
|
||||
|
||||
for (Map.Entry<String, String> entry : tmp.entrySet())
|
||||
{
|
||||
if (!TMorph.getKit().containsKey(entry.getValue()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int[] ints = Arrays.stream(entry.getKey().split(",")).map(String::trim).mapToInt(Integer::parseInt).toArray();
|
||||
|
||||
if (ints.length <= 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,9 +23,15 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.tmorph;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.inject.Provides;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.Actor;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
@@ -53,78 +59,40 @@ import org.apache.commons.lang3.ObjectUtils;
|
||||
@Singleton
|
||||
public class TMorph extends Plugin
|
||||
{
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private static final Map<String, KitType> kit;
|
||||
|
||||
static
|
||||
{
|
||||
final ImmutableMap.Builder<String, KitType> builder = new ImmutableMap.Builder<>();
|
||||
for (KitType kit : KitType.values())
|
||||
{
|
||||
builder.put(kit.getName(), kit);
|
||||
}
|
||||
kit = builder.build();
|
||||
}
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private static final Splitter NEWLINE_SPLITTER = Splitter
|
||||
.on("\n")
|
||||
.omitEmptyStrings()
|
||||
.trimResults();
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private TMorphConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean mageSwap;
|
||||
private boolean meleeSwap;
|
||||
private boolean rangeSwap;
|
||||
private String set1;
|
||||
private String set2;
|
||||
private String set3;
|
||||
private int animation;
|
||||
private int bodyMage;
|
||||
private int bodyMelee;
|
||||
private int bodyRange;
|
||||
private int bootsMage;
|
||||
private int bootsMelee;
|
||||
private int bootsRange;
|
||||
private int capeMage;
|
||||
private int capeMelee;
|
||||
private int capeRange;
|
||||
private int globalAnimSwap;
|
||||
private int globalGraphicSwap;
|
||||
private int glovesMage;
|
||||
private int glovesMelee;
|
||||
private int glovesRange;
|
||||
private int graphic;
|
||||
private int helmetMage;
|
||||
private int helmetMelee;
|
||||
private int helmetRange;
|
||||
private int legsMage;
|
||||
private int legsMelee;
|
||||
private int legsRange;
|
||||
private int mainhandMage;
|
||||
private int mainhandMelee;
|
||||
private int mainhandRange;
|
||||
private int neckMage;
|
||||
private int neckMelee;
|
||||
private int neckRange;
|
||||
private int offhandMage;
|
||||
private int offhandMelee;
|
||||
private int offhandRange;
|
||||
private int targetAnimation;
|
||||
private int targetBodyMage;
|
||||
private int targetBodyMelee;
|
||||
private int targetBodyRange;
|
||||
private int targetBootsMage;
|
||||
private int targetBootsMelee;
|
||||
private int targetBootsRange;
|
||||
private int targetCapeMage;
|
||||
private int targetCapeMelee;
|
||||
private int targetCapeRange;
|
||||
private int targetGlovesMage;
|
||||
private int targetGlovesMelee;
|
||||
private int targetGlovesRange;
|
||||
private int targetGraphic;
|
||||
private int targetHelmetMage;
|
||||
private int targetHelmetMelee;
|
||||
private int targetHelmetRange;
|
||||
private int targetLegsMage;
|
||||
private int targetLegsMelee;
|
||||
private int targetLegsRange;
|
||||
private int targetMainhandMage;
|
||||
private int targetMainhandMelee;
|
||||
private int targetMainhandRange;
|
||||
private int targetNeckMage;
|
||||
private int targetNeckMelee;
|
||||
private int targetNeckRange;
|
||||
private int targetOffhandMage;
|
||||
private int targetOffhandMelee;
|
||||
private int targetOffhandRange;
|
||||
|
||||
@Provides
|
||||
TMorphConfig provideConfig(ConfigManager configManager)
|
||||
@@ -212,12 +180,7 @@ public class TMorph extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
updateEquip();
|
||||
}
|
||||
|
||||
private void updateEquip()
|
||||
{
|
||||
Player player = client.getLocalPlayer();
|
||||
final Player player = client.getLocalPlayer();
|
||||
|
||||
if (player == null
|
||||
|| player.getPlayerAppearance() == null
|
||||
@@ -227,371 +190,60 @@ public class TMorph extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
final int mainhandID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.WEAPON), 0);
|
||||
final int offhandID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.SHIELD), 0);
|
||||
final int helmetID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.HELMET), 0);
|
||||
final int capeID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.CAPE), 0);
|
||||
final int neckID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.AMULET), 0);
|
||||
final int bodyID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.TORSO), 0);
|
||||
final int legsID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.LEGS), 0);
|
||||
final int bootsID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.BOOTS), 0);
|
||||
final int glovesID = ObjectUtils.defaultIfNull(player.getPlayerAppearance().
|
||||
getEquipmentId(KitType.HANDS), 0);
|
||||
final Map<String, String> set1 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(this.set1);
|
||||
final Map<String, String> set2 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(this.set2);
|
||||
final Map<String, String> set3 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(this.set3);
|
||||
|
||||
if (this.mageSwap)
|
||||
updateGear(set1, player);
|
||||
updateGear(set2, player);
|
||||
updateGear(set3, player);
|
||||
}
|
||||
|
||||
private void updateGear(Map<String, String> map, Player player)
|
||||
{
|
||||
for (Map.Entry<String, String> entry : map.entrySet())
|
||||
{
|
||||
if (this.mainhandMage > 0)
|
||||
if (!kit.containsKey(entry.getValue()))
|
||||
{
|
||||
if (this.targetMainhandMage > 0)
|
||||
{
|
||||
if (mainhandID == this.targetMainhandMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.WEAPON.getIndex()] = this.mainhandMage + 512;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (this.offhandMage > 0)
|
||||
|
||||
final KitType slot = kit.get(entry.getValue());
|
||||
int[] ints;
|
||||
|
||||
try
|
||||
{
|
||||
if (this.targetOffhandMage > 0)
|
||||
{
|
||||
if (offhandID == this.targetOffhandMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.SHIELD.getIndex()] = this.offhandMage + 512;
|
||||
}
|
||||
}
|
||||
ints = Arrays.stream(entry.getKey().split(",")).map(String::trim).mapToInt(Integer::parseInt).toArray();
|
||||
}
|
||||
if (this.helmetMage > 0)
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
if (this.targetHelmetMage > 0)
|
||||
{
|
||||
if (helmetID == this.targetHelmetMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HELMET.getIndex()] = this.helmetMage + 512;
|
||||
}
|
||||
}
|
||||
ints = null;
|
||||
}
|
||||
if (this.capeMage > 0)
|
||||
|
||||
if (ints == null || ints.length <= 1)
|
||||
{
|
||||
if (this.targetCapeMage > 0)
|
||||
{
|
||||
if (capeID == this.targetCapeMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.CAPE.getIndex()] = this.capeMage + 512;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (this.neckMage > 0)
|
||||
|
||||
final int item = ObjectUtils.defaultIfNull(player.getPlayerAppearance().getEquipmentId(slot), 0);
|
||||
|
||||
if (item == ints[0])
|
||||
{
|
||||
if (this.targetNeckMage > 0)
|
||||
{
|
||||
if (neckID == this.targetNeckMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.AMULET.getIndex()] = this.neckMage + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bodyMage > 0)
|
||||
{
|
||||
if (this.targetBodyMage > 0)
|
||||
{
|
||||
if (bodyID == this.targetBodyMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.TORSO.getIndex()] = this.bodyMage + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.legsMage > 0)
|
||||
{
|
||||
if (this.targetLegsMage > 0)
|
||||
{
|
||||
if (legsID == this.targetLegsMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.LEGS.getIndex()] = this.legsMage + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bootsMage > 0)
|
||||
{
|
||||
if (this.targetBootsMage > 0)
|
||||
{
|
||||
if (bootsID == this.targetBootsMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.BOOTS.getIndex()] = this.bootsMage + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.glovesMage > 0)
|
||||
{
|
||||
if (this.targetGlovesMage > 0)
|
||||
{
|
||||
if (glovesID == this.targetGlovesMage)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HANDS.getIndex()] = this.glovesMage + 512;
|
||||
}
|
||||
}
|
||||
player.getPlayerAppearance().getEquipmentIds()[slot.getIndex()] = ints[1] + 512;
|
||||
}
|
||||
}
|
||||
if (this.rangeSwap)
|
||||
{
|
||||
if (this.mainhandRange > 0)
|
||||
{
|
||||
if (this.targetMainhandRange > 0)
|
||||
{
|
||||
if (mainhandID == this.targetMainhandRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.WEAPON.getIndex()] = this.mainhandRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.offhandRange > 0)
|
||||
{
|
||||
if (this.targetOffhandRange > 0)
|
||||
{
|
||||
if (offhandID == this.targetOffhandRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.SHIELD.getIndex()] = this.offhandRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.helmetRange > 0)
|
||||
{
|
||||
if (this.targetHelmetRange > 0)
|
||||
{
|
||||
if (helmetID == this.targetHelmetRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HELMET.getIndex()] = this.helmetRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.capeRange > 0)
|
||||
{
|
||||
if (this.targetCapeRange > 0)
|
||||
{
|
||||
if (capeID == this.targetCapeRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.CAPE.getIndex()] = this.capeRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.neckRange > 0)
|
||||
{
|
||||
if (this.targetNeckRange > 0)
|
||||
{
|
||||
if (neckID == this.targetNeckRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.AMULET.getIndex()] = this.neckRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bodyRange > 0)
|
||||
{
|
||||
if (this.targetBodyRange > 0)
|
||||
{
|
||||
if (bodyID == this.targetBodyRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.TORSO.getIndex()] = this.bodyRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.legsRange > 0)
|
||||
{
|
||||
if (this.targetLegsRange > 0)
|
||||
{
|
||||
if (legsID == this.targetLegsRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.LEGS.getIndex()] = this.legsRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bootsRange > 0)
|
||||
{
|
||||
if (this.targetBootsRange > 0)
|
||||
{
|
||||
if (bootsID == this.targetBootsRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.BOOTS.getIndex()] = this.bootsRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.glovesRange > 0)
|
||||
{
|
||||
if (this.targetGlovesRange > 0)
|
||||
{
|
||||
if (glovesID == this.targetGlovesRange)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HANDS.getIndex()] = this.glovesRange + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.meleeSwap)
|
||||
{
|
||||
if (this.mainhandMelee > 0)
|
||||
{
|
||||
if (this.targetMainhandMelee > 0)
|
||||
{
|
||||
if (mainhandID == this.targetMainhandMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.WEAPON.getIndex()] = this.mainhandMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.offhandMelee > 0)
|
||||
{
|
||||
if (this.targetOffhandMelee > 0)
|
||||
{
|
||||
if (offhandID == this.targetOffhandMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.SHIELD.getIndex()] = this.offhandMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.helmetMelee > 0)
|
||||
{
|
||||
if (this.targetHelmetMelee > 0)
|
||||
{
|
||||
if (helmetID == this.targetHelmetMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HELMET.getIndex()] = this.helmetMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.capeMelee > 0)
|
||||
{
|
||||
if (this.targetCapeMelee > 0)
|
||||
{
|
||||
if (capeID == this.targetCapeMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.CAPE.getIndex()] = this.capeMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.neckMelee > 0)
|
||||
{
|
||||
if (this.targetNeckMelee > 0)
|
||||
{
|
||||
if (neckID == this.targetNeckMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.AMULET.getIndex()] = this.neckMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bodyMelee > 0)
|
||||
{
|
||||
if (this.targetBodyMelee > 0)
|
||||
{
|
||||
if (bodyID == this.targetBodyMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.TORSO.getIndex()] = this.bodyMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.legsMelee > 0)
|
||||
{
|
||||
if (this.targetLegsMelee > 0)
|
||||
{
|
||||
if (legsID == this.targetLegsMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.LEGS.getIndex()] = this.legsMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.bootsMelee > 0)
|
||||
{
|
||||
if (this.targetBootsMelee > 0)
|
||||
{
|
||||
if (bootsID == this.targetBootsMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.BOOTS.getIndex()] = this.bootsMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.glovesMelee > 0)
|
||||
{
|
||||
if (this.targetGlovesMelee > 0)
|
||||
{
|
||||
if (glovesID == this.targetGlovesMelee)
|
||||
{
|
||||
player.getPlayerAppearance().getEquipmentIds()[KitType.HANDS.getIndex()] = this.glovesMelee + 512;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
player.getPlayerAppearance().setHash();
|
||||
}
|
||||
|
||||
private void updateConfig()
|
||||
{
|
||||
this.set1 = config.set1();
|
||||
this.set2 = config.set2();
|
||||
this.set3 = config.set3();
|
||||
this.animation = config.animationSwap();
|
||||
this.bodyMage = config.BodyMage();
|
||||
this.bodyMelee = config.BodyMelee();
|
||||
this.bodyRange = config.BodyRange();
|
||||
this.bootsMage = config.BootsMage();
|
||||
this.bootsMelee = config.BootsMelee();
|
||||
this.bootsRange = config.BootsRange();
|
||||
this.capeMage = config.CapeMage();
|
||||
this.capeMelee = config.CapeMelee();
|
||||
this.capeRange = config.CapeRange();
|
||||
this.globalAnimSwap = config.globalAnimSwap();
|
||||
this.globalGraphicSwap = config.globalGraphicSwap();
|
||||
this.glovesMage = config.GlovesMage();
|
||||
this.glovesMelee = config.GlovesMelee();
|
||||
this.glovesRange = config.GlovesRange();
|
||||
this.graphic = config.graphicSwap();
|
||||
this.helmetMage = config.HelmetMage();
|
||||
this.helmetMelee = config.HelmetMelee();
|
||||
this.helmetRange = config.HelmetRange();
|
||||
this.legsMage = config.LegsMage();
|
||||
this.legsMelee = config.LegsMelee();
|
||||
this.legsRange = config.LegsRange();
|
||||
this.mageSwap = config.mageSwap();
|
||||
this.mainhandMage = config.MainhandMage();
|
||||
this.mainhandMelee = config.MainhandMelee();
|
||||
this.mainhandRange = config.MainhandRange();
|
||||
this.meleeSwap = config.meleeSwap();
|
||||
this.neckMage = config.NeckMage();
|
||||
this.neckMelee = config.NeckMelee();
|
||||
this.neckRange = config.NeckRange();
|
||||
this.offhandMage = config.OffhandMage();
|
||||
this.offhandMelee = config.OffhandMelee();
|
||||
this.offhandRange = config.OffhandRange();
|
||||
this.rangeSwap = config.rangeSwap();
|
||||
this.targetAnimation = config.animationTarget();
|
||||
this.targetBodyMage = config.targetBodyMage();
|
||||
this.targetBodyMelee = config.targetBodyMelee();
|
||||
this.targetBodyRange = config.targetBodyRange();
|
||||
this.targetBootsMage = config.targetBootsMage();
|
||||
this.targetBootsMelee = config.targetBootsMelee();
|
||||
this.targetBootsRange = config.targetBootsRange();
|
||||
this.targetCapeMage = config.targetCapeMage();
|
||||
this.targetCapeMelee = config.targetCapeMelee();
|
||||
this.targetCapeRange = config.targetCapeRange();
|
||||
this.targetGlovesMage = config.targetGlovesMage();
|
||||
this.targetGlovesMelee = config.targetGlovesMelee();
|
||||
this.targetGlovesRange = config.targetGlovesRange();
|
||||
this.targetGraphic = config.graphicTarget();
|
||||
this.targetHelmetMage = config.targetHelmetMage();
|
||||
this.targetHelmetMelee = config.targetHelmetMelee();
|
||||
this.targetHelmetRange = config.targetHelmetRange();
|
||||
this.targetLegsMage = config.targetLegsMage();
|
||||
this.targetLegsMelee = config.targetLegsMelee();
|
||||
this.targetLegsRange = config.targetLegsRange();
|
||||
this.targetMainhandMage = config.targetMainhandMage();
|
||||
this.targetMainhandMelee = config.targetMainhandMelee();
|
||||
this.targetMainhandRange = config.targetMainhandRange();
|
||||
this.targetNeckMage = config.targetNeckMage();
|
||||
this.targetNeckMelee = config.targetNeckMelee();
|
||||
this.targetNeckRange = config.targetNeckRange();
|
||||
this.targetOffhandMage = config.targetOffhandMage();
|
||||
this.targetOffhandMelee = config.targetOffhandMelee();
|
||||
this.targetOffhandRange = config.targetOffhandRange();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,38 +44,53 @@ public interface TMorphConfig extends Config
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "mageSwap",
|
||||
name = "Swap Mage Set",
|
||||
description = "this will swap your mage set with the set you've chosen.",
|
||||
name = "Swap Set 1",
|
||||
description = "<html><center>Proper Format is id,id:Slot" +
|
||||
"<br>For example: 6570,21295:Cape" +
|
||||
"<br>Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo</center></html>",
|
||||
parent = "swaps",
|
||||
position = 1
|
||||
position = 1,
|
||||
parse = true,
|
||||
clazz = Parse.class,
|
||||
method = "parse"
|
||||
)
|
||||
default boolean mageSwap()
|
||||
default String set1()
|
||||
{
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "rangeSwap",
|
||||
name = "Swap Range Set",
|
||||
description = "this will swap your Range set with the set you've chosen.",
|
||||
name = "Swap Set 3",
|
||||
description = "<html><center>Proper Format is id,id:Slot" +
|
||||
"<br>For example: 6570,21295:Cape" +
|
||||
"<br>Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo</center></html>",
|
||||
parent = "swaps",
|
||||
position = 2
|
||||
position = 2,
|
||||
parse = true,
|
||||
clazz = Parse.class,
|
||||
method = "parse"
|
||||
)
|
||||
default boolean rangeSwap()
|
||||
default String set2()
|
||||
{
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "meleeSwap",
|
||||
name = "Swap Melee Set",
|
||||
description = "this will swap your Melee set with the set you've chosen.",
|
||||
name = "Swap Set 3",
|
||||
description = "<html><center>Proper Format is id,id:Slot" +
|
||||
"<br>For example: 6570,21295:Cape" +
|
||||
"<br>Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo</center></html>",
|
||||
parent = "swaps",
|
||||
position = 3
|
||||
position = 3,
|
||||
parse = true,
|
||||
clazz = Parse.class,
|
||||
method = "parse"
|
||||
)
|
||||
default boolean meleeSwap()
|
||||
default String set3()
|
||||
{
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
@@ -169,713 +184,4 @@ public interface TMorphConfig extends Config
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//////////////////Mage
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "MainhandMage",
|
||||
name = "Mainhand",
|
||||
description = "ID",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int MainhandMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetMainhandMage",
|
||||
name = "Target Mainhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetMainhandMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "OffhandMage",
|
||||
name = "Offhand",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int OffhandMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetOffhandMage",
|
||||
name = "Target Offhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetOffhandMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "HelmetMage",
|
||||
name = "Helmet",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int HelmetMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetHelmetMage",
|
||||
name = "Target Helmet",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetHelmetMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "CapeMage",
|
||||
name = "Cape",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int CapeMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetCapeMage",
|
||||
name = "Target Cape",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetCapeMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "NeckMage",
|
||||
name = "Neck",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int NeckMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetNeckMage",
|
||||
name = "Target Neck",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetNeckMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BodyMage",
|
||||
name = "Body",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int BodyMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBodyMage",
|
||||
name = "Target Body",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetBodyMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "LegsMage",
|
||||
name = "Legs",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int LegsMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetLegsMage",
|
||||
name = "Target Legs",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetLegsMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BootsMage",
|
||||
name = "Boots",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int BootsMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBootsMage",
|
||||
name = "Target Boots",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetBootsMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "GlovesMage",
|
||||
name = "Gloves",
|
||||
description = "Item you want to swap to",
|
||||
group = "Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int GlovesMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetGlovesMage",
|
||||
name = "Target Gloves",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Mage Swap",
|
||||
hidden = true,
|
||||
unhide = "mageSwap"
|
||||
)
|
||||
default int targetGlovesMage()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
///////////////////Range
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "MainhandRange",
|
||||
name = "Mainhand",
|
||||
description = "ID",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int MainhandRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetMainhandRange",
|
||||
name = "Target Mainhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetMainhandRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "OffhandRange",
|
||||
name = "Offhand",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int OffhandRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetOffhandRange",
|
||||
name = "Target Offhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetOffhandRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "HelmetRange",
|
||||
name = "Helmet",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int HelmetRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetHelmetRange",
|
||||
name = "Target Helmet",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetHelmetRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "CapeRange",
|
||||
name = "Cape",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int CapeRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetCapeRange",
|
||||
name = "Target Cape",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetCapeRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "NeckRange",
|
||||
name = "Neck",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int NeckRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetNeckRange",
|
||||
name = "Target Neck",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetNeckRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BodyRange",
|
||||
name = "Body",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int BodyRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBodyRange",
|
||||
name = "Target Body",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetBodyRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "LegsRange",
|
||||
name = "Legs",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int LegsRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetLegsRange",
|
||||
name = "Target Legs",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetLegsRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BootsRange",
|
||||
name = "Boots",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int BootsRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBootsRange",
|
||||
name = "Target Boots",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetBootsRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "GlovesRange",
|
||||
name = "Gloves",
|
||||
description = "Item you want to swap to",
|
||||
group = "Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int GlovesRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetGlovesRange",
|
||||
name = "Target Gloves",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Range Swap",
|
||||
hidden = true,
|
||||
unhide = "rangeSwap"
|
||||
)
|
||||
default int targetGlovesRange()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
////////////////////MELEE
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "MainhandMelee",
|
||||
name = "Mainhand",
|
||||
description = "ID",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int MainhandMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetMainhandMelee",
|
||||
name = "Target Mainhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetMainhandMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "OffhandMelee",
|
||||
name = "Offhand",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int OffhandMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetOffhandMelee",
|
||||
name = "Target Offhand",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetOffhandMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "HelmetMelee",
|
||||
name = "Helmet",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int HelmetMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetHelmetMelee",
|
||||
name = "Target Helmet",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetHelmetMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "CapeMelee",
|
||||
name = "Cape",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int CapeMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetCapeMelee",
|
||||
name = "Target Cape",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetCapeMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "NeckMelee",
|
||||
name = "Neck",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int NeckMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetNeckMelee",
|
||||
name = "Target Neck",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetNeckMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BodyMelee",
|
||||
name = "Body",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int BodyMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBodyMelee",
|
||||
name = "Target Body",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetBodyMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "LegsMelee",
|
||||
name = "Legs",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int LegsMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetLegsMelee",
|
||||
name = "Target Legs",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetLegsMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "BootsMelee",
|
||||
name = "Boots",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int BootsMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetBootsMelee",
|
||||
name = "Target Boots",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetBootsMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "GlovesMelee",
|
||||
name = "Gloves",
|
||||
description = "Item you want to swap to",
|
||||
group = "Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int GlovesMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "TargetGlovesMelee",
|
||||
name = "Target Gloves",
|
||||
description = "If you're wearing this, then it will swap.",
|
||||
group = "Target Melee Swap",
|
||||
hidden = true,
|
||||
unhide = "meleeSwap"
|
||||
)
|
||||
default int targetGlovesMelee()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user