Merge pull request #8092 from trimbe/fix-joinleave-ranks
clanchat: retrieve rank from ClanMember rather than ClanManager
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatLineBuffer;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
import net.runelite.api.ClanMember;
|
||||
import net.runelite.api.ClanMemberRank;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
@@ -170,38 +171,40 @@ public class ClanChatPlugin extends Plugin
|
||||
return;
|
||||
}
|
||||
|
||||
ClanMember member = event.getMember();
|
||||
if (!config.showJoinLeave() ||
|
||||
clanManager.getRank(event.getName()).getValue() < config.joinLeaveRank().getValue())
|
||||
member.getRank().getValue() < config.joinLeaveRank().getValue())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// attempt to filter out world hopping joins
|
||||
if (!activityBuffer.containsKey(event.getName()))
|
||||
if (!activityBuffer.containsKey(member.getUsername()))
|
||||
{
|
||||
ClanMemberActivity joinActivity = new ClanMemberActivity(ClanActivityType.JOINED,
|
||||
event.getName(), client.getTickCount());
|
||||
activityBuffer.put(event.getName(), joinActivity);
|
||||
member, client.getTickCount());
|
||||
activityBuffer.put(member.getUsername(), joinActivity);
|
||||
}
|
||||
else
|
||||
{
|
||||
activityBuffer.remove(event.getName());
|
||||
activityBuffer.remove(member.getUsername());
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClanMemberLeft(ClanMemberLeft event)
|
||||
{
|
||||
ClanMember member = event.getMember();
|
||||
if (!config.showJoinLeave() ||
|
||||
clanManager.getRank(event.getName()).getValue() < config.joinLeaveRank().getValue())
|
||||
member.getRank().getValue() < config.joinLeaveRank().getValue())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ClanMemberActivity leaveActivity = new ClanMemberActivity(ClanActivityType.LEFT,
|
||||
event.getName(), client.getTickCount());
|
||||
member, client.getTickCount());
|
||||
|
||||
activityBuffer.put(event.getName(), leaveActivity);
|
||||
activityBuffer.put(member.getUsername(), leaveActivity);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -298,10 +301,10 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private void addActivityMessage(String memberName, ClanActivityType activityType)
|
||||
private void addActivityMessage(ClanMember member, ClanActivityType activityType)
|
||||
{
|
||||
final String activityMessage = activityType == ClanActivityType.JOINED ? " has joined." : " has left.";
|
||||
final ClanMemberRank rank = clanManager.getRank(memberName);
|
||||
final ClanMemberRank rank = member.getRank();
|
||||
String rankTag = "";
|
||||
Color textColor = CHAT_CLAN_TEXT_OPAQUE_BACKGROUND;
|
||||
Color channelColor = CHAT_CLAN_NAME_OPAQUE_BACKGROUND;
|
||||
@@ -323,7 +326,7 @@ public class ClanChatPlugin extends Plugin
|
||||
.append("[")
|
||||
.append(ColorUtil.wrapWithColorTag(client.getClanChatName(), channelColor) + rankTag)
|
||||
.append("] ")
|
||||
.append(ColorUtil.wrapWithColorTag(memberName + activityMessage, textColor))
|
||||
.append(ColorUtil.wrapWithColorTag(member.getUsername() + activityMessage, textColor))
|
||||
.build();
|
||||
|
||||
client.addChatMessage(ChatMessageType.CLANCHAT_INFO, "", messageString, "");
|
||||
|
||||
@@ -26,12 +26,13 @@ package net.runelite.client.plugins.clanchat;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Value;
|
||||
import net.runelite.api.ClanMember;
|
||||
|
||||
@Value
|
||||
@AllArgsConstructor
|
||||
class ClanMemberActivity
|
||||
{
|
||||
private ClanActivityType activityType;
|
||||
private String member;
|
||||
private ClanMember member;
|
||||
private Integer tick;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user