@@ -7,7 +7,7 @@
|
||||
|
||||
[](https://travis-ci.org/runelite-extended/runelite) [](http://makeapullrequest.com) [](http://hits.dwyl.io/runelite-extended/runelite) [](https://www.patreon.com/RuneLitePlus)
|
||||
|
||||
[RuneLitePlus](https://runelitepl.us) is a extended version of [RuneLite](https://github.com/runelite/runelite) that provides more functionality and less restrictions while staying more open-source.
|
||||
[RuneLitePlus](https://runelitepl.us) is an extended version of [RuneLite](https://github.com/runelite/runelite) that provides more functionality and less restrictions while staying more open-source.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ package net.runelite.cache.io;
|
||||
import com.google.common.base.Preconditions;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.Buffer;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public final class OutputStream extends java.io.OutputStream
|
||||
@@ -56,7 +57,7 @@ public final class OutputStream extends java.io.OutputStream
|
||||
int newCapacity = buffer.capacity() * 2;
|
||||
|
||||
ByteBuffer old = buffer;
|
||||
old.flip();
|
||||
((Buffer) old).flip();
|
||||
|
||||
buffer = ByteBuffer.allocate(newCapacity);
|
||||
|
||||
@@ -196,7 +197,7 @@ public final class OutputStream extends java.io.OutputStream
|
||||
|
||||
public byte[] flip()
|
||||
{
|
||||
buffer.flip();
|
||||
((Buffer) buffer).flip();
|
||||
byte[] b = new byte[buffer.limit()];
|
||||
buffer.get(b);
|
||||
return b;
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import java.io.IOException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
@Slf4j
|
||||
public class DiscordClient
|
||||
{
|
||||
public static final Gson gson = new Gson();
|
||||
private static final MediaType JSON = MediaType.parse("application/json");
|
||||
|
||||
public void message(HttpUrl url, DiscordMessage discordMessage)
|
||||
{
|
||||
log.info("Message being sent");
|
||||
message(url, discordMessage, 0, 5);
|
||||
}
|
||||
|
||||
private void message(HttpUrl url, DiscordMessage discordMessage, int retryAttempt, int maxAttempts)
|
||||
{
|
||||
Request request = new Request.Builder()
|
||||
.post(RequestBody.create(JSON, gson.toJson(discordMessage)))
|
||||
.url(url)
|
||||
.build();
|
||||
|
||||
log.info("Attempting to message with {}", discordMessage);
|
||||
|
||||
RuneLiteAPI.CLIENT.newCall(request).enqueue(new Callback()
|
||||
{
|
||||
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e)
|
||||
{
|
||||
log.warn("Unable to submit discord post.", e);
|
||||
if (retryAttempt < maxAttempts)
|
||||
{
|
||||
message(url, discordMessage, retryAttempt + 1, maxAttempts);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException
|
||||
{
|
||||
try
|
||||
{
|
||||
if (response.body() == null)
|
||||
{
|
||||
log.error("API Call - Reponse was null.");
|
||||
return;
|
||||
}
|
||||
if (response.body().string().contains("You are being rate limited") && retryAttempt < maxAttempts)
|
||||
{
|
||||
log.error("You are being rate limited, retrying...");
|
||||
message(url, discordMessage, retryAttempt + 1, maxAttempts);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
response.close();
|
||||
log.debug("Submitted discord log record");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import net.runelite.http.api.discord.embed.AuthorEmbed;
|
||||
import net.runelite.http.api.discord.embed.FieldEmbed;
|
||||
import net.runelite.http.api.discord.embed.FooterEmbed;
|
||||
import net.runelite.http.api.discord.embed.ImageEmbed;
|
||||
import net.runelite.http.api.discord.embed.ProviderEmbed;
|
||||
import net.runelite.http.api.discord.embed.ThumbnailEmbed;
|
||||
import net.runelite.http.api.discord.embed.VideoEmbed;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@ToString
|
||||
public class DiscordEmbed
|
||||
{
|
||||
String title;
|
||||
String type;
|
||||
String description;
|
||||
String url;
|
||||
String timestamp;
|
||||
String iconurl;
|
||||
String color;
|
||||
FooterEmbed footer;
|
||||
ImageEmbed image;
|
||||
ThumbnailEmbed thumbnail;
|
||||
VideoEmbed video;
|
||||
ProviderEmbed provider;
|
||||
AuthorEmbed author;
|
||||
List<FieldEmbed> fields = new ArrayList<>();
|
||||
|
||||
public DiscordEmbed()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DiscordEmbed(String title, String description)
|
||||
{
|
||||
this(title, description, null);
|
||||
}
|
||||
|
||||
public DiscordEmbed(String title, String description, String url)
|
||||
{
|
||||
setTitle(title);
|
||||
setDescription(description);
|
||||
setUrl(url);
|
||||
}
|
||||
|
||||
public static DiscordMessage toDiscordMessage(DiscordEmbed embed, String username, String avatarURL)
|
||||
{
|
||||
return DiscordMessage.builder()
|
||||
.username(username)
|
||||
.avatarUrl(avatarURL)
|
||||
.content("")
|
||||
.embed(embed)
|
||||
.build();
|
||||
}
|
||||
|
||||
public DiscordMessage toDiscordMessage(String username, String avatarUrl)
|
||||
{
|
||||
return DiscordEmbed.toDiscordMessage(this, username, avatarUrl);
|
||||
}
|
||||
|
||||
public static class DiscordEmbedBuilder
|
||||
{
|
||||
List<FieldEmbed> fields = new ArrayList<>();
|
||||
|
||||
public DiscordEmbedBuilder field(FieldEmbed field)
|
||||
{
|
||||
fields.add(field);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@ToString
|
||||
public class DiscordMessage
|
||||
{
|
||||
String username;
|
||||
String content;
|
||||
@SerializedName("avatar_url")
|
||||
String avatarUrl;
|
||||
@SerializedName("tts")
|
||||
boolean textToSpeech;
|
||||
List<DiscordEmbed> embeds = new ArrayList<>();
|
||||
|
||||
public DiscordMessage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DiscordMessage(String username, String content, String avatar_url)
|
||||
{
|
||||
this(username, content, avatar_url, false);
|
||||
}
|
||||
|
||||
public DiscordMessage(String username, String content, String avatar_url, boolean tts)
|
||||
{
|
||||
setUsername(username);
|
||||
setContent(content);
|
||||
setAvatarUrl(avatar_url);
|
||||
setTextToSpeech(tts);
|
||||
}
|
||||
|
||||
public void setUsername(String username)
|
||||
{
|
||||
if (username != null)
|
||||
{
|
||||
this.username = username.substring(0, Math.min(31, username.length()));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.username = null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class DiscordMessageBuilder
|
||||
{
|
||||
List<DiscordEmbed> embeds = new ArrayList<>();
|
||||
|
||||
public DiscordMessageBuilder embed(DiscordEmbed embed)
|
||||
{
|
||||
embeds.add(embed);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, https://runelitepl.us
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -7,6 +7,7 @@
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
@@ -22,39 +23,26 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.vorkath;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
@Singleton
|
||||
public class ZombifiedSpawnOverlay extends Overlay
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class AuthorEmbed
|
||||
{
|
||||
private final VorkathPlugin plugin;
|
||||
|
||||
@Inject
|
||||
public ZombifiedSpawnOverlay(final VorkathPlugin plugin)
|
||||
{
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
setLayer(OverlayLayer.ABOVE_SCENE);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
{
|
||||
if (plugin.getZombifiedSpawn() != null)
|
||||
{
|
||||
OverlayUtil.renderActorOverlayImage(graphics, plugin.getZombifiedSpawn(), VorkathPlugin.SPAWN, Color.green, 10);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
String name;
|
||||
String url;
|
||||
String icon_url;
|
||||
String proxy_icon_url;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class FieldEmbed
|
||||
{
|
||||
@NonNull
|
||||
String name;
|
||||
@NonNull
|
||||
String value;
|
||||
boolean inline;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Abex
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -7,6 +7,7 @@
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
@@ -22,20 +23,25 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.eventbus;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
/**
|
||||
* Marks a method as an event subscriber.
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@Documented
|
||||
public @interface Subscribe
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class FooterEmbed
|
||||
{
|
||||
String text;
|
||||
String icon_url;
|
||||
String proxy_icon_url;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class ImageEmbed
|
||||
{
|
||||
String url;
|
||||
String proxy_url;
|
||||
int height;
|
||||
int width;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class ProviderEmbed
|
||||
{
|
||||
String name;
|
||||
String url;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class ThumbnailEmbed
|
||||
{
|
||||
String url;
|
||||
String proxy_url;
|
||||
int height;
|
||||
int width;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Forsco <https://github.com/forsco>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
package net.runelite.http.api.discord.embed;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class VideoEmbed
|
||||
{
|
||||
String url;
|
||||
int height;
|
||||
int width;
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import lombok.Value;
|
||||
@Value
|
||||
public class ItemStats
|
||||
{
|
||||
private String name;
|
||||
private boolean quest;
|
||||
private boolean equipable;
|
||||
private double weight;
|
||||
@@ -76,7 +77,7 @@ public class ItemStats
|
||||
newEquipment = equipment;
|
||||
}
|
||||
|
||||
return new ItemStats(quest, equipable, newWeight, newEquipment);
|
||||
return new ItemStats(name, quest, equipable, newWeight, newEquipment);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,18 +62,6 @@ public class XteaClient
|
||||
.url(url)
|
||||
.build();
|
||||
|
||||
try
|
||||
{
|
||||
try (Response response = RuneLiteAPI.RLP_CLIENT.newCall(request).execute())
|
||||
{
|
||||
logger.debug("xtea response " + response.code());
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
RuneLiteAPI.RLP_CLIENT.newCall(request).enqueue(new Callback()
|
||||
{
|
||||
@Override
|
||||
@@ -114,9 +102,7 @@ public class XteaClient
|
||||
{
|
||||
InputStream in = response.body().byteStream();
|
||||
// CHECKSTYLE:OFF
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<XteaKey>>()
|
||||
{
|
||||
}.getType());
|
||||
return RuneLiteAPI.GSON.fromJson(new InputStreamReader(in), new TypeToken<List<XteaKey>>() {}.getType());
|
||||
// CHECKSTYLE:ON
|
||||
}
|
||||
catch (JsonParseException ex)
|
||||
|
||||
@@ -363,6 +363,7 @@ public interface Client extends GameShell
|
||||
* @param scale the scale of the sprite
|
||||
* @return the created sprite
|
||||
*/
|
||||
@Nullable
|
||||
Sprite createItemSprite(int itemId, int quantity, int border, int shadowColor, int stackable, boolean noted, int scale);
|
||||
|
||||
/**
|
||||
@@ -373,6 +374,7 @@ public interface Client extends GameShell
|
||||
* @param fileId the sprites file ID
|
||||
* @return the sprite image of the file
|
||||
*/
|
||||
@Nullable
|
||||
Sprite[] getSprites(IndexDataBase source, int archiveId, int fileId);
|
||||
|
||||
/**
|
||||
@@ -1679,15 +1681,25 @@ public interface Client extends GameShell
|
||||
boolean isSpellSelected();
|
||||
|
||||
/**
|
||||
* Set whether or not player attack options will be hidden for clanmembers/friends
|
||||
* Set whether or not player attack options will be hidden for friends
|
||||
*/
|
||||
void setHideFriendAttackOptions(boolean yes);
|
||||
|
||||
/**
|
||||
* Set whether or not player cast options will be hidden for clanmembers/friends
|
||||
* Set whether or not player cast options will be hidden for friends
|
||||
*/
|
||||
void setHideFriendCastOptions(boolean yes);
|
||||
|
||||
/**
|
||||
* Set whether or not player attack options will be hidden for clanmates
|
||||
*/
|
||||
void setHideClanmateAttackOptions(boolean yes);
|
||||
|
||||
/**
|
||||
* Set whether or not player cast options will be hidden for clanmates
|
||||
*/
|
||||
void setHideClanmateCastOptions(boolean yes);
|
||||
|
||||
/**
|
||||
* Set spells excluded from above hiding
|
||||
*/
|
||||
|
||||
@@ -82,9 +82,9 @@ public class ProjectileID
|
||||
public static final int CERB_FIRE = 1247;
|
||||
|
||||
/**
|
||||
* missing: marble gargoyle, superior dark beast
|
||||
* missing: superior dark beast
|
||||
*/
|
||||
|
||||
public static final int MARBLE_GARGOYLE_AOE = 1453;
|
||||
/**
|
||||
* non AOE, regular projectiles
|
||||
*/
|
||||
|
||||
@@ -160,9 +160,11 @@ public final class ScriptID
|
||||
|
||||
/**
|
||||
* Handles zoom input
|
||||
*
|
||||
* Updates the VarClientInts (73, 74) to this same value
|
||||
* <ul>
|
||||
* <li> int zoom value </li>
|
||||
* <li> int zoom value </li>
|
||||
* <li> int Reset zoom position </li>
|
||||
* <li> int Reset zoom position </li>
|
||||
* </ul>
|
||||
*/
|
||||
public static final int CAMERA_DO_ZOOM = 42;
|
||||
|
||||
@@ -41,14 +41,14 @@ public interface Callbacks
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
void post(Object event);
|
||||
<T> void post(Class<T> eventClass, Object event);
|
||||
|
||||
/**
|
||||
* Post a deferred event, which gets delayed until the next cycle.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
void postDeferred(Object event);
|
||||
<T> void postDeferred(Class<T> eventClass, Object event);
|
||||
|
||||
/**
|
||||
* Called each client cycle.
|
||||
|
||||
@@ -300,6 +300,16 @@
|
||||
<artifactId>httpmime</artifactId>
|
||||
<version>4.5.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.reactivex.rxjava2</groupId>
|
||||
<artifactId>rxjava</artifactId>
|
||||
<version>2.2.10</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jakewharton.rxrelay2</groupId>
|
||||
<artifactId>rxrelay</artifactId>
|
||||
<version>2.1.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -48,16 +48,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.CommandManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.discord.DiscordService;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.LootManager;
|
||||
import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
||||
import net.runelite.client.graphics.ModelOutlineRenderer;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginInstantiationException;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
@@ -65,18 +58,14 @@ import net.runelite.client.rs.ClientLoader;
|
||||
import net.runelite.client.rs.ClientUpdateCheckMode;
|
||||
import net.runelite.client.task.Scheduler;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
import net.runelite.client.ui.DrawManager;
|
||||
import net.runelite.client.ui.RuneLiteSplashScreen;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.OverlayRenderer;
|
||||
import net.runelite.client.ui.overlay.WidgetOverlay;
|
||||
import net.runelite.client.ui.overlay.arrow.ArrowMinimapOverlay;
|
||||
import net.runelite.client.ui.overlay.arrow.ArrowWorldOverlay;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay;
|
||||
import net.runelite.client.ui.overlay.tooltip.TooltipOverlay;
|
||||
import net.runelite.client.ui.overlay.worldmap.WorldMapOverlay;
|
||||
import net.runelite.client.ws.PartyService;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@Singleton
|
||||
@@ -97,15 +86,9 @@ public class RuneLite
|
||||
@Inject
|
||||
private PluginManager pluginManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Inject
|
||||
private ConfigManager configManager;
|
||||
|
||||
@Inject
|
||||
private DrawManager drawManager;
|
||||
|
||||
@Inject
|
||||
private SessionManager sessionManager;
|
||||
|
||||
@@ -118,33 +101,12 @@ public class RuneLite
|
||||
@Inject
|
||||
private ClientUI clientUI;
|
||||
|
||||
@Inject
|
||||
private InfoBoxManager infoBoxManager;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private PartyService partyService;
|
||||
|
||||
@Inject
|
||||
private Provider<ItemManager> itemManager;
|
||||
|
||||
@Inject
|
||||
private Provider<OverlayRenderer> overlayRenderer;
|
||||
|
||||
@Inject
|
||||
private Provider<ClanManager> clanManager;
|
||||
|
||||
@Inject
|
||||
private Provider<ChatMessageManager> chatMessageManager;
|
||||
|
||||
@Inject
|
||||
private Provider<MenuManager> menuManager;
|
||||
|
||||
@Inject
|
||||
private Provider<CommandManager> commandManager;
|
||||
|
||||
@Inject
|
||||
private Provider<InfoBoxOverlay> infoBoxOverlay;
|
||||
|
||||
@@ -160,12 +122,6 @@ public class RuneLite
|
||||
@Inject
|
||||
private Provider<ArrowMinimapOverlay> arrowMinimapOverlay;
|
||||
|
||||
@Inject
|
||||
private Provider<LootManager> lootManager;
|
||||
|
||||
@Inject
|
||||
private Provider<ChatboxPanelManager> chatboxPanelManager;
|
||||
|
||||
@Inject
|
||||
@Nullable
|
||||
private Client client;
|
||||
@@ -351,28 +307,11 @@ public class RuneLite
|
||||
// Close the splash screen
|
||||
splashScreen.close();
|
||||
|
||||
// Register event listeners
|
||||
eventBus.register(clientUI);
|
||||
eventBus.register(pluginManager);
|
||||
eventBus.register(overlayManager);
|
||||
eventBus.register(drawManager);
|
||||
eventBus.register(infoBoxManager);
|
||||
eventBus.register(partyService);
|
||||
|
||||
if (!isOutdated)
|
||||
{
|
||||
// Initialize chat colors
|
||||
chatMessageManager.get().loadColors();
|
||||
|
||||
eventBus.register(overlayRenderer.get());
|
||||
eventBus.register(clanManager.get());
|
||||
eventBus.register(itemManager.get());
|
||||
eventBus.register(menuManager.get());
|
||||
eventBus.register(chatMessageManager.get());
|
||||
eventBus.register(commandManager.get());
|
||||
eventBus.register(lootManager.get());
|
||||
eventBus.register(chatboxPanelManager.get());
|
||||
|
||||
// Add core overlays
|
||||
WidgetOverlay.createOverlays(client).forEach(overlayManager::add);
|
||||
overlayManager.add(infoBoxOverlay.get());
|
||||
|
||||
@@ -32,7 +32,6 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.hooks.Callbacks;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
@@ -56,7 +55,6 @@ import okhttp3.OkHttpClient;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@Slf4j
|
||||
public class RuneLiteModule extends AbstractModule
|
||||
{
|
||||
private final ClientUpdateCheckMode updateCheckMode;
|
||||
|
||||
@@ -39,7 +39,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.util.LinkBrowser;
|
||||
@@ -67,7 +66,8 @@ public class SessionManager
|
||||
this.configManager = configManager;
|
||||
this.eventBus = eventBus;
|
||||
this.wsClient = wsClient;
|
||||
eventBus.register(this);
|
||||
|
||||
this.eventBus.subscribe(LoginResponse.class, this, this::onLoginResponse);
|
||||
}
|
||||
|
||||
public void loadSession()
|
||||
@@ -150,7 +150,7 @@ public class SessionManager
|
||||
configManager.switchSession();
|
||||
}
|
||||
|
||||
eventBus.post(new SessionOpen());
|
||||
eventBus.post(SessionOpen.class, new SessionOpen());
|
||||
}
|
||||
|
||||
private void closeSession()
|
||||
@@ -179,7 +179,7 @@ public class SessionManager
|
||||
// Restore config
|
||||
configManager.switchSession();
|
||||
|
||||
eventBus.post(new SessionClose());
|
||||
eventBus.post(SessionClose.class, new SessionClose());
|
||||
}
|
||||
|
||||
public void login()
|
||||
@@ -207,8 +207,7 @@ public class SessionManager
|
||||
LinkBrowser.browse(login.getOauthUrl());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onLoginResponse(LoginResponse loginResponse)
|
||||
private void onLoginResponse(LoginResponse loginResponse)
|
||||
{
|
||||
log.debug("Now logged in as {}", loginResponse.getUsername());
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ public class ClientThread
|
||||
{
|
||||
if (client.isClientThread())
|
||||
{
|
||||
if (r.getAsBoolean())
|
||||
if (!r.getAsBoolean())
|
||||
{
|
||||
invokes.add(r);
|
||||
}
|
||||
|
||||
@@ -128,15 +128,15 @@ public class Hooks implements Callbacks
|
||||
private boolean shouldProcessGameTick;
|
||||
|
||||
@Override
|
||||
public void post(Object event)
|
||||
public <T> void post(Class<T> eventClass, Object event)
|
||||
{
|
||||
eventBus.post(event);
|
||||
eventBus.post(eventClass, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postDeferred(Object event)
|
||||
public <T> void postDeferred(Class<T> eventClass, Object event)
|
||||
{
|
||||
deferredEventBus.post(event);
|
||||
deferredEventBus.post(eventClass, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -148,13 +148,13 @@ public class Hooks implements Callbacks
|
||||
|
||||
deferredEventBus.replay();
|
||||
|
||||
eventBus.post(GameTick.INSTANCE);
|
||||
eventBus.post(GameTick.class, GameTick.INSTANCE);
|
||||
|
||||
int tick = client.getTickCount();
|
||||
client.setTickCount(tick + 1);
|
||||
}
|
||||
|
||||
eventBus.post(BeforeRender.INSTANCE);
|
||||
eventBus.post(BeforeRender.class, BeforeRender.INSTANCE);
|
||||
|
||||
clientThread.invoke();
|
||||
|
||||
@@ -509,7 +509,7 @@ public class Hooks implements Callbacks
|
||||
public static boolean drawMenu()
|
||||
{
|
||||
BeforeMenuRender event = new BeforeMenuRender();
|
||||
client.getCallbacks().post(event);
|
||||
client.getCallbacks().post(BeforeMenuRender.class, event);
|
||||
return event.isConsumed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,18 +31,15 @@ import java.util.function.BiConsumer;
|
||||
import java.util.function.BiPredicate;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.ChatInput;
|
||||
import net.runelite.client.events.ChatboxInput;
|
||||
import net.runelite.client.events.PrivateMessageInput;
|
||||
|
||||
@Singleton
|
||||
@Slf4j
|
||||
public class ChatCommandManager implements ChatboxInputListener
|
||||
{
|
||||
private final Map<String, ChatCommand> commands = new HashMap<>();
|
||||
@@ -55,8 +52,10 @@ public class ChatCommandManager implements ChatboxInputListener
|
||||
{
|
||||
this.client = client;
|
||||
this.scheduledExecutorService = scheduledExecutorService;
|
||||
eventBus.register(this);
|
||||
// eventBus.register(this);
|
||||
commandManager.register(this);
|
||||
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
public void registerCommand(String command, BiConsumer<ChatMessage, String> execute)
|
||||
@@ -84,8 +83,7 @@ public class ChatCommandManager implements ChatboxInputListener
|
||||
commands.remove(command.toLowerCase());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
|
||||
@@ -52,7 +52,7 @@ import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.ui.JagexColors;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
@@ -70,17 +70,23 @@ public class ChatMessageManager
|
||||
|
||||
@Inject
|
||||
private ChatMessageManager(
|
||||
Client client,
|
||||
ChatColorConfig chatColorConfig,
|
||||
ClientThread clientThread)
|
||||
final Client client,
|
||||
final ChatColorConfig chatColorConfig,
|
||||
final ClientThread clientThread,
|
||||
final EventBus eventbus)
|
||||
{
|
||||
this.client = client;
|
||||
this.chatColorConfig = chatColorConfig;
|
||||
this.clientThread = clientThread;
|
||||
|
||||
eventbus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
eventbus.subscribe(ResizeableChanged.class, this, this::onResizeableChanged);
|
||||
eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventbus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventbus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
private void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int setting = client.getVar(Varbits.TRANSPARENT_CHATBOX);
|
||||
|
||||
@@ -91,14 +97,12 @@ public class ChatMessageManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onResizeableChanged(ResizeableChanged event)
|
||||
private void onResizeableChanged(ResizeableChanged event)
|
||||
{
|
||||
refreshAll();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("textrecolor"))
|
||||
{
|
||||
@@ -107,8 +111,7 @@ public class ChatMessageManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
MessageNode messageNode = chatMessage.getMessageNode();
|
||||
ChatMessageType chatMessageType = chatMessage.getType();
|
||||
@@ -173,8 +176,7 @@ public class ChatMessageManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
|
||||
{
|
||||
final String eventName = scriptCallbackEvent.getEventName();
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ import net.runelite.api.events.CommandExecuted;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.ChatboxInput;
|
||||
import net.runelite.client.events.PrivateMessageInput;
|
||||
|
||||
@@ -58,11 +57,17 @@ public class CommandManager
|
||||
private final List<ChatboxInputListener> chatboxInputListenerList = new ArrayList<>();
|
||||
|
||||
@Inject
|
||||
private CommandManager(Client client, EventBus eventBus, ClientThread clientThread)
|
||||
private CommandManager(
|
||||
final Client client,
|
||||
final EventBus eventBus,
|
||||
final ClientThread clientThread
|
||||
)
|
||||
{
|
||||
this.client = client;
|
||||
this.eventBus = eventBus;
|
||||
this.clientThread = clientThread;
|
||||
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
}
|
||||
|
||||
public void register(ChatboxInputListener chatboxInputListener)
|
||||
@@ -75,7 +80,6 @@ public class CommandManager
|
||||
chatboxInputListenerList.remove(chatboxInputListener);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
if (sending)
|
||||
@@ -115,7 +119,7 @@ public class CommandManager
|
||||
String[] args = Arrays.copyOfRange(split, 1, split.length);
|
||||
|
||||
CommandExecuted commandExecuted = new CommandExecuted(command, args);
|
||||
eventBus.post(commandExecuted);
|
||||
eventBus.post(CommandExecuted.class, commandExecuted);
|
||||
}
|
||||
|
||||
private void handleInput(ScriptCallbackEvent event)
|
||||
|
||||
@@ -66,8 +66,8 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.client.RuneLite;
|
||||
import static net.runelite.client.RuneLite.PROFILES_DIR;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
@Singleton
|
||||
@Slf4j
|
||||
@@ -89,7 +89,6 @@ public class ConfigManager
|
||||
@Inject
|
||||
public ConfigManager(ScheduledExecutorService scheduledExecutorService)
|
||||
{
|
||||
|
||||
scheduledExecutorService.scheduleWithFixedDelay(this::sendConfig, 30, 30, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
@@ -194,7 +193,7 @@ public class ConfigManager
|
||||
configChanged.setKey(key);
|
||||
configChanged.setOldValue(null);
|
||||
configChanged.setNewValue(value);
|
||||
eventBus.post(configChanged);
|
||||
eventBus.post(ConfigChanged.class, configChanged);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -233,7 +232,7 @@ public class ConfigManager
|
||||
private void postConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
configObjectCache.remove(configChanged.getGroup() + "." + configChanged.getKey());
|
||||
eventBus.post(configChanged);
|
||||
eventBus.post(ConfigChanged.class, configChanged);
|
||||
}
|
||||
|
||||
public <T> T getConfig(Class<T> clazz)
|
||||
@@ -332,7 +331,7 @@ public class ConfigManager
|
||||
configChanged.setKey(key);
|
||||
configChanged.setOldValue(oldValue);
|
||||
|
||||
eventBus.post(configChanged);
|
||||
eventBus.post(ConfigChanged.class, configChanged);
|
||||
}
|
||||
|
||||
public ConfigDescriptor getConfigDescriptor(Object configurationProxy)
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import net.runelite.api.Constants;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.ContainableFrame;
|
||||
|
||||
@ConfigGroup("runelite")
|
||||
public interface RuneLiteConfig extends Config
|
||||
@@ -66,14 +67,14 @@ public interface RuneLiteConfig extends Config
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "containInScreen",
|
||||
keyName = "containInScreen2",
|
||||
name = "Contain in screen",
|
||||
description = "Makes the client stay contained in the screen when attempted to move out of it.<br>Note: Only works if custom chrome is enabled.",
|
||||
description = "Makes the client stay contained in the screen when attempted to move out of it.<br>Note: 'Always' only works if custom chrome is enabled.",
|
||||
position = 13
|
||||
)
|
||||
default boolean containInScreen()
|
||||
default ContainableFrame.Mode containInScreen()
|
||||
{
|
||||
return false;
|
||||
return ContainableFrame.Mode.RESIZING;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
|
||||
@@ -198,7 +198,7 @@ public class DiscordService implements AutoCloseable
|
||||
{
|
||||
log.info("Discord RPC service is ready with user {}.", user.username);
|
||||
currentUser = user;
|
||||
eventBus.post(new DiscordReady(
|
||||
eventBus.post(DiscordReady.class, new DiscordReady(
|
||||
user.userId,
|
||||
user.username,
|
||||
user.discriminator,
|
||||
@@ -207,28 +207,28 @@ public class DiscordService implements AutoCloseable
|
||||
|
||||
private void disconnected(int errorCode, String message)
|
||||
{
|
||||
eventBus.post(new DiscordDisconnected(errorCode, message));
|
||||
eventBus.post(DiscordDisconnected.class, new DiscordDisconnected(errorCode, message));
|
||||
}
|
||||
|
||||
private void errored(int errorCode, String message)
|
||||
{
|
||||
log.warn("Discord error: {} - {}", errorCode, message);
|
||||
eventBus.post(new DiscordErrored(errorCode, message));
|
||||
eventBus.post(DiscordErrored.class, new DiscordErrored(errorCode, message));
|
||||
}
|
||||
|
||||
private void joinGame(String joinSecret)
|
||||
{
|
||||
eventBus.post(new DiscordJoinGame(joinSecret));
|
||||
eventBus.post(DiscordJoinGame.class, new DiscordJoinGame(joinSecret));
|
||||
}
|
||||
|
||||
private void spectateGame(String spectateSecret)
|
||||
{
|
||||
eventBus.post(new DiscordSpectateGame(spectateSecret));
|
||||
eventBus.post(DiscordSpectateGame.class, new DiscordSpectateGame(spectateSecret));
|
||||
}
|
||||
|
||||
private void joinRequest(DiscordUser user)
|
||||
{
|
||||
eventBus.post(new DiscordJoinRequest(
|
||||
eventBus.post(DiscordJoinRequest.class, new DiscordJoinRequest(
|
||||
user.userId,
|
||||
user.username,
|
||||
user.discriminator,
|
||||
|
||||
@@ -1,249 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Tomas Slusny <slusnucky@gmail.com>
|
||||
* Copyright (c) 2018, Abex
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.eventbus;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.ImmutableMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import java.lang.invoke.CallSite;
|
||||
import java.lang.invoke.LambdaMetafactory;
|
||||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.invoke.MethodType;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.function.Consumer;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Value;
|
||||
import com.jakewharton.rxrelay2.PublishRelay;
|
||||
import com.jakewharton.rxrelay2.Relay;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@ThreadSafe
|
||||
public class EventBus
|
||||
@Singleton
|
||||
public class EventBus implements EventBusInterface
|
||||
{
|
||||
@FunctionalInterface
|
||||
public interface SubscriberMethod
|
||||
private Map<Class<?>, Relay<Object>> subjectList = new HashMap<>();
|
||||
private Map<Object, CompositeDisposable> subscriptionsMap = new HashMap<>();
|
||||
|
||||
@NonNull
|
||||
private <T> Relay<Object> getSubject(Class<T> eventClass)
|
||||
{
|
||||
void invoke(Object event);
|
||||
return subjectList.computeIfAbsent(eventClass, k -> PublishRelay.create().toSerialized());
|
||||
}
|
||||
|
||||
@Value
|
||||
private static class Subscriber
|
||||
@NonNull
|
||||
private CompositeDisposable getCompositeDisposable(@NonNull Object object)
|
||||
{
|
||||
private final Object object;
|
||||
private final Method method;
|
||||
@EqualsAndHashCode.Exclude
|
||||
private final SubscriberMethod lamda;
|
||||
|
||||
void invoke(final Object arg) throws Exception
|
||||
CompositeDisposable compositeDisposable = subscriptionsMap.get(object);
|
||||
if (compositeDisposable == null)
|
||||
{
|
||||
if (lamda != null)
|
||||
compositeDisposable = new CompositeDisposable();
|
||||
subscriptionsMap.put(object, compositeDisposable);
|
||||
}
|
||||
|
||||
return compositeDisposable;
|
||||
}
|
||||
|
||||
@Override
|
||||
// Subscribe on lifecycle (for example from plugin startUp -> shutdown)
|
||||
public <T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action)
|
||||
{
|
||||
Disposable disposable = getSubject(eventClass)
|
||||
.filter(Objects::nonNull) // Filter out null objects, better safe than sorry
|
||||
.cast(eventClass) // Cast it for easier usage
|
||||
.subscribe(action, error ->
|
||||
{
|
||||
lamda.invoke(arg);
|
||||
}
|
||||
else
|
||||
{
|
||||
method.invoke(object, arg);
|
||||
}
|
||||
log.error("Error in eventbus: {}", error.getMessage());
|
||||
});
|
||||
|
||||
getCompositeDisposable(lifecycle).add(disposable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregister(@NonNull Object lifecycle)
|
||||
{
|
||||
//We have to remove the composition from the map, because once you dispose it can't be used anymore
|
||||
CompositeDisposable compositeDisposable = subscriptionsMap.remove(lifecycle);
|
||||
if (compositeDisposable != null)
|
||||
{
|
||||
compositeDisposable.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private final Consumer<Throwable> exceptionHandler;
|
||||
private ImmutableMultimap<Class, Subscriber> subscribers = ImmutableMultimap.of();
|
||||
|
||||
/**
|
||||
* Instantiates EventBus with default exception handler
|
||||
*/
|
||||
public EventBus()
|
||||
@Override
|
||||
public <T> void post(Class<T> eventClass, @NonNull Object event)
|
||||
{
|
||||
this((e) -> log.warn("Uncaught exception in event subscriber", e));
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers subscriber to EventBus. All methods in subscriber and it's parent classes are checked for
|
||||
* {@link Subscribe} annotation and then added to map of subscriptions.
|
||||
*
|
||||
* @param object subscriber to register
|
||||
* @throws IllegalArgumentException in case subscriber method name is wrong (correct format is 'on' + EventName
|
||||
*/
|
||||
public synchronized void register(@Nonnull final Object object)
|
||||
{
|
||||
final ImmutableMultimap.Builder<Class, Subscriber> builder = ImmutableMultimap.builder();
|
||||
|
||||
if (subscribers != null)
|
||||
{
|
||||
builder.putAll(subscribers);
|
||||
}
|
||||
|
||||
for (Class<?> clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass())
|
||||
{
|
||||
for (final Method method : clazz.getDeclaredMethods())
|
||||
{
|
||||
final Subscribe sub = method.getAnnotation(Subscribe.class);
|
||||
|
||||
if (sub == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Preconditions.checkArgument(method.getReturnType() == Void.TYPE, "@Subscribed method \"" + method + "\" cannot return a value");
|
||||
Preconditions.checkArgument(method.getParameterCount() == 1, "@Subscribed method \"" + method + "\" must take exactly 1 argument");
|
||||
Preconditions.checkArgument(!Modifier.isStatic(method.getModifiers()), "@Subscribed method \"" + method + "\" cannot be static");
|
||||
|
||||
final Class<?> parameterClazz = method.getParameterTypes()[0];
|
||||
|
||||
Preconditions.checkArgument(!parameterClazz.isPrimitive(), "@Subscribed method \"" + method + "\" cannot subscribe to primitives");
|
||||
Preconditions.checkArgument((parameterClazz.getModifiers() & (Modifier.ABSTRACT | Modifier.INTERFACE)) == 0, "@Subscribed method \"" + method + "\" cannot subscribe to polymorphic classes");
|
||||
|
||||
for (Class<?> psc = parameterClazz.getSuperclass(); psc != null; psc = psc.getSuperclass())
|
||||
{
|
||||
if (subscribers.containsKey(psc))
|
||||
{
|
||||
throw new IllegalArgumentException("@Subscribed method \"" + method + "\" cannot subscribe to class which inherits from subscribed class \"" + psc + "\"");
|
||||
}
|
||||
}
|
||||
|
||||
final String preferredName = "on" + parameterClazz.getSimpleName();
|
||||
Preconditions.checkArgument(method.getName().equals(preferredName), "Subscribed method " + method + " should be named " + preferredName);
|
||||
|
||||
method.setAccessible(true);
|
||||
SubscriberMethod lambda = null;
|
||||
|
||||
try
|
||||
{
|
||||
final MethodHandles.Lookup caller = privateLookupIn(clazz);
|
||||
final MethodType subscription = MethodType.methodType(void.class, parameterClazz);
|
||||
final MethodHandle target = caller.findVirtual(clazz, method.getName(), subscription);
|
||||
final CallSite site = LambdaMetafactory.metafactory(
|
||||
caller,
|
||||
"invoke",
|
||||
MethodType.methodType(SubscriberMethod.class, clazz),
|
||||
subscription.changeParameterType(0, Object.class),
|
||||
target,
|
||||
subscription);
|
||||
|
||||
final MethodHandle factory = site.getTarget();
|
||||
lambda = (SubscriberMethod) factory.bindTo(object).invokeExact();
|
||||
}
|
||||
catch (Throwable e)
|
||||
{
|
||||
log.warn("Unable to create lambda for method {}", method, e);
|
||||
}
|
||||
|
||||
final Subscriber subscriber = new Subscriber(object, method, lambda);
|
||||
builder.put(parameterClazz, subscriber);
|
||||
log.debug("Registering {} - {}", parameterClazz, subscriber);
|
||||
}
|
||||
}
|
||||
|
||||
subscribers = builder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters all subscribed methods from provided subscriber object.
|
||||
*
|
||||
* @param object object to unsubscribe from
|
||||
*/
|
||||
public synchronized void unregister(@Nonnull final Object object)
|
||||
{
|
||||
if (subscribers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Multimap<Class, Subscriber> map = HashMultimap.create();
|
||||
map.putAll(subscribers);
|
||||
|
||||
for (Class<?> clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass())
|
||||
{
|
||||
for (final Method method : clazz.getDeclaredMethods())
|
||||
{
|
||||
final Subscribe sub = method.getAnnotation(Subscribe.class);
|
||||
|
||||
if (sub == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final Class<?> parameterClazz = method.getParameterTypes()[0];
|
||||
map.remove(parameterClazz, new Subscriber(object, method, null));
|
||||
}
|
||||
}
|
||||
|
||||
subscribers = ImmutableMultimap.copyOf(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts provided event to all registered subscribers. Subscriber calls are invoked immediately and in order
|
||||
* in which subscribers were registered.
|
||||
*
|
||||
* @param event event to post
|
||||
*/
|
||||
public void post(@Nonnull final Object event)
|
||||
{
|
||||
for (final Subscriber subscriber : subscribers.get(event.getClass()))
|
||||
{
|
||||
try
|
||||
{
|
||||
subscriber.invoke(event);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
exceptionHandler.accept(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static MethodHandles.Lookup privateLookupIn(Class clazz) throws IllegalAccessException, NoSuchFieldException, InvocationTargetException
|
||||
{
|
||||
try
|
||||
{
|
||||
// Java 9+ has privateLookupIn method on MethodHandles, but since we are shipping and using Java 8
|
||||
// we need to access it via reflection. This is preferred way because it's Java 9+ public api and is
|
||||
// likely to not change
|
||||
final Method privateLookupIn = MethodHandles.class.getMethod("privateLookupIn", Class.class, MethodHandles.Lookup.class);
|
||||
return (MethodHandles.Lookup) privateLookupIn.invoke(null, clazz, MethodHandles.lookup());
|
||||
}
|
||||
catch (NoSuchMethodException e)
|
||||
{
|
||||
// In Java 8 we first do standard lookupIn class
|
||||
final MethodHandles.Lookup lookupIn = MethodHandles.lookup().in(clazz);
|
||||
|
||||
// and then we mark it as trusted for private lookup via reflection on private field
|
||||
final Field modes = MethodHandles.Lookup.class.getDeclaredField("allowedModes");
|
||||
modes.setAccessible(true);
|
||||
modes.setInt(lookupIn, -1); // -1 == TRUSTED
|
||||
return lookupIn;
|
||||
}
|
||||
getSubject(eventClass).accept(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package net.runelite.client.eventbus;
|
||||
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.functions.Consumer;
|
||||
|
||||
public interface EventBusInterface
|
||||
{
|
||||
<T> void subscribe(Class<T> eventClass, @NonNull Object lifecycle, @NonNull Consumer<T> action);
|
||||
|
||||
void unregister(@NonNull Object lifecycle);
|
||||
|
||||
<T> void post(Class<T> eventClass, @NonNull Object event);
|
||||
}
|
||||
@@ -44,7 +44,7 @@ import net.runelite.api.IndexedSprite;
|
||||
import net.runelite.api.SpriteID;
|
||||
import net.runelite.api.events.ClanChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@@ -97,10 +97,17 @@ public class ClanManager
|
||||
private int modIconsLength;
|
||||
|
||||
@Inject
|
||||
private ClanManager(Client client, SpriteManager spriteManager)
|
||||
private ClanManager(
|
||||
final Client client,
|
||||
final SpriteManager spriteManager,
|
||||
final EventBus eventbus
|
||||
)
|
||||
{
|
||||
this.client = client;
|
||||
this.spriteManager = spriteManager;
|
||||
|
||||
eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventbus.subscribe(ClanChanged.class, this, this::onClanChanged);
|
||||
}
|
||||
|
||||
public ClanMemberRank getRank(String playerName)
|
||||
@@ -123,8 +130,7 @@ public class ClanManager
|
||||
return modIconsLength - CLANCHAT_IMAGES.length + clanMemberRank.ordinal() - 1;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
private void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
if (gameStateChanged.getGameState() == GameState.LOGGED_IN
|
||||
&& modIconsLength == 0)
|
||||
@@ -133,8 +139,7 @@ public class ClanManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClanChanged(ClanChanged clanChanged)
|
||||
private void onClanChanged(ClanChanged clanChanged)
|
||||
{
|
||||
clanRanksCache.invalidateAll();
|
||||
}
|
||||
|
||||
@@ -28,9 +28,14 @@ import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.awt.Color;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -50,121 +55,12 @@ import static net.runelite.api.Constants.HIGH_ALCHEMY_MULTIPLIER;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.ItemDefinition;
|
||||
import net.runelite.api.ItemID;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPE;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPET;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPET_13341;
|
||||
import static net.runelite.api.ItemID.AGILITY_CAPE_13340;
|
||||
import static net.runelite.api.ItemID.BOOTS_OF_LIGHTNESS;
|
||||
import static net.runelite.api.ItemID.BOOTS_OF_LIGHTNESS_89;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_11861;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13589;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13590;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13601;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13602;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13613;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13614;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13625;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13626;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13637;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13638;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13677;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_13678;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_21076;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_BOOTS_21078;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_11853;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13581;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13582;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13593;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13594;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13605;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13606;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13617;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13618;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13629;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13630;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13669;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_13670;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_21064;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_CAPE_21066;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_11859;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13587;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13588;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13599;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13600;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13611;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13612;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13623;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13624;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13635;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13636;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13675;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_13676;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_21073;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_GLOVES_21075;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_11851;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13579;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13580;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13591;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13592;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13603;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13604;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13615;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13616;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13627;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13628;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13667;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_13668;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_21061;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_HOOD_21063;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_11857;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13585;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13586;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13597;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13598;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13609;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13610;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13621;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13622;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13633;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13634;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13673;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_13674;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_21070;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_LEGS_21072;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_11855;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13583;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13584;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13595;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13596;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13607;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13608;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13619;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13620;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13631;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13632;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13671;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_13672;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_21067;
|
||||
import static net.runelite.api.ItemID.GRACEFUL_TOP_21069;
|
||||
import static net.runelite.api.ItemID.MAX_CAPE;
|
||||
import static net.runelite.api.ItemID.MAX_CAPE_13342;
|
||||
import static net.runelite.api.ItemID.PENANCE_GLOVES;
|
||||
import static net.runelite.api.ItemID.PENANCE_GLOVES_10554;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE;
|
||||
import static net.runelite.api.ItemID.SPOTTED_CAPE_10073;
|
||||
import static net.runelite.api.ItemID.SPOTTIER_CAPE;
|
||||
import static net.runelite.api.ItemID.SPOTTIER_CAPE_10074;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import net.runelite.api.Sprite;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.PostItemDefinition;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.http.api.item.ItemClient;
|
||||
import net.runelite.http.api.item.ItemPrice;
|
||||
import net.runelite.http.api.item.ItemStats;
|
||||
@@ -174,33 +70,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
@Slf4j
|
||||
public class ItemManager
|
||||
{
|
||||
@Value
|
||||
private static class ImageKey
|
||||
{
|
||||
private final int itemId;
|
||||
private final int itemQuantity;
|
||||
private final boolean stackable;
|
||||
}
|
||||
|
||||
@Value
|
||||
private static class OutlineKey
|
||||
{
|
||||
private final int itemId;
|
||||
private final int itemQuantity;
|
||||
private final Color outlineColor;
|
||||
}
|
||||
|
||||
private final Client client;
|
||||
private final ScheduledExecutorService scheduledExecutorService;
|
||||
private final ClientThread clientThread;
|
||||
|
||||
private final ItemClient itemClient = new ItemClient();
|
||||
private Map<Integer, ItemPrice> itemPrices = Collections.emptyMap();
|
||||
private Map<Integer, ItemStats> itemStats = Collections.emptyMap();
|
||||
private final LoadingCache<ImageKey, AsyncBufferedImage> itemImages;
|
||||
private final LoadingCache<Integer, ItemDefinition> itemDefinitions;
|
||||
private final LoadingCache<OutlineKey, BufferedImage> itemOutlines;
|
||||
|
||||
// Worn items with weight reducing property have a different worn and inventory ItemID
|
||||
private static final ImmutableMap<Integer, Integer> WORN_ITEMS = ImmutableMap.<Integer, Integer>builder().
|
||||
put(BOOTS_OF_LIGHTNESS_89, BOOTS_OF_LIGHTNESS).
|
||||
@@ -263,9 +132,23 @@ public class ItemManager
|
||||
put(AGILITY_CAPET_13341, AGILITY_CAPET).
|
||||
put(AGILITY_CAPE_13340, AGILITY_CAPE).
|
||||
build();
|
||||
|
||||
private final Client client;
|
||||
private final ScheduledExecutorService scheduledExecutorService;
|
||||
private final ClientThread clientThread;
|
||||
private final ItemClient itemClient = new ItemClient();
|
||||
private final ImmutableMap<Integer, ItemStats> itemStatMap;
|
||||
private final LoadingCache<ImageKey, AsyncBufferedImage> itemImages;
|
||||
private final LoadingCache<Integer, ItemDefinition> itemDefinitions;
|
||||
private final LoadingCache<OutlineKey, BufferedImage> itemOutlines;
|
||||
private Map<Integer, ItemPrice> itemPrices = Collections.emptyMap();
|
||||
private Map<Integer, ItemStats> itemStats = Collections.emptyMap();
|
||||
@Inject
|
||||
public ItemManager(Client client, ScheduledExecutorService executor, ClientThread clientThread)
|
||||
public ItemManager(
|
||||
Client client,
|
||||
ScheduledExecutorService executor,
|
||||
ClientThread clientThread,
|
||||
EventBus eventbus
|
||||
)
|
||||
{
|
||||
this.client = client;
|
||||
this.scheduledExecutorService = executor;
|
||||
@@ -309,6 +192,19 @@ public class ItemManager
|
||||
return loadItemOutline(key.itemId, key.itemQuantity, key.outlineColor);
|
||||
}
|
||||
});
|
||||
|
||||
final Gson gson = new Gson();
|
||||
|
||||
final Type typeToken = new TypeToken<Map<Integer, ItemStats>>()
|
||||
{
|
||||
}.getType();
|
||||
|
||||
final InputStream statsFile = getClass().getResourceAsStream("/item_stats.json");
|
||||
final Map<Integer, ItemStats> stats = gson.fromJson(new InputStreamReader(statsFile), typeToken);
|
||||
itemStatMap = ImmutableMap.copyOf(stats);
|
||||
|
||||
eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventbus.subscribe(PostItemDefinition.class, this, this::onPostItemDefinition);
|
||||
}
|
||||
|
||||
private void loadPrices()
|
||||
@@ -352,9 +248,7 @@ public class ItemManager
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(final GameStateChanged event)
|
||||
private void onGameStateChanged(final GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.HOPPING || event.getGameState() == GameState.LOGIN_SCREEN)
|
||||
{
|
||||
@@ -362,8 +256,7 @@ public class ItemManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPostItemDefinition(PostItemDefinition event)
|
||||
private void onPostItemDefinition(PostItemDefinition event)
|
||||
{
|
||||
itemDefinitions.put(event.getItemDefinition().getId(), event.getItemDefinition());
|
||||
}
|
||||
@@ -392,7 +285,7 @@ public class ItemManager
|
||||
/**
|
||||
* Look up an item's price
|
||||
*
|
||||
* @param itemID item id
|
||||
* @param itemID item id
|
||||
* @param ignoreUntradeableMap should the price returned ignore the {@link UntradeableItemMapping}
|
||||
* @return item price
|
||||
*/
|
||||
@@ -473,7 +366,7 @@ public class ItemManager
|
||||
return null;
|
||||
}
|
||||
|
||||
return itemStats.get(canonicalize(itemId));
|
||||
return itemStatMap.get(canonicalize(itemId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -629,4 +522,20 @@ public class ItemManager
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Value
|
||||
private static class ImageKey
|
||||
{
|
||||
private final int itemId;
|
||||
private final int itemQuantity;
|
||||
private final boolean stackable;
|
||||
}
|
||||
|
||||
@Value
|
||||
private static class OutlineKey
|
||||
{
|
||||
private final int itemId;
|
||||
private final int itemQuantity;
|
||||
private final Color outlineColor;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package net.runelite.client.game;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@Value
|
||||
public class ItemStat
|
||||
{
|
||||
private int slot;
|
||||
|
||||
private int astab;
|
||||
private int aslash;
|
||||
private int acrush;
|
||||
private int amagic;
|
||||
private int arange;
|
||||
|
||||
private int dstab;
|
||||
private int dslash;
|
||||
private int dcrush;
|
||||
private int dmagic;
|
||||
private int drange;
|
||||
|
||||
private int str;
|
||||
private int rstr;
|
||||
private int mdmg;
|
||||
private int prayer;
|
||||
private int aspeed;
|
||||
}
|
||||
@@ -54,7 +54,6 @@ import net.runelite.api.events.ItemSpawned;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.PlayerDespawned;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.NpcLootReceived;
|
||||
import net.runelite.client.events.PlayerLootReceived;
|
||||
|
||||
@@ -74,14 +73,24 @@ public class LootManager
|
||||
private WorldPoint krakenPlayerLocation;
|
||||
|
||||
@Inject
|
||||
private LootManager(EventBus eventBus, Client client)
|
||||
private LootManager(
|
||||
final EventBus eventBus,
|
||||
final Client client
|
||||
)
|
||||
{
|
||||
this.eventBus = eventBus;
|
||||
this.client = client;
|
||||
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned);
|
||||
eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned);
|
||||
eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned);
|
||||
eventBus.subscribe(ItemQuantityChanged.class, this, this::onItemQuantityChanged);
|
||||
eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
private void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
{
|
||||
final NPC npc = npcDespawned.getNpc();
|
||||
if (!npc.isDead())
|
||||
@@ -123,8 +132,7 @@ public class LootManager
|
||||
processNpcLoot(npc);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerDespawned(PlayerDespawned playerDespawned)
|
||||
private void onPlayerDespawned(PlayerDespawned playerDespawned)
|
||||
{
|
||||
final Player player = playerDespawned.getPlayer();
|
||||
// Only care about dead Players
|
||||
@@ -150,11 +158,10 @@ public class LootManager
|
||||
}
|
||||
|
||||
killPoints.add(location);
|
||||
eventBus.post(new PlayerLootReceived(player, items));
|
||||
eventBus.post(PlayerLootReceived.class, new PlayerLootReceived(player, items));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemSpawned(ItemSpawned itemSpawned)
|
||||
private void onItemSpawned(ItemSpawned itemSpawned)
|
||||
{
|
||||
final Item item = itemSpawned.getItem();
|
||||
final Tile tile = itemSpawned.getTile();
|
||||
@@ -164,16 +171,14 @@ public class LootManager
|
||||
log.debug("Item spawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemDespawned(ItemDespawned itemDespawned)
|
||||
private void onItemDespawned(ItemDespawned itemDespawned)
|
||||
{
|
||||
final Item item = itemDespawned.getItem();
|
||||
final LocalPoint location = itemDespawned.getTile().getLocalLocation();
|
||||
log.debug("Item despawn {} ({}) location {},{}", item.getId(), item.getQuantity(), location);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged)
|
||||
private void onItemQuantityChanged(ItemQuantityChanged itemQuantityChanged)
|
||||
{
|
||||
final Item item = itemQuantityChanged.getItem();
|
||||
final Tile tile = itemQuantityChanged.getTile();
|
||||
@@ -189,8 +194,7 @@ public class LootManager
|
||||
itemSpawns.put(packed, new ItemStack(item.getId(), diff, location));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onAnimationChanged(AnimationChanged e)
|
||||
private void onAnimationChanged(AnimationChanged e)
|
||||
{
|
||||
if (!(e.getActor() instanceof NPC))
|
||||
{
|
||||
@@ -219,8 +223,7 @@ public class LootManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
private void onGameTick(GameTick gameTick)
|
||||
{
|
||||
playerLocationLastTick = client.getLocalPlayer().getWorldLocation();
|
||||
itemSpawns.clear();
|
||||
@@ -257,7 +260,7 @@ public class LootManager
|
||||
}
|
||||
|
||||
killPoints.add(location);
|
||||
eventBus.post(new NpcLootReceived(npc, allItems));
|
||||
eventBus.post(NpcLootReceived.class, new NpcLootReceived(npc, allItems));
|
||||
}
|
||||
|
||||
private WorldPoint getDropLocation(NPC npc, WorldPoint worldLocation)
|
||||
|
||||
@@ -37,14 +37,14 @@ import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.Sprite;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBox;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
|
||||
@Slf4j
|
||||
@Singleton
|
||||
public class SpriteManager
|
||||
{
|
||||
@@ -54,7 +54,10 @@ public class SpriteManager
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
private final Cache<Long, BufferedImage> cache = CacheBuilder.newBuilder()
|
||||
@Inject
|
||||
private InfoBoxManager infoBoxManager;
|
||||
|
||||
public Cache<Long, BufferedImage> cache = CacheBuilder.newBuilder()
|
||||
.maximumSize(128L)
|
||||
.expireAfterAccess(1, TimeUnit.HOURS)
|
||||
.build();
|
||||
@@ -76,6 +79,11 @@ public class SpriteManager
|
||||
}
|
||||
|
||||
Sprite[] sp = client.getSprites(client.getIndexSprites(), archive, 0);
|
||||
if (sp == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
BufferedImage img = sp[file].toBufferedImage();
|
||||
|
||||
cache.put(key, img);
|
||||
@@ -104,6 +112,15 @@ public class SpriteManager
|
||||
});
|
||||
}
|
||||
|
||||
public void getSpriteAsync(int archive, int file, InfoBox infoBox)
|
||||
{
|
||||
getSpriteAsync(archive, file, img ->
|
||||
{
|
||||
infoBox.setImage(img);
|
||||
infoBoxManager.updateInfoBoxImage(infoBox);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls setIcon on c, ensuring it is repainted when this changes
|
||||
*/
|
||||
|
||||
@@ -41,7 +41,6 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.input.MouseListener;
|
||||
@@ -79,6 +78,10 @@ public class ChatboxPanelManager
|
||||
|
||||
this.chatboxTextMenuInputProvider = chatboxTextMenuInputProvider;
|
||||
this.chatboxTextInputProvider = chatboxTextInputProvider;
|
||||
|
||||
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
}
|
||||
|
||||
public void close()
|
||||
@@ -103,7 +106,7 @@ public class ChatboxPanelManager
|
||||
{
|
||||
client.runScript(ScriptID.CLEAR_CHATBOX_PANEL);
|
||||
|
||||
eventBus.register(input);
|
||||
// eventBus.register(input);
|
||||
if (input instanceof KeyListener)
|
||||
{
|
||||
keyManager.registerKeyListener((KeyListener) input);
|
||||
@@ -150,8 +153,7 @@ public class ChatboxPanelManager
|
||||
.prompt(prompt);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent ev)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent ev)
|
||||
{
|
||||
if (currentInput != null && "resetChatboxInput".equals(ev.getEventName()))
|
||||
{
|
||||
@@ -159,7 +161,6 @@ public class ChatboxPanelManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onGameStateChanged(GameStateChanged ev)
|
||||
{
|
||||
if (currentInput != null && ev.getGameState() == GameState.LOGIN_SCREEN)
|
||||
|
||||
@@ -31,7 +31,6 @@ import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.FontID;
|
||||
import net.runelite.api.widgets.JavaScriptCallback;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
@@ -41,7 +40,6 @@ import net.runelite.api.widgets.WidgetTextAlignment;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
|
||||
@Slf4j
|
||||
public class ChatboxTextMenuInput extends ChatboxInput implements KeyListener
|
||||
{
|
||||
@Data
|
||||
|
||||
@@ -66,7 +66,6 @@ import net.runelite.api.events.WidgetMenuOptionClicked;
|
||||
import net.runelite.api.events.WidgetPressed;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.util.Text;
|
||||
|
||||
@Singleton
|
||||
@@ -106,6 +105,15 @@ public class MenuManager
|
||||
{
|
||||
this.client = client;
|
||||
this.eventBus = eventBus;
|
||||
|
||||
|
||||
eventBus.subscribe(MenuOpened.class, this, this::onMenuOpened);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender);
|
||||
eventBus.subscribe(PlayerMenuOptionsChanged.class, this, this::onPlayerMenuOptionsChanged);
|
||||
eventBus.subscribe(NpcActionChanged.class, this, this::onNpcActionChanged);
|
||||
eventBus.subscribe(WidgetPressed.class, this, this::onWidgetPressed);
|
||||
eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,8 +153,7 @@ public class MenuManager
|
||||
return false;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOpened(MenuOpened event)
|
||||
private void onMenuOpened(MenuOpened event)
|
||||
{
|
||||
currentPriorityEntries.clear();
|
||||
|
||||
@@ -256,8 +263,7 @@ public class MenuManager
|
||||
client.setMenuEntries(arrayEntries);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
int widgetId = event.getActionParam1();
|
||||
Collection<WidgetMenuOption> options = managedMenuOptions.get(widgetId);
|
||||
@@ -280,8 +286,7 @@ public class MenuManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onBeforeRender(BeforeRender event)
|
||||
private void onBeforeRender(BeforeRender event)
|
||||
{
|
||||
rebuildLeftClickMenu();
|
||||
}
|
||||
@@ -364,8 +369,7 @@ public class MenuManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerMenuOptionsChanged(PlayerMenuOptionsChanged event)
|
||||
private void onPlayerMenuOptionsChanged(PlayerMenuOptionsChanged event)
|
||||
{
|
||||
int idx = event.getIndex();
|
||||
|
||||
@@ -389,8 +393,7 @@ public class MenuManager
|
||||
addPlayerMenuItem(newIdx, menuText);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcActionChanged(NpcActionChanged event)
|
||||
private void onNpcActionChanged(NpcActionChanged event)
|
||||
{
|
||||
NPCDefinition composition = event.getNpcDefinition();
|
||||
for (String npcOption : npcMenuOptions)
|
||||
@@ -439,14 +442,12 @@ public class MenuManager
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetPressed(WidgetPressed event)
|
||||
private void onWidgetPressed(WidgetPressed event)
|
||||
{
|
||||
leftClickEntry = rebuildLeftClickMenu();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(MenuOptionClicked event)
|
||||
private void onMenuOptionClicked(MenuOptionClicked event)
|
||||
{
|
||||
if (!client.isMenuOpen() && event.isAuthentic())
|
||||
{
|
||||
@@ -481,7 +482,7 @@ public class MenuManager
|
||||
customMenu.setMenuOption(event.getOption());
|
||||
customMenu.setMenuTarget(event.getTarget());
|
||||
customMenu.setWidget(curMenuOption.getWidget());
|
||||
eventBus.post(customMenu);
|
||||
eventBus.post(WidgetMenuOptionClicked.class, customMenu);
|
||||
return; // don't continue because it's not a player option
|
||||
}
|
||||
}
|
||||
@@ -496,7 +497,7 @@ public class MenuManager
|
||||
playerMenuOptionClicked.setMenuOption(event.getOption());
|
||||
playerMenuOptionClicked.setMenuTarget(username);
|
||||
|
||||
eventBus.post(playerMenuOptionClicked);
|
||||
eventBus.post(PlayerMenuOptionClicked.class, playerMenuOptionClicked);
|
||||
}
|
||||
|
||||
private void addPlayerMenuItem(int playerOptionIndex, String menuText)
|
||||
|
||||
@@ -68,7 +68,6 @@ import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.events.PluginChanged;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
@@ -126,14 +125,12 @@ public class PluginManager
|
||||
pluginWatcher.start();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSessionOpen(SessionOpen event)
|
||||
private void onSessionOpen(SessionOpen event)
|
||||
{
|
||||
refreshPlugins();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSessionClose(SessionClose event)
|
||||
private void onSessionClose(SessionClose event)
|
||||
{
|
||||
refreshPlugins();
|
||||
}
|
||||
@@ -368,9 +365,9 @@ public class PluginManager
|
||||
}
|
||||
}
|
||||
|
||||
eventBus.register(plugin);
|
||||
// eventBus.register(plugin);
|
||||
schedule(plugin);
|
||||
eventBus.post(new PluginChanged(plugin, true));
|
||||
eventBus.post(PluginChanged.class, new PluginChanged(plugin, true));
|
||||
}
|
||||
catch (InterruptedException | InvocationTargetException | IllegalArgumentException ex)
|
||||
{
|
||||
@@ -392,7 +389,6 @@ public class PluginManager
|
||||
try
|
||||
{
|
||||
unschedule(plugin);
|
||||
eventBus.unregister(plugin);
|
||||
|
||||
// plugins always stop in the event thread
|
||||
SwingUtilities.invokeAndWait(() ->
|
||||
@@ -408,7 +404,7 @@ public class PluginManager
|
||||
});
|
||||
|
||||
log.debug("Plugin {} is now stopped", plugin.getClass().getSimpleName());
|
||||
eventBus.post(new PluginChanged(plugin, false));
|
||||
eventBus.post(PluginChanged.class, new PluginChanged(plugin, false));
|
||||
|
||||
}
|
||||
catch (InterruptedException | InvocationTargetException ex)
|
||||
|
||||
@@ -32,7 +32,7 @@ import javax.swing.JOptionPane;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.client.account.AccountSession;
|
||||
import net.runelite.client.account.SessionManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.SessionClose;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -60,6 +60,9 @@ public class AccountPlugin extends Plugin
|
||||
@Inject
|
||||
private ScheduledExecutorService executor;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private NavigationButton loginButton;
|
||||
private NavigationButton logoutButton;
|
||||
|
||||
@@ -74,6 +77,8 @@ public class AccountPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
loginButton = NavigationButton.builder()
|
||||
.tab(false)
|
||||
.icon(LOGIN_IMAGE)
|
||||
@@ -103,10 +108,18 @@ public class AccountPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
clientToolbar.removeNavigation(loginButton);
|
||||
clientToolbar.removeNavigation(logoutButton);
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(SessionClose.class, this, this::onSessionClose);
|
||||
eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen);
|
||||
}
|
||||
|
||||
private void loginClick()
|
||||
{
|
||||
executor.execute(sessionManager::login);
|
||||
@@ -122,14 +135,12 @@ public class AccountPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSessionClose(SessionClose e)
|
||||
private void onSessionClose(SessionClose e)
|
||||
{
|
||||
addAndRemoveButtons();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSessionOpen(SessionOpen sessionOpen)
|
||||
private void onSessionOpen(SessionOpen sessionOpen)
|
||||
{
|
||||
AccountSession session = sessionManager.getAccountSession();
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.achievementdiary.diaries.ArdougneDiaryRequirement;
|
||||
@@ -79,8 +79,22 @@ public class DiaryRequirementsPlugin extends Plugin
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(final WidgetLoaded event)
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
}
|
||||
|
||||
private void onWidgetLoaded(final WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() == WidgetID.DIARY_QUEST_GROUP_ID)
|
||||
{
|
||||
|
||||
@@ -70,7 +70,7 @@ import net.runelite.api.events.WallObjectDespawned;
|
||||
import net.runelite.api.events.WallObjectSpawned;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.AgilityShortcut;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -120,6 +120,9 @@ public class AgilityPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private AgilitySession session;
|
||||
|
||||
@@ -166,6 +169,7 @@ public class AgilityPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(agilityOverlay);
|
||||
overlayManager.add(lapCounterOverlay);
|
||||
@@ -175,6 +179,8 @@ public class AgilityPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(agilityOverlay);
|
||||
overlayManager.remove(lapCounterOverlay);
|
||||
marksOfGrace.clear();
|
||||
@@ -183,8 +189,31 @@ public class AgilityPlugin extends Plugin
|
||||
agilityLevel = 0;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
|
||||
eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged);
|
||||
eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned);
|
||||
eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged);
|
||||
eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned);
|
||||
eventBus.subscribe(GroundObjectSpawned.class, this, this::onGroundObjectSpawned);
|
||||
eventBus.subscribe(GroundObjectChanged.class, this, this::onGroundObjectChanged);
|
||||
eventBus.subscribe(GroundObjectDespawned.class, this, this::onGroundObjectDespawned);
|
||||
eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned);
|
||||
eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged);
|
||||
eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned);
|
||||
eventBus.subscribe(DecorativeObjectSpawned.class, this, this::onDecorativeObjectSpawned);
|
||||
eventBus.subscribe(DecorativeObjectChanged.class, this, this::onDecorativeObjectChanged);
|
||||
eventBus.subscribe(DecorativeObjectDespawned.class, this, this::onDecorativeObjectDespawned);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
switch (event.getGameState())
|
||||
{
|
||||
@@ -208,8 +237,7 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!event.getGroup().equals("agility"))
|
||||
{
|
||||
@@ -242,8 +270,7 @@ public class AgilityPlugin extends Plugin
|
||||
this.showShortcutLevel = config.showShortcutLevel();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onExperienceChanged(ExperienceChanged event)
|
||||
private void onExperienceChanged(ExperienceChanged event)
|
||||
{
|
||||
if (event.getSkill() != AGILITY || !this.showLapCount)
|
||||
{
|
||||
@@ -278,9 +305,7 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
|
||||
private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
|
||||
{
|
||||
Skill skill = boostedLevelChanged.getSkill();
|
||||
if (skill == AGILITY)
|
||||
@@ -289,8 +314,7 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemSpawned(ItemSpawned itemSpawned)
|
||||
private void onItemSpawned(ItemSpawned itemSpawned)
|
||||
{
|
||||
if (obstacles.isEmpty())
|
||||
{
|
||||
@@ -306,15 +330,13 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemDespawned(ItemDespawned itemDespawned)
|
||||
private void onItemDespawned(ItemDespawned itemDespawned)
|
||||
{
|
||||
final Tile tile = itemDespawned.getTile();
|
||||
marksOfGrace.remove(tile);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick tick)
|
||||
private void onGameTick(GameTick tick)
|
||||
{
|
||||
if (isInAgilityArena())
|
||||
{
|
||||
@@ -365,74 +387,62 @@ public class AgilityPlugin extends Plugin
|
||||
infoBoxManager.addInfoBox(new AgilityArenaTimer(this, itemManager.getImage(AGILITY_ARENA_TICKET)));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), null, event.getGameObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectChanged(GameObjectChanged event)
|
||||
private void onGameObjectChanged(GameObjectChanged event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getPrevious(), event.getGameObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||
private void onGameObjectDespawned(GameObjectDespawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getGameObject(), null);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGroundObjectSpawned(GroundObjectSpawned event)
|
||||
private void onGroundObjectSpawned(GroundObjectSpawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), null, event.getGroundObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGroundObjectChanged(GroundObjectChanged event)
|
||||
private void onGroundObjectChanged(GroundObjectChanged event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getPrevious(), event.getGroundObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGroundObjectDespawned(GroundObjectDespawned event)
|
||||
private void onGroundObjectDespawned(GroundObjectDespawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getGroundObject(), null);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectSpawned(WallObjectSpawned event)
|
||||
private void onWallObjectSpawned(WallObjectSpawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), null, event.getWallObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectChanged(WallObjectChanged event)
|
||||
private void onWallObjectChanged(WallObjectChanged event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getPrevious(), event.getWallObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectDespawned(WallObjectDespawned event)
|
||||
private void onWallObjectDespawned(WallObjectDespawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getWallObject(), null);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDecorativeObjectSpawned(DecorativeObjectSpawned event)
|
||||
private void onDecorativeObjectSpawned(DecorativeObjectSpawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), null, event.getDecorativeObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDecorativeObjectChanged(DecorativeObjectChanged event)
|
||||
private void onDecorativeObjectChanged(DecorativeObjectChanged event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getPrevious(), event.getDecorativeObject());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDecorativeObjectDespawned(DecorativeObjectDespawned event)
|
||||
private void onDecorativeObjectDespawned(DecorativeObjectDespawned event)
|
||||
{
|
||||
onTileObject(event.getTile(), event.getDecorativeObject(), null);
|
||||
}
|
||||
@@ -484,8 +494,7 @@ public class AgilityPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (!this.showShortcutLevel)
|
||||
{
|
||||
|
||||
@@ -46,7 +46,7 @@ import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -89,9 +89,14 @@ public class HydraPlugin extends Plugin
|
||||
@Inject
|
||||
private HydraSceneOverlay poisonOverlay;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
inHydraInstance = checkArea();
|
||||
lastAttackTick = -1;
|
||||
poisonProjectiles.clear();
|
||||
@@ -100,6 +105,8 @@ public class HydraPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
inHydraInstance = false;
|
||||
hydra = null;
|
||||
poisonProjectiles.clear();
|
||||
@@ -107,7 +114,15 @@ public class HydraPlugin extends Plugin
|
||||
lastAttackTick = -1;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged);
|
||||
eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged state)
|
||||
{
|
||||
if (state.getGameState() != GameState.LOGGED_IN)
|
||||
@@ -140,7 +155,6 @@ public class HydraPlugin extends Plugin
|
||||
addOverlays();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onNpcSpawned(NpcSpawned event)
|
||||
{
|
||||
if (!inHydraInstance || event.getNpc().getId() != NpcID.ALCHEMICAL_HYDRA)
|
||||
@@ -152,8 +166,7 @@ public class HydraPlugin extends Plugin
|
||||
addOverlays();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onAnimationChanged(AnimationChanged animationChanged)
|
||||
private void onAnimationChanged(AnimationChanged animationChanged)
|
||||
{
|
||||
Actor actor = animationChanged.getActor();
|
||||
|
||||
@@ -215,8 +228,7 @@ public class HydraPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileMoved(ProjectileMoved event)
|
||||
private void onProjectileMoved(ProjectileMoved event)
|
||||
{
|
||||
if (!inHydraInstance || hydra == null
|
||||
|| client.getGameCycle() >= event.getProjectile().getStartMovementCycle())
|
||||
@@ -245,8 +257,7 @@ public class HydraPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
private void onChatMessage(ChatMessage event)
|
||||
{
|
||||
if (!event.getMessage().equals("The chemicals neutralise the Alchemical Hydra's defences!"))
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ import net.runelite.api.ItemDefinition;
|
||||
import net.runelite.api.ItemContainer;
|
||||
import net.runelite.api.events.ItemContainerChanged;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -61,11 +61,16 @@ public class AmmoPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private AmmoCounter counterBox;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged);
|
||||
|
||||
clientThread.invokeLater(() ->
|
||||
{
|
||||
final ItemContainer container = client.getItemContainer(InventoryID.EQUIPMENT);
|
||||
@@ -80,12 +85,13 @@ public class AmmoPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
infoBoxManager.removeInfoBox(counterBox);
|
||||
counterBox = null;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemContainerChanged(ItemContainerChanged event)
|
||||
private void onItemContainerChanged(ItemContainerChanged event)
|
||||
{
|
||||
if (event.getItemContainer() != client.getItemContainer(InventoryID.EQUIPMENT))
|
||||
{
|
||||
|
||||
@@ -30,7 +30,7 @@ import javax.inject.Singleton;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
|
||||
@@ -51,6 +51,9 @@ public class AnimationSmoothingPlugin extends Plugin
|
||||
@Inject
|
||||
private AnimationSmoothingConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
AnimationSmoothingConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -60,20 +63,23 @@ public class AnimationSmoothingPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
client.setInterpolatePlayerAnimations(false);
|
||||
client.setInterpolateNpcAnimations(false);
|
||||
client.setInterpolateObjectAnimations(false);
|
||||
client.setInterpolateWidgetAnimations(false);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals(CONFIG_GROUP))
|
||||
{
|
||||
|
||||
@@ -80,9 +80,7 @@ public interface AntiDragConfig extends Config
|
||||
keyName = "dragDelay",
|
||||
name = "Drag Delay",
|
||||
description = "Configures the inventory drag delay in client ticks (20ms)",
|
||||
position = 3,
|
||||
hidden = true,
|
||||
unhide = "keybind"
|
||||
position = 3
|
||||
)
|
||||
default int dragDelay()
|
||||
{
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.FocusChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.Keybind;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -81,6 +81,9 @@ public class AntiDragPlugin extends Plugin
|
||||
@Inject
|
||||
private KeyManager keyManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
AntiDragConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -102,7 +105,9 @@ public class AntiDragPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
updateConfig();
|
||||
|
||||
if (this.keybind)
|
||||
{
|
||||
keyManager.registerKeyListener(hotkeyListener);
|
||||
@@ -113,14 +118,21 @@ public class AntiDragPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
client.setInventoryDragDelay(DEFAULT_DELAY);
|
||||
keyManager.unregisterKeyListener(hotkeyListener);
|
||||
toggleDrag = false;
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("antiDrag"))
|
||||
{
|
||||
@@ -141,6 +153,10 @@ public class AntiDragPlugin extends Plugin
|
||||
{
|
||||
client.setInventoryDragDelay(this.alwaysOn ? this.dragDelay : DEFAULT_DELAY);
|
||||
}
|
||||
if (event.getKey().equals("dragDelay") && this.alwaysOn)
|
||||
{
|
||||
client.setInventoryDragDelay(this.dragDelay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,8 +173,7 @@ public class AntiDragPlugin extends Plugin
|
||||
this.selectedCursor = config.selectedCursor();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onFocusChanged(FocusChanged focusChanged)
|
||||
private void onFocusChanged(FocusChanged focusChanged)
|
||||
{
|
||||
if (!this.alwaysOn && !focusChanged.isFocused() && this.reqfocus)
|
||||
{
|
||||
|
||||
@@ -123,7 +123,12 @@ public enum AoeProjectileInfo
|
||||
/**
|
||||
* Demonic gorilla
|
||||
*/
|
||||
DEMONIC_GORILLA_BOULDER(ProjectileID.DEMONIC_GORILLA_BOULDER, 1);
|
||||
DEMONIC_GORILLA_BOULDER(ProjectileID.DEMONIC_GORILLA_BOULDER, 1),
|
||||
|
||||
/**
|
||||
* Marble gargoyle (Superior Gargoyle)
|
||||
*/
|
||||
MARBLE_GARGOYLE_AOE(ProjectileID.MARBLE_GARGOYLE_AOE, 1);
|
||||
|
||||
private static final Map<Integer, AoeProjectileInfo> map = new HashMap<>();
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -92,6 +92,8 @@ public class AoeWarningPlugin extends Plugin
|
||||
private BombOverlay bombOverlay;
|
||||
@Inject
|
||||
private Client client;
|
||||
@Inject
|
||||
private EventBus eventbus;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private List<WorldPoint> LightningTrail = new ArrayList<>();
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -170,6 +172,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(coreOverlay);
|
||||
overlayManager.add(bombOverlay);
|
||||
@@ -179,13 +182,24 @@ public class AoeWarningPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventbus.unregister(this);
|
||||
|
||||
overlayManager.remove(coreOverlay);
|
||||
overlayManager.remove(bombOverlay);
|
||||
reset();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventbus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved);
|
||||
eventbus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventbus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned);
|
||||
eventbus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventbus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!event.getGroup().equals("aoe"))
|
||||
{
|
||||
@@ -195,8 +209,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileMoved(ProjectileMoved event)
|
||||
private void onProjectileMoved(ProjectileMoved event)
|
||||
{
|
||||
Projectile projectile = event.getProjectile();
|
||||
|
||||
@@ -223,8 +236,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
final GameObject gameObject = event.getGameObject();
|
||||
final WorldPoint wp = gameObject.getWorldLocation();
|
||||
@@ -260,8 +272,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||
private void onGameObjectDespawned(GameObjectDespawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
WorldPoint wp = gameObject.getWorldLocation();
|
||||
@@ -286,8 +297,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged delta)
|
||||
private void onGameStateChanged(GameStateChanged delta)
|
||||
{
|
||||
if (client.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
@@ -295,8 +305,7 @@ public class AoeWarningPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
if (this.configLightningTrail)
|
||||
{
|
||||
|
||||
@@ -50,7 +50,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import static net.runelite.client.plugins.attackstyles.AttackStyle.CASTING;
|
||||
@@ -89,6 +89,9 @@ public class AttackStylesPlugin extends Plugin
|
||||
@Inject
|
||||
private AttackStylesOverlay overlay;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
AttackStylesConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -110,6 +113,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(overlay);
|
||||
|
||||
@@ -140,12 +144,23 @@ public class AttackStylesPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(overlay);
|
||||
hideWarnedStyles(false);
|
||||
processWidgets();
|
||||
hideWidget(client.getWidget(WidgetInfo.COMBAT_AUTO_RETALIATE), false);
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
}
|
||||
|
||||
public AttackStyle getAttackStyle()
|
||||
{
|
||||
return attackStyle;
|
||||
@@ -156,8 +171,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
return warnedSkillSelected;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetHiddenChanged(WidgetHiddenChanged event)
|
||||
private void onWidgetHiddenChanged(WidgetHiddenChanged event)
|
||||
{
|
||||
if (event.getWidget().isSelfHidden() || TO_GROUP(event.getWidget().getId()) != COMBAT_GROUP_ID)
|
||||
{
|
||||
@@ -167,8 +181,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
processWidgets();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
private void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() != COMBAT_GROUP_ID)
|
||||
{
|
||||
@@ -195,8 +208,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
hideWidget(client.getWidget(WidgetInfo.COMBAT_AUTO_RETALIATE), this.hideAutoRetaliate);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOGGED_IN)
|
||||
{
|
||||
@@ -208,8 +220,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
if (attackStyleVarbit == -1 || attackStyleVarbit != client.getVar(VarPlayer.ATTACK_STYLE))
|
||||
{
|
||||
@@ -236,8 +247,7 @@ public class AttackStylesPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("attackIndicator"))
|
||||
{
|
||||
|
||||
@@ -39,7 +39,7 @@ import net.runelite.api.events.MenuShouldLeftClick;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.banktags.tabs.BankSearch;
|
||||
@@ -72,6 +72,9 @@ public class BankPlugin extends Plugin
|
||||
@Inject
|
||||
private BankSearch bankSearch;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean forceRightClickFlag;
|
||||
|
||||
@Provides
|
||||
@@ -93,17 +96,26 @@ public class BankPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
clientThread.invokeLater(() -> bankSearch.reset(false));
|
||||
forceRightClickFlag = false;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuShouldLeftClick(MenuShouldLeftClick event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(MenuShouldLeftClick.class, this, this::onMenuShouldLeftClick);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
}
|
||||
|
||||
private void onMenuShouldLeftClick(MenuShouldLeftClick event)
|
||||
{
|
||||
if (!forceRightClickFlag)
|
||||
{
|
||||
@@ -124,8 +136,7 @@ public class BankPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if ((event.getOption().equals(DEPOSIT_WORN) && this.rightClickBankEquip)
|
||||
|| (event.getOption().equals(DEPOSIT_INVENTORY) && this.rightClickBankInventory)
|
||||
@@ -135,8 +146,7 @@ public class BankPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
if (!event.getEventName().equals("setBankTitle"))
|
||||
{
|
||||
@@ -192,8 +202,7 @@ public class BankPlugin extends Plugin
|
||||
stringStack[stringStackSize - 1] += strCurrentTab;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!event.getGroup().equals("bank"))
|
||||
{
|
||||
|
||||
@@ -60,7 +60,7 @@ import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
||||
@@ -132,6 +132,9 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
@Inject
|
||||
private SpriteManager spriteManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean shiftPressed = false;
|
||||
private int nextRowIndex = 0;
|
||||
|
||||
@@ -144,6 +147,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
@Override
|
||||
public void startUp()
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
keyManager.registerKeyListener(this);
|
||||
mouseManager.registerMouseWheelListener(this);
|
||||
clientThread.invokeLater(tabInterface::init);
|
||||
@@ -153,6 +158,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
keyManager.unregisterKeyListener(this);
|
||||
mouseManager.unregisterMouseWheelListener(this);
|
||||
clientThread.invokeLater(tabInterface::destroy);
|
||||
@@ -161,6 +168,18 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
shiftPressed = false;
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(DraggingWidgetChanged.class, this, this::onDraggingWidgetChanged);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged);
|
||||
}
|
||||
|
||||
private boolean isSearching()
|
||||
{
|
||||
return client.getVar(VarClientInt.INPUT_TYPE) == InputType.SEARCH.getType()
|
||||
@@ -168,8 +187,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
&& client.getVar(VarClientStr.INPUT_TEXT) != null && client.getVar(VarClientStr.INPUT_TEXT).length() > 0);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
String eventName = event.getEventName();
|
||||
|
||||
@@ -284,8 +302,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
MenuEntry[] entries = client.getMenuEntries();
|
||||
|
||||
@@ -318,8 +335,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
tabInterface.handleAdd(event);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(MenuOptionClicked event)
|
||||
private void onMenuOptionClicked(MenuOptionClicked event)
|
||||
{
|
||||
if (event.getActionParam1() == WidgetInfo.BANK_ITEM_CONTAINER.getId()
|
||||
&& event.getMenuAction() == MenuAction.RUNELITE
|
||||
@@ -393,8 +409,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("banktags") && configChanged.getKey().equals("useTabs"))
|
||||
{
|
||||
@@ -409,20 +424,17 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
tabInterface.update();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDraggingWidgetChanged(DraggingWidgetChanged event)
|
||||
private void onDraggingWidgetChanged(DraggingWidgetChanged event)
|
||||
{
|
||||
tabInterface.handleDrag(event.isDraggingWidget(), shiftPressed);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
private void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() == WidgetID.BANK_GROUP_ID)
|
||||
{
|
||||
@@ -430,8 +442,7 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onFocusChanged(FocusChanged event)
|
||||
private void onFocusChanged(FocusChanged event)
|
||||
{
|
||||
if (!event.isFocused())
|
||||
{
|
||||
|
||||
@@ -565,7 +565,15 @@ public class TabInterface
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getActionParam1() == WidgetInfo.BANK_ITEM_CONTAINER.getId()
|
||||
if (chatboxPanelManager.getCurrentInput() != null
|
||||
&& event.getMenuAction() != MenuAction.CANCEL
|
||||
&& !event.getMenuEntry().equals(SCROLL_UP)
|
||||
&& !event.getMenuEntry().equals(SCROLL_DOWN))
|
||||
{
|
||||
chatboxPanelManager.close();
|
||||
}
|
||||
|
||||
if (event.getIdentifier() == WidgetInfo.BANK_ITEM_CONTAINER.getId()
|
||||
&& event.getMenuAction() == MenuAction.EXAMINE_ITEM_BANK_EQ
|
||||
&& event.getOption().equalsIgnoreCase("withdraw-x"))
|
||||
{
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -91,6 +91,8 @@ public class BanListPlugin extends Plugin
|
||||
private BanListConfig config;
|
||||
@Inject
|
||||
private ChatMessageManager chatMessageManager;
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
private String tobNames = "";
|
||||
private boolean enableWDRScam;
|
||||
private boolean enableWDRToxic;
|
||||
@@ -108,6 +110,7 @@ public class BanListPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
List<String> bannedPlayers = Splitter
|
||||
.on(",")
|
||||
.trimResults()
|
||||
@@ -120,14 +123,24 @@ public class BanListPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
|
||||
eventBus.unregister(this);
|
||||
wdrScamSet.clear();
|
||||
wdrToxicSet.clear();
|
||||
runeWatchSet.clear();
|
||||
manualBans.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(WidgetHiddenChanged.class, this, this::onWidgetHiddenChanged);
|
||||
eventBus.subscribe(ClanMemberJoined.class, this, this::onClanMemberJoined);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("banlist") && event.getKey().equals("bannedPlayers"))
|
||||
{
|
||||
@@ -159,8 +172,7 @@ public class BanListPlugin extends Plugin
|
||||
/**
|
||||
* Event to keep making sure player names are highlighted red in clan chat, since the red name goes away frequently
|
||||
*/
|
||||
@Subscribe
|
||||
public void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged)
|
||||
private void onWidgetHiddenChanged(WidgetHiddenChanged widgetHiddenChanged)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN
|
||||
|| client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null
|
||||
@@ -180,9 +192,7 @@ public class BanListPlugin extends Plugin
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onClanMemberJoined(ClanMemberJoined event)
|
||||
private void onClanMemberJoined(ClanMemberJoined event)
|
||||
{
|
||||
ClanMember member = event.getMember();
|
||||
String memberUsername = Text.standardize(member.getUsername().toLowerCase());
|
||||
@@ -212,8 +222,7 @@ public class BanListPlugin extends Plugin
|
||||
/**
|
||||
* If a trade window is opened and the person trading us is on the list, modify "trading with"
|
||||
*/
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded widgetLoaded)
|
||||
private void onWidgetLoaded(WidgetLoaded widgetLoaded)
|
||||
{
|
||||
if (this.highlightInTrade && widgetLoaded.getGroupId() == TRADING_SCREEN)
|
||||
{ //if trading window was loaded
|
||||
@@ -233,9 +242,7 @@ public class BanListPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
|
||||
if (client.getWidget(WidgetInfo.THEATRE_OF_BLOOD_RAIDING_PARTY) == null)
|
||||
|
||||
@@ -82,7 +82,7 @@ import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
@@ -155,6 +155,9 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
@Inject
|
||||
private KeyManager keyManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter
|
||||
private boolean inGame = false;
|
||||
|
||||
@@ -306,6 +309,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
font = FontManager.getRunescapeFont().deriveFont(Font.BOLD, 24);
|
||||
torsoImage = itemManager.getImage(ItemID.FIGHTER_TORSO);
|
||||
@@ -323,6 +327,8 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(widgetsOverlay);
|
||||
overlayManager.remove(sceneOverlay);
|
||||
keyManager.unregisterKeyListener(this);
|
||||
@@ -343,6 +349,24 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
menu.clearHiddenMenus();
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(ItemSpawned.class, this, this::onItemSpawned);
|
||||
eventBus.subscribe(ItemDespawned.class, this, this::onItemDespawned);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(BeforeRender.class, this, this::onBeforeRender);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked);
|
||||
eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged);
|
||||
eventBus.subscribe(ProjectileSpawned.class, this, this::onProjectileSpawned);
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e)
|
||||
{
|
||||
@@ -376,8 +400,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
//not client thread be careful
|
||||
if (!configChanged.getGroup().equals("barbarianAssault"))
|
||||
@@ -487,8 +510,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
this.showEggCountOverlay = config.showEggCountOverlay();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
private void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
switch (event.getGroupId())
|
||||
{
|
||||
@@ -558,8 +580,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (!chatMessage.getType().equals(ChatMessageType.GAMEMESSAGE))
|
||||
{
|
||||
@@ -578,6 +599,11 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
else if (isInGame())
|
||||
{
|
||||
if (scorecard != null)
|
||||
{
|
||||
scorecard.onChatMessage(chatMessage);
|
||||
}
|
||||
|
||||
if (message.contains("exploded") && wave != null)
|
||||
{
|
||||
wave.setWrongEggs(wave.getWrongEggs() + 1);
|
||||
@@ -637,8 +663,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemSpawned(ItemSpawned itemSpawned)
|
||||
private void onItemSpawned(ItemSpawned itemSpawned)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -657,8 +682,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemDespawned(ItemDespawned itemDespawned)
|
||||
private void onItemDespawned(ItemDespawned itemDespawned)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -708,8 +732,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
// Keep in mind isInGame is delayed by a tick when a wave ends
|
||||
if (!isInGame() || getRole() == null)
|
||||
@@ -740,8 +763,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(NpcSpawned event)
|
||||
private void onNpcSpawned(NpcSpawned event)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -763,8 +785,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned event)
|
||||
private void onNpcDespawned(NpcDespawned event)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -779,8 +800,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
// This was almost certainly a waste of time to get working, because almost nobody
|
||||
// actually uses the horn of glory. At least now there shouldn't be anyone complaining
|
||||
// about the horn of glory breaking anything and everything that should never break.
|
||||
@Subscribe
|
||||
public void onBeforeRender(BeforeRender event)
|
||||
private void onBeforeRender(BeforeRender event)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -953,8 +973,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
// onMenuEntryAdded is being used for conditional entry changes that are not
|
||||
// easily achievable using MenuManager, all other changes use MenuManager in
|
||||
// the BarbarianAssaultMenu/Menus classes
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -1144,8 +1163,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
client.setMenuEntries(menu.toArray(new MenuEntry[0]));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(MenuOptionClicked event)
|
||||
private void onMenuOptionClicked(MenuOptionClicked event)
|
||||
{
|
||||
if (!isInGame() && getRole() != null)
|
||||
{
|
||||
@@ -1177,8 +1195,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
|
||||
// Interacting changed has a slight delay until after the hitsplat is applied
|
||||
@Subscribe
|
||||
public void onInteractingChanged(InteractingChanged event)
|
||||
private void onInteractingChanged(InteractingChanged event)
|
||||
{
|
||||
if (!isInGame() || getRole() != Role.HEALER)
|
||||
{
|
||||
@@ -1213,8 +1230,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileSpawned(ProjectileSpawned event)
|
||||
private void onProjectileSpawned(ProjectileSpawned event)
|
||||
{
|
||||
if (!isInGame())
|
||||
{
|
||||
@@ -1234,8 +1250,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
private void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
int newInGameBit = client.getVar(Varbits.IN_GAME_BA);
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -65,7 +64,6 @@ public class Scorecard
|
||||
this.game = game;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (chatMessage.getMessage().startsWith("---- Points:") && game.getStage() == 1)
|
||||
|
||||
@@ -63,7 +63,7 @@ import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -141,6 +141,9 @@ public class BarrowsPlugin extends Plugin
|
||||
@Inject
|
||||
private BarrowsConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
BarrowsConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -164,6 +167,8 @@ public class BarrowsPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(barrowsOverlay);
|
||||
overlayManager.add(brotherOverlay);
|
||||
}
|
||||
@@ -171,6 +176,8 @@ public class BarrowsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(barrowsOverlay);
|
||||
overlayManager.remove(brotherOverlay);
|
||||
walls.clear();
|
||||
@@ -193,8 +200,20 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(WallObjectSpawned.class, this, this::onWallObjectSpawned);
|
||||
eventBus.subscribe(WallObjectChanged.class, this, this::onWallObjectChanged);
|
||||
eventBus.subscribe(WallObjectDespawned.class, this, this::onWallObjectDespawned);
|
||||
eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventBus.subscribe(GameObjectChanged.class, this, this::onGameObjectChanged);
|
||||
eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("barrows"))
|
||||
{
|
||||
@@ -218,8 +237,7 @@ public class BarrowsPlugin extends Plugin
|
||||
this.showPrayerDrainTimer = config.showPrayerDrainTimer();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectSpawned(WallObjectSpawned event)
|
||||
private void onWallObjectSpawned(WallObjectSpawned event)
|
||||
{
|
||||
WallObject wallObject = event.getWallObject();
|
||||
if (BARROWS_WALLS.contains(wallObject.getId()))
|
||||
@@ -228,8 +246,7 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectChanged(WallObjectChanged event)
|
||||
private void onWallObjectChanged(WallObjectChanged event)
|
||||
{
|
||||
WallObject previous = event.getPrevious();
|
||||
WallObject wallObject = event.getWallObject();
|
||||
@@ -241,15 +258,13 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWallObjectDespawned(WallObjectDespawned event)
|
||||
private void onWallObjectDespawned(WallObjectDespawned event)
|
||||
{
|
||||
WallObject wallObject = event.getWallObject();
|
||||
walls.remove(wallObject);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
if (BARROWS_LADDERS.contains(gameObject.getId()))
|
||||
@@ -258,8 +273,7 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectChanged(GameObjectChanged event)
|
||||
private void onGameObjectChanged(GameObjectChanged event)
|
||||
{
|
||||
GameObject previous = event.getPrevious();
|
||||
GameObject gameObject = event.getGameObject();
|
||||
@@ -271,15 +285,13 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||
private void onGameObjectDespawned(GameObjectDespawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
ladders.remove(gameObject);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOADING)
|
||||
{
|
||||
@@ -303,8 +315,7 @@ public class BarrowsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
private void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() == WidgetID.BARROWS_REWARD_GROUP_ID && this.showChestValue)
|
||||
{
|
||||
@@ -359,10 +370,12 @@ public class BarrowsPlugin extends Plugin
|
||||
final LoopTimer loopTimer = new LoopTimer(
|
||||
PRAYER_DRAIN_INTERVAL_MS,
|
||||
ChronoUnit.MILLIS,
|
||||
spriteManager.getSprite(SpriteID.TAB_PRAYER, 0),
|
||||
null,
|
||||
this,
|
||||
true);
|
||||
|
||||
spriteManager.getSpriteAsync(SpriteID.TAB_PRAYER, 0, loopTimer);
|
||||
|
||||
loopTimer.setPriority(InfoBoxPriority.MED);
|
||||
loopTimer.setTooltip("Prayer Drain");
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -68,6 +68,8 @@ public class BlackjackPlugin extends Plugin
|
||||
private Client client;
|
||||
@Inject
|
||||
private BlackjackConfig config;
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean pickpocketOnAggro;
|
||||
|
||||
@@ -80,11 +82,25 @@ public class BlackjackPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
this.pickpocketOnAggro = config.pickpocketOnAggro();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("blackjack"))
|
||||
{
|
||||
@@ -92,8 +108,7 @@ public class BlackjackPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN ||
|
||||
client.getVar(Varbits.QUEST_THE_FEUD) < 13 ||
|
||||
@@ -114,8 +129,7 @@ public class BlackjackPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
private void onChatMessage(ChatMessage event)
|
||||
{
|
||||
if (event.getType() == ChatMessageType.SPAM && event.getMessage().equals(SUCCESS_BLACKJACK) ^ (event.getMessage().equals(FAILED_BLACKJACK) && this.pickpocketOnAggro))
|
||||
{
|
||||
|
||||
@@ -46,7 +46,7 @@ import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -97,6 +97,9 @@ public class BlastFurnacePlugin extends Plugin
|
||||
@Inject
|
||||
private BlastFurnaceConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean showConveyorBelt;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -106,6 +109,7 @@ public class BlastFurnacePlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(overlay);
|
||||
overlayManager.add(cofferOverlay);
|
||||
@@ -115,6 +119,8 @@ public class BlastFurnacePlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
infoBoxManager.removeIf(ForemanTimer.class::isInstance);
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(cofferOverlay);
|
||||
@@ -124,14 +130,22 @@ public class BlastFurnacePlugin extends Plugin
|
||||
foremanTimer = null;
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventBus.subscribe(GameObjectDespawned.class, this, this::onGameObjectDespawned);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
@Provides
|
||||
BlastFurnaceConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(BlastFurnaceConfig.class);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("blastfurnace"))
|
||||
{
|
||||
@@ -139,8 +153,7 @@ public class BlastFurnacePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
|
||||
@@ -156,8 +169,7 @@ public class BlastFurnacePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectDespawned(GameObjectDespawned event)
|
||||
private void onGameObjectDespawned(GameObjectDespawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
|
||||
@@ -173,8 +185,7 @@ public class BlastFurnacePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOADING)
|
||||
{
|
||||
@@ -183,8 +194,7 @@ public class BlastFurnacePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
Widget npcDialog = client.getWidget(WidgetInfo.DIALOG_NPC_TEXT);
|
||||
if (npcDialog == null)
|
||||
|
||||
@@ -42,7 +42,7 @@ import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@@ -73,6 +73,9 @@ public class BlastMinePlugin extends Plugin
|
||||
@Inject
|
||||
private BlastMinePluginConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
BlastMinePluginConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -96,6 +99,7 @@ public class BlastMinePlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(blastMineRockOverlay);
|
||||
overlayManager.add(blastMineOreCountOverlay);
|
||||
@@ -104,6 +108,8 @@ public class BlastMinePlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(blastMineRockOverlay);
|
||||
overlayManager.remove(blastMineOreCountOverlay);
|
||||
final Widget blastMineWidget = client.getWidget(WidgetInfo.BLAST_MINE);
|
||||
@@ -114,8 +120,14 @@ public class BlastMinePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
final GameObject gameObject = event.getGameObject();
|
||||
BlastMineRockType blastMineRockType = BlastMineRockType.getRockType(gameObject.getId());
|
||||
@@ -133,8 +145,7 @@ public class BlastMinePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOADING)
|
||||
{
|
||||
@@ -142,8 +153,7 @@ public class BlastMinePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
private void onGameTick(GameTick gameTick)
|
||||
{
|
||||
if (rocks.isEmpty())
|
||||
{
|
||||
|
||||
@@ -45,7 +45,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.SkillIconManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -98,6 +98,8 @@ public class BoostsPlugin extends Plugin
|
||||
private SkillIconManager skillIconManager;
|
||||
@Inject
|
||||
private CombatIconsOverlay combatIconsOverlay;
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean isChangedDown = false;
|
||||
private boolean isChangedUp = false;
|
||||
@@ -133,6 +135,7 @@ public class BoostsPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(boostsOverlay);
|
||||
overlayManager.add(combatIconsOverlay);
|
||||
@@ -156,6 +159,7 @@ public class BoostsPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
overlayManager.remove(boostsOverlay);
|
||||
overlayManager.remove(combatIconsOverlay);
|
||||
infoBoxManager.removeIf(t -> t instanceof BoostIndicator || t instanceof StatChangeIndicator);
|
||||
@@ -166,8 +170,15 @@ public class BoostsPlugin extends Plugin
|
||||
isChangedDown = false;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(BoostedLevelChanged.class, this, this::onBoostedLevelChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
switch (event.getGameState())
|
||||
{
|
||||
@@ -179,8 +190,7 @@ public class BoostsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!event.getGroup().equals("boosts"))
|
||||
{
|
||||
@@ -201,8 +211,7 @@ public class BoostsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
|
||||
private void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
|
||||
{
|
||||
Skill skill = boostedLevelChanged.getSkill();
|
||||
|
||||
@@ -251,8 +260,7 @@ public class BoostsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
lastTickMillis = System.currentTimeMillis();
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.runelite.api.NPC;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -51,14 +51,23 @@ public class BossTimersPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
infoBoxManager.removeIf(t -> t instanceof RespawnTimer);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
private void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
{
|
||||
NPC npc = npcDespawned.getNpc();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -123,6 +123,9 @@ public class CannonPlugin extends Plugin
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Inject
|
||||
private EventBus eventbus;
|
||||
|
||||
private boolean lock;
|
||||
|
||||
private boolean showEmptyCannonNotification;
|
||||
@@ -146,6 +149,7 @@ public class CannonPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(cannonOverlay);
|
||||
overlayManager.add(cannonSpotOverlay);
|
||||
@@ -155,6 +159,8 @@ public class CannonPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventbus.unregister(this);
|
||||
|
||||
cannonSpotOverlay.setHidden(true);
|
||||
overlayManager.remove(cannonOverlay);
|
||||
overlayManager.remove(cannonSpotOverlay);
|
||||
@@ -167,8 +173,17 @@ public class CannonPlugin extends Plugin
|
||||
spotPoints.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemContainerChanged(ItemContainerChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventbus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventbus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged);
|
||||
eventbus.subscribe(GameObjectSpawned.class, this, this::onGameObjectSpawned);
|
||||
eventbus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved);
|
||||
eventbus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventbus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onItemContainerChanged(ItemContainerChanged event)
|
||||
{
|
||||
if (event.getItemContainer() != client.getItemContainer(InventoryID.INVENTORY))
|
||||
{
|
||||
@@ -178,8 +193,7 @@ public class CannonPlugin extends Plugin
|
||||
cannonSpotOverlay.setHidden(!ItemUtil.containsAllItemIds(event.getItemContainer().getItems(), CANNON_PARTS));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("cannon"))
|
||||
{
|
||||
@@ -223,8 +237,7 @@ public class CannonPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameObjectSpawned(GameObjectSpawned event)
|
||||
private void onGameObjectSpawned(GameObjectSpawned event)
|
||||
{
|
||||
GameObject gameObject = event.getGameObject();
|
||||
|
||||
@@ -238,8 +251,7 @@ public class CannonPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileMoved(ProjectileMoved event)
|
||||
private void onProjectileMoved(ProjectileMoved event)
|
||||
{
|
||||
Projectile projectile = event.getProjectile();
|
||||
|
||||
@@ -261,8 +273,7 @@ public class CannonPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
private void onChatMessage(ChatMessage event)
|
||||
{
|
||||
if (event.getType() != ChatMessageType.SPAM && event.getType() != ChatMessageType.GAMEMESSAGE)
|
||||
{
|
||||
@@ -345,8 +356,7 @@ public class CannonPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
skipProjectileCheckThisTick = false;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.NpcDespawned;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@@ -59,21 +59,34 @@ public class CerberusPlugin extends Plugin
|
||||
@Inject
|
||||
private CerberusOverlay overlay;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
addSubscriptions();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(overlay);
|
||||
ghosts.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
GameState gameState = event.getGameState();
|
||||
if (gameState == GameState.LOGIN_SCREEN || gameState == GameState.HOPPING || gameState == GameState.CONNECTION_LOST)
|
||||
@@ -82,21 +95,18 @@ public class CerberusPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(final NpcSpawned event)
|
||||
private void onNpcSpawned(final NpcSpawned event)
|
||||
{
|
||||
final NPC npc = event.getNpc();
|
||||
CerberusGhost.fromNPC(npc).ifPresent(ghost -> ghosts.add(npc));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(final NpcDespawned event)
|
||||
private void onNpcDespawned(final NpcDespawned event)
|
||||
{
|
||||
ghosts.remove(event.getNpc());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
void onGameTick(GameTick gameTick)
|
||||
{
|
||||
if (ghosts.isEmpty())
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetPositionMode;
|
||||
import net.runelite.api.widgets.WidgetSizeMode;
|
||||
import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
|
||||
@@ -47,8 +47,22 @@ public class ChatboxPerformancePlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetPositioned(WidgetPositioned event)
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(WidgetPositioned.class, this, this::onWidgetPositioned);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
}
|
||||
|
||||
private void onWidgetPositioned(WidgetPositioned event)
|
||||
{
|
||||
if (!areWidgetsFixed())
|
||||
{
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.client.chat.ChatCommandManager;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.ChatInput;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
@@ -140,9 +140,14 @@ public class ChatCommandsPlugin extends Plugin
|
||||
@Inject
|
||||
private ChatKeyboardListener chatKeyboardListener;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Override
|
||||
public void startUp()
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
keyManager.registerKeyListener(chatKeyboardListener);
|
||||
|
||||
chatCommandManager.registerCommandAsync(TOTAL_LEVEL_COMMAND_STRING, this::playerSkillLookup);
|
||||
@@ -160,6 +165,8 @@ public class ChatCommandsPlugin extends Plugin
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
lastBossKill = null;
|
||||
|
||||
keyManager.unregisterKeyListener(chatKeyboardListener);
|
||||
@@ -176,6 +183,14 @@ public class ChatCommandsPlugin extends Plugin
|
||||
chatCommandManager.unregisterCommand(DUEL_ARENA_COMMAND);
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
}
|
||||
|
||||
@Provides
|
||||
ChatCommandsConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -208,8 +223,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
return personalBest == null ? 0 : personalBest;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (chatMessage.getType() != ChatMessageType.TRADE
|
||||
&& chatMessage.getType() != ChatMessageType.GAMEMESSAGE
|
||||
@@ -324,8 +338,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
if (!logKills)
|
||||
{
|
||||
@@ -361,8 +374,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded widget)
|
||||
private void onWidgetLoaded(WidgetLoaded widget)
|
||||
{
|
||||
// don't load kc if in an instance, if the player is in another players poh
|
||||
// and reading their boss log
|
||||
@@ -374,8 +386,7 @@ public class ChatCommandsPlugin extends Plugin
|
||||
logKills = true;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged varbitChanged)
|
||||
private void onVarbitChanged(VarbitChanged varbitChanged)
|
||||
{
|
||||
hiscoreEndpoint = getLocalHiscoreEndpointType();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.OverheadTextChanged;
|
||||
import net.runelite.api.events.ScriptCallbackEvent;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.util.Text;
|
||||
@@ -75,6 +75,9 @@ public class ChatFilterPlugin extends Plugin
|
||||
@Inject
|
||||
private ChatFilterConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private ChatFilterType filterType;
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
@@ -96,6 +99,8 @@ public class ChatFilterPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
updateFilteredPatterns();
|
||||
client.refreshChat();
|
||||
}
|
||||
@@ -103,12 +108,20 @@ public class ChatFilterPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
filteredPatterns.clear();
|
||||
client.refreshChat();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
eventBus.subscribe(OverheadTextChanged.class, this, this::onOverheadTextChanged);
|
||||
}
|
||||
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
if (!"chatFilterCheck".equals(event.getEventName()))
|
||||
{
|
||||
@@ -171,10 +184,9 @@ public class ChatFilterPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onOverheadTextChanged(OverheadTextChanged event)
|
||||
private void onOverheadTextChanged(OverheadTextChanged event)
|
||||
{
|
||||
if (!(event.getActor() instanceof Player) || !shouldFilterPlayerMessage(event.getActor().getName()))
|
||||
if (!(event.getActor() instanceof Player) || event.getActor().getName() == null || !shouldFilterPlayerMessage(event.getActor().getName()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -254,8 +266,7 @@ public class ChatFilterPlugin extends Plugin
|
||||
.forEach(filteredPatterns::add);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!"chatfilter".equals(event.getGroup()))
|
||||
{
|
||||
|
||||
@@ -46,7 +46,7 @@ import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -85,6 +85,9 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
@Inject
|
||||
private ChatMessageManager chatMessageManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean retainChatHistory;
|
||||
private boolean pmTargetCycling;
|
||||
|
||||
@@ -98,6 +101,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
protected void startUp()
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
messageQueue = EvictingQueue.create(100);
|
||||
friends = new ArrayDeque<>(FRIENDS_MAX_SIZE + 1);
|
||||
@@ -107,6 +111,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
messageQueue.clear();
|
||||
messageQueue = null;
|
||||
friends.clear();
|
||||
@@ -114,8 +120,14 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
keyManager.unregisterKeyListener(this);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked);
|
||||
}
|
||||
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
// Start sending old messages right after the welcome message, as that is most reliable source
|
||||
// of information that chat history was reset
|
||||
@@ -159,8 +171,8 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
.type(chatMessage.getType())
|
||||
.name(chatMessage.getName())
|
||||
.sender(chatMessage.getSender())
|
||||
.value(nbsp(chatMessage.getMessage()))
|
||||
.runeLiteFormattedMessage(nbsp(chatMessage.getMessageNode().getRuneLiteFormatMessage()))
|
||||
.value(tweakSpaces(chatMessage.getMessage()))
|
||||
.runeLiteFormattedMessage(tweakSpaces(chatMessage.getMessageNode().getRuneLiteFormatMessage()))
|
||||
.timestamp(chatMessage.getTimestamp())
|
||||
.build();
|
||||
|
||||
@@ -171,8 +183,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(MenuOptionClicked event)
|
||||
private void onMenuOptionClicked(MenuOptionClicked event)
|
||||
{
|
||||
String menuOption = event.getOption();
|
||||
|
||||
@@ -192,16 +203,18 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
|
||||
/**
|
||||
* Small hack to prevent plugins checking for specific messages to match
|
||||
* Small hack to prevent plugins checking for specific messages to match. This works because the "—" character
|
||||
* cannot be seen in-game. This replacement preserves wrapping on chat history messages.
|
||||
*
|
||||
* @param message message
|
||||
* @return message with nbsp
|
||||
* @return message with invisible character before every space
|
||||
*/
|
||||
private static String nbsp(final String message)
|
||||
private static String tweakSpaces(final String message)
|
||||
{
|
||||
if (message != null)
|
||||
{
|
||||
return message.replace(' ', '\u00A0');
|
||||
// First replacement cleans up prior applications of this so as not to keep extending the message
|
||||
return message.replace("— ", " ").replace(" ", "— ");
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -267,8 +280,7 @@ public class ChatHistoryPlugin extends Plugin implements KeyListener
|
||||
return friends.getLast();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!"chathistory".equals(event.getGroup()))
|
||||
{
|
||||
|
||||
@@ -47,7 +47,7 @@ import net.runelite.client.RuneLiteProperties;
|
||||
import net.runelite.client.chat.ChatColorType;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.util.Text;
|
||||
@@ -76,6 +76,9 @@ public class ChatNotificationsPlugin extends Plugin
|
||||
@Inject
|
||||
private RuneLiteProperties runeLiteProperties;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
//Custom Highlights
|
||||
private Pattern usernameMatcher = null;
|
||||
private String usernameReplacer = "";
|
||||
@@ -102,17 +105,27 @@ public class ChatNotificationsPlugin extends Plugin
|
||||
public void startUp()
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
updateHighlights();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
this.privateMessageHashes.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
switch (event.getGameState())
|
||||
{
|
||||
@@ -123,8 +136,7 @@ public class ChatNotificationsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("chatnotification"))
|
||||
{
|
||||
@@ -150,8 +162,7 @@ public class ChatNotificationsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
MessageNode messageNode = chatMessage.getMessageNode();
|
||||
boolean update = false;
|
||||
|
||||
@@ -26,7 +26,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.input.KeyListener;
|
||||
import net.runelite.client.input.KeyManager;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
@@ -74,6 +74,9 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
@Inject
|
||||
private ChatTranslationConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean translateOptionVisable;
|
||||
private boolean publicChat;
|
||||
private String getPlayerNames;
|
||||
@@ -91,6 +94,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
if (client != null && this.translateOptionVisable)
|
||||
{
|
||||
@@ -104,6 +108,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
if (client != null && this.translateOptionVisable)
|
||||
{
|
||||
menuManager.get().removePlayerMenuItem(TRANSLATE);
|
||||
@@ -113,8 +118,15 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
playerNames.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(PlayerMenuOptionClicked.class, this, this::onPlayerMenuOptionClicked);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("chattranslation"))
|
||||
{
|
||||
@@ -132,8 +144,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (!this.translateOptionVisable)
|
||||
{
|
||||
@@ -165,8 +176,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event)
|
||||
private void onPlayerMenuOptionClicked(PlayerMenuOptionClicked event)
|
||||
{
|
||||
if (event.getMenuOption().equals(TRANSLATE))
|
||||
{
|
||||
@@ -181,8 +191,7 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
|
||||
@@ -70,7 +70,7 @@ import net.runelite.api.widgets.WidgetType;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ClanManager;
|
||||
import net.runelite.client.game.SpriteManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -114,6 +114,9 @@ public class ClanChatPlugin extends Plugin
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private List<String> chats = new ArrayList<>();
|
||||
|
||||
public static CopyOnWriteArrayList<Player> getClanMembers()
|
||||
@@ -151,19 +154,37 @@ public class ClanChatPlugin extends Plugin
|
||||
public void startUp()
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
chats = new ArrayList<>(Text.fromCSV(this.chatsData));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
clanMembers.clear();
|
||||
removeClanCounter();
|
||||
resetClanChats();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ClanMemberJoined.class, this, this::onClanMemberJoined);
|
||||
eventBus.subscribe(ClanMemberLeft.class, this, this::onClanMemberLeft);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned);
|
||||
eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned);
|
||||
eventBus.subscribe(ClanChanged.class, this, this::onClanChanged);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("clanchat"))
|
||||
{
|
||||
@@ -185,8 +206,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClanMemberJoined(ClanMemberJoined event)
|
||||
private void onClanMemberJoined(ClanMemberJoined event)
|
||||
{
|
||||
final ClanMember member = event.getMember();
|
||||
|
||||
@@ -231,8 +251,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClanMemberLeft(ClanMemberLeft event)
|
||||
private void onClanMemberLeft(ClanMemberLeft event)
|
||||
{
|
||||
final ClanMember member = event.getMember();
|
||||
|
||||
@@ -275,8 +294,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
private void onGameTick(GameTick gameTick)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
@@ -414,8 +432,7 @@ public class ClanChatPlugin extends Plugin
|
||||
clanJoinMessages.addLast(clanJoinMessage);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarClientStrChanged(VarClientStrChanged strChanged)
|
||||
private void onVarClientStrChanged(VarClientStrChanged strChanged)
|
||||
{
|
||||
if (strChanged.getIndex() == VarClientStr.RECENT_CLAN_CHAT.getIndex() && this.recentChats)
|
||||
{
|
||||
@@ -423,8 +440,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOADING && client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
@@ -465,8 +481,7 @@ public class ClanChatPlugin extends Plugin
|
||||
insertClanRankIcon(chatMessage);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged state)
|
||||
private void onGameStateChanged(GameStateChanged state)
|
||||
{
|
||||
GameState gameState = state.getGameState();
|
||||
|
||||
@@ -479,8 +494,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerSpawned(PlayerSpawned event)
|
||||
private void onPlayerSpawned(PlayerSpawned event)
|
||||
{
|
||||
final Player local = client.getLocalPlayer();
|
||||
final Player player = event.getPlayer();
|
||||
@@ -492,8 +506,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerDespawned(PlayerDespawned event)
|
||||
private void onPlayerDespawned(PlayerDespawned event)
|
||||
{
|
||||
if (clanMembers.remove(event.getPlayer()) && clanMembers.isEmpty())
|
||||
{
|
||||
@@ -501,8 +514,7 @@ public class ClanChatPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onClanChanged(ClanChanged event)
|
||||
private void onClanChanged(ClanChanged event)
|
||||
{
|
||||
if (event.isJoined())
|
||||
{
|
||||
@@ -517,8 +529,7 @@ public class ClanChatPlugin extends Plugin
|
||||
activityBuffer.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent scriptCallbackEvent)
|
||||
{
|
||||
if (!scriptCallbackEvent.getEventName().equalsIgnoreCase("clanchatInput"))
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -52,6 +52,9 @@ public class ClanManModePlugin extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean highlightAttackable;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -100,6 +103,7 @@ public class ClanManModePlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(ClanManModeOverlay);
|
||||
overlayManager.add(ClanManModeTileOverlay);
|
||||
@@ -109,6 +113,8 @@ public class ClanManModePlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(ClanManModeOverlay);
|
||||
overlayManager.remove(ClanManModeTileOverlay);
|
||||
overlayManager.remove(ClanManModeMinimapOverlay);
|
||||
@@ -120,7 +126,13 @@ public class ClanManModePlugin extends Plugin
|
||||
inwildy = 0;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!"clanmanmode".equals(event.getGroup()))
|
||||
@@ -131,8 +143,7 @@ public class ClanManModePlugin extends Plugin
|
||||
updateConfig();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
private void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.HOPPING)
|
||||
{
|
||||
@@ -140,8 +151,7 @@ public class ClanManModePlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
ticks++;
|
||||
final Player localPlayer = client.getLocalPlayer();
|
||||
|
||||
@@ -72,7 +72,7 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -158,6 +158,9 @@ public class ClueScrollPlugin extends Plugin
|
||||
@Inject
|
||||
private WorldMapPointManager worldMapPointManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private BufferedImage emoteImage;
|
||||
private BufferedImage mapArrow;
|
||||
private Integer clueItemId;
|
||||
@@ -182,6 +185,8 @@ public class ClueScrollPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
this.displayHintArrows = config.displayHintArrows();
|
||||
overlayManager.add(clueScrollOverlay);
|
||||
overlayManager.add(clueScrollEmoteOverlay);
|
||||
@@ -192,6 +197,8 @@ public class ClueScrollPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(clueScrollOverlay);
|
||||
overlayManager.remove(clueScrollEmoteOverlay);
|
||||
overlayManager.remove(clueScrollWorldOverlay);
|
||||
@@ -202,8 +209,20 @@ public class ClueScrollPlugin extends Plugin
|
||||
resetClue(true);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(MenuOptionClicked.class, this, this::onMenuOptionClicked);
|
||||
eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
|
||||
}
|
||||
|
||||
private void onChatMessage(ChatMessage event)
|
||||
{
|
||||
if (event.getType() != ChatMessageType.GAMEMESSAGE && event.getType() != ChatMessageType.SPAM)
|
||||
{
|
||||
@@ -224,8 +243,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
resetClue(true);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(final MenuOptionClicked event)
|
||||
private void onMenuOptionClicked(final MenuOptionClicked event)
|
||||
{
|
||||
if ("read".equalsIgnoreCase(event.getOption()))
|
||||
{
|
||||
@@ -239,8 +257,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onItemContainerChanged(final ItemContainerChanged event)
|
||||
private void onItemContainerChanged(final ItemContainerChanged event)
|
||||
{
|
||||
if (event.getItemContainer() == client.getItemContainer(InventoryID.EQUIPMENT))
|
||||
{
|
||||
@@ -280,15 +297,13 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(final NpcSpawned event)
|
||||
private void onNpcSpawned(final NpcSpawned event)
|
||||
{
|
||||
final NPC npc = event.getNpc();
|
||||
checkClueNPCs(clue, npc);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(final NpcDespawned event)
|
||||
private void onNpcDespawned(final NpcDespawned event)
|
||||
{
|
||||
final boolean removed = npcsToMark.remove(event.getNpc());
|
||||
|
||||
@@ -306,8 +321,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("cluescroll"))
|
||||
{
|
||||
@@ -319,8 +333,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(final GameStateChanged event)
|
||||
private void onGameStateChanged(final GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOGIN_SCREEN)
|
||||
{
|
||||
@@ -328,8 +341,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(final GameTick event)
|
||||
private void onGameTick(final GameTick event)
|
||||
{
|
||||
objectsToMark.clear();
|
||||
|
||||
@@ -392,8 +404,7 @@ public class ClueScrollPlugin extends Plugin
|
||||
updateClue(findClueScroll());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
private void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() < WidgetID.BEGINNER_CLUE_MAP_CHAMPIONS_GUILD
|
||||
|| event.getGroupId() > WidgetID.BEGINNER_CLUE_MAP_WIZARDS_TOWER)
|
||||
|
||||
@@ -96,7 +96,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
.put(new WorldPoint(2542, 3031, 0), "Gu'Tanoth.")
|
||||
.put(new WorldPoint(2581, 3030, 0), "Gu'Tanoth island, enter cave north-west of Feldip Hills (AKS).")
|
||||
.put(new WorldPoint(2961, 3024, 0), "Ship yard (DKP).")
|
||||
.put(new WorldPoint(2339, 3311, 0), "East of Tirannwn on Arandar mountain pass.")
|
||||
.put(new WorldPoint(2339, 3311, 0), "East of Prifddinas on Arandar mountain pass.")
|
||||
.put(new WorldPoint(3440, 3341, 0), "Nature Spirit's grotto.")
|
||||
.put(new WorldPoint(2763, 2974, 0), "Cairn Isle, west of Shilo Village.")
|
||||
.put(new WorldPoint(3138, 2969, 0), "West of Bandit Camp.")
|
||||
|
||||
@@ -204,7 +204,7 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
||||
new CrypticClue("Search the drawers upstairs in Falador's shield shop.", DRAWERS, new WorldPoint(2971, 3386, 1), "Cassie's Shield Shop at the northern Falador entrance."),
|
||||
new CrypticClue("Go to this building to be illuminated, and check the drawers while you are there.", "Market Guard", DRAWERS_350 , new WorldPoint(2512, 3641, 1), "Search the drawers in the first floor of the Lighthouse. Kill a Rellekka marketplace guard to obtain the key."),
|
||||
new CrypticClue("Dig near some giant mushrooms, behind the Grand Tree.", new WorldPoint(2458, 3504, 0), "Dig near the red mushrooms northwest of the Grand Tree."),
|
||||
new CrypticClue("Pentagrams and demons, burnt bones and remains, I wonder what the blood contains.", new WorldPoint(3297, 3890, 0), "Dig under the blood rune spawn next the the Demonic Ruins."),
|
||||
new CrypticClue("Pentagrams and demons, burnt bones and remains, I wonder what the blood contains.", new WorldPoint(3297, 3890, 0), "Dig under the blood rune spawn next to the Demonic Ruins."),
|
||||
new CrypticClue("Search the drawers above Varrock's shops.", DRAWERS_7194, new WorldPoint(3206, 3419, 1), "Located upstairs in Thessalia's Fine Clothes shop in Varrock."),
|
||||
new CrypticClue("Search the drawers in one of Gertrude's bedrooms.", DRAWERS_7194, new WorldPoint(3156, 3406, 0), "Kanel's bedroom (southeastern room), outside of west Varrock."),
|
||||
new CrypticClue("Under a giant robotic bird that cannot fly.", new WorldPoint(1756, 4940, 0), "Dig next to the terrorbird display in the south exhibit of Varrock Museum's basement."),
|
||||
|
||||
@@ -62,14 +62,17 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
private static final int HOT_COLD_PANEL_WIDTH = 200;
|
||||
private static final HotColdClue BEGINNER_CLUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Reldo may have a clue.",
|
||||
"Reldo",
|
||||
"Speak to Reldo to receive a strange device.");
|
||||
"Speak to Reldo to receive a strange device.",
|
||||
new WorldPoint(3211, 3494, 0));
|
||||
private static final HotColdClue MASTER_CLUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Jorral may have a clue.",
|
||||
"Jorral",
|
||||
"Speak to Jorral to receive a strange device.");
|
||||
"Speak to Jorral to receive a strange device.",
|
||||
new WorldPoint(2436, 3347, 0));
|
||||
|
||||
private final String text;
|
||||
private final String npc;
|
||||
private final String solution;
|
||||
private final WorldPoint npcLocation;
|
||||
@Nullable
|
||||
private HotColdSolver hotColdSolver;
|
||||
private WorldPoint location;
|
||||
@@ -90,11 +93,12 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
return null;
|
||||
}
|
||||
|
||||
private HotColdClue(String text, String npc, String solution)
|
||||
private HotColdClue(String text, String npc, String solution, WorldPoint npcLocation)
|
||||
{
|
||||
this.text = text;
|
||||
this.npc = npc;
|
||||
this.solution = solution;
|
||||
this.npcLocation = npcLocation;
|
||||
setRequiresSpade(true);
|
||||
initializeSolver();
|
||||
}
|
||||
@@ -107,7 +111,14 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat
|
||||
return new WorldPoint[0];
|
||||
}
|
||||
|
||||
return hotColdSolver.getPossibleLocations().stream().map(HotColdLocation::getWorldPoint).toArray(WorldPoint[]::new);
|
||||
if (hotColdSolver.getLastWorldPoint() == null)
|
||||
{
|
||||
return new WorldPoint[] {npcLocation};
|
||||
}
|
||||
else
|
||||
{
|
||||
return hotColdSolver.getPossibleLocations().stream().map(HotColdLocation::getWorldPoint).toArray(WorldPoint[]::new);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -103,7 +103,7 @@ public enum STASHUnit
|
||||
ENTRANCE_OF_THE_CAVE_OF_DAMIS(NullObjectID.NULL_29027, new WorldPoint(2629, 5070, 0)),
|
||||
WARRIORS_GUILD_BANK(NullObjectID.NULL_29028, new WorldPoint(2844, 3537, 0)),
|
||||
SOUTHEAST_CORNER_OF_THE_MONASTERY(NullObjectID.NULL_29029, new WorldPoint(3056, 3482, 0)),
|
||||
SOUTHEAST_CORNER_OF_THE_FISHING_PLATFORM(NullObjectID.NULL_29030, new WorldPoint(2787, 3277, 1)),
|
||||
SOUTHEAST_CORNER_OF_THE_FISHING_PLATFORM(NullObjectID.NULL_29030, new WorldPoint(2787, 3277, 0)),
|
||||
OUTSIDE_THE_SLAYER_TOWER_GARGOYLE_ROOM(NullObjectID.NULL_29031, new WorldPoint(3423, 3534, 2)),
|
||||
ON_TOP_OF_TROLLHEIM_MOUNTAIN(NullObjectID.NULL_29032, new WorldPoint(2886, 3676, 0)),
|
||||
FOUNTAIN_OF_HEROES(NullObjectID.NULL_29033, new WorldPoint(2916, 9891, 0)),
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.HitsplatApplied;
|
||||
import net.runelite.api.kit.KitType;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -89,6 +89,9 @@ public class CombatCounter extends Plugin
|
||||
@Inject
|
||||
private CombatCounterConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean instanced = false;
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -236,6 +239,7 @@ public class CombatCounter extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(tickOverlay);
|
||||
overlayManager.add(damageOverlay);
|
||||
@@ -249,6 +253,8 @@ public class CombatCounter extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(tickOverlay);
|
||||
overlayManager.remove(damageOverlay);
|
||||
|
||||
@@ -258,8 +264,15 @@ public class CombatCounter extends Plugin
|
||||
this.playerDamage.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onAnimationChanged(AnimationChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied);
|
||||
}
|
||||
|
||||
private void onAnimationChanged(AnimationChanged event)
|
||||
{
|
||||
Actor actor = event.getActor();
|
||||
|
||||
@@ -403,8 +416,7 @@ public class CombatCounter extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
if (this.resetOnNewInstance)
|
||||
{
|
||||
@@ -554,9 +566,7 @@ public class CombatCounter extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
public void onHitsplatApplied(HitsplatApplied event)
|
||||
private void onHitsplatApplied(HitsplatApplied event)
|
||||
{
|
||||
Actor actor = event.getActor();
|
||||
|
||||
@@ -644,8 +654,7 @@ public class CombatCounter extends Plugin
|
||||
return 2 + (int) Math.floor((3d + distance) / 6d);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("combatcounter"))
|
||||
{
|
||||
|
||||
@@ -45,7 +45,7 @@ import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@@ -84,6 +84,9 @@ public class CombatLevelPlugin extends Plugin
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean showLevelsUntil;
|
||||
private boolean wildernessAttackLevelRange;
|
||||
@@ -98,6 +101,7 @@ public class CombatLevelPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(overlay);
|
||||
|
||||
@@ -110,6 +114,8 @@ public class CombatLevelPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(overlay);
|
||||
Widget combatLevelWidget = client.getWidget(WidgetInfo.COMBAT_LEVEL);
|
||||
|
||||
@@ -126,8 +132,14 @@ public class CombatLevelPlugin extends Plugin
|
||||
shutDownAttackLevelRange();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
|
||||
}
|
||||
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
if (client.getGameState() != GameState.LOGGED_IN)
|
||||
{
|
||||
@@ -153,8 +165,7 @@ public class CombatLevelPlugin extends Plugin
|
||||
combatLevelWidget.setText("Combat Lvl: " + DECIMAL_FORMAT.format(combatLevelPrecise));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (!CONFIG_GROUP.equals(event.getGroup()) || !ATTACK_RANGE_CONFIG_KEY.equals(event.getKey()))
|
||||
{
|
||||
@@ -173,8 +184,7 @@ public class CombatLevelPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
private void onScriptCallbackEvent(ScriptCallbackEvent event)
|
||||
{
|
||||
if (this.wildernessAttackLevelRange
|
||||
&& "wildernessWidgetTextSet".equals(event.getEventName()))
|
||||
|
||||
@@ -30,17 +30,15 @@ import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Insets;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.Font;
|
||||
import java.awt.event.FocusAdapter;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -108,6 +106,7 @@ import net.runelite.client.ui.PluginPanel;
|
||||
import net.runelite.client.ui.components.ComboBoxListRenderer;
|
||||
import net.runelite.client.ui.components.IconButton;
|
||||
import net.runelite.client.ui.components.IconTextField;
|
||||
import net.runelite.client.ui.components.colorpicker.ColorPickerManager;
|
||||
import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
@@ -136,6 +135,7 @@ public class ConfigPanel extends PluginPanel
|
||||
private final RuneLiteConfig runeLiteConfig;
|
||||
private final RuneLitePlusConfig runeLitePlusConfig;
|
||||
private final ChatColorConfig chatColorConfig;
|
||||
private final ColorPickerManager colorPickerManager;
|
||||
public static List<PluginListItem> pluginList = new ArrayList<>();
|
||||
|
||||
private final IconTextField searchBar = new IconTextField();
|
||||
@@ -154,7 +154,8 @@ public class ConfigPanel extends PluginPanel
|
||||
}
|
||||
|
||||
ConfigPanel(PluginManager pluginManager, ConfigManager configManager, ScheduledExecutorService executorService,
|
||||
RuneLiteConfig runeLiteConfig, RuneLitePlusConfig runeLitePlusConfig, ChatColorConfig chatColorConfig)
|
||||
RuneLiteConfig runeLiteConfig, RuneLitePlusConfig runeLitePlusConfig, ChatColorConfig chatColorConfig,
|
||||
ColorPickerManager colorPickerManager)
|
||||
{
|
||||
super(false);
|
||||
this.pluginManager = pluginManager;
|
||||
@@ -163,6 +164,7 @@ public class ConfigPanel extends PluginPanel
|
||||
this.runeLiteConfig = runeLiteConfig;
|
||||
this.runeLitePlusConfig = runeLitePlusConfig;
|
||||
this.chatColorConfig = chatColorConfig;
|
||||
this.colorPickerManager = colorPickerManager;
|
||||
|
||||
searchBar.setIcon(IconTextField.Icon.SEARCH);
|
||||
searchBar.setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH - 20, 30));
|
||||
@@ -250,7 +252,7 @@ public class ConfigPanel extends PluginPanel
|
||||
}
|
||||
lines.add(sb.toString());
|
||||
|
||||
return new Dimension(WIDTH, (lines.size() * fontMetrics.getHeight()) + HEIGHT_PADDING);
|
||||
return new Dimension(WIDTH, (lines.size() * fontMetrics.getHeight()) + HEIGHT_PADDING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -910,8 +912,11 @@ public class ConfigPanel extends PluginPanel
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e)
|
||||
{
|
||||
RuneliteColorPicker colorPicker = new RuneliteColorPicker(SwingUtilities.windowForComponent(ConfigPanel.this),
|
||||
colorPickerBtn.getBackground(), cid.getItem().name(), cid.getAlpha() == null);
|
||||
RuneliteColorPicker colorPicker = colorPickerManager.create(
|
||||
SwingUtilities.windowForComponent(ConfigPanel.this),
|
||||
colorPickerBtn.getBackground(),
|
||||
cid.getItem().name(),
|
||||
cid.getAlpha() == null);
|
||||
colorPicker.setLocation(getLocationOnScreen());
|
||||
colorPicker.setOnColorChange(c ->
|
||||
{
|
||||
@@ -919,14 +924,7 @@ public class ConfigPanel extends PluginPanel
|
||||
colorPickerBtn.setText(ColorUtil.toHexColor(c).toUpperCase());
|
||||
});
|
||||
|
||||
colorPicker.addWindowListener(new WindowAdapter()
|
||||
{
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e)
|
||||
{
|
||||
changeConfiguration(listItem, config, colorPicker, cd, cid);
|
||||
}
|
||||
});
|
||||
colorPicker.setOnClose(c -> changeConfiguration(listItem, config, colorPicker, cd, cid));
|
||||
colorPicker.setVisible(true);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -37,7 +37,7 @@ import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
import net.runelite.client.config.RuneLitePlusConfig;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.OverlayMenuClicked;
|
||||
import net.runelite.client.events.PluginChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -46,6 +46,7 @@ import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.ui.ClientToolbar;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
import net.runelite.client.ui.NavigationButton;
|
||||
import net.runelite.client.ui.components.colorpicker.ColorPickerManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayMenuEntry;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
@@ -80,13 +81,21 @@ public class ConfigPlugin extends Plugin
|
||||
@Inject
|
||||
private ChatColorConfig chatColorConfig;
|
||||
|
||||
@Inject
|
||||
private ColorPickerManager colorPickerManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private ConfigPanel configPanel;
|
||||
private NavigationButton navButton;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
configPanel = new ConfigPanel(pluginManager, configManager, executorService, runeLiteConfig, runeLitePlusConfig, chatColorConfig);
|
||||
addSubscriptions();
|
||||
|
||||
configPanel = new ConfigPanel(pluginManager, configManager, executorService, runeLiteConfig, runeLitePlusConfig, chatColorConfig, colorPickerManager);
|
||||
|
||||
final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "config_icon.png");
|
||||
|
||||
@@ -103,6 +112,8 @@ public class ConfigPlugin extends Plugin
|
||||
@Override
|
||||
public void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
clientToolbar.removeNavigation(navButton);
|
||||
RuneLite.getInjector().getInstance(ClientThread.class).invokeLater(() ->
|
||||
{
|
||||
@@ -122,14 +133,18 @@ public class ConfigPlugin extends Plugin
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPluginChanged(PluginChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(PluginChanged.class, this, this::onPluginChanged);
|
||||
eventBus.subscribe(OverlayMenuClicked.class, this, this::onOverlayMenuClicked);
|
||||
}
|
||||
|
||||
private void onPluginChanged(PluginChanged event)
|
||||
{
|
||||
SwingUtilities.invokeLater(configPanel::refreshPluginList);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onOverlayMenuClicked(OverlayMenuClicked overlayMenuClicked)
|
||||
private void onOverlayMenuClicked(OverlayMenuClicked overlayMenuClicked)
|
||||
{
|
||||
OverlayMenuEntry overlayMenuEntry = overlayMenuClicked.getEntry();
|
||||
if (overlayMenuEntry.getMenuAction() == MenuAction.RUNELITE_OVERLAY_CONFIG)
|
||||
|
||||
@@ -44,7 +44,7 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.SpotAnimationChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDependency;
|
||||
@@ -80,6 +80,9 @@ public class CookingPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private CookingSession session;
|
||||
|
||||
@@ -97,6 +100,8 @@ public class CookingPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
session = null;
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
@@ -104,13 +109,22 @@ public class CookingPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
infoBoxManager.removeIf(FermentTimer.class::isInstance);
|
||||
overlayManager.remove(overlay);
|
||||
session = null;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
}
|
||||
|
||||
private void onGameTick(GameTick gameTick)
|
||||
{
|
||||
if (session == null || this.statTimeout == 0)
|
||||
{
|
||||
@@ -126,8 +140,7 @@ public class CookingPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
|
||||
void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
|
||||
{
|
||||
Player player = client.getLocalPlayer();
|
||||
|
||||
@@ -156,8 +169,7 @@ public class CookingPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage event)
|
||||
void onChatMessage(ChatMessage event)
|
||||
{
|
||||
if (event.getType() != ChatMessageType.SPAM)
|
||||
{
|
||||
@@ -194,8 +206,7 @@ public class CookingPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("cooking"))
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
package net.runelite.client.plugins.cooking;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Image;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import javax.inject.Singleton;
|
||||
@@ -39,7 +39,7 @@ final class FermentTimer extends InfoBox
|
||||
|
||||
private Instant fermentTime;
|
||||
|
||||
FermentTimer(Image image, Plugin plugin)
|
||||
FermentTimer(BufferedImage image, Plugin plugin)
|
||||
{
|
||||
super(image, plugin);
|
||||
reset();
|
||||
|
||||
@@ -53,7 +53,7 @@ import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@@ -102,6 +102,9 @@ public class CorpPlugin extends Plugin
|
||||
@Inject
|
||||
private CorpConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private boolean leftClickCore;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean showDamage;
|
||||
@@ -116,6 +119,7 @@ public class CorpPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(corpOverlay);
|
||||
overlayManager.add(coreOverlay);
|
||||
@@ -124,6 +128,8 @@ public class CorpPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(corpOverlay);
|
||||
overlayManager.remove(coreOverlay);
|
||||
|
||||
@@ -133,8 +139,18 @@ public class CorpPlugin extends Plugin
|
||||
players.clear();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied);
|
||||
eventBus.subscribe(InteractingChanged.class, this, this::onInteractingChanged);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
if (gameStateChanged.getGameState() == GameState.LOADING)
|
||||
{
|
||||
@@ -142,8 +158,7 @@ public class CorpPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(NpcSpawned npcSpawned)
|
||||
private void onNpcSpawned(NpcSpawned npcSpawned)
|
||||
{
|
||||
NPC npc = npcSpawned.getNpc();
|
||||
|
||||
@@ -162,8 +177,7 @@ public class CorpPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
private void onNpcDespawned(NpcDespawned npcDespawned)
|
||||
{
|
||||
NPC npc = npcDespawned.getNpc();
|
||||
|
||||
@@ -199,8 +213,7 @@ public class CorpPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onHitsplatApplied(HitsplatApplied hitsplatApplied)
|
||||
private void onHitsplatApplied(HitsplatApplied hitsplatApplied)
|
||||
{
|
||||
Actor actor = hitsplatApplied.getActor();
|
||||
|
||||
@@ -218,8 +231,7 @@ public class CorpPlugin extends Plugin
|
||||
totalDamage += hitsplatApplied.getHitsplat().getAmount();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onInteractingChanged(InteractingChanged interactingChanged)
|
||||
private void onInteractingChanged(InteractingChanged interactingChanged)
|
||||
{
|
||||
Actor source = interactingChanged.getSource();
|
||||
Actor target = interactingChanged.getTarget();
|
||||
@@ -232,8 +244,7 @@ public class CorpPlugin extends Plugin
|
||||
players.add(source);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
|
||||
private void onMenuEntryAdded(MenuEntryAdded menuEntryAdded)
|
||||
{
|
||||
if (menuEntryAdded.getType() != NPC_SECTION_ACTION
|
||||
|| !this.leftClickCore || !menuEntryAdded.getOption().equals(ATTACK))
|
||||
@@ -256,8 +267,7 @@ public class CorpPlugin extends Plugin
|
||||
client.setMenuEntries(menuEntries);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("corp"))
|
||||
{
|
||||
|
||||
@@ -28,7 +28,6 @@ import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
import javax.inject.Inject;
|
||||
@@ -87,7 +86,7 @@ public class CoxInfoBox extends Overlay
|
||||
if (System.currentTimeMillis() < (plugin.getLastPrayTime() + 120000) && plugin.getPrayAgainstOlm() != null)
|
||||
{
|
||||
InfoBoxComponent prayComponent = new InfoBoxComponent();
|
||||
Image prayImg = scaleImg(getPrayerImage(plugin.prayAgainstOlm));
|
||||
BufferedImage prayImg = scaleImg(getPrayerImage(plugin.prayAgainstOlm));
|
||||
prayComponent.setImage(prayImg);
|
||||
prayComponent.setColor(Color.WHITE);
|
||||
prayComponent.setBackgroundColor(client.isPrayerActive(prayAgainst.getPrayer())
|
||||
@@ -160,7 +159,7 @@ public class CoxInfoBox extends Overlay
|
||||
return null;
|
||||
}
|
||||
|
||||
private Image scaleImg(final Image img)
|
||||
private BufferedImage scaleImg(final BufferedImage img)
|
||||
{
|
||||
if (img == null)
|
||||
{
|
||||
|
||||
@@ -63,7 +63,7 @@ import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.api.events.SpotAnimationChanged;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
@@ -105,6 +105,8 @@ public class CoxPlugin extends Plugin
|
||||
private CoxConfig config;
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private boolean HandCripple;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@@ -207,6 +209,7 @@ public class CoxPlugin extends Plugin
|
||||
protected void startUp()
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
overlayManager.add(coxOverlay);
|
||||
overlayManager.add(coxInfoBox);
|
||||
@@ -227,12 +230,24 @@ public class CoxPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(coxOverlay);
|
||||
overlayManager.remove(coxInfoBox);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onChatMessage(ChatMessage chatMessage)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(ChatMessage.class, this, this::onChatMessage);
|
||||
eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved);
|
||||
eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void onChatMessage(ChatMessage chatMessage)
|
||||
{
|
||||
if (inRaid())
|
||||
{
|
||||
@@ -305,8 +320,7 @@ public class CoxPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileMoved(ProjectileMoved event)
|
||||
private void onProjectileMoved(ProjectileMoved event)
|
||||
{
|
||||
if (inRaid())
|
||||
{
|
||||
@@ -328,8 +342,7 @@ public class CoxPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
|
||||
private void onSpotAnimationChanged(SpotAnimationChanged graphicChanged)
|
||||
{
|
||||
if (inRaid())
|
||||
{
|
||||
@@ -344,8 +357,7 @@ public class CoxPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(NpcSpawned npcSpawned)
|
||||
private void onNpcSpawned(NpcSpawned npcSpawned)
|
||||
{
|
||||
if (inRaid())
|
||||
{
|
||||
@@ -384,8 +396,7 @@ public class CoxPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned event)
|
||||
private void onNpcDespawned(NpcDespawned event)
|
||||
{
|
||||
if (inRaid())
|
||||
{
|
||||
@@ -429,8 +440,7 @@ public class CoxPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
if (!inRaid())
|
||||
{
|
||||
@@ -696,8 +706,7 @@ public class CoxPlugin extends Plugin
|
||||
return client.getVar(Varbits.IN_RAID) == 1;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("Cox"))
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ import net.runelite.api.Player;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.http.api.RuneLiteAPI;
|
||||
@@ -64,12 +64,27 @@ public class CrystalMathLabs extends Plugin
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private String lastUsername;
|
||||
private boolean fetchXp;
|
||||
private long lastXp;
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
GameState state = gameStateChanged.getGameState();
|
||||
if (state == GameState.LOGGED_IN)
|
||||
@@ -98,8 +113,7 @@ public class CrystalMathLabs extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick gameTick)
|
||||
private void onGameTick(GameTick gameTick)
|
||||
{
|
||||
if (fetchXp)
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
@@ -48,6 +48,9 @@ public class CustomCursorPlugin extends Plugin
|
||||
@Inject
|
||||
private CustomCursorConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Provides
|
||||
CustomCursorConfig provideConfig(ConfigManager configManager)
|
||||
{
|
||||
@@ -57,17 +60,19 @@ public class CustomCursorPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
updateCursor();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
clientUI.resetCursor();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("customcursor") && event.getKey().equals("cursorStyle"))
|
||||
{
|
||||
|
||||
@@ -44,7 +44,7 @@ import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.chat.QueuedMessage;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
|
||||
@@ -80,6 +80,9 @@ public class DailyTasksPlugin extends Plugin
|
||||
@Inject
|
||||
private ChatMessageManager chatMessageManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private long lastReset;
|
||||
private boolean loggingIn;
|
||||
|
||||
@@ -103,6 +106,9 @@ public class DailyTasksPlugin extends Plugin
|
||||
public void startUp()
|
||||
{
|
||||
updateConfig();
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
|
||||
addSubscriptions();
|
||||
|
||||
loggingIn = true;
|
||||
}
|
||||
@@ -110,11 +116,19 @@ public class DailyTasksPlugin extends Plugin
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
eventBus.unregister(this);
|
||||
lastReset = 0L;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (event.getGameState() == GameState.LOGGING_IN)
|
||||
{
|
||||
@@ -122,8 +136,7 @@ public class DailyTasksPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
long currentTime = System.currentTimeMillis();
|
||||
boolean dailyReset = !loggingIn && currentTime - lastReset > ONE_DAY;
|
||||
@@ -174,7 +187,7 @@ public class DailyTasksPlugin extends Plugin
|
||||
{
|
||||
checkArrows(dailyReset);
|
||||
}
|
||||
|
||||
|
||||
if (this.showDynamite)
|
||||
{
|
||||
checkDynamite(dailyReset);
|
||||
@@ -245,8 +258,9 @@ public class DailyTasksPlugin extends Plugin
|
||||
|
||||
private void checkArrows(boolean dailyReset)
|
||||
{
|
||||
if ((client.getVar(Varbits.DIARY_WESTERN_EASY) == 1)
|
||||
&& (dailyReset || client.getVar(Varbits.DAILY_ARROWS_STATE) == 0))
|
||||
if (client.getVar(Varbits.DIARY_WESTERN_EASY) == 1
|
||||
&& (client.getVar(Varbits.DAILY_ARROWS_STATE) == 0
|
||||
|| dailyReset))
|
||||
{
|
||||
sendChatMessage(ARROWS_MESSAGE);
|
||||
}
|
||||
@@ -297,8 +311,7 @@ public class DailyTasksPlugin extends Plugin
|
||||
.build());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged configChanged)
|
||||
private void onConfigChanged(ConfigChanged configChanged)
|
||||
{
|
||||
if (configChanged.getGroup().equals("dailytaskindicators"))
|
||||
{
|
||||
|
||||
@@ -43,7 +43,7 @@ import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.LocalPlayerDeath;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -83,6 +83,9 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
@Inject
|
||||
private ItemManager itemManager;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private BufferedImage mapArrow;
|
||||
|
||||
private Timer deathTimer;
|
||||
@@ -100,6 +103,8 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp()
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
if (!hasDied())
|
||||
{
|
||||
return;
|
||||
@@ -127,6 +132,8 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown()
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
if (client.hasHintArrow())
|
||||
{
|
||||
client.clearHintArrow();
|
||||
@@ -141,8 +148,15 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
worldMapPointManager.removeIf(DeathWorldMapPoint.class::isInstance);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onLocalPlayerDeath(LocalPlayerDeath death)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(LocalPlayerDeath.class, this, this::onLocalPlayerDeath);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
}
|
||||
|
||||
private void onLocalPlayerDeath(LocalPlayerDeath death)
|
||||
{
|
||||
if (client.isInInstancedRegion())
|
||||
{
|
||||
@@ -154,8 +168,7 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
lastDeathTime = Instant.now();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
// Check if player respawned in a death respawn location
|
||||
if (lastDeath != null && !client.getLocalPlayer().getWorldLocation().equals(lastDeath))
|
||||
@@ -219,8 +232,7 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equals("deathIndicator"))
|
||||
{
|
||||
@@ -251,8 +263,7 @@ public class DeathIndicatorPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
if (!hasDied())
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.SessionOpen;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -57,6 +57,9 @@ public class DefaultWorldPlugin extends Plugin
|
||||
@Inject
|
||||
private DefaultWorldConfig config;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private final WorldClient worldClient = new WorldClient();
|
||||
private int worldCache;
|
||||
private boolean worldChangeRequired;
|
||||
@@ -64,6 +67,8 @@ public class DefaultWorldPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
worldChangeRequired = true;
|
||||
applyWorld();
|
||||
}
|
||||
@@ -71,25 +76,31 @@ public class DefaultWorldPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
worldChangeRequired = true;
|
||||
changeWorld(worldCache);
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(SessionOpen.class, this, this::onSessionOpen);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
}
|
||||
|
||||
@Provides
|
||||
DefaultWorldConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(DefaultWorldConfig.class);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSessionOpen(SessionOpen event)
|
||||
private void onSessionOpen(SessionOpen event)
|
||||
{
|
||||
worldChangeRequired = true;
|
||||
applyWorld();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
applyWorld();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.demonicgorilla;
|
||||
|
||||
import java.awt.BasicStroke;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
@@ -43,6 +42,7 @@ import net.runelite.client.game.SkillIconManager;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
|
||||
@Singleton
|
||||
public class DemonicGorillaOverlay extends Overlay
|
||||
@@ -118,31 +118,11 @@ public class DemonicGorillaOverlay extends Overlay
|
||||
int currentPosX = 0;
|
||||
for (BufferedImage icon : icons)
|
||||
{
|
||||
graphics.setStroke(new BasicStroke(2));
|
||||
graphics.setColor(COLOR_ICON_BACKGROUND);
|
||||
graphics.fillOval(
|
||||
point.getX() - totalWidth / 2 + currentPosX - bgPadding,
|
||||
point.getY() - icon.getHeight() / 2 - OVERLAY_ICON_DISTANCE - bgPadding,
|
||||
icon.getWidth() + bgPadding * 2,
|
||||
icon.getHeight() + bgPadding * 2);
|
||||
|
||||
graphics.setColor(COLOR_ICON_BORDER);
|
||||
graphics.drawOval(
|
||||
point.getX() - totalWidth / 2 + currentPosX - bgPadding,
|
||||
point.getY() - icon.getHeight() / 2 - OVERLAY_ICON_DISTANCE - bgPadding,
|
||||
icon.getWidth() + bgPadding * 2,
|
||||
icon.getHeight() + bgPadding * 2);
|
||||
|
||||
graphics.drawImage(
|
||||
icon,
|
||||
point.getX() - totalWidth / 2 + currentPosX,
|
||||
point.getY() - icon.getHeight() / 2 - OVERLAY_ICON_DISTANCE,
|
||||
null);
|
||||
|
||||
graphics.setColor(COLOR_ICON_BORDER_FILL);
|
||||
OverlayUtil.setProgressIcon(graphics, point, icon, totalWidth, bgPadding, currentPosX,
|
||||
COLOR_ICON_BACKGROUND, OVERLAY_ICON_DISTANCE, COLOR_ICON_BORDER, COLOR_ICON_BORDER_FILL);
|
||||
Arc2D.Double arc = new Arc2D.Double(
|
||||
point.getX() - totalWidth / 2 + currentPosX - bgPadding,
|
||||
point.getY() - icon.getHeight() / 2 - OVERLAY_ICON_DISTANCE - bgPadding,
|
||||
point.getY() - (float) (icon.getHeight() / 2) - OVERLAY_ICON_DISTANCE - bgPadding,
|
||||
icon.getWidth() + bgPadding * 2,
|
||||
icon.getHeight() + bgPadding * 2,
|
||||
90.0,
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.api.events.PlayerDespawned;
|
||||
import net.runelite.api.events.PlayerSpawned;
|
||||
import net.runelite.api.events.ProjectileMoved;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
@@ -81,6 +81,9 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Inject
|
||||
private ClientThread clientThread;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private Map<NPC, DemonicGorilla> gorillas;
|
||||
|
||||
@@ -93,6 +96,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
overlayManager.add(overlay);
|
||||
gorillas = new HashMap<>();
|
||||
recentBoulders = new ArrayList<>();
|
||||
@@ -104,6 +108,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
overlayManager.remove(overlay);
|
||||
gorillas = null;
|
||||
recentBoulders = null;
|
||||
@@ -111,6 +116,18 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
memorizedPlayers = null;
|
||||
}
|
||||
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ProjectileMoved.class, this, this::onProjectileMoved);
|
||||
eventBus.subscribe(HitsplatApplied.class, this, this::onHitsplatApplied);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(PlayerSpawned.class, this, this::onPlayerSpawned);
|
||||
eventBus.subscribe(PlayerDespawned.class, this, this::onPlayerDespawned);
|
||||
eventBus.subscribe(NpcSpawned.class, this, this::onNpcSpawned);
|
||||
eventBus.subscribe(NpcDespawned.class, this, this::onNpcDespawned);
|
||||
eventBus.subscribe(GameTick.class, this, this::onGameTick);
|
||||
}
|
||||
|
||||
private void clear()
|
||||
{
|
||||
recentBoulders.clear();
|
||||
@@ -528,8 +545,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProjectileMoved(ProjectileMoved event)
|
||||
private void onProjectileMoved(ProjectileMoved event)
|
||||
{
|
||||
Projectile projectile = event.getProjectile();
|
||||
int projectileId = projectile.getId();
|
||||
@@ -616,8 +632,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onHitsplatApplied(HitsplatApplied event)
|
||||
private void onHitsplatApplied(HitsplatApplied event)
|
||||
{
|
||||
if (gorillas.isEmpty())
|
||||
{
|
||||
@@ -645,8 +660,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
GameState gs = event.getGameState();
|
||||
if (gs == GameState.LOGGING_IN ||
|
||||
@@ -657,8 +671,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerSpawned(PlayerSpawned event)
|
||||
private void onPlayerSpawned(PlayerSpawned event)
|
||||
{
|
||||
if (gorillas.isEmpty())
|
||||
{
|
||||
@@ -669,8 +682,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
memorizedPlayers.put(player, new MemorizedPlayer(player));
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPlayerDespawned(PlayerDespawned event)
|
||||
private void onPlayerDespawned(PlayerDespawned event)
|
||||
{
|
||||
if (gorillas.isEmpty())
|
||||
{
|
||||
@@ -680,8 +692,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
memorizedPlayers.remove(event.getPlayer());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcSpawned(NpcSpawned event)
|
||||
private void onNpcSpawned(NpcSpawned event)
|
||||
{
|
||||
NPC npc = event.getNpc();
|
||||
if (isNpcGorilla(npc.getId()))
|
||||
@@ -697,8 +708,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onNpcDespawned(NpcDespawned event)
|
||||
private void onNpcDespawned(NpcDespawned event)
|
||||
{
|
||||
if (gorillas.remove(event.getNpc()) != null && gorillas.isEmpty())
|
||||
{
|
||||
@@ -706,8 +716,7 @@ public class DemonicGorillaPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameTick(GameTick event)
|
||||
private void onGameTick(GameTick event)
|
||||
{
|
||||
checkGorillaAttacks();
|
||||
checkPendingAttacks();
|
||||
|
||||
@@ -42,15 +42,16 @@ import net.runelite.api.NPC;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Skill;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.events.AreaSoundEffectPlayed;
|
||||
import net.runelite.api.events.BoostedLevelChanged;
|
||||
import net.runelite.api.events.CommandExecuted;
|
||||
import net.runelite.api.events.ExperienceChanged;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.api.events.SoundEffectPlayed;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.kit.KitType;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.ClientToolbar;
|
||||
@@ -143,6 +144,8 @@ public class DevToolsPlugin extends Plugin
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
addSubscriptions();
|
||||
|
||||
players = new DevToolsButton("Players");
|
||||
npcs = new DevToolsButton("NPCs");
|
||||
|
||||
@@ -200,14 +203,13 @@ public class DevToolsPlugin extends Plugin
|
||||
.build();
|
||||
|
||||
clientToolbar.addNavigation(navButton);
|
||||
|
||||
eventBus.register(soundEffectOverlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(soundEffectOverlay);
|
||||
eventBus.unregister(this);
|
||||
|
||||
overlayManager.remove(overlay);
|
||||
overlayManager.remove(locationOverlay);
|
||||
overlayManager.remove(sceneOverlay);
|
||||
@@ -218,8 +220,15 @@ public class DevToolsPlugin extends Plugin
|
||||
clientToolbar.removeNavigation(navButton);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onCommandExecuted(CommandExecuted commandExecuted)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(CommandExecuted.class, this, this::onCommandExecuted);
|
||||
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
|
||||
eventBus.subscribe(AreaSoundEffectPlayed.class, this, this::onAreaSoundEffectPlayed);
|
||||
eventBus.subscribe(SoundEffectPlayed.class, this, this::onSoundEffectPlayed);
|
||||
}
|
||||
|
||||
private void onCommandExecuted(CommandExecuted commandExecuted)
|
||||
{
|
||||
String[] args = commandExecuted.getArguments();
|
||||
|
||||
@@ -260,7 +269,7 @@ public class DevToolsPlugin extends Plugin
|
||||
client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Set VarPlayer " + varp + " to " + value, null);
|
||||
VarbitChanged varbitChanged = new VarbitChanged();
|
||||
varbitChanged.setIndex(varp);
|
||||
eventBus.post(varbitChanged); // fake event
|
||||
eventBus.post(VarbitChanged.class, varbitChanged); // fake event
|
||||
break;
|
||||
}
|
||||
case "getvarb":
|
||||
@@ -276,7 +285,7 @@ public class DevToolsPlugin extends Plugin
|
||||
int value = Integer.parseInt(args[1]);
|
||||
client.setVarbitValue(client.getVarps(), varbit, value);
|
||||
client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "Set varbit " + varbit + " to " + value, null);
|
||||
eventBus.post(new VarbitChanged()); // fake event
|
||||
eventBus.post(VarbitChanged.class, new VarbitChanged()); // fake event
|
||||
break;
|
||||
}
|
||||
case "addxp":
|
||||
@@ -295,7 +304,7 @@ public class DevToolsPlugin extends Plugin
|
||||
|
||||
ExperienceChanged experienceChanged = new ExperienceChanged();
|
||||
experienceChanged.setSkill(skill);
|
||||
eventBus.post(experienceChanged);
|
||||
eventBus.post(ExperienceChanged.class, experienceChanged);
|
||||
break;
|
||||
}
|
||||
case "setstat":
|
||||
@@ -314,11 +323,11 @@ public class DevToolsPlugin extends Plugin
|
||||
|
||||
ExperienceChanged experienceChanged = new ExperienceChanged();
|
||||
experienceChanged.setSkill(skill);
|
||||
eventBus.post(experienceChanged);
|
||||
eventBus.post(ExperienceChanged.class, experienceChanged);
|
||||
|
||||
BoostedLevelChanged boostedLevelChanged = new BoostedLevelChanged();
|
||||
boostedLevelChanged.setSkill(skill);
|
||||
eventBus.post(boostedLevelChanged);
|
||||
eventBus.post(BoostedLevelChanged.class, boostedLevelChanged);
|
||||
break;
|
||||
}
|
||||
case "anim":
|
||||
@@ -363,8 +372,7 @@ public class DevToolsPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
private void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (!examine.isActive())
|
||||
{
|
||||
@@ -401,4 +409,24 @@ public class DevToolsPlugin extends Plugin
|
||||
client.setMenuEntries(entries);
|
||||
}
|
||||
}
|
||||
|
||||
private void onSoundEffectPlayed(SoundEffectPlayed event)
|
||||
{
|
||||
if (!getSoundEffects().isActive() || soundEffectOverlay == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
soundEffectOverlay.onSoundEffectPlayed(event);
|
||||
}
|
||||
|
||||
private void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event)
|
||||
{
|
||||
if (!getSoundEffects().isActive() || soundEffectOverlay == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
soundEffectOverlay.onAreaSoundEffectPlayed(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import net.runelite.api.Player;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.events.AreaSoundEffectPlayed;
|
||||
import net.runelite.api.events.SoundEffectPlayed;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||
@@ -74,14 +73,8 @@ class SoundEffectOverlay extends Overlay
|
||||
return panelComponent.render(graphics);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onSoundEffectPlayed(SoundEffectPlayed event)
|
||||
void onSoundEffectPlayed(SoundEffectPlayed event)
|
||||
{
|
||||
if (!plugin.getSoundEffects().isActive())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String text =
|
||||
"Id: " + event.getSoundId() +
|
||||
" - D: " + event.getDelay();
|
||||
@@ -94,14 +87,8 @@ class SoundEffectOverlay extends Overlay
|
||||
checkMaxLines();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event)
|
||||
void onAreaSoundEffectPlayed(AreaSoundEffectPlayed event)
|
||||
{
|
||||
if (!plugin.getSoundEffects().isActive())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Color textColor = COLOR_AREA_SOUND_EFFECT;
|
||||
|
||||
// Check if the player is within range to hear the sound
|
||||
|
||||
@@ -56,7 +56,6 @@ import net.runelite.api.events.VarClientIntChanged;
|
||||
import net.runelite.api.events.VarClientStrChanged;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.DynamicGridLayout;
|
||||
@@ -115,6 +114,7 @@ class VarInspector extends JFrame
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e)
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
close();
|
||||
plugin.getVarInspector().setActive(false);
|
||||
}
|
||||
@@ -170,6 +170,7 @@ class VarInspector extends JFrame
|
||||
add(trackerOpts, BorderLayout.SOUTH);
|
||||
|
||||
pack();
|
||||
|
||||
}
|
||||
|
||||
private void addVarLog(VarType type, String name, int old, int neew)
|
||||
@@ -210,8 +211,7 @@ class VarInspector extends JFrame
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged ev)
|
||||
private void onVarbitChanged(VarbitChanged ev)
|
||||
{
|
||||
int[] varps = client.getVarps();
|
||||
|
||||
@@ -274,8 +274,7 @@ class VarInspector extends JFrame
|
||||
System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarClientIntChanged(VarClientIntChanged e)
|
||||
private void onVarClientIntChanged(VarClientIntChanged e)
|
||||
{
|
||||
int idx = e.getIndex();
|
||||
int neew = (Integer) client.getVarcMap().getOrDefault(idx, 0);
|
||||
@@ -297,8 +296,7 @@ class VarInspector extends JFrame
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarClientStrChanged(VarClientStrChanged e)
|
||||
private void onVarClientStrChanged(VarClientStrChanged e)
|
||||
{
|
||||
int idx = e.getIndex();
|
||||
String neew = (String) client.getVarcMap().getOrDefault(idx, "");
|
||||
@@ -348,7 +346,11 @@ class VarInspector extends JFrame
|
||||
System.arraycopy(client.getVarps(), 0, oldVarps2, 0, oldVarps2.length);
|
||||
varcs = new HashMap<>(client.getVarcMap());
|
||||
|
||||
eventBus.register(this);
|
||||
// eventBus.register(this);
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
eventBus.subscribe(VarClientIntChanged.class, this, this::onVarClientIntChanged);
|
||||
eventBus.subscribe(VarClientStrChanged.class, this, this::onVarClientStrChanged);
|
||||
|
||||
setVisible(true);
|
||||
toFront();
|
||||
repaint();
|
||||
|
||||
@@ -53,7 +53,6 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.api.widgets.WidgetItem;
|
||||
import net.runelite.client.callback.ClientThread;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
|
||||
@Slf4j
|
||||
@@ -86,7 +85,7 @@ class WidgetInspector extends JFrame
|
||||
this.config = config;
|
||||
this.overlay = overlay;
|
||||
|
||||
eventBus.register(this);
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
|
||||
setTitle("RuneLite Widget Inspector");
|
||||
setIconImage(ClientUI.ICON);
|
||||
@@ -97,6 +96,7 @@ class WidgetInspector extends JFrame
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e)
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
close();
|
||||
plugin.getWidgetInspector().setActive(false);
|
||||
}
|
||||
@@ -165,9 +165,9 @@ class WidgetInspector extends JFrame
|
||||
add(split, BorderLayout.CENTER);
|
||||
|
||||
pack();
|
||||
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onConfigChanged(ConfigChanged ev)
|
||||
{
|
||||
boolean onTop = config.inspectorAlwaysOnTop();
|
||||
|
||||
@@ -56,7 +56,7 @@ import net.runelite.client.discord.DiscordService;
|
||||
import net.runelite.client.discord.events.DiscordJoinGame;
|
||||
import net.runelite.client.discord.events.DiscordJoinRequest;
|
||||
import net.runelite.client.discord.events.DiscordReady;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
import net.runelite.client.events.PartyChanged;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
@@ -110,6 +110,9 @@ public class DiscordPlugin extends Plugin
|
||||
@Inject
|
||||
private WSClient wsClient;
|
||||
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
|
||||
private final Map<Skill, Integer> skillExp = new HashMap<>();
|
||||
private NavigationButton discordButton;
|
||||
private boolean loginFlag;
|
||||
@@ -137,6 +140,7 @@ public class DiscordPlugin extends Plugin
|
||||
protected void startUp() throws Exception
|
||||
{
|
||||
updateConfig();
|
||||
addSubscriptions();
|
||||
|
||||
final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "discord.png");
|
||||
|
||||
@@ -162,14 +166,31 @@ public class DiscordPlugin extends Plugin
|
||||
@Override
|
||||
protected void shutDown() throws Exception
|
||||
{
|
||||
eventBus.unregister(this);
|
||||
|
||||
clientToolbar.removeNavigation(discordButton);
|
||||
discordState.reset();
|
||||
partyService.changeParty(null);
|
||||
wsClient.unregisterMessage(DiscordUserInfo.class);
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged event)
|
||||
private void addSubscriptions()
|
||||
{
|
||||
eventBus.subscribe(ConfigChanged.class, this, this::onConfigChanged);
|
||||
eventBus.subscribe(GameStateChanged.class, this, this::onGameStateChanged);
|
||||
eventBus.subscribe(ExperienceChanged.class, this, this::onExperienceChanged);
|
||||
eventBus.subscribe(VarbitChanged.class, this, this::onVarbitChanged);
|
||||
eventBus.subscribe(DiscordReady.class, this, this::onDiscordReady);
|
||||
eventBus.subscribe(DiscordJoinRequest.class, this, this::onDiscordJoinRequest);
|
||||
eventBus.subscribe(DiscordJoinGame.class, this, this::onDiscordJoinGame);
|
||||
eventBus.subscribe(DiscordUserInfo.class, this, this::onDiscordUserInfo);
|
||||
eventBus.subscribe(UserJoin.class, this, this::onUserJoin);
|
||||
eventBus.subscribe(UserSync.class, this, this::onUserSync);
|
||||
eventBus.subscribe(UserPart.class, this, this::onUserPart);
|
||||
eventBus.subscribe(PartyChanged.class, this, this::onPartyChanged);
|
||||
}
|
||||
|
||||
private void onGameStateChanged(GameStateChanged event)
|
||||
{
|
||||
switch (event.getGameState())
|
||||
{
|
||||
@@ -192,8 +213,7 @@ public class DiscordPlugin extends Plugin
|
||||
checkForAreaUpdate();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
private void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (event.getGroup().equalsIgnoreCase("discord"))
|
||||
{
|
||||
@@ -205,8 +225,7 @@ public class DiscordPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onExperienceChanged(ExperienceChanged event)
|
||||
private void onExperienceChanged(ExperienceChanged event)
|
||||
{
|
||||
final int exp = client.getSkillExperience(event.getSkill());
|
||||
final Integer previous = skillExp.put(event.getSkill(), exp);
|
||||
@@ -224,8 +243,7 @@ public class DiscordPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onVarbitChanged(VarbitChanged event)
|
||||
private void onVarbitChanged(VarbitChanged event)
|
||||
{
|
||||
if (!this.showRaidingActivity)
|
||||
{
|
||||
@@ -240,14 +258,12 @@ public class DiscordPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDiscordReady(DiscordReady event)
|
||||
private void onDiscordReady(DiscordReady event)
|
||||
{
|
||||
partyService.setUsername(event.getUsername() + "#" + event.getDiscriminator());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDiscordJoinRequest(DiscordJoinRequest request)
|
||||
private void onDiscordJoinRequest(DiscordJoinRequest request)
|
||||
{
|
||||
log.debug("Got discord join request {}", request);
|
||||
if (partyService.isOwner() && partyService.getMembers().isEmpty())
|
||||
@@ -258,8 +274,7 @@ public class DiscordPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDiscordJoinGame(DiscordJoinGame joinGame)
|
||||
private void onDiscordJoinGame(DiscordJoinGame joinGame)
|
||||
{
|
||||
log.debug("Got discord join game {}", joinGame);
|
||||
UUID partyId = UUID.fromString(joinGame.getJoinSecret());
|
||||
@@ -267,8 +282,7 @@ public class DiscordPlugin extends Plugin
|
||||
updatePresence();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onDiscordUserInfo(final DiscordUserInfo event)
|
||||
private void onDiscordUserInfo(final DiscordUserInfo event)
|
||||
{
|
||||
final PartyMember memberById = partyService.getMemberById(event.getMemberId());
|
||||
|
||||
@@ -327,14 +341,12 @@ public class DiscordPlugin extends Plugin
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUserJoin(final UserJoin event)
|
||||
private void onUserJoin(final UserJoin event)
|
||||
{
|
||||
updatePresence();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUserSync(final UserSync event)
|
||||
private void onUserSync(final UserSync event)
|
||||
{
|
||||
final PartyMember localMember = partyService.getLocalMember();
|
||||
|
||||
@@ -349,14 +361,12 @@ public class DiscordPlugin extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onUserPart(final UserPart event)
|
||||
private void onUserPart(final UserPart event)
|
||||
{
|
||||
updatePresence();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPartyChanged(final PartyChanged event)
|
||||
private void onPartyChanged(final PartyChanged event)
|
||||
{
|
||||
updatePresence();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user