Merge remote-tracking branch 'ext_upstream/master' into master3
# Conflicts: # deobfuscator/pom.xml # deobfuscator/src/main/java/net/runelite/asm/attributes/Exceptions.java # deobfuscator/src/main/java/net/runelite/asm/attributes/annotation/Element.java # deobfuscator/src/main/java/net/runelite/asm/attributes/code/InstructionType.java # deobfuscator/src/main/java/net/runelite/asm/attributes/code/instruction/types/FieldInstruction.java # deobfuscator/src/main/java/net/runelite/asm/attributes/code/instruction/types/LVTInstruction.java # deobfuscator/src/main/java/net/runelite/asm/attributes/code/instructions/PutField.java # deobfuscator/src/main/java/net/runelite/asm/pool/Class.java # deobfuscator/src/main/java/net/runelite/asm/pool/Field.java # deobfuscator/src/main/java/net/runelite/deob/Deob.java # deobfuscator/src/main/java/net/runelite/deob/DeobProperties.java # deobfuscator/src/main/java/net/runelite/deob/clientver/VersionClassVisitor.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/lvt/LVTType.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/lvt/MapKey.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/mapping/ConstructorMapper.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/mapping/ExecutionMapper.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/mapping/Mapper.java # deobfuscator/src/main/java/net/runelite/deob/deobfuscators/mapping/ParallelExecutorMapping.java # deobfuscator/src/main/java/net/runelite/deob/updater/ParameterRenamer.java # deobfuscator/src/test/java/net/runelite/asm/annotations/MyAnnotation.java # deobfuscator/src/test/java/net/runelite/asm/execution/mapper/StaticStepTest.java # deobfuscator/src/test/java/net/runelite/asm/execution/tests/TableSwitch.java # deobfuscator/src/test/java/net/runelite/asm/signature/SignatureTest.java # deobfuscator/src/test/java/net/runelite/asm/visitors/ClassFileVisitorTest.java # deobfuscator/src/test/java/net/runelite/deob/TemporyFolderLocation.java # deobfuscator/src/test/java/net/runelite/deob/clientver/ClientVersionTest.java # deobfuscator/src/test/java/net/runelite/deob/deobfuscators/transformers/buffer/RuneliteBufferTest.java # deobfuscator/src/test/java/net/runelite/deob/deobfuscators/unusedclass/ClassA.java # deobfuscator/src/test/java/net/runelite/deob/deobfuscators/unusedclass/EmptyClass.java # deobfuscator/src/test/java/net/runelite/deob/deobfuscators/unusedclass/EmptyInterface.java # deobfuscator/src/test/java/net/runelite/osb/inject/FieldHook.java # injected-client/pom.xml # injector-plugin/pom.xml # injector-plugin/src/main/java/net/runelite/injector/Inject.java # injector-plugin/src/main/java/net/runelite/injector/InjectMojo.java # injector-plugin/src/main/java/net/runelite/injector/InjectionException.java # injector-plugin/src/main/java/net/runelite/injector/MixinInjector.java # injector-plugin/src/main/java/net/runelite/injector/raw/ClearColorBuffer.java # injector-plugin/src/main/java/net/runelite/injector/raw/DrawAfterWidgets.java # injector-plugin/src/main/java/net/runelite/injector/raw/RasterizerHook.java # pom.xml # runelite-api/src/main/java/net/runelite/api/Actor.java # runelite-api/src/main/java/net/runelite/api/Client.java # runelite-api/src/main/java/net/runelite/api/CollisionData.java # runelite-api/src/main/java/net/runelite/api/EquipmentInventorySlot.java # runelite-api/src/main/java/net/runelite/api/NPCDefinition.java # runelite-api/src/main/java/net/runelite/api/Perspective.java # runelite-api/src/main/java/net/runelite/api/coords/WorldArea.java # runelite-api/src/main/java/net/runelite/api/coords/WorldPoint.java # runelite-api/src/main/java/net/runelite/api/events/GraphicChanged.java # runelite-api/src/main/java/net/runelite/api/events/MenuOptionClicked.java # runelite-api/src/main/java/net/runelite/api/events/NpcActionChanged.java # runelite-api/src/main/java/net/runelite/api/events/PostItemDefinition.java # runelite-api/src/main/java/net/runelite/api/events/SpotAnimationChanged.java # runelite-api/src/main/java/net/runelite/api/vars/AccountType.java # runelite-api/src/main/java/net/runelite/mapping/Construct.java # runelite-api/src/main/java/net/runelite/mapping/Hook.java # runelite-api/src/main/java/net/runelite/mapping/Implements.java # runelite-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java # runelite-client/src/main/java/net/runelite/client/game/ItemManager.java # runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java # runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java # runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/MapClue.java # runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/highalchemy/HighAlchemyOverlay.java # runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java # runelite-client/src/main/java/net/runelite/client/plugins/interfacestyles/InterfaceStylesPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/inventorysetups/InventorySetupPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java # runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/objectindicators/ObjectIndicatorsPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java # runelite-client/src/main/java/net/runelite/client/plugins/pyramidplunder/PyramidPlunderOverlay.java # runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/banked/CriticalItem.java # runelite-client/src/main/java/net/runelite/client/plugins/wiki/WikiPlugin.java # runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java # runelite-client/src/main/java/net/runelite/client/ui/overlay/arrow/ArrowUtil.java # runelite-client/src/main/java/net/runelite/client/util/PvPUtil.java # runelite-client/src/test/java/net/runelite/client/plugins/cooking/CookingPluginTest.java # runelite-mixins/src/main/java/net/runelite/mixins/RSAbstractIndexCacheMixin.java # runelite-mixins/src/main/java/net/runelite/mixins/RSActorMixin.java # runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java # runelite-mixins/src/main/java/net/runelite/mixins/RSMessageMixin.java # runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerCompositionMixin.java # runelite-mixins/src/main/java/net/runelite/mixins/RSTileMixin.java # runescape-api/src/main/java/net/runelite/mapping/Implements.java # runescape-api/src/main/java/net/runelite/mapping/ObfuscatedSignature.java # runescape-api/src/main/java/net/runelite/rs/api/RSBufferProvider.java # runescape-api/src/main/java/net/runelite/rs/api/RSClient.java # runescape-api/src/main/java/net/runelite/rs/api/RSCollisionData.java # runescape-api/src/main/java/net/runelite/rs/api/RSCombatInfo1.java # runescape-api/src/main/java/net/runelite/rs/api/RSCombatInfoListHolder.java # runescape-api/src/main/java/net/runelite/rs/api/RSDecorativeObject.java # runescape-api/src/main/java/net/runelite/rs/api/RSFriendContainer.java # runescape-api/src/main/java/net/runelite/rs/api/RSGameShell.java # runescape-api/src/main/java/net/runelite/rs/api/RSGroundObject.java # runescape-api/src/main/java/net/runelite/rs/api/RSItem.java # runescape-api/src/main/java/net/runelite/rs/api/RSItemLayer.java # runescape-api/src/main/java/net/runelite/rs/api/RSIterableNodeDeque.java # runescape-api/src/main/java/net/runelite/rs/api/RSJagexLoginType.java # runescape-api/src/main/java/net/runelite/rs/api/RSKeyHandler.java # runescape-api/src/main/java/net/runelite/rs/api/RSMainBufferProvider.java # runescape-api/src/main/java/net/runelite/rs/api/RSMapElementConfig.java # runescape-api/src/main/java/net/runelite/rs/api/RSMessage.java # runescape-api/src/main/java/net/runelite/rs/api/RSMessageNode.java # runescape-api/src/main/java/net/runelite/rs/api/RSModel.java # runescape-api/src/main/java/net/runelite/rs/api/RSPlayerComposition.java # runescape-api/src/main/java/net/runelite/rs/api/RSRasterProvider.java # runescape-api/src/main/java/net/runelite/rs/api/RSSequenceDefinition.java # runescape-api/src/main/java/net/runelite/rs/api/RSSpritePixels.java # runescape-api/src/main/java/net/runelite/rs/api/RSWallObject.java # runescape-api/src/main/java/net/runelite/rs/api/RSWorldMap.java
This commit is contained in:
@@ -196,7 +196,7 @@ public class ItemManager
|
||||
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> itemCompositions;
|
||||
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
|
||||
@@ -284,7 +284,7 @@ public class ItemManager
|
||||
}
|
||||
});
|
||||
|
||||
itemCompositions = CacheBuilder.newBuilder()
|
||||
itemDefinitions = CacheBuilder.newBuilder()
|
||||
.maximumSize(1024L)
|
||||
.expireAfterAccess(1, TimeUnit.HOURS)
|
||||
.build(new CacheLoader<Integer, ItemDefinition>()
|
||||
@@ -356,14 +356,14 @@ public class ItemManager
|
||||
{
|
||||
if (event.getGameState() == GameState.HOPPING || event.getGameState() == GameState.LOGIN_SCREEN)
|
||||
{
|
||||
itemCompositions.invalidateAll();
|
||||
itemDefinitions.invalidateAll();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPostItemDefinition(PostItemDefinition event)
|
||||
{
|
||||
itemCompositions.put(event.getItemDefinition().getId(), event.getItemDefinition());
|
||||
itemDefinitions.put(event.getItemDefinition().getId(), event.getItemDefinition());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -373,7 +373,7 @@ public class ItemManager
|
||||
*/
|
||||
public void invalidateItemDefinitionCache()
|
||||
{
|
||||
itemCompositions.invalidateAll();
|
||||
itemDefinitions.invalidateAll();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -449,9 +449,9 @@ public class ItemManager
|
||||
@Nullable
|
||||
public ItemStats getItemStats(int itemId, boolean allowNote)
|
||||
{
|
||||
ItemDefinition itemComposition = getItemDefinition(itemId);
|
||||
ItemDefinition itemDefinition = getItemDefinition(itemId);
|
||||
|
||||
if (itemComposition == null || itemComposition.getName() == null || (!allowNote && itemComposition.getNote() != -1))
|
||||
if (itemDefinition == null || itemDefinition.getName() == null || (!allowNote && itemDefinition.getNote() != -1))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -490,7 +490,7 @@ public class ItemManager
|
||||
public ItemDefinition getItemDefinition(int itemId)
|
||||
{
|
||||
assert client.isClientThread() : "getItemDefinition must be called on client thread";
|
||||
return itemCompositions.getUnchecked(itemId);
|
||||
return itemDefinitions.getUnchecked(itemId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -498,16 +498,16 @@ public class ItemManager
|
||||
*/
|
||||
public int canonicalize(int itemID)
|
||||
{
|
||||
ItemDefinition itemComposition = getItemDefinition(itemID);
|
||||
ItemDefinition itemDefinition = getItemDefinition(itemID);
|
||||
|
||||
if (itemComposition.getNote() != -1)
|
||||
if (itemDefinition.getNote() != -1)
|
||||
{
|
||||
return itemComposition.getLinkedNoteId();
|
||||
return itemDefinition.getLinkedNoteId();
|
||||
}
|
||||
|
||||
if (itemComposition.getPlaceholderTemplateId() != -1)
|
||||
if (itemDefinition.getPlaceholderTemplateId() != -1)
|
||||
{
|
||||
return itemComposition.getPlaceholderId();
|
||||
return itemDefinition.getPlaceholderId();
|
||||
}
|
||||
|
||||
return WORN_ITEMS.getOrDefault(itemID, itemID);
|
||||
|
||||
@@ -344,8 +344,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener, KeyLis
|
||||
}
|
||||
|
||||
int itemId = item.getId();
|
||||
ItemDefinition itemComposition = itemManager.getItemDefinition(itemId);
|
||||
String name = itemComposition.getName();
|
||||
ItemDefinition itemDefinition = itemManager.getItemDefinition(itemId);
|
||||
String name = itemDefinition.getName();
|
||||
|
||||
// Get both tags and vartags and append * to end of vartags name
|
||||
Collection<String> tags = tagManager.getTags(itemId, false);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.chatcommands;
|
||||
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import com.google.inject.Provides;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
@@ -46,7 +47,6 @@ import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.KILL_LOGS_GROUP_ID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
package net.runelite.client.plugins.dailytaskindicators;
|
||||
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import com.google.inject.Provides;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.ChatMessageType;
|
||||
@@ -36,7 +37,6 @@ import net.runelite.api.VarPlayer;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.vars.AccountType;
|
||||
import net.runelite.client.chat.ChatColorType;
|
||||
import net.runelite.client.chat.ChatMessageBuilder;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Jeremy Plsek <https://github.com/jplsek>
|
||||
* 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.plugins.inventorygrid;
|
||||
|
||||
import net.runelite.client.config.Config;
|
||||
import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
|
||||
@ConfigGroup("inventorygrid")
|
||||
public interface InventoryGridConfig extends Config
|
||||
{
|
||||
@ConfigItem(
|
||||
keyName = "showItem",
|
||||
name = "Show item",
|
||||
description = "Show a preview of the item in the new slot"
|
||||
)
|
||||
default boolean showItem()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "showGrid",
|
||||
name = "Show grid",
|
||||
description = "Show a grid on the inventory while dragging"
|
||||
)
|
||||
default boolean showGrid()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "showHighlight",
|
||||
name = "Highlight background",
|
||||
description = "Show a green background highlight on the new slot"
|
||||
)
|
||||
default boolean showHighlight()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018, Jeremy Plsek <https://github.com/jplsek>
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* 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.plugins.inventorygrid;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provides;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Inventory Grid",
|
||||
description = "Shows a grid over the inventory and a preview of where items will be dragged",
|
||||
tags = {"items", "overlay"},
|
||||
enabledByDefault = false
|
||||
)
|
||||
public class InventoryGridPlugin extends Plugin
|
||||
{
|
||||
@Inject
|
||||
private InventoryGridOverlay overlay;
|
||||
|
||||
@Inject
|
||||
private OverlayManager overlayManager;
|
||||
|
||||
@Override
|
||||
public void startUp()
|
||||
{
|
||||
overlayManager.add(overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shutDown()
|
||||
{
|
||||
overlayManager.remove(overlay);
|
||||
}
|
||||
|
||||
@Provides
|
||||
InventoryGridConfig getConfig(ConfigManager configManager)
|
||||
{
|
||||
return configManager.getConfig(InventoryGridConfig.class);
|
||||
}
|
||||
}
|
||||
@@ -166,7 +166,7 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
if (!config.pasteEnabled() || (
|
||||
client.getGameState() != GameState.LOGIN_SCREEN &&
|
||||
client.getGameState() != GameState.LOGIN_SCREEN_AUTHENTICATOR))
|
||||
client.getGameState() != GameState.LOGIN_SCREEN_AUTHENTICATOR))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -220,4 +220,4 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,11 +30,12 @@ import java.awt.Graphics2D;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -31,11 +31,11 @@ import java.awt.Graphics2D;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.npcunaggroarea;
|
||||
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import java.awt.BasicStroke;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
@@ -36,7 +37,6 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.Perspective;
|
||||
import net.runelite.api.Point;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.npcunaggroarea;
|
||||
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.inject.Provides;
|
||||
@@ -52,7 +53,6 @@ import net.runelite.api.events.ConfigChanged;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.api.events.GameTick;
|
||||
import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.geometry.Geometry;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
|
||||
@@ -170,7 +170,7 @@ public class PvpToolsPlugin extends Plugin
|
||||
};
|
||||
|
||||
private final HotkeyListener renderselfHotkeyListener = new HotkeyListener(() -> config.renderSelf())
|
||||
{
|
||||
{ //TODO FIX
|
||||
public void hotkeyPressed()
|
||||
{
|
||||
//client.toggleRenderSelf();
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package net.runelite.client.plugins.timetracking.farming;
|
||||
|
||||
import net.runelite.api.vars.Autoweed;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Singleton;
|
||||
import java.time.Instant;
|
||||
@@ -34,7 +35,6 @@ import javax.annotation.Nullable;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.vars.Autoweed;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.plugins.timetracking.SummaryState;
|
||||
|
||||
@@ -37,7 +37,10 @@ import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.channels.ReadableByteChannel;
|
||||
import java.security.cert.Certificate;
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.CertificateFactory;
|
||||
@@ -54,6 +57,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import static net.runelite.client.RuneLite.RUNELITE_DIR;
|
||||
import static net.runelite.client.rs.ClientUpdateCheckMode.AUTO;
|
||||
import static net.runelite.client.rs.ClientUpdateCheckMode.CUSTOM;
|
||||
import static net.runelite.client.rs.ClientUpdateCheckMode.NONE;
|
||||
@@ -220,6 +224,48 @@ public class ClientLoader
|
||||
if (updateCheckMode == CUSTOM)
|
||||
{
|
||||
loadJar(zipFile, CUSTOMFILE);
|
||||
//TODO: Change this URL url = new URL("https://raw.githubusercontent.com/runelite-extended/maven-repo/master/artifacts/injected-client.jar");
|
||||
//TODO: Change this ReadableByteChannel readableByteChannel = Channels.newChannel(url.openStream());
|
||||
//TODO: Change this File INJECTED_CLIENT = new File(RUNELITE_DIR+"/injected-client.jar");
|
||||
//TODO: Change this INJECTED_CLIENT.mkdirs();
|
||||
//TODO: Change this if (INJECTED_CLIENT.exists())
|
||||
// {
|
||||
//TODO: Change this if (getFileSize(INJECTED_CLIENT.toURI().toURL())!= getFileSize(url))
|
||||
// {
|
||||
//TODO: Change this INJECTED_CLIENT.delete();
|
||||
//TODO: Change this INJECTED_CLIENT.createNewFile();
|
||||
//TODO: Change this System.out.println("Updating Injected Client");
|
||||
//TODO: Change this updateInjectedClient(readableByteChannel);
|
||||
//TODO: Change this }
|
||||
//TODO: Change this } else {
|
||||
//TODO: Change this INJECTED_CLIENT.createNewFile();
|
||||
//TODO: Change this System.out.println("Initializing Inject Client");
|
||||
//TODO: Change this updateInjectedClient(readableByteChannel);
|
||||
//TODO: Change this }
|
||||
//TODO: Change this
|
||||
//TODO: Change this JarInputStream fis = new JarInputStream(new FileInputStream(INJECTED_CLIENT));
|
||||
//TODO: Change this byte[] tmp = new byte[4096];
|
||||
//TODO: Change this ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024);
|
||||
//TODO: Change this for (; ; )
|
||||
//TODO: Change this {
|
||||
//TODO: Change this JarEntry metadata = fis.getNextJarEntry();
|
||||
//TODO: Change this if (metadata == null)
|
||||
//TODO: Change this {
|
||||
//TODO: Change this break;
|
||||
//TODO: Change this }
|
||||
//TODO: Change this
|
||||
//TODO: Change this buffer.reset();
|
||||
//TODO: Change this for (; ; )
|
||||
//TODO: Change this {
|
||||
//TODO: Change this int n = fis.read(tmp);
|
||||
//TODO: Change this if (n <= -1)
|
||||
//TODO: Change this {
|
||||
//TODO: Change this break;
|
||||
//TODO: Change this }
|
||||
//TODO: Change this buffer.write(tmp, 0, n);
|
||||
//TODO: Change this }
|
||||
//TODO: Change this zipFile.replace(metadata.getName(), buffer.toByteArray());
|
||||
// }
|
||||
}
|
||||
|
||||
String initialClass = config.getInitialClass();
|
||||
@@ -261,6 +307,48 @@ public class ClientLoader
|
||||
}
|
||||
}
|
||||
|
||||
private static int getFileSize(URL url)
|
||||
{
|
||||
URLConnection conn = null;
|
||||
try
|
||||
{
|
||||
conn = url.openConnection();
|
||||
if (conn instanceof HttpURLConnection)
|
||||
{
|
||||
((HttpURLConnection)conn).setRequestMethod("HEAD");
|
||||
}
|
||||
conn.getInputStream();
|
||||
return conn.getContentLength();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (conn instanceof HttpURLConnection)
|
||||
{
|
||||
((HttpURLConnection)conn).disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateInjectedClient(ReadableByteChannel readableByteChannel)
|
||||
{
|
||||
File INJECTED_CLIENT = new File(RUNELITE_DIR, "injected-client.jar");
|
||||
FileOutputStream fileOutputStream;
|
||||
try
|
||||
{
|
||||
fileOutputStream = new FileOutputStream(INJECTED_CLIENT);
|
||||
fileOutputStream.getChannel()
|
||||
.transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static Certificate[] getJagexCertificateChain() throws CertificateException
|
||||
{
|
||||
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
|
||||
|
||||
@@ -55,7 +55,7 @@ final class ClientPanel extends JPanel
|
||||
|
||||
add(client, BorderLayout.CENTER);
|
||||
|
||||
// This causes the whole game frame to be redrawn each frame instead
|
||||
// api.renderableThis causes the whole game frame to be redrawn each frame instead
|
||||
// of only the viewport, so we can hook to MainBufferProvider#draw
|
||||
// and draw anywhere without it leaving artifacts
|
||||
if (client instanceof Client)
|
||||
|
||||
Reference in New Issue
Block a user