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;
import lombok.Value;
import net.runelite.api.ClanMember;
@Value
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;
import lombok.Value;
import net.runelite.api.ClanMember;
@Value
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;
import net.runelite.api.ClanMember;
import net.runelite.api.events.ClanMemberJoined;
import net.runelite.api.events.ClanMemberLeft;
import net.runelite.api.mixins.Inject;
@@ -44,15 +45,27 @@ public abstract class RSClanMemberManagerMixin implements RSClanMemberManager
@Override
public void rl$add(RSName name, RSName prevName)
{
ClanMemberJoined event = new ClanMemberJoined(name.getName());
client.getCallbacks().post(event);
ClanMember member = findByName(name);
if (member == null)
{
return;
}
ClanMemberJoined event = new ClanMemberJoined(member);
client.getCallbacks().postDeferred(event);
}
@Inject
@Override
public void rl$remove(RSNameable nameable)
{
ClanMemberLeft event = new ClanMemberLeft(nameable.getRsName().getName());
client.getCallbacks().post(event);
ClanMember member = findByName(nameable.getRsName());
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")
boolean isMember(RSName var1);
@Import("findByName")
T findByName(RSName name);
/**
* Method called by the container when an element is added
* @param name