From 9192ed51f2454e57bbb5a6012e12e7a7475d363e Mon Sep 17 00:00:00 2001 From: Ganom Date: Tue, 14 Jan 2020 21:53:56 -0500 Subject: [PATCH] tmorph: use interactive panel rather than complex strings. database: GenerateClasses now uses proper directory. --- .../client/database/GenerateClasses.java | 2 +- .../client/database/data/DefaultCatalog.java | 6 +- .../client/database/data/Indexes.java | 17 +- .../runelite/client/database/data/Keys.java | 24 +- .../runelite/client/database/data/Public.java | 16 +- .../runelite/client/database/data/Tables.java | 18 +- .../data/tables/Loottrackerevents.java | 47 +- .../database/data/tables/Loottrackerlink.java | 65 +-- .../database/data/tables/Loottrackerloot.java | 45 +- .../database/data/tables/TmorphSets.java | 196 +++++++ .../client/database/data/tables/User.java | 43 +- .../records/LoottrackereventsRecord.java | 66 +-- .../tables/records/LoottrackerlinkRecord.java | 81 +-- .../tables/records/LoottrackerlootRecord.java | 54 +- .../data/tables/records/TmorphSetsRecord.java | 503 ++++++++++++++++++ .../data/tables/records/UserRecord.java | 42 +- .../runelite/client/plugins/tmorph/Parse.java | 47 -- .../client/plugins/tmorph/TMorph.java | 131 ++--- .../client/plugins/tmorph/TMorphConfig.java | 80 --- .../client/plugins/tmorph/TmorphSet.java | 41 ++ .../client/plugins/tmorph/ui/EquipSlot.java | 123 +++++ .../client/plugins/tmorph/ui/TPanel.java | 439 +++++++++++++++ 22 files changed, 1496 insertions(+), 590 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/database/data/tables/TmorphSets.java create mode 100644 runelite-client/src/main/java/net/runelite/client/database/data/tables/records/TmorphSetsRecord.java delete mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/tmorph/Parse.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TmorphSet.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/EquipSlot.java create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/TPanel.java diff --git a/runelite-client/src/main/java/net/runelite/client/database/GenerateClasses.java b/runelite-client/src/main/java/net/runelite/client/database/GenerateClasses.java index dc595527d5..f6125b55e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/GenerateClasses.java +++ b/runelite-client/src/main/java/net/runelite/client/database/GenerateClasses.java @@ -26,7 +26,7 @@ public class GenerateClasses ) .withTarget(new Target() .withPackageName("net.runelite.client.database.data") - .withDirectory("runelite-client/src/main/java/net/runelite/client/database/data") + .withDirectory("runelite-client/src/main/java/") ) ); diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/DefaultCatalog.java b/runelite-client/src/main/java/net/runelite/client/database/data/DefaultCatalog.java index 4a2a9d4eff..139bcaf234 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/DefaultCatalog.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/DefaultCatalog.java @@ -7,7 +7,7 @@ package net.runelite.client.database.data; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import org.jooq.Schema; import org.jooq.impl.CatalogImpl; @@ -18,7 +18,7 @@ import org.jooq.impl.CatalogImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -26,7 +26,7 @@ import org.jooq.impl.CatalogImpl; public class DefaultCatalog extends CatalogImpl { - private static final long serialVersionUID = 836257769; + private static final long serialVersionUID = -102989253; /** * The reference instance of diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/Indexes.java b/runelite-client/src/main/java/net/runelite/client/database/data/Indexes.java index b736e0093e..72626efa54 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/Indexes.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/Indexes.java @@ -4,10 +4,11 @@ package net.runelite.client.database.data; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.Loottrackerevents; import net.runelite.client.database.data.tables.Loottrackerlink; import net.runelite.client.database.data.tables.Loottrackerloot; +import net.runelite.client.database.data.tables.TmorphSets; import net.runelite.client.database.data.tables.User; import org.jooq.Index; import org.jooq.OrderField; @@ -20,7 +21,7 @@ import org.jooq.impl.Internal; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -33,11 +34,13 @@ public class Indexes // ------------------------------------------------------------------------- public static final Index PRIMARY_KEY_B = Indexes0.PRIMARY_KEY_B; + public static final Index FK_LOOTTRACKERDROP_INDEX_6 = Indexes0.FK_LOOTTRACKERDROP_INDEX_6; public static final Index FK_LOOTTRACKEREVENT_INDEX_6 = Indexes0.FK_LOOTTRACKEREVENT_INDEX_6; - public static final Index FK_LOOTTRACKERLOOT_INDEX_6 = Indexes0.FK_LOOTTRACKERLOOT_INDEX_6; - public static final Index PRIMARY_KEY_6B = Indexes0.PRIMARY_KEY_6B; + public static final Index FK_USER_INDEX_6 = Indexes0.FK_USER_INDEX_6; public static final Index PRIMARY_KEY_6 = Indexes0.PRIMARY_KEY_6; + public static final Index TMORPH_SETS_SET_NAME_UINDEX = Indexes0.TMORPH_SETS_SET_NAME_UINDEX; public static final Index PRIMARY_KEY_2 = Indexes0.PRIMARY_KEY_2; + public static final Index UN_USERNAME_INDEX_2 = Indexes0.UN_USERNAME_INDEX_2; // ------------------------------------------------------------------------- // [#1459] distribute members to avoid static initialisers > 64kb @@ -46,10 +49,12 @@ public class Indexes private static class Indexes0 { public static Index PRIMARY_KEY_B = Internal.createIndex("PRIMARY_KEY_B", Loottrackerevents.LOOTTRACKEREVENTS, new OrderField[]{Loottrackerevents.LOOTTRACKEREVENTS.UNIQUEID}, true); + public static Index FK_LOOTTRACKERDROP_INDEX_6 = Internal.createIndex("FK_LOOTTRACKERDROP_INDEX_6", Loottrackerlink.LOOTTRACKERLINK, new OrderField[]{Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID}, false); public static Index FK_LOOTTRACKEREVENT_INDEX_6 = Internal.createIndex("FK_LOOTTRACKEREVENT_INDEX_6", Loottrackerlink.LOOTTRACKERLINK, new OrderField[]{Loottrackerlink.LOOTTRACKERLINK.EVENTUNIQUEID}, false); - public static Index FK_LOOTTRACKERLOOT_INDEX_6 = Internal.createIndex("FK_LOOTTRACKERLOOT_INDEX_6", Loottrackerlink.LOOTTRACKERLINK, new OrderField[]{Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID}, false); - public static Index PRIMARY_KEY_6B = Internal.createIndex("PRIMARY_KEY_6B", Loottrackerlink.LOOTTRACKERLINK, new OrderField[]{Loottrackerlink.LOOTTRACKERLINK.LINKUNIQUEID}, true); + public static Index FK_USER_INDEX_6 = Internal.createIndex("FK_USER_INDEX_6", Loottrackerlink.LOOTTRACKERLINK, new OrderField[]{Loottrackerlink.LOOTTRACKERLINK.USERUNIQUEID}, false); public static Index PRIMARY_KEY_6 = Internal.createIndex("PRIMARY_KEY_6", Loottrackerloot.LOOTTRACKERLOOT, new OrderField[]{Loottrackerloot.LOOTTRACKERLOOT.UNIQUEID}, true); + public static Index TMORPH_SETS_SET_NAME_UINDEX = Internal.createIndex("TMORPH_SETS_SET_NAME_UINDEX", TmorphSets.TMORPH_SETS, new OrderField[]{TmorphSets.TMORPH_SETS.SET_NAME}, true); public static Index PRIMARY_KEY_2 = Internal.createIndex("PRIMARY_KEY_2", User.USER, new OrderField[]{User.USER.UNIQUEID}, true); + public static Index UN_USERNAME_INDEX_2 = Internal.createIndex("UN_USERNAME_INDEX_2", User.USER, new OrderField[]{User.USER.USERNAME}, true); } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/Keys.java b/runelite-client/src/main/java/net/runelite/client/database/data/Keys.java index fc561055c9..2f01544f08 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/Keys.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/Keys.java @@ -4,7 +4,7 @@ package net.runelite.client.database.data; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.Loottrackerevents; import net.runelite.client.database.data.tables.Loottrackerlink; import net.runelite.client.database.data.tables.Loottrackerloot; @@ -25,7 +25,7 @@ import org.jooq.impl.Internal; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -42,17 +42,17 @@ public class Keys // UNIQUE and PRIMARY KEY definitions // ------------------------------------------------------------------------- - public static final UniqueKey PK_EVENTUNIQUEID = UniqueKeys0.PK_EVENTUNIQUEID; - public static final UniqueKey PK_LOOTTRACKERLINK = UniqueKeys0.PK_LOOTTRACKERLINK; - public static final UniqueKey PK_LOOTUNIQUEID = UniqueKeys0.PK_LOOTUNIQUEID; + public static final UniqueKey PK_LOOTTRACKEREVENTS = UniqueKeys0.PK_LOOTTRACKEREVENTS; + public static final UniqueKey PK_LOOTTRACKERDROPS = UniqueKeys0.PK_LOOTTRACKERDROPS; public static final UniqueKey PK_USER = UniqueKeys0.PK_USER; + public static final UniqueKey UN_USERNAME = UniqueKeys0.UN_USERNAME; // ------------------------------------------------------------------------- // FOREIGN KEY definitions // ------------------------------------------------------------------------- public static final ForeignKey FK_LOOTTRACKEREVENT = ForeignKeys0.FK_LOOTTRACKEREVENT; - public static final ForeignKey FK_LOOTTRACKERLOOT = ForeignKeys0.FK_LOOTTRACKERLOOT; + public static final ForeignKey FK_LOOTTRACKERDROP = ForeignKeys0.FK_LOOTTRACKERDROP; public static final ForeignKey FK_USER = ForeignKeys0.FK_USER; // ------------------------------------------------------------------------- @@ -61,16 +61,16 @@ public class Keys private static class UniqueKeys0 { - public static final UniqueKey PK_EVENTUNIQUEID = Internal.createUniqueKey(Loottrackerevents.LOOTTRACKEREVENTS, "PK_EVENTUNIQUEID", Loottrackerevents.LOOTTRACKEREVENTS.UNIQUEID); - public static final UniqueKey PK_LOOTTRACKERLINK = Internal.createUniqueKey(Loottrackerlink.LOOTTRACKERLINK, "PK_LOOTTRACKERLINK", Loottrackerlink.LOOTTRACKERLINK.LINKUNIQUEID); - public static final UniqueKey PK_LOOTUNIQUEID = Internal.createUniqueKey(Loottrackerloot.LOOTTRACKERLOOT, "PK_LOOTUNIQUEID", Loottrackerloot.LOOTTRACKERLOOT.UNIQUEID); + public static final UniqueKey PK_LOOTTRACKEREVENTS = Internal.createUniqueKey(Loottrackerevents.LOOTTRACKEREVENTS, "PK_LOOTTRACKEREVENTS", Loottrackerevents.LOOTTRACKEREVENTS.UNIQUEID); + public static final UniqueKey PK_LOOTTRACKERDROPS = Internal.createUniqueKey(Loottrackerloot.LOOTTRACKERLOOT, "PK_LOOTTRACKERDROPS", Loottrackerloot.LOOTTRACKERLOOT.UNIQUEID); public static final UniqueKey PK_USER = Internal.createUniqueKey(User.USER, "PK_USER", User.USER.UNIQUEID); + public static final UniqueKey UN_USERNAME = Internal.createUniqueKey(User.USER, "UN_USERNAME", User.USER.USERNAME); } private static class ForeignKeys0 { - public static final ForeignKey FK_LOOTTRACKEREVENT = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_EVENTUNIQUEID, Loottrackerlink.LOOTTRACKERLINK, "FK_LOOTTRACKEREVENT", Loottrackerlink.LOOTTRACKERLINK.EVENTUNIQUEID); - public static final ForeignKey FK_LOOTTRACKERLOOT = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_LOOTUNIQUEID, Loottrackerlink.LOOTTRACKERLINK, "FK_LOOTTRACKERLOOT", Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID); - public static final ForeignKey FK_USER = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_USER, Loottrackerlink.LOOTTRACKERLINK, "FK_USER", Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID); + public static final ForeignKey FK_LOOTTRACKEREVENT = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_LOOTTRACKEREVENTS, Loottrackerlink.LOOTTRACKERLINK, "FK_LOOTTRACKEREVENT", Loottrackerlink.LOOTTRACKERLINK.EVENTUNIQUEID); + public static final ForeignKey FK_LOOTTRACKERDROP = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_LOOTTRACKERDROPS, Loottrackerlink.LOOTTRACKERLINK, "FK_LOOTTRACKERDROP", Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID); + public static final ForeignKey FK_USER = Internal.createForeignKey(net.runelite.client.database.data.Keys.PK_USER, Loottrackerlink.LOOTTRACKERLINK, "FK_USER", Loottrackerlink.LOOTTRACKERLINK.USERUNIQUEID); } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/Public.java b/runelite-client/src/main/java/net/runelite/client/database/data/Public.java index 7120f8ad40..b560fe5538 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/Public.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/Public.java @@ -7,10 +7,11 @@ package net.runelite.client.database.data; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.Loottrackerevents; import net.runelite.client.database.data.tables.Loottrackerlink; import net.runelite.client.database.data.tables.Loottrackerloot; +import net.runelite.client.database.data.tables.TmorphSets; import net.runelite.client.database.data.tables.User; import org.jooq.Catalog; import org.jooq.Table; @@ -23,7 +24,7 @@ import org.jooq.impl.SchemaImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -31,7 +32,7 @@ import org.jooq.impl.SchemaImpl; public class Public extends SchemaImpl { - private static final long serialVersionUID = 1499404561; + private static final long serialVersionUID = 1268129010; /** * The reference instance of PUBLIC @@ -53,6 +54,11 @@ public class Public extends SchemaImpl */ public final Loottrackerloot LOOTTRACKERLOOT = net.runelite.client.database.data.tables.Loottrackerloot.LOOTTRACKERLOOT; + /** + * The table PUBLIC.TMORPH_SETS. + */ + public final TmorphSets TMORPH_SETS = net.runelite.client.database.data.tables.TmorphSets.TMORPH_SETS; + /** * The table PUBLIC.USER. */ @@ -67,9 +73,6 @@ public class Public extends SchemaImpl } - /** - * {@inheritDoc} - */ @Override public Catalog getCatalog() { @@ -90,6 +93,7 @@ public class Public extends SchemaImpl Loottrackerevents.LOOTTRACKEREVENTS, Loottrackerlink.LOOTTRACKERLINK, Loottrackerloot.LOOTTRACKERLOOT, + TmorphSets.TMORPH_SETS, User.USER); } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/Tables.java b/runelite-client/src/main/java/net/runelite/client/database/data/Tables.java index f55ce70631..0b8ca41d45 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/Tables.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/Tables.java @@ -4,10 +4,11 @@ package net.runelite.client.database.data; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.Loottrackerevents; import net.runelite.client.database.data.tables.Loottrackerlink; import net.runelite.client.database.data.tables.Loottrackerloot; +import net.runelite.client.database.data.tables.TmorphSets; import net.runelite.client.database.data.tables.User; @@ -17,7 +18,7 @@ import net.runelite.client.database.data.tables.User; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -28,20 +29,25 @@ public class Tables /** * The table PUBLIC.LOOTTRACKEREVENTS. */ - public static final Loottrackerevents LOOTTRACKEREVENTS = net.runelite.client.database.data.tables.Loottrackerevents.LOOTTRACKEREVENTS; + public static final Loottrackerevents LOOTTRACKEREVENTS = Loottrackerevents.LOOTTRACKEREVENTS; /** * The table PUBLIC.LOOTTRACKERLINK. */ - public static final Loottrackerlink LOOTTRACKERLINK = net.runelite.client.database.data.tables.Loottrackerlink.LOOTTRACKERLINK; + public static final Loottrackerlink LOOTTRACKERLINK = Loottrackerlink.LOOTTRACKERLINK; /** * The table PUBLIC.LOOTTRACKERLOOT. */ - public static final Loottrackerloot LOOTTRACKERLOOT = net.runelite.client.database.data.tables.Loottrackerloot.LOOTTRACKERLOOT; + public static final Loottrackerloot LOOTTRACKERLOOT = Loottrackerloot.LOOTTRACKERLOOT; + + /** + * The table PUBLIC.TMORPH_SETS. + */ + public static final TmorphSets TMORPH_SETS = TmorphSets.TMORPH_SETS; /** * The table PUBLIC.USER. */ - public static final User USER = net.runelite.client.database.data.tables.User.USER; + public static final User USER = User.USER; } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerevents.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerevents.java index d139de8d1f..5bceae62d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerevents.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerevents.java @@ -8,7 +8,7 @@ import java.sql.Timestamp; import java.util.Arrays; import java.util.List; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.Indexes; import net.runelite.client.database.data.Keys; import net.runelite.client.database.data.Public; @@ -18,6 +18,7 @@ import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; import org.jooq.Record; +import org.jooq.Row4; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -32,7 +33,7 @@ import org.jooq.impl.TableImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -40,7 +41,7 @@ import org.jooq.impl.TableImpl; public class Loottrackerevents extends TableImpl { - private static final long serialVersionUID = -824670812; + private static final long serialVersionUID = 1578403652; /** * The reference instance of PUBLIC.LOOTTRACKEREVENTS @@ -59,22 +60,22 @@ public class Loottrackerevents extends TableImpl /** * The column PUBLIC.LOOTTRACKEREVENTS.UNIQUEID. */ - public final TableField UNIQUEID = createField("UNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField UNIQUEID = createField(DSL.name("UNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKEREVENTS.EVENTID. */ - public final TableField EVENTID = createField("EVENTID", org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); + public final TableField EVENTID = createField(DSL.name("EVENTID"), org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKEREVENTS.TYPE. */ - public final TableField TYPE = createField("TYPE", org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); + public final TableField TYPE = createField(DSL.name("TYPE"), org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKEREVENTS.TIME. */ - public final TableField TIME = createField("TIME", org.jooq.impl.SQLDataType.TIMESTAMP.precision(6).nullable(false), this, ""); + public final TableField TIME = createField(DSL.name("TIME"), org.jooq.impl.SQLDataType.TIMESTAMP.precision(6).nullable(false), this, ""); /** * Create a PUBLIC.LOOTTRACKEREVENTS table reference @@ -115,54 +116,36 @@ public class Loottrackerevents extends TableImpl super(child, key, LOOTTRACKEREVENTS); } - /** - * {@inheritDoc} - */ @Override public Schema getSchema() { return Public.PUBLIC; } - /** - * {@inheritDoc} - */ @Override public List getIndexes() { return Arrays.asList(Indexes.PRIMARY_KEY_B); } - /** - * {@inheritDoc} - */ @Override public UniqueKey getPrimaryKey() { - return Keys.PK_EVENTUNIQUEID; + return Keys.PK_LOOTTRACKEREVENTS; } - /** - * {@inheritDoc} - */ @Override public List> getKeys() { - return Arrays.>asList(Keys.PK_EVENTUNIQUEID); + return Arrays.>asList(Keys.PK_LOOTTRACKEREVENTS); } - /** - * {@inheritDoc} - */ @Override public Loottrackerevents as(String alias) { return new Loottrackerevents(DSL.name(alias), this); } - /** - * {@inheritDoc} - */ @Override public Loottrackerevents as(Name alias) { @@ -186,4 +169,14 @@ public class Loottrackerevents extends TableImpl { return new Loottrackerevents(name, null); } + + // ------------------------------------------------------------------------- + // Row4 type methods + // ------------------------------------------------------------------------- + + @Override + public Row4 fieldsRow() + { + return (Row4) super.fieldsRow(); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerlink.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerlink.java index c720d8e5f5..f800608007 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerlink.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerlink.java @@ -7,7 +7,7 @@ package net.runelite.client.database.data.tables; import java.util.Arrays; import java.util.List; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.Indexes; import net.runelite.client.database.data.Keys; import net.runelite.client.database.data.Public; @@ -17,10 +17,10 @@ import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; import org.jooq.Record; +import org.jooq.Row4; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; -import org.jooq.UniqueKey; import org.jooq.impl.DSL; import org.jooq.impl.TableImpl; @@ -31,7 +31,7 @@ import org.jooq.impl.TableImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -39,7 +39,7 @@ import org.jooq.impl.TableImpl; public class Loottrackerlink extends TableImpl { - private static final long serialVersionUID = 1145289106; + private static final long serialVersionUID = -1694278583; /** * The reference instance of PUBLIC.LOOTTRACKERLINK @@ -58,22 +58,22 @@ public class Loottrackerlink extends TableImpl /** * The column PUBLIC.LOOTTRACKERLINK.LINKUNIQUEID. */ - public final TableField LINKUNIQUEID = createField("LINKUNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField LINKUNIQUEID = createField(DSL.name("LINKUNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKERLINK.EVENTUNIQUEID. */ - public final TableField EVENTUNIQUEID = createField("EVENTUNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField EVENTUNIQUEID = createField(DSL.name("EVENTUNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKERLINK.DROPUNIQUEID. */ - public final TableField DROPUNIQUEID = createField("DROPUNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField DROPUNIQUEID = createField(DSL.name("DROPUNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKERLINK.USERUNIQUEID. */ - public final TableField USERUNIQUEID = createField("USERUNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField USERUNIQUEID = createField(DSL.name("USERUNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * Create a PUBLIC.LOOTTRACKERLINK table reference @@ -114,49 +114,22 @@ public class Loottrackerlink extends TableImpl super(child, key, LOOTTRACKERLINK); } - /** - * {@inheritDoc} - */ @Override public Schema getSchema() { return Public.PUBLIC; } - /** - * {@inheritDoc} - */ @Override public List getIndexes() { - return Arrays.asList(Indexes.FK_LOOTTRACKEREVENT_INDEX_6, Indexes.FK_LOOTTRACKERLOOT_INDEX_6, Indexes.PRIMARY_KEY_6B); + return Arrays.asList(Indexes.FK_LOOTTRACKERDROP_INDEX_6, Indexes.FK_LOOTTRACKEREVENT_INDEX_6, Indexes.FK_USER_INDEX_6); } - /** - * {@inheritDoc} - */ - @Override - public UniqueKey getPrimaryKey() - { - return Keys.PK_LOOTTRACKERLINK; - } - - /** - * {@inheritDoc} - */ - @Override - public List> getKeys() - { - return Arrays.>asList(Keys.PK_LOOTTRACKERLINK); - } - - /** - * {@inheritDoc} - */ @Override public List> getReferences() { - return Arrays.>asList(Keys.FK_LOOTTRACKEREVENT, Keys.FK_LOOTTRACKERLOOT, Keys.FK_USER); + return Arrays.>asList(Keys.FK_LOOTTRACKEREVENT, Keys.FK_LOOTTRACKERDROP, Keys.FK_USER); } public Loottrackerevents loottrackerevents() @@ -166,7 +139,7 @@ public class Loottrackerlink extends TableImpl public Loottrackerloot loottrackerloot() { - return new Loottrackerloot(this, Keys.FK_LOOTTRACKERLOOT); + return new Loottrackerloot(this, Keys.FK_LOOTTRACKERDROP); } public User user() @@ -174,18 +147,12 @@ public class Loottrackerlink extends TableImpl return new User(this, Keys.FK_USER); } - /** - * {@inheritDoc} - */ @Override public Loottrackerlink as(String alias) { return new Loottrackerlink(DSL.name(alias), this); } - /** - * {@inheritDoc} - */ @Override public Loottrackerlink as(Name alias) { @@ -209,4 +176,14 @@ public class Loottrackerlink extends TableImpl { return new Loottrackerlink(name, null); } + + // ------------------------------------------------------------------------- + // Row4 type methods + // ------------------------------------------------------------------------- + + @Override + public Row4 fieldsRow() + { + return (Row4) super.fieldsRow(); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerloot.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerloot.java index 6ea79852d8..a9d6b574a3 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerloot.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/Loottrackerloot.java @@ -7,7 +7,7 @@ package net.runelite.client.database.data.tables; import java.util.Arrays; import java.util.List; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.Indexes; import net.runelite.client.database.data.Keys; import net.runelite.client.database.data.Public; @@ -17,6 +17,7 @@ import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; import org.jooq.Record; +import org.jooq.Row3; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -31,7 +32,7 @@ import org.jooq.impl.TableImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -39,7 +40,7 @@ import org.jooq.impl.TableImpl; public class Loottrackerloot extends TableImpl { - private static final long serialVersionUID = 1952959378; + private static final long serialVersionUID = 1461948279; /** * The reference instance of PUBLIC.LOOTTRACKERLOOT @@ -58,17 +59,17 @@ public class Loottrackerloot extends TableImpl /** * The column PUBLIC.LOOTTRACKERLOOT.UNIQUEID. */ - public final TableField UNIQUEID = createField("UNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField UNIQUEID = createField(DSL.name("UNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKERLOOT.ITEMID. */ - public final TableField ITEMID = createField("ITEMID", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + public final TableField ITEMID = createField(DSL.name("ITEMID"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); /** * The column PUBLIC.LOOTTRACKERLOOT.QUANTITY. */ - public final TableField QUANTITY = createField("QUANTITY", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + public final TableField QUANTITY = createField(DSL.name("QUANTITY"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); /** * Create a PUBLIC.LOOTTRACKERLOOT table reference @@ -109,54 +110,36 @@ public class Loottrackerloot extends TableImpl super(child, key, LOOTTRACKERLOOT); } - /** - * {@inheritDoc} - */ @Override public Schema getSchema() { return Public.PUBLIC; } - /** - * {@inheritDoc} - */ @Override public List getIndexes() { return Arrays.asList(Indexes.PRIMARY_KEY_6); } - /** - * {@inheritDoc} - */ @Override public UniqueKey getPrimaryKey() { - return Keys.PK_LOOTUNIQUEID; + return Keys.PK_LOOTTRACKERDROPS; } - /** - * {@inheritDoc} - */ @Override public List> getKeys() { - return Arrays.>asList(Keys.PK_LOOTUNIQUEID); + return Arrays.>asList(Keys.PK_LOOTTRACKERDROPS); } - /** - * {@inheritDoc} - */ @Override public Loottrackerloot as(String alias) { return new Loottrackerloot(DSL.name(alias), this); } - /** - * {@inheritDoc} - */ @Override public Loottrackerloot as(Name alias) { @@ -180,4 +163,14 @@ public class Loottrackerloot extends TableImpl { return new Loottrackerloot(name, null); } + + // ------------------------------------------------------------------------- + // Row3 type methods + // ------------------------------------------------------------------------- + + @Override + public Row3 fieldsRow() + { + return (Row3) super.fieldsRow(); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/TmorphSets.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/TmorphSets.java new file mode 100644 index 0000000000..fcc76b8504 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/TmorphSets.java @@ -0,0 +1,196 @@ +/* + * This file is generated by jOOQ. + */ +package net.runelite.client.database.data.tables; + + +import java.util.Arrays; +import java.util.List; +import javax.annotation.processing.Generated; +import net.runelite.client.database.data.Indexes; +import net.runelite.client.database.data.Public; +import net.runelite.client.database.data.tables.records.TmorphSetsRecord; +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.Index; +import org.jooq.Name; +import org.jooq.Record; +import org.jooq.Row10; +import org.jooq.Schema; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.impl.DSL; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@Generated( + value = { + "http://www.jooq.org", + "jOOQ version:3.12.3" + }, + comments = "This class is generated by jOOQ" +) +@SuppressWarnings({"all", "unchecked", "rawtypes"}) +public class TmorphSets extends TableImpl +{ + + private static final long serialVersionUID = -2027086786; + + /** + * The reference instance of PUBLIC.TMORPH_SETS + */ + public static final TmorphSets TMORPH_SETS = new TmorphSets(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() + { + return TmorphSetsRecord.class; + } + + /** + * The column PUBLIC.TMORPH_SETS.SET_NAME. + */ + public final TableField SET_NAME = createField(DSL.name("SET_NAME"), org.jooq.impl.SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.HELMET. + */ + public final TableField HELMET = createField(DSL.name("HELMET"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.CAPE. + */ + public final TableField CAPE = createField(DSL.name("CAPE"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.AMULET. + */ + public final TableField AMULET = createField(DSL.name("AMULET"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.WEAPON. + */ + public final TableField WEAPON = createField(DSL.name("WEAPON"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.TORSO. + */ + public final TableField TORSO = createField(DSL.name("TORSO"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.SHIELD. + */ + public final TableField SHIELD = createField(DSL.name("SHIELD"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.LEGS. + */ + public final TableField LEGS = createField(DSL.name("LEGS"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.HANDS. + */ + public final TableField HANDS = createField(DSL.name("HANDS"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column PUBLIC.TMORPH_SETS.BOOTS. + */ + public final TableField BOOTS = createField(DSL.name("BOOTS"), org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * Create a PUBLIC.TMORPH_SETS table reference + */ + public TmorphSets() + { + this(DSL.name("TMORPH_SETS"), null); + } + + /** + * Create an aliased PUBLIC.TMORPH_SETS table reference + */ + public TmorphSets(String alias) + { + this(DSL.name(alias), TMORPH_SETS); + } + + /** + * Create an aliased PUBLIC.TMORPH_SETS table reference + */ + public TmorphSets(Name alias) + { + this(alias, TMORPH_SETS); + } + + private TmorphSets(Name alias, Table aliased) + { + this(alias, aliased, null); + } + + private TmorphSets(Name alias, Table aliased, Field[] parameters) + { + super(alias, null, aliased, parameters, DSL.comment("")); + } + + public TmorphSets(Table child, ForeignKey key) + { + super(child, key, TMORPH_SETS); + } + + @Override + public Schema getSchema() + { + return Public.PUBLIC; + } + + @Override + public List getIndexes() + { + return Arrays.asList(Indexes.TMORPH_SETS_SET_NAME_UINDEX); + } + + @Override + public TmorphSets as(String alias) + { + return new TmorphSets(DSL.name(alias), this); + } + + @Override + public TmorphSets as(Name alias) + { + return new TmorphSets(alias, this); + } + + /** + * Rename this table + */ + @Override + public TmorphSets rename(String name) + { + return new TmorphSets(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public TmorphSets rename(Name name) + { + return new TmorphSets(name, null); + } + + // ------------------------------------------------------------------------- + // Row10 type methods + // ------------------------------------------------------------------------- + + @Override + public Row10 fieldsRow() + { + return (Row10) super.fieldsRow(); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/User.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/User.java index b9295a486d..15588c223d 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/User.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/User.java @@ -7,7 +7,7 @@ package net.runelite.client.database.data.tables; import java.util.Arrays; import java.util.List; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.Indexes; import net.runelite.client.database.data.Keys; import net.runelite.client.database.data.Public; @@ -17,6 +17,7 @@ import org.jooq.ForeignKey; import org.jooq.Index; import org.jooq.Name; import org.jooq.Record; +import org.jooq.Row2; import org.jooq.Schema; import org.jooq.Table; import org.jooq.TableField; @@ -31,7 +32,7 @@ import org.jooq.impl.TableImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -39,7 +40,7 @@ import org.jooq.impl.TableImpl; public class User extends TableImpl { - private static final long serialVersionUID = 270848699; + private static final long serialVersionUID = -668009102; /** * The reference instance of PUBLIC.USER @@ -58,12 +59,12 @@ public class User extends TableImpl /** * The column PUBLIC.USER.UNIQUEID. */ - public final TableField UNIQUEID = createField("UNIQUEID", org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); + public final TableField UNIQUEID = createField(DSL.name("UNIQUEID"), org.jooq.impl.SQLDataType.UUID.nullable(false), this, ""); /** * The column PUBLIC.USER.USERNAME. */ - public final TableField USERNAME = createField("USERNAME", org.jooq.impl.SQLDataType.VARCHAR(12).nullable(false), this, ""); + public final TableField USERNAME = createField(DSL.name("USERNAME"), org.jooq.impl.SQLDataType.VARCHAR(12).nullable(false), this, ""); /** * Create a PUBLIC.USER table reference @@ -104,54 +105,36 @@ public class User extends TableImpl super(child, key, USER); } - /** - * {@inheritDoc} - */ @Override public Schema getSchema() { return Public.PUBLIC; } - /** - * {@inheritDoc} - */ @Override public List getIndexes() { - return Arrays.asList(Indexes.PRIMARY_KEY_2); + return Arrays.asList(Indexes.PRIMARY_KEY_2, Indexes.UN_USERNAME_INDEX_2); } - /** - * {@inheritDoc} - */ @Override public UniqueKey getPrimaryKey() { return Keys.PK_USER; } - /** - * {@inheritDoc} - */ @Override public List> getKeys() { - return Arrays.>asList(Keys.PK_USER); + return Arrays.>asList(Keys.PK_USER, Keys.UN_USERNAME); } - /** - * {@inheritDoc} - */ @Override public User as(String alias) { return new User(DSL.name(alias), this); } - /** - * {@inheritDoc} - */ @Override public User as(Name alias) { @@ -175,4 +158,14 @@ public class User extends TableImpl { return new User(name, null); } + + // ------------------------------------------------------------------------- + // Row2 type methods + // ------------------------------------------------------------------------- + + @Override + public Row2 fieldsRow() + { + return (Row2) super.fieldsRow(); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/LoottrackereventsRecord.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/LoottrackereventsRecord.java index 9bd71f4468..00f0095252 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/LoottrackereventsRecord.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/LoottrackereventsRecord.java @@ -6,7 +6,7 @@ package net.runelite.client.database.data.tables.records; import java.sql.Timestamp; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.Loottrackerevents; import org.jooq.Field; import org.jooq.Record1; @@ -21,7 +21,7 @@ import org.jooq.impl.UpdatableRecordImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -29,7 +29,7 @@ import org.jooq.impl.UpdatableRecordImpl; public class LoottrackereventsRecord extends UpdatableRecordImpl implements Record4 { - private static final long serialVersionUID = -1505143967; + private static final long serialVersionUID = -1418522415; /** * Setter for PUBLIC.LOOTTRACKEREVENTS.UNIQUEID. @@ -99,9 +99,6 @@ public class LoottrackereventsRecord extends UpdatableRecordImpl key() { @@ -112,135 +109,90 @@ public class LoottrackereventsRecord extends UpdatableRecordImpl fieldsRow() { return (Row4) super.fieldsRow(); } - /** - * {@inheritDoc} - */ @Override public Row4 valuesRow() { return (Row4) super.valuesRow(); } - /** - * {@inheritDoc} - */ @Override public Field field1() { return Loottrackerevents.LOOTTRACKEREVENTS.UNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field2() { return Loottrackerevents.LOOTTRACKEREVENTS.EVENTID; } - /** - * {@inheritDoc} - */ @Override public Field field3() { return Loottrackerevents.LOOTTRACKEREVENTS.TYPE; } - /** - * {@inheritDoc} - */ @Override public Field field4() { return Loottrackerevents.LOOTTRACKEREVENTS.TIME; } - /** - * {@inheritDoc} - */ @Override public UUID component1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public String component2() { return getEventid(); } - /** - * {@inheritDoc} - */ @Override public String component3() { return getType(); } - /** - * {@inheritDoc} - */ @Override public Timestamp component4() { return getTime(); } - /** - * {@inheritDoc} - */ @Override public UUID value1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public String value2() { return getEventid(); } - /** - * {@inheritDoc} - */ @Override public String value3() { return getType(); } - /** - * {@inheritDoc} - */ @Override public Timestamp value4() { return getTime(); } - /** - * {@inheritDoc} - */ @Override public LoottrackereventsRecord value1(UUID value) { @@ -248,9 +200,6 @@ public class LoottrackereventsRecord extends UpdatableRecordImpl implements Record4 +public class LoottrackerlinkRecord extends TableRecordImpl implements Record4 { - private static final long serialVersionUID = 1985117517; + private static final long serialVersionUID = -1701074584; /** * Setter for PUBLIC.LOOTTRACKERLINK.LINKUNIQUEID. @@ -94,152 +93,94 @@ public class LoottrackerlinkRecord extends UpdatableRecordImpl key() - { - return (Record1) super.key(); - } - // ------------------------------------------------------------------------- // Record4 type implementation // ------------------------------------------------------------------------- - /** - * {@inheritDoc} - */ @Override public Row4 fieldsRow() { return (Row4) super.fieldsRow(); } - /** - * {@inheritDoc} - */ @Override public Row4 valuesRow() { return (Row4) super.valuesRow(); } - /** - * {@inheritDoc} - */ @Override public Field field1() { return Loottrackerlink.LOOTTRACKERLINK.LINKUNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field2() { return Loottrackerlink.LOOTTRACKERLINK.EVENTUNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field3() { return Loottrackerlink.LOOTTRACKERLINK.DROPUNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field4() { return Loottrackerlink.LOOTTRACKERLINK.USERUNIQUEID; } - /** - * {@inheritDoc} - */ @Override public UUID component1() { return getLinkuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID component2() { return getEventuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID component3() { return getDropuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID component4() { return getUseruniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID value1() { return getLinkuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID value2() { return getEventuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID value3() { return getDropuniqueid(); } - /** - * {@inheritDoc} - */ @Override public UUID value4() { return getUseruniqueid(); } - /** - * {@inheritDoc} - */ @Override public LoottrackerlinkRecord value1(UUID value) { @@ -247,9 +188,6 @@ public class LoottrackerlinkRecord extends UpdatableRecordImpl implements Record3 { - private static final long serialVersionUID = -1894768090; + private static final long serialVersionUID = 693470968; /** * Setter for PUBLIC.LOOTTRACKERLOOT.UNIQUEID. @@ -82,9 +82,6 @@ public class LoottrackerlootRecord extends UpdatableRecordImpl key() { @@ -95,108 +92,72 @@ public class LoottrackerlootRecord extends UpdatableRecordImpl fieldsRow() { return (Row3) super.fieldsRow(); } - /** - * {@inheritDoc} - */ @Override public Row3 valuesRow() { return (Row3) super.valuesRow(); } - /** - * {@inheritDoc} - */ @Override public Field field1() { return Loottrackerloot.LOOTTRACKERLOOT.UNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field2() { return Loottrackerloot.LOOTTRACKERLOOT.ITEMID; } - /** - * {@inheritDoc} - */ @Override public Field field3() { return Loottrackerloot.LOOTTRACKERLOOT.QUANTITY; } - /** - * {@inheritDoc} - */ @Override public UUID component1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public Integer component2() { return getItemid(); } - /** - * {@inheritDoc} - */ @Override public Integer component3() { return getQuantity(); } - /** - * {@inheritDoc} - */ @Override public UUID value1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public Integer value2() { return getItemid(); } - /** - * {@inheritDoc} - */ @Override public Integer value3() { return getQuantity(); } - /** - * {@inheritDoc} - */ @Override public LoottrackerlootRecord value1(UUID value) { @@ -204,9 +165,6 @@ public class LoottrackerlootRecord extends UpdatableRecordImpl implements Record10 +{ + + private static final long serialVersionUID = 546214401; + + /** + * Setter for PUBLIC.TMORPH_SETS.SET_NAME. + */ + public void setSetName(String value) + { + set(0, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.SET_NAME. + */ + public String getSetName() + { + return (String) get(0); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.HELMET. + */ + public void setHelmet(Integer value) + { + set(1, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.HELMET. + */ + public Integer getHelmet() + { + return (Integer) get(1); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.CAPE. + */ + public void setCape(Integer value) + { + set(2, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.CAPE. + */ + public Integer getCape() + { + return (Integer) get(2); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.AMULET. + */ + public void setAmulet(Integer value) + { + set(3, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.AMULET. + */ + public Integer getAmulet() + { + return (Integer) get(3); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.WEAPON. + */ + public void setWeapon(Integer value) + { + set(4, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.WEAPON. + */ + public Integer getWeapon() + { + return (Integer) get(4); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.TORSO. + */ + public void setTorso(Integer value) + { + set(5, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.TORSO. + */ + public Integer getTorso() + { + return (Integer) get(5); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.SHIELD. + */ + public void setShield(Integer value) + { + set(6, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.SHIELD. + */ + public Integer getShield() + { + return (Integer) get(6); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.LEGS. + */ + public void setLegs(Integer value) + { + set(7, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.LEGS. + */ + public Integer getLegs() + { + return (Integer) get(7); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.HANDS. + */ + public void setHands(Integer value) + { + set(8, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.HANDS. + */ + public Integer getHands() + { + return (Integer) get(8); + } + + /** + * Setter for PUBLIC.TMORPH_SETS.BOOTS. + */ + public void setBoots(Integer value) + { + set(9, value); + } + + /** + * Getter for PUBLIC.TMORPH_SETS.BOOTS. + */ + public Integer getBoots() + { + return (Integer) get(9); + } + + // ------------------------------------------------------------------------- + // Record10 type implementation + // ------------------------------------------------------------------------- + + @Override + public Row10 fieldsRow() + { + return (Row10) super.fieldsRow(); + } + + @Override + public Row10 valuesRow() + { + return (Row10) super.valuesRow(); + } + + @Override + public Field field1() + { + return TmorphSets.TMORPH_SETS.SET_NAME; + } + + @Override + public Field field2() + { + return TmorphSets.TMORPH_SETS.HELMET; + } + + @Override + public Field field3() + { + return TmorphSets.TMORPH_SETS.CAPE; + } + + @Override + public Field field4() + { + return TmorphSets.TMORPH_SETS.AMULET; + } + + @Override + public Field field5() + { + return TmorphSets.TMORPH_SETS.WEAPON; + } + + @Override + public Field field6() + { + return TmorphSets.TMORPH_SETS.TORSO; + } + + @Override + public Field field7() + { + return TmorphSets.TMORPH_SETS.SHIELD; + } + + @Override + public Field field8() + { + return TmorphSets.TMORPH_SETS.LEGS; + } + + @Override + public Field field9() + { + return TmorphSets.TMORPH_SETS.HANDS; + } + + @Override + public Field field10() + { + return TmorphSets.TMORPH_SETS.BOOTS; + } + + @Override + public String component1() + { + return getSetName(); + } + + @Override + public Integer component2() + { + return getHelmet(); + } + + @Override + public Integer component3() + { + return getCape(); + } + + @Override + public Integer component4() + { + return getAmulet(); + } + + @Override + public Integer component5() + { + return getWeapon(); + } + + @Override + public Integer component6() + { + return getTorso(); + } + + @Override + public Integer component7() + { + return getShield(); + } + + @Override + public Integer component8() + { + return getLegs(); + } + + @Override + public Integer component9() + { + return getHands(); + } + + @Override + public Integer component10() + { + return getBoots(); + } + + @Override + public String value1() + { + return getSetName(); + } + + @Override + public Integer value2() + { + return getHelmet(); + } + + @Override + public Integer value3() + { + return getCape(); + } + + @Override + public Integer value4() + { + return getAmulet(); + } + + @Override + public Integer value5() + { + return getWeapon(); + } + + @Override + public Integer value6() + { + return getTorso(); + } + + @Override + public Integer value7() + { + return getShield(); + } + + @Override + public Integer value8() + { + return getLegs(); + } + + @Override + public Integer value9() + { + return getHands(); + } + + @Override + public Integer value10() + { + return getBoots(); + } + + @Override + public TmorphSetsRecord value1(String value) + { + setSetName(value); + return this; + } + + @Override + public TmorphSetsRecord value2(Integer value) + { + setHelmet(value); + return this; + } + + @Override + public TmorphSetsRecord value3(Integer value) + { + setCape(value); + return this; + } + + @Override + public TmorphSetsRecord value4(Integer value) + { + setAmulet(value); + return this; + } + + @Override + public TmorphSetsRecord value5(Integer value) + { + setWeapon(value); + return this; + } + + @Override + public TmorphSetsRecord value6(Integer value) + { + setTorso(value); + return this; + } + + @Override + public TmorphSetsRecord value7(Integer value) + { + setShield(value); + return this; + } + + @Override + public TmorphSetsRecord value8(Integer value) + { + setLegs(value); + return this; + } + + @Override + public TmorphSetsRecord value9(Integer value) + { + setHands(value); + return this; + } + + @Override + public TmorphSetsRecord value10(Integer value) + { + setBoots(value); + return this; + } + + @Override + public TmorphSetsRecord values(String value1, Integer value2, Integer value3, Integer value4, Integer value5, Integer value6, Integer value7, Integer value8, Integer value9, Integer value10) + { + value1(value1); + value2(value2); + value3(value3); + value4(value4); + value5(value5); + value6(value6); + value7(value7); + value8(value8); + value9(value9); + value10(value10); + return this; + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached TmorphSetsRecord + */ + public TmorphSetsRecord() + { + super(TmorphSets.TMORPH_SETS); + } + + /** + * Create a detached, initialised TmorphSetsRecord + */ + public TmorphSetsRecord(String setName, Integer helmet, Integer cape, Integer amulet, Integer weapon, Integer torso, Integer shield, Integer legs, Integer hands, Integer boots) + { + super(TmorphSets.TMORPH_SETS); + + set(0, setName); + set(1, helmet); + set(2, cape); + set(3, amulet); + set(4, weapon); + set(5, torso); + set(6, shield); + set(7, legs); + set(8, hands); + set(9, boots); + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/UserRecord.java b/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/UserRecord.java index b57e450a8e..2aeec56d34 100644 --- a/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/UserRecord.java +++ b/runelite-client/src/main/java/net/runelite/client/database/data/tables/records/UserRecord.java @@ -5,7 +5,7 @@ package net.runelite.client.database.data.tables.records; import java.util.UUID; -import javax.annotation.Generated; +import javax.annotation.processing.Generated; import net.runelite.client.database.data.tables.User; import org.jooq.Field; import org.jooq.Record1; @@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl; @Generated( value = { "http://www.jooq.org", - "jOOQ version:3.11.12" + "jOOQ version:3.12.3" }, comments = "This class is generated by jOOQ" ) @@ -28,7 +28,7 @@ import org.jooq.impl.UpdatableRecordImpl; public class UserRecord extends UpdatableRecordImpl implements Record2 { - private static final long serialVersionUID = 628808107; + private static final long serialVersionUID = 2077804101; /** * Setter for PUBLIC.USER.UNIQUEID. @@ -66,9 +66,6 @@ public class UserRecord extends UpdatableRecordImpl implements Recor // Primary key information // ------------------------------------------------------------------------- - /** - * {@inheritDoc} - */ @Override public Record1 key() { @@ -79,81 +76,54 @@ public class UserRecord extends UpdatableRecordImpl implements Recor // Record2 type implementation // ------------------------------------------------------------------------- - /** - * {@inheritDoc} - */ @Override public Row2 fieldsRow() { return (Row2) super.fieldsRow(); } - /** - * {@inheritDoc} - */ @Override public Row2 valuesRow() { return (Row2) super.valuesRow(); } - /** - * {@inheritDoc} - */ @Override public Field field1() { return User.USER.UNIQUEID; } - /** - * {@inheritDoc} - */ @Override public Field field2() { return User.USER.USERNAME; } - /** - * {@inheritDoc} - */ @Override public UUID component1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public String component2() { return getUsername(); } - /** - * {@inheritDoc} - */ @Override public UUID value1() { return getUniqueid(); } - /** - * {@inheritDoc} - */ @Override public String value2() { return getUsername(); } - /** - * {@inheritDoc} - */ @Override public UserRecord value1(UUID value) { @@ -161,9 +131,6 @@ public class UserRecord extends UpdatableRecordImpl implements Recor return this; } - /** - * {@inheritDoc} - */ @Override public UserRecord value2(String value) { @@ -171,9 +138,6 @@ public class UserRecord extends UpdatableRecordImpl implements Recor return this; } - /** - * {@inheritDoc} - */ @Override public UserRecord values(UUID value1, String value2) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/Parse.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/Parse.java deleted file mode 100644 index fa4ba34ec8..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/Parse.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.runelite.client.plugins.tmorph; - -import java.util.Arrays; -import java.util.Map; -import javax.inject.Singleton; - -@Singleton -public class Parse -{ - public static boolean parse(String value) - { - try - { - final StringBuilder sb = new StringBuilder(); - - for (String str : value.split("\n")) - { - if (!str.startsWith("//")) - { - sb.append(str).append("\n"); - } - } - final Map tmp = TMorph.getNEWLINE_SPLITTER().withKeyValueSeparator(':').split(sb); - - for (Map.Entry entry : tmp.entrySet()) - { - if (!TMorph.getKit().containsKey(entry.getValue())) - { - return false; - } - - final int[] ints = Arrays.stream(entry.getKey().split(",")).map(String::trim).mapToInt(Integer::parseInt).toArray(); - - if (ints.length <= 1) - { - return false; - } - } - - return true; - } - catch (Exception ex) - { - return false; - } - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java index 6398a84b30..4aa3755c33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorph.java @@ -27,32 +27,38 @@ import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import com.google.inject.Provides; import java.awt.Color; +import java.awt.image.BufferedImage; import java.util.Arrays; +import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import javax.inject.Singleton; import lombok.AccessLevel; import lombok.Getter; +import lombok.Setter; import net.runelite.api.Actor; -import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.Player; import net.runelite.api.events.AnimationChanged; -import net.runelite.api.events.CommandExecuted; +import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.SpotAnimationChanged; import net.runelite.api.kit.KitType; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; +import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; -import net.runelite.client.util.Clipboard; -import net.runelite.client.util.ColorUtil; +import net.runelite.client.plugins.tmorph.ui.TPanel; +import net.runelite.client.ui.ClientToolbar; +import net.runelite.client.ui.NavigationButton; +import net.runelite.client.util.ImageUtil; import org.apache.commons.lang3.ObjectUtils; @PluginDescriptor( @@ -79,7 +85,7 @@ public class TMorph extends Plugin kit = builder.build(); } - @Getter(AccessLevel.PACKAGE) + @Getter(AccessLevel.PUBLIC) private static final Splitter NEWLINE_SPLITTER = Splitter .on("\n") .omitEmptyStrings() @@ -94,15 +100,26 @@ public class TMorph extends Plugin @Inject private EventBus eventBus; - private Map set1; - private Map set2; - private Map set3; + @Inject + private ClientToolbar clientToolbar; + + @Inject + private ClientThread clientThread; + + @Inject + private ItemManager itemManager; + + + private TPanel panel; + private NavigationButton navButton; private int animation; private int globalAnimSwap; private int globalGraphicSwap; private int graphic; private int targetAnimation; private int targetGraphic; + @Setter + private Map panelMorph = new HashMap<>(); @Provides TMorphConfig provideConfig(ConfigManager configManager) @@ -113,8 +130,20 @@ public class TMorph extends Plugin @Override protected void startUp() { + final BufferedImage icon = ImageUtil.getResourceStreamFromClass(getClass(), "nav.png"); + + panel = injector.getInstance(TPanel.class); + + navButton = NavigationButton.builder() + .tooltip("TMorph") + .icon(icon) + .priority(100) + .panel(panel) + .build(); + + clientToolbar.addNavigation(navButton); + updateConfig(); - addSubscriptions(); } @Override @@ -123,72 +152,20 @@ public class TMorph extends Plugin eventBus.unregister(this); } - private void addSubscriptions() + @Subscribe + public void onGameStateChanged(GameStateChanged event) { - eventBus.subscribe(AnimationChanged.class, this, this::onAnimationChanged); - eventBus.subscribe(GameTick.class, this, this::onGameTick); - eventBus.subscribe(SpotAnimationChanged.class, this, this::onSpotAnimationChanged); - eventBus.subscribe(CommandExecuted.class, this, this::onCommandExecuted); - } - - private void onCommandExecuted(CommandExecuted event) - { - final String[] args = event.getArguments(); - - if (event.getCommand().equals("tmorph")) + if (event.getGameState() == GameState.LOGIN_SCREEN) { - try + clientThread.invokeLater(() -> { - if (args[0].equals("copy")) - { - final StringBuilder sb = new StringBuilder(); - final Player player = client.getLocalPlayer(); - - if (player == null - || player.getPlayerAppearance() == null - || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null - || client.getViewportWidget() == null) - { - return; - } - - for (KitType kitType : KitType.values()) - { - if (kitType.equals(KitType.RING) || kitType.equals(KitType.AMMUNITION)) - { - continue; - } - - final int id = player.getPlayerAppearance().getEquipmentId(kitType); - - if (id == -1) - { - continue; - } - - sb.append(id); - sb.append(",-1"); - sb.append(":"); - sb.append(kitType.getName()); - sb.append("\n"); - } - client.addChatMessage(ChatMessageType.GAMEMESSAGE, "TMorph", ColorUtil.prependColorTag("Your current gear has been copied to your clipboard", COLOR), null); - Clipboard.store(sb.toString()); - } - else - { - client.addChatMessage(ChatMessageType.GAMEMESSAGE, "TMorph", ColorUtil.prependColorTag("Invalid syntax, do ::tmorph copy", Color.RED), null); - } - } - catch (Exception e) - { - client.addChatMessage(ChatMessageType.GAMEMESSAGE, "TMorph", ColorUtil.prependColorTag("Invalid syntax, do ::tmorph copy", Color.RED), null); - } + panel.populateSlots(); + }); } } @Subscribe - private void onConfigChanged(ConfigChanged event) + public void onConfigChanged(ConfigChanged event) { if (event.getGroup().equals("TMorph")) { @@ -196,7 +173,8 @@ public class TMorph extends Plugin } } - private void onSpotAnimationChanged(SpotAnimationChanged event) + @Subscribe + public void onSpotAnimationChanged(SpotAnimationChanged event) { final Actor actor = event.getActor(); @@ -218,7 +196,8 @@ public class TMorph extends Plugin } } - private void onAnimationChanged(AnimationChanged event) + @Subscribe + public void onAnimationChanged(AnimationChanged event) { final Actor actor = event.getActor(); @@ -240,7 +219,8 @@ public class TMorph extends Plugin } } - private void onGameTick(GameTick event) + @Subscribe + public void onGameTick(GameTick event) { if (client.getGameState() != GameState.LOGGED_IN) { @@ -257,12 +237,10 @@ public class TMorph extends Plugin return; } - updateGear(set1, player); - updateGear(set2, player); - updateGear(set3, player); + updateGear(panelMorph, player); } - private void updateGear(Map map, Player player) + public void updateGear(Map map, Player player) { if (map == null || map.isEmpty()) { @@ -308,9 +286,6 @@ public class TMorph extends Plugin private void updateConfig() { - this.set1 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(config.set1()); - this.set2 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(config.set2()); - this.set3 = NEWLINE_SPLITTER.withKeyValueSeparator(':').split(config.set3()); this.animation = config.animationSwap(); this.globalAnimSwap = config.globalAnimSwap(); this.globalGraphicSwap = config.globalGraphicSwap(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorphConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorphConfig.java index 404fadf453..c7b9c63e52 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorphConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TMorphConfig.java @@ -27,76 +27,10 @@ import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigSection; -import net.runelite.client.config.ConfigTitleSection; -import net.runelite.client.config.Title; @ConfigGroup("TMorph") public interface TMorphConfig extends Config { - @ConfigTitleSection( - keyName = "swaps", - name = "Morphers", - description = "", - position = 1 - ) - default Title swaps() - { - return new Title(); - } - - @ConfigItem( - keyName = "mageSwap", - name = "Swap Set 1", - description = "
Proper Format is id,id:Slot" + - "
For example: 6570,21295:Cape" + - "
Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo
", - titleSection = "swaps", - position = 1, - parse = true, - clazz = Parse.class, - method = "parse" - ) - default String set1() - { - return ""; - } - - @ConfigItem( - keyName = "rangeSwap", - name = "Swap Set 2", - description = "
Proper Format is id,id:Slot" + - "
For example: 6570,21295:Cape" + - "
Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo
", - titleSection = "swaps", - position = 2, - parse = true, - clazz = Parse.class, - method = "parse" - ) - default String set2() - { - return ""; - } - - @ConfigItem( - keyName = "meleeSwap", - name = "Swap Set 3", - description = "
Proper Format is id,id:Slot" + - "
For example: 6570,21295:Cape" + - "
Valid Slots: Helmet, Cape, Amulet, Weapon, Torso, Shield, Legs, Head, Hands, Boots, Jaw, Ring, Ammo
", - titleSection = "swaps", - position = 3, - parse = true, - clazz = Parse.class, - method = "parse" - ) - default String set3() - { - return ""; - } - - //////////////////Experimental Functions - @ConfigSection( position = 4, keyName = "experimentalSection", @@ -203,18 +137,4 @@ public interface TMorphConfig extends Config { return 0; } - - @ConfigTitleSection( - keyName = "copy", - name = "
If you would like to copy your equipped" + - "
gear, type \"::tmorph copy\" in chat." + - "
This will copy your gear to your" + - "
clipboard for easy copy paste.
", - description = "", - position = 50 - ) - default Title copy() - { - return new Title(); - } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TmorphSet.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TmorphSet.java new file mode 100644 index 0000000000..d4514c336b --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/TmorphSet.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2019, ganom + * 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.tmorph; + +import lombok.Data; + +@Data +public class TmorphSet +{ + private String name; + private int helmet; + private int cape; + private int amulet; + private int weapon; + private int torso; + private int shield; + private int legs; + private int hands; + private int boots; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/EquipSlot.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/EquipSlot.java new file mode 100644 index 0000000000..fd66f287e0 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/EquipSlot.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2019, ganom + * 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.tmorph.ui; + +import java.awt.Component; +import java.awt.Dimension; +import java.util.LinkedHashMap; +import java.util.Map; +import javax.swing.ImageIcon; +import javax.swing.JComboBox; +import lombok.Getter; +import net.runelite.api.Client; +import net.runelite.api.kit.KitType; +import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.tmorph.TMorph; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.components.ComboBoxIconEntry; +import net.runelite.client.ui.components.ComboBoxListRenderer; +import net.runelite.client.util.AsyncBufferedImage; +import net.runelite.client.util.ImageUtil; +import net.runelite.http.api.item.ItemEquipmentStats; +import net.runelite.http.api.item.ItemStats; +import org.pushingpixels.substance.internal.utils.SubstanceDropDownButton; + +@Getter +public class EquipSlot extends JComboBox +{ + private final ComboBoxIconEntry original; + private Map boxMap; + private KitType kitType; + + EquipSlot(KitType kitType) + { + super(); + this.kitType = kitType; + this.boxMap = new LinkedHashMap<>(); + setPreferredSize(new Dimension(220, 42)); + setBackground(ColorScheme.DARK_GRAY_COLOR); + setRenderer(new ComboBoxListRenderer()); + original = new ComboBoxIconEntry( + new ImageIcon(ImageUtil.getResourceStreamFromClass(TMorph.class, kitType.getName().toLowerCase() + ".png")), + kitType.getName(), + null + ); + addItem(original); + setSelectedIndex(0); + for (Component component : getComponents()) + { + if (component instanceof SubstanceDropDownButton) + { + remove(component); + } + } + } + + public void populate(Client client, ItemManager itemManager) + { + assert client.isClientThread() : "Populate must be called on client thread"; + + for (int i = 0; i < client.getItemCount(); i++) + { + ItemStats stats = itemManager.getItemStats(i, false); + + if (stats == null) + { + continue; + } + + if (!stats.isEquipable()) + { + continue; + } + + ItemEquipmentStats equipment = stats.getEquipment(); + + if (equipment == null) + { + continue; + } + + if (equipment.getSlot() != kitType.getIndex()) + { + continue; + } + + AsyncBufferedImage image = itemManager.getImage(i); + + if (image == null) + { + continue; + } + + final ComboBoxIconEntry entry = new ComboBoxIconEntry( + new ImageIcon(image), + client.getItemDefinition(i).getName(), + client.getItemDefinition(i) + ); + boxMap.put(i, entry); + addItem(entry); + } + } +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/TPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/TPanel.java new file mode 100644 index 0000000000..654b665e1e --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tmorph/ui/TPanel.java @@ -0,0 +1,439 @@ +/* + * Copyright (c) 2019, ganom + * 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.tmorph.ui; + +import com.google.common.collect.ImmutableSet; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.event.ItemEvent; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import javax.inject.Inject; +import javax.swing.Box; +import javax.swing.BoxLayout; +import static javax.swing.BoxLayout.Y_AXIS; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.border.EmptyBorder; +import lombok.extern.slf4j.Slf4j; +import net.runelite.api.Client; +import net.runelite.api.GameState; +import net.runelite.api.ItemDefinition; +import net.runelite.api.Player; +import net.runelite.api.kit.KitType; +import static net.runelite.api.kit.KitType.AMULET; +import static net.runelite.api.kit.KitType.BOOTS; +import static net.runelite.api.kit.KitType.CAPE; +import static net.runelite.api.kit.KitType.HANDS; +import static net.runelite.api.kit.KitType.HELMET; +import static net.runelite.api.kit.KitType.LEGS; +import static net.runelite.api.kit.KitType.SHIELD; +import static net.runelite.api.kit.KitType.TORSO; +import static net.runelite.api.kit.KitType.WEAPON; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; +import net.runelite.client.database.DatabaseManager; +import static net.runelite.client.database.data.Tables.TMORPH_SETS; +import net.runelite.client.database.data.tables.records.TmorphSetsRecord; +import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.tmorph.TMorph; +import net.runelite.client.plugins.tmorph.TmorphSet; +import net.runelite.client.ui.PluginPanel; +import net.runelite.client.ui.components.ComboBoxIconEntry; +import net.runelite.client.util.Clipboard; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.TableField; +import org.jooq.impl.SQLDataType; + +@Slf4j +public class TPanel extends PluginPanel +{ + private static final Set BLACKLIST = ImmutableSet.of(KitType.AMMUNITION, KitType.RING, KitType.HEAD, KitType.JAW); + + private final Client client; + private final DatabaseManager databaseManager; + private final ItemManager itemManager; + private final TMorph plugin; + + private final JComboBox selector; + private final Map equipSlots; + private final Map kitToId; + private final Map setMap; + private final ExecutorService executor; + private JPanel equipPanel; + + @Inject + public TPanel( + final Client client, + final DatabaseManager databaseManager, + final ItemManager itemManager, + final TMorph plugin + ) + { + super(false); + this.client = client; + this.databaseManager = databaseManager; + this.itemManager = itemManager; + this.plugin = plugin; + this.equipSlots = new LinkedHashMap<>(); + this.kitToId = new HashMap<>(); + this.setMap = new HashMap<>(); + this.selector = new JComboBox<>(); + this.executor = Executors.newSingleThreadExecutor(); + init(); + } + + private void init() + { + selector.addItem(""); + selector.setSelectedIndex(0); + selector.addActionListener((e) -> + { + String name = (String) selector.getSelectedItem(); + Result recs = databaseManager.getDsl() + .selectFrom(TMORPH_SETS) + .where(TMORPH_SETS.SET_NAME.eq(name)) + .fetch(); + + for (TmorphSetsRecord rec : recs) + { + for (Map.Entry entry : equipSlots.entrySet()) + { + int id = rec.getValue(kitToField(entry.getKey())); + EquipSlot es = entry.getValue(); + es.setSelectedItem(es.getBoxMap().getOrDefault(id, es.getOriginal())); + } + } + }); + + final JLabel title = new JLabel(); + title.setText("Tmorph Sets"); + title.setForeground(Color.WHITE); + title.setHorizontalAlignment(JLabel.CENTER); + title.setVerticalAlignment(JLabel.CENTER); + + final JPanel titleAndMarkersPanel = new JPanel(); + titleAndMarkersPanel.setLayout(new BorderLayout()); + titleAndMarkersPanel.add(title, BorderLayout.CENTER); + + final JPanel northAnchoredPanel = new JPanel(); + northAnchoredPanel.setLayout(new BoxLayout(northAnchoredPanel, Y_AXIS)); + northAnchoredPanel.setBorder(new EmptyBorder(0, 0, 10, 0)); + northAnchoredPanel.add(titleAndMarkersPanel); + northAnchoredPanel.add(Box.createRigidArea(new Dimension(0, 10))); + northAnchoredPanel.add(selector); + + final JPanel lol = new JPanel(); + final JPanel containerPanel = new JPanel(); + + final JLabel caption = new JLabel(); + caption.setText("Current Morph"); + caption.setForeground(Color.WHITE); + caption.setHorizontalAlignment(JLabel.CENTER); + caption.setVerticalAlignment(JLabel.CENTER); + + final JPanel captionPanel = new JPanel(); + captionPanel.add(caption); + + equipPanel = new JPanel(); + equipPanel.setLayout(new GridLayout(15, 1, 1, 1)); + addSlots(); + + containerPanel.setLayout(new BorderLayout()); + containerPanel.add(captionPanel, BorderLayout.NORTH); + containerPanel.add(equipPanel, BorderLayout.CENTER); + + lol.add(containerPanel); + + final JPanel contentPanel = new JPanel(); + final BoxLayout contentLayout = new BoxLayout(contentPanel, Y_AXIS); + contentPanel.setLayout(contentLayout); + contentPanel.add(lol); + + final JPanel contentWrapper = new JPanel(new BorderLayout()); + contentWrapper.add(Box.createGlue(), BorderLayout.CENTER); + contentWrapper.add(contentPanel, BorderLayout.NORTH); + final JScrollPane contentWrapperPane = new JScrollPane(contentWrapper); + contentWrapperPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + + setLayout(new BorderLayout()); + setBorder(new EmptyBorder(10, 10, 10, 10)); + add(northAnchoredPanel, BorderLayout.NORTH); + add(contentWrapperPane, BorderLayout.CENTER); + executor.submit(this::populateSelector); + } + + private void populateSelector() + { + if (!databaseManager.checkTableExists("TMORPH_SETS")) + { + databaseManager.getDsl().createTable(TMORPH_SETS) + .column(TMORPH_SETS.SET_NAME, SQLDataType.VARCHAR(255).nullable(false)) + .column(TMORPH_SETS.HELMET, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.CAPE, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.AMULET, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.WEAPON, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.TORSO, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.SHIELD, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.LEGS, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.HANDS, SQLDataType.INTEGER.nullable(false)) + .column(TMORPH_SETS.BOOTS, SQLDataType.INTEGER.nullable(false)) + .execute(); + } + + Result recs = databaseManager.getDsl().selectFrom(TMORPH_SETS).fetch(); + setMap.clear(); + selector.removeAllItems(); + selector.addItem("Select your set..."); + selector.setSelectedIndex(0); + + for (Record record : recs) + { + TmorphSet tmo = new TmorphSet(); + String name = record.getValue(TMORPH_SETS.SET_NAME); + tmo.setName(name); + tmo.setHelmet(record.getValue(TMORPH_SETS.HELMET)); + tmo.setCape(record.getValue(TMORPH_SETS.CAPE)); + tmo.setAmulet(record.getValue(TMORPH_SETS.AMULET)); + tmo.setWeapon(record.getValue(TMORPH_SETS.WEAPON)); + tmo.setTorso(record.getValue(TMORPH_SETS.TORSO)); + tmo.setShield(record.getValue(TMORPH_SETS.SHIELD)); + tmo.setLegs(record.getValue(TMORPH_SETS.LEGS)); + tmo.setHands(record.getValue(TMORPH_SETS.HANDS)); + tmo.setBoots(record.getValue(TMORPH_SETS.BOOTS)); + setMap.put(name, tmo); + selector.addItem(name); + } + } + + private void addSlots() + { + int i = 0; + + for (KitType kitType : KitType.values()) + { + if (BLACKLIST.contains(kitType)) + { + continue; + } + + final EquipSlot equip = new EquipSlot(kitType); + + equip.addItemListener((e) -> + { + if (e.getStateChange() == ItemEvent.SELECTED) + { + ComboBoxIconEntry combo = (ComboBoxIconEntry) e.getItem(); + + if (combo.getData() == null) + { + return; + } + + ItemDefinition def = (ItemDefinition) combo.getData(); + KitType type = null; + + for (Map.Entry entry : equipSlots.entrySet()) + { + if (entry.getValue() == e.getSource()) + { + type = entry.getKey(); + break; + } + } + + if (type == null) + { + return; + } + + if (kitToId.containsKey(type)) + { + kitToId.replace(type, def.getId()); + } + else + { + kitToId.put(type, def.getId()); + } + + if (client.getGameState() == GameState.LOGGED_IN) + { + Map s = generate(); + } + } + }); + + equipSlots.put(kitType, equip); + equipPanel.add(equip); + i++; + } + + final JButton setButton = new JButton("Set Active Morph"); + setButton.addActionListener((e) -> plugin.setPanelMorph(generate())); + equipPanel.add(setButton); + + final JButton saveButton = new JButton("Save Active Morph"); + saveButton.addActionListener((e) -> + { + final String result = JOptionPane.showInputDialog(saveButton, "What would you like to name the set?"); + + Result records = databaseManager.getDsl() + .selectFrom(TMORPH_SETS) + .where(TMORPH_SETS.SET_NAME.eq(result)) + .fetch(); + + boolean exists = records.isNotEmpty(); + + if (!exists) + { + databaseManager.getDsl().insertInto(TMORPH_SETS) + .set(TMORPH_SETS.SET_NAME, result) + .set(TMORPH_SETS.HELMET, kitToId.getOrDefault(HELMET, -1)) + .set(TMORPH_SETS.CAPE, kitToId.getOrDefault(CAPE, -1)) + .set(TMORPH_SETS.AMULET, kitToId.getOrDefault(AMULET, -1)) + .set(TMORPH_SETS.WEAPON, kitToId.getOrDefault(WEAPON, -1)) + .set(TMORPH_SETS.TORSO, kitToId.getOrDefault(TORSO, -1)) + .set(TMORPH_SETS.SHIELD, kitToId.getOrDefault(SHIELD, -1)) + .set(TMORPH_SETS.LEGS, kitToId.getOrDefault(LEGS, -1)) + .set(TMORPH_SETS.HANDS, kitToId.getOrDefault(HANDS, -1)) + .set(TMORPH_SETS.BOOTS, kitToId.getOrDefault(BOOTS, -1)) + .execute(); + executor.submit(this::populateSelector); + } + else + { + databaseManager.getDsl().update(TMORPH_SETS) + .set(TMORPH_SETS.HELMET, kitToId.getOrDefault(HELMET, -1)) + .set(TMORPH_SETS.CAPE, kitToId.getOrDefault(CAPE, -1)) + .set(TMORPH_SETS.AMULET, kitToId.getOrDefault(AMULET, -1)) + .set(TMORPH_SETS.WEAPON, kitToId.getOrDefault(WEAPON, -1)) + .set(TMORPH_SETS.TORSO, kitToId.getOrDefault(TORSO, -1)) + .set(TMORPH_SETS.SHIELD, kitToId.getOrDefault(SHIELD, -1)) + .set(TMORPH_SETS.LEGS, kitToId.getOrDefault(LEGS, -1)) + .set(TMORPH_SETS.HANDS, kitToId.getOrDefault(HANDS, -1)) + .set(TMORPH_SETS.BOOTS, kitToId.getOrDefault(BOOTS, -1)) + .where(TMORPH_SETS.SET_NAME.eq(result)) + .execute(); + } + }); + equipPanel.add(saveButton); + } + + public void populateSlots() + { + for (EquipSlot slot : equipSlots.values()) + { + slot.populate(client, itemManager); + } + } + + public Map generate() + { + final StringBuilder sb = new StringBuilder(); + final Player player = client.getLocalPlayer(); + + if (player == null + || player.getPlayerAppearance() == null + || client.getWidget(WidgetInfo.LOGIN_CLICK_TO_PLAY_SCREEN) != null + || client.getViewportWidget() == null) + { + return new HashMap<>(); + } + + for (KitType kitType : KitType.values()) + { + if (BLACKLIST.contains(kitType)) + { + continue; + } + + final Widget widget = client.getWidget(kitType.getWidgetInfo()); + + if (widget == null || widget.getDynamicChildren() == null || widget.getDynamicChildren().length < 1) + { + continue; + } + + final int id = itemManager.canonicalize(widget.getDynamicChildren()[1].getItemId()); + final int kitId = kitToId.getOrDefault(kitType, -1); + + if (kitId == -1) + { + continue; + } + + sb.append(id); + sb.append(","); + sb.append(kitId); + sb.append(":"); + sb.append(kitType.getName()); + sb.append("\n"); + } + + final String s = sb.toString(); + Clipboard.store(s); + + return plugin.getNEWLINE_SPLITTER() + .withKeyValueSeparator(":") + .split(s); + } + + private TableField kitToField(KitType kitType) + { + switch (kitType) + { + case HELMET: + return TMORPH_SETS.HELMET; + case CAPE: + return TMORPH_SETS.CAPE; + case AMULET: + return TMORPH_SETS.AMULET; + case WEAPON: + return TMORPH_SETS.WEAPON; + case TORSO: + return TMORPH_SETS.TORSO; + case SHIELD: + return TMORPH_SETS.SHIELD; + case LEGS: + return TMORPH_SETS.LEGS; + case HANDS: + return TMORPH_SETS.HANDS; + case BOOTS: + return TMORPH_SETS.BOOTS; + default: + return null; + } + } +}