slayer plugin: read bracelet charges directly from chat message
This commit is contained in:
@@ -88,7 +88,9 @@ public class SlayerPlugin extends Plugin
|
|||||||
private static final String CHAT_CANCEL_MESSAGE_JAD = "You no longer have a slayer task as you left the fight cave.";
|
private static final String CHAT_CANCEL_MESSAGE_JAD = "You no longer have a slayer task as you left the fight cave.";
|
||||||
private static final String CHAT_SUPERIOR_MESSAGE = "A superior foe has appeared...";
|
private static final String CHAT_SUPERIOR_MESSAGE = "A superior foe has appeared...";
|
||||||
private static final String CHAT_BRACELET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer";
|
private static final String CHAT_BRACELET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer";
|
||||||
|
private static final Pattern CHAT_BRACELET_SLAUGHTER_REGEX = Pattern.compile("Your bracelet of slaughter prevents your slayer count decreasing. It has (\\d{1,2}) charge[s]? left.");
|
||||||
private static final String CHAT_BRACELET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your";
|
private static final String CHAT_BRACELET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your";
|
||||||
|
private static final Pattern CHAT_BRACELET_EXPEDITIOUS_REGEX = Pattern.compile("Your expeditious bracelet helps you progress your slayer task faster. It has (\\d{1,2}) charge[s]? left.");
|
||||||
private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has ";
|
private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has ";
|
||||||
private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has ";
|
private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has ";
|
||||||
|
|
||||||
@@ -317,15 +319,19 @@ public class SlayerPlugin extends Plugin
|
|||||||
|
|
||||||
if (chatMsg.startsWith(CHAT_BRACELET_SLAUGHTER))
|
if (chatMsg.startsWith(CHAT_BRACELET_SLAUGHTER))
|
||||||
{
|
{
|
||||||
|
Matcher mSlaughter = CHAT_BRACELET_SLAUGHTER_REGEX.matcher(chatMsg);
|
||||||
|
|
||||||
amount++;
|
amount++;
|
||||||
slaughterChargeCount = --slaughterChargeCount <= 0 ? SLAUGHTER_CHARGE : slaughterChargeCount;
|
slaughterChargeCount = mSlaughter.find() ? Integer.parseInt(mSlaughter.group(1)) : SLAUGHTER_CHARGE;
|
||||||
config.slaughter(slaughterChargeCount);
|
config.slaughter(slaughterChargeCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chatMsg.startsWith(CHAT_BRACELET_EXPEDITIOUS))
|
if (chatMsg.startsWith(CHAT_BRACELET_EXPEDITIOUS))
|
||||||
{
|
{
|
||||||
|
Matcher mExpeditious = CHAT_BRACELET_EXPEDITIOUS_REGEX.matcher(chatMsg);
|
||||||
|
|
||||||
amount--;
|
amount--;
|
||||||
expeditiousChargeCount = --expeditiousChargeCount <= 0 ? EXPEDITIOUS_CHARGE : expeditiousChargeCount;
|
expeditiousChargeCount = mExpeditious.find() ? Integer.parseInt(mExpeditious.group(1)) : EXPEDITIOUS_CHARGE;
|
||||||
config.expeditious(expeditiousChargeCount);
|
config.expeditious(expeditiousChargeCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,11 +61,14 @@ public class SlayerPluginTest
|
|||||||
|
|
||||||
private static final String SUPERIOR_MESSAGE = "A superior foe has appeared...";
|
private static final String SUPERIOR_MESSAGE = "A superior foe has appeared...";
|
||||||
|
|
||||||
private static final String BRACLET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count decreasing.";
|
private static final String BRACLET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count decreasing. It has 9 charges left.";
|
||||||
private static final String BRACLET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster.";
|
private static final String BRACLET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster. It has 9 charges left.";
|
||||||
|
|
||||||
private static final String BRACLET_SLAUGHTER_V2 = "Your bracelet of slaughter prevents your slayer count decreasing. It has one charge left";
|
private static final String BRACLET_SLAUGHTER_V2 = "Your bracelet of slaughter prevents your slayer count decreasing. It has 1 charge left.";
|
||||||
private static final String BRACLET_EXPEDITIOUS_V2 = "Your expeditious bracelet helps you progress your slayer task faster. It has one charge left.";
|
private static final String BRACLET_EXPEDITIOUS_V2 = "Your expeditious bracelet helps you progress your slayer task faster. It has 1 charge left.";
|
||||||
|
|
||||||
|
private static final String BRACLET_SLAUGHTER_V3 = "Your bracelet of slaughter prevents your slayer count decreasing. It then crumbles to dust.";
|
||||||
|
private static final String BRACLET_EXPEDITIOUS_V3 = "Your expeditious bracelet helps you progress your slayer task faster. It then crumbles to dust.";
|
||||||
|
|
||||||
private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has 12 charges left.";
|
private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has 12 charges left.";
|
||||||
private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has 12 charges left.";
|
private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has 12 charges left.";
|
||||||
@@ -199,7 +202,7 @@ public class SlayerPluginTest
|
|||||||
assertEquals(12, slayerPlugin.getSlaughterChargeCount());
|
assertEquals(12, slayerPlugin.getSlaughterChargeCount());
|
||||||
|
|
||||||
slayerPlugin.setSlaughterChargeCount(1);
|
slayerPlugin.setSlaughterChargeCount(1);
|
||||||
chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER, null);
|
chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_SLAUGHTER_V3, null);
|
||||||
slayerPlugin.onChatMessage(chatMessageEvent);
|
slayerPlugin.onChatMessage(chatMessageEvent);
|
||||||
|
|
||||||
assertEquals(30, slayerPlugin.getSlaughterChargeCount());
|
assertEquals(30, slayerPlugin.getSlaughterChargeCount());
|
||||||
@@ -242,7 +245,7 @@ public class SlayerPluginTest
|
|||||||
assertEquals(12, slayerPlugin.getExpeditiousChargeCount());
|
assertEquals(12, slayerPlugin.getExpeditiousChargeCount());
|
||||||
|
|
||||||
slayerPlugin.setExpeditiousChargeCount(1);
|
slayerPlugin.setExpeditiousChargeCount(1);
|
||||||
chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS, null);
|
chatMessageEvent = new ChatMessage(SERVER, "", BRACLET_EXPEDITIOUS_V3, null);
|
||||||
slayerPlugin.onChatMessage(chatMessageEvent);
|
slayerPlugin.onChatMessage(chatMessageEvent);
|
||||||
|
|
||||||
assertEquals(30, slayerPlugin.getExpeditiousChargeCount());
|
assertEquals(30, slayerPlugin.getExpeditiousChargeCount());
|
||||||
|
|||||||
Reference in New Issue
Block a user