Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3bd896c
add taskapp credentials config options
rmobis May 12, 2026
0d790fb
simplify debouncer and allow setting custom delay
rmobis May 16, 2026
ca936bf
move transparent.png sprite to the correct folder
rmobis May 16, 2026
ee165ed
use taskapp as data source
rmobis May 16, 2026
dfad9df
invalid auth token on credentials change
rmobis May 16, 2026
bcddc01
remove dev commands as they no longer work
rmobis May 16, 2026
2892807
logged failed attempt to load task list
rmobis May 16, 2026
e84e37c
make task app state immutable and improve thread safety
rmobis May 16, 2026
688461d
point to `127.0.0.1` for local development
rmobis May 16, 2026
357990f
set invalid token expiry date to Instant.MIN
rmobis May 16, 2026
e377b8d
use dedicate request classes for request bodies
rmobis May 17, 2026
10d234f
fix request/response serialization after new field naming strategy
rmobis May 17, 2026
b320bcb
skip auth on task-list request
rmobis May 17, 2026
a736f61
reimplement sync functionality through task app
rmobis May 17, 2026
5754756
add one-time task migration
rmobis May 27, 2026
bf340d1
prepare 2.0.0-beta2
rmobis May 27, 2026
59ff30e
check if can migrate when building sync tooltip
rmobis May 29, 2026
dc8f6b9
add login required overlay
rmobis Jun 2, 2026
3a3735a
don't actually overwrite other tooltips
rmobis Jun 2, 2026
ec54ef6
update build script and set build type in plugin properties
rmobis Jun 2, 2026
1d78bd9
bump version for beta3
rmobis Jun 2, 2026
ffc9c50
bring back jetbrains annotations
rmobis Jun 2, 2026
af0ae0d
set build to gradle not custom
rmobis Jun 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ plugins {
}

group = 'com.collectionlogmaster'
version = '1.3.1'
version = '2.0.0-beta3'

