mixins: use a ClanMember for ClanMemberJoined/Left

This commit is contained in:
trimbe
2019-03-03 19:15:35 -05:00
parent 5104b39758
commit e9597e85d8
4 changed files with 26 additions and 8 deletions

View File

@@ -25,12 +25,13 @@
package net.runelite.api.events; package net.runelite.api.events;
import lombok.Value; import lombok.Value;
import net.runelite.api.ClanMember;
@Value @Value
public class ClanMemberJoined public class ClanMemberJoined
{ {
/** /**
* Name of the player who joined * The ClanMember that joined
*/ */
private String name; private ClanMember member;
} }

View File

@@ -25,12 +25,13 @@
package net.runelite.api.events; package net.runelite.api.events;
import lombok.Value; import lombok.Value;
import net.runelite.api.ClanMember;
@Value @Value
public class ClanMemberLeft public class ClanMemberLeft
{ {
/** /**
* Name of the player who left * The ClanMember that left
*/ */
private String name; private ClanMember member;
} }

View File

@@ -24,6 +24,7 @@
*/ */
package net.runelite.mixins; package net.runelite.mixins;
import net.runelite.api.ClanMember;
import net.runelite.api.events.ClanMemberJoined; import net.runelite.api.events.ClanMemberJoined;
import net.runelite.api.events.ClanMemberLeft; import net.runelite.api.events.ClanMemberLeft;
import net.runelite.api.mixins.Inject; import net.runelite.api.mixins.Inject;
@@ -44,15 +45,27 @@ public abstract class RSClanMemberManagerMixin implements RSClanMemberManager
@Override @Override
public void rl$add(RSName name, RSName prevName) public void rl$add(RSName name, RSName prevName)
{ {
ClanMemberJoined event = new ClanMemberJoined(name.getName()); ClanMember member = findByName(name);
client.getCallbacks().post(event); if (member == null)
{
return;
}
ClanMemberJoined event = new ClanMemberJoined(member);
client.getCallbacks().postDeferred(event);
} }
@Inject @Inject
@Override @Override
public void rl$remove(RSNameable nameable) public void rl$remove(RSNameable nameable)
{ {
ClanMemberLeft event = new ClanMemberLeft(nameable.getRsName().getName()); ClanMember member = findByName(nameable.getRsName());
client.getCallbacks().post(event); if (member == null)
{
return;
}
ClanMemberLeft event = new ClanMemberLeft(member);
client.getCallbacks().postDeferred(event);
} }
} }

View File

@@ -37,6 +37,9 @@ public interface RSNameableContainer<T extends RSNameable>
@Import("isMember") @Import("isMember")
boolean isMember(RSName var1); boolean isMember(RSName var1);
@Import("findByName")
T findByName(RSName name);
/** /**
* Method called by the container when an element is added * Method called by the container when an element is added
* @param name * @param name