repositories {
mavenLocal()
Expand All @@ -30,28 +30,37 @@ repositories {
}

def runeLiteVersion = 'latest.release'
def pluginMainClass = 'com.collectionlogmaster.CollectionLogMasterPluginTest'

dependencies {
compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion

compileOnly 'org.jetbrains:annotations:23.0.0'
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'

testImplementation 'junit:junit:4.12'
testImplementation group: 'net.runelite', name:'client', version: runeLiteVersion
testImplementation group: 'net.runelite', name:'jshell', version: runeLiteVersion
testImplementation 'junit:junit:4.12'
testImplementation group: 'net.runelite', name:'client', version: runeLiteVersion
testImplementation group: 'net.runelite', name:'jshell', version: runeLiteVersion
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
options.release.set(11)
}

tasks.register('run', JavaExec) {
classpath = sourceSets.test.runtimeClasspath
mainClass = pluginMainClass

jvmArgs "-ea"
args "--developer-mode", "--debug"
}

tasks.register('shadowJar', Jar) {
dependsOn configurations.testRuntimeClasspath
manifest {
attributes('Main-Class': 'com.collectionlogmaster.CollectionLogMasterPluginTest', 'Multi-Release': true)
attributes('Main-Class': pluginMainClass, 'Multi-Release': true)
}

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
Expand Down
3 changes: 2 additions & 1 deletion runelite-plugin.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ displayName=Collection Log Master
author=ImTedious
description=In-game dashboard to roll your next grind; official plugin for the Taskman game mode
tags=task,tasker,taskman,taskapp,generate,collection,log,generatetask,tedious
plugins=com.collectionlogmaster.CollectionLogMasterPlugin
plugins=com.collectionlogmaster.CollectionLogMasterPlugin
build=gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,55 @@ public interface CollectionLogMasterConfig extends Config
{
String CONFIG_GROUP = "collection-log-master";

String TASK_APP_SECTION = "taskApp";
String TASK_APP_USERNAME = TASK_APP_SECTION + ".username";
String TASK_APP_PASSWORD = TASK_APP_SECTION + ".password";

String GENERAL_SECTION = "general";

String PLUGIN_VERSION_KEY = "plugin-version";
String IS_LMS_ENABLED_KEY = "isLMSEnabled";
String IS_COMMAND_ENABLED_KEY = "isCommandEnabled";

@ConfigSection(
name = "TaskApp Credentials",
description = "The credentials for your account in TaskApp (osrstaskapp.com)",
position = 10
)
String taskAppSection = TASK_APP_SECTION;

@ConfigItem(
keyName = TASK_APP_USERNAME,
name = "Username",
description = "Your account's username in TaskApp (osrstaskapp.com)",
section = taskAppSection,
position = 11
)
default String username()
{
return "";
}

@ConfigItem(
keyName = TASK_APP_PASSWORD,
name = "Password",
description = "Your account's password in TaskApp (osrstaskapp.com)",
section = taskAppSection,
secret = true,
position = 12
)
default String password()
{
return "";
}
Comment thread
rmobis marked this conversation as resolved.


@ConfigSection(
name = "General",
description = "General settings to control the plugin's behavior and appearance",
position = 20
)
String generalSection = GENERAL_SECTION;

@Range(
min = 1000,
max = 10000
Expand All @@ -24,7 +69,8 @@ public interface CollectionLogMasterConfig extends Config
keyName = "rollTime",
name = "Roll Time",
description = "How long new tasks will take to roll",
position = 1
section = generalSection,
position = 21
)
default int rollTime()
{
Expand All @@ -34,8 +80,9 @@ default int rollTime()
@ConfigItem(
keyName = "rollPastCompleted",
name = "Roll past completed",
description = "When rolling tasks, include those you've already completed in the roll animation. Helpful when you're getting to the end of a tier!",
position = 2
description = "Include tasks you've already completed in the roll animation. Helpful when you're getting to the end of a tier!",
section = generalSection,
position = 22
)
default boolean rollPastCompleted()
{
Expand All @@ -46,7 +93,8 @@ default boolean rollPastCompleted()
keyName = "hideBelow",
name = "Hide Tasks Below",
description = "Disabled the showing up/assigning of tasks at or below the specified tier",
position = 3
section = generalSection,
position = 23
)
default TaskTier hideBelow()
{
Expand All @@ -57,7 +105,8 @@ default TaskTier hideBelow()
keyName = "displayCurrentTaskOverlay",
name = "Display current task overlay",
description = "Enable an overlay showing the currently assigned task (when one exists)",
position = 5
section = generalSection,
position = 24
)
default boolean displayCurrentTaskOverlay()
{
Expand All @@ -68,37 +117,27 @@ default boolean displayCurrentTaskOverlay()
keyName = "dynamicTaskImages",
name = "Dynamic task images",
description = "Display dynamic task images based on required/acquired items",
position = 6
section = generalSection,
position = 25
)
default DynamicTaskImages dynamicTaskImages()
{
return DynamicTaskImages.COMPLETE;
}

@ConfigItem(
keyName = IS_LMS_ENABLED_KEY,
name = "Enable LMS tasks",
description = "Whether to include LMS tasks in the list.",
position = 7
)
default boolean isLMSEnabled()
{
return true;
}

@ConfigSection(
name = "!taskman Command",
description = "Configuration options for the !taskman command",
position = 8
position = 30
)
String command = "command";
String commandSection = "command";

@ConfigItem(
keyName = IS_COMMAND_ENABLED_KEY,
name = "Enable command",
description = "When you or others type !taskman in the chat, it will be replaced by your current task status",
section = command,
position = 0
section = commandSection,
position = 31
)
default boolean isCommandEnabled()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.collectionlogmaster;

import com.collectionlogmaster.command.DevCommandsManager;
import com.collectionlogmaster.command.TaskmanCommandManager;
import com.collectionlogmaster.input.MouseManager;
import com.collectionlogmaster.synchronization.clog.CollectionLogService;
import com.collectionlogmaster.task.TaskService;
import com.collectionlogmaster.taskapp.TaskService;
import com.collectionlogmaster.ui.InterfaceManager;
import com.collectionlogmaster.ui.TaskOverlay;
import com.collectionlogmaster.ui.TooltipOverlay;
import com.collectionlogmaster.util.GsonOverride;
import com.google.inject.Injector;
import com.google.inject.Provides;
Expand All @@ -33,6 +33,9 @@ public class CollectionLogMasterPlugin extends Plugin {
@Inject
protected TaskOverlay taskOverlay;

@Inject
protected TooltipOverlay tooltipOverlay;

@Inject
private OverlayManager overlayManager;

Expand All @@ -54,9 +57,6 @@ public class CollectionLogMasterPlugin extends Plugin {
@Inject
public TaskmanCommandManager taskmanCommand;

@Inject
public DevCommandsManager devCommands;

@Override
protected void startUp() {
CollectionLogMasterPlugin.staticInjector = getInjector();
Expand All @@ -67,9 +67,9 @@ protected void startUp() {
pluginUpdateNotifier.startUp();
interfaceManager.startUp();
taskmanCommand.startUp();
devCommands.startUp();
this.taskOverlay.setResizable(true);
this.overlayManager.add(this.taskOverlay);
this.overlayManager.add(this.tooltipOverlay);
}

@Override
Expand All @@ -80,7 +80,6 @@ protected void shutDown() {
pluginUpdateNotifier.shutDown();
interfaceManager.shutDown();
taskmanCommand.shutDown();
devCommands.shutDown();
this.overlayManager.remove(this.taskOverlay);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@
public class PluginUpdateNotifier extends EventBusSubscriber {
private static final String[] UPDATE_MESSAGES = {
"<colHIGHLIGHT>Collection Log Master updated to v" + getPluginVersion(),
"<colHIGHLIGHT>- Fixed issue with disabling LMS tasks while a LMS task is active",
"<colHIGHLIGHT>- Fixed issue overlay not being shown under some circumstances",
"<colHIGHLIGHT>- Thanks you for trying out the beta version! Please report any issues in Discord.",
};

@Inject
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import com.collectionlogmaster.domain.TaskTier;
import com.collectionlogmaster.domain.command.CommandRequest;
import com.collectionlogmaster.domain.command.CommandResponse;
import com.collectionlogmaster.task.TaskService;
import com.collectionlogmaster.taskapp.TaskService;
import com.collectionlogmaster.util.EventBusSubscriber;
import com.collectionlogmaster.util.HttpClient;
import com.collectionlogmaster.util.SimpleDebouncer;
Expand Down Expand Up @@ -112,7 +112,7 @@ private void executeCommand(ChatMessage chatMessage, String message) {
}

HttpUrl url = baseApiUrl.newBuilder().addPathSegment(senderName).build();
httpClient.getHttpRequestAsync(url.toString(), CommandResponse.class)
httpClient.get(url, CommandResponse.class)
.thenAccept(res ->
clientThread.invokeLater(() -> replaceChatMessage(chatMessage, res))
);
Expand Down Expand Up @@ -145,7 +145,8 @@ public void updateServerImmediately() {
float currentProgress = taskService.getProgress().get(currentTier) * 100;

CommandRequest data = new CommandRequest(taskId, taskService.getCurrentTier().displayName, (int) currentProgress);
httpClient.putHttpRequestAsync(url.toString(), GSON.toJson(data), null);

httpClient.put(url, data, null);
}

private void replaceChatMessage(ChatMessage chatMessage, CommandResponse res) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package com.collectionlogmaster.domain.command;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.RequiredArgsConstructor;

@Data
@RequiredArgsConstructor
public class CommandRequest {
@SerializedName("taskId")
private final String taskId;
private final String tier;
@SerializedName("progressPercentage")
private final int progressPercentage;
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.collectionlogmaster.domain.command;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

@Data
public class CommandResponse {
private CommandTask task;
private String tier;
@SerializedName("progressPercentage")
private int progressPercentage;
}

This file was deleted.

Loading
Loading