mason
password wzNEAscwb6qvRqxW
grim
consistently sorts faster than void
mason
password wzNEAscwb6qvRqxW
floor((sqrt(3 * (sum(gringotts_item_count{item="black_concrete"}) < sum(gringotts_item_count{item="magenta_concrete"}) OR sum(gringotts_item_count{item="magenta_concrete"})-1)) + 3)/3)
n^3 - (n-2)^3 = 2 * min(black, magenta)
, take floor (edited)withdrawn
is a troll name of a stash, that should be filtered out a few places, I updated some @Brother leijurvsi:
to get SI suffixes for units that are in their listwithdrawn
is a troll name of a stash, that should be filtered out a few places, I updated some @Brother leijurv gringotts_item_count{item="xxx", stash="yyy", state="withdrawn|stocked"}
(feel free to come up with better names)
remove withdrawn
as stash, and this format would let you track # of withdraws per stash/itemwithdrawn
is an actual stash in the schema tho, so maybe this is impossiblegringotts_item_count{item="xxx", stash="yyy", state="withdrawn|stocked"}
(feel free to come up with better names)
remove withdrawn
as stash, and this format would let you track # of withdraws per stash/item gringotts_item_count{item="foo", stash="mdma", state="stocked"} 10 -> 9
gringotts_item_count{item="foo", stash="mdma", state="withdrawn"} 4 -> 5
The advantage is that you can separately track burn rate per stash, which may be useful for capacity planning.
again might not be possible because of schema, but at minimum I would consider tracking withdrawn items with a separate metric like this:
gringotts_item_withdrawn_count{item=foo}
because current label schema conflates items that both are and are not available in the stash.
these are nitpick comments, think of this as a PR review I might give you (edited)root@keeper:/opt/prometheus# cat rules.yml
groups:
- name: gringotts_aggregates
rules:
- record: gringotts_item_count:sum_by_stash
expr: sum(gringotts_item_count) by (stash)
root@keeper:/opt/prometheus#
localhost:1323
and it fetches /metrcis no matter what (edited)global:
evaluation_interval: 5m
rule_files:
- "rules.yml"
scrape_configs:
- job_name: 'gringotts'
scrape_interval: 5s
static_configs:
- targets: ['gringotts:1323']
metric_relabel_configs:
- source_labels: [__name__]
regex: 'gringotts_item_count'
action: 'drop'
- job_name: 'gringotts_slow'
scrape_interval: 5m
static_configs:
- targets: ['gringotts:1323']
metric_relabel_configs:
- source_labels: [__name__]
regex: 'gringotts_item_count'
action: 'keep'
- source_labels: [__name__]
regex: '.*'
action: 'drop'
- job_name: 'prometheus'
scrape_interval: 1m
static_configs:
- targets: ['localhost:9090']
- source_labels: [__name__]
regex: 'gringotts_item_count'
action: 'keep'
- source_labels: [__name__]
regex: '.*'
action: 'drop'
keep
is .*
, and you're overriding that to only gringotts_item_count
global:
evaluation_interval: 5m
rule_files:
- "rules.yml"
scrape_configs:
- job_name: 'gringotts'
scrape_interval: 5s
static_configs:
- targets: ['gringotts:1323']
metric_relabel_configs:
- source_labels: [__name__]
regex: 'gringotts_item_count'
action: 'drop'
- job_name: 'gringotts_slow'
scrape_interval: 5m
static_configs:
- targets: ['gringotts:1323']
metric_relabel_configs:
- source_labels: [__name__]
regex: 'gringotts_item_count'
action: 'keep'
- job_name: 'prometheus'
scrape_interval: 1m
static_configs:
- targets: ['localhost:9090']
Lurfs-MacBook-Pro:~ leijurv$ curl -X POST -I 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count:sum_by_stash&start=1696203422&end=1696203798'
HTTP/1.1 204 No Content
Date: Mon, 02 Oct 2023 01:24:59 GMT
Lurfs-MacBook-Pro:~ leijurv$
Lurfs-MacBook-Pro:~ leijurv$ curl -X POST 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count{instance="gringotts_slow:1323"}&start=1696203422&end=1696203798'
{"status":"error","errorType":"bad_data","error":"invalid parameter \"match[]\": 1:29: parse error: unexpected \"=\""}% Lurfs-MacBook-Pro:~ leijurv$ curl -X POST 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count{instance%3D%22gringotts_slow:1323%22}&start=1696203422&end=1696203798'
{"status":"error","errorType":"bad_data","error":"invalid parameter \"match[]\": 1:29: parse error: unexpected \"=\""}% Lurfs-MacBook-Pro:~ leijurv$
Lurfs-MacBook-Pro:~ leijurv$ curl -X POST 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count{}&start=1696203422&end=1696203798'
curl: (3) empty string within braces in URL position 82:
http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count{}&start=1696203422&end=1696203798
^
Lurfs-MacBook-Pro:~ leijurv$
curl -X POST 'http://localhost:9090/api/v1/admin/tsdb/clean_tombstones'
Lurfs-MacBook-Pro:~ leijurv$ curl -X POST -I 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=gringotts_item_count\{instance="gringotts_slow:1323"\}'
HTTP/1.1 204 No Content
Date: Mon, 02 Oct 2023 01:36:00 GMT
Lurfs-MacBook-Pro:~ leijurv$ curl -X POST 'http://localhost:9090/api/v1/admin/tsdb/clean_tombstones'
Lurfs-MacBook-Pro:~ leijurv$
instance="gringotts_slow:1323"
was precisely going to match the bad datapredict_linear
operatorData:
sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})
Trendline:
$intercept + $slope * (timestamp(vector(0)) - $__to/1000)
Variables:
$slope = predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 1) - predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 0)
$intercept in predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 0)
predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 0)
-
predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 60 * 60)
Exhaustion time:
-predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 0)
/
(
predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 1)
-
predict_linear(sum(gringotts_item_count{item="$item", stash=~"$stash", stash!="$excluded_stash"})[$__range:], 0)
)
int32
to int64
in two places ezzmason
zJE4Bj77kwyhix6bMzsr
(edited) private Tuple<String, NonNullList<ItemStack>> get() {
if (mc.screen == null) {
return null;
}
if (!(mc.screen instanceof ShulkerBoxScreen)) {
return null;
}
String name = mc.screen.getTitle().getString();
NonNullList<ItemStack> stacks = NonNullList.create();
ctx.player().containerMenu.slots.subList(0, 27).forEach(slot -> {
if (slot.hasItem()) {
stacks.add(slot.getItem());
} else {
stacks.add(ItemStack.EMPTY);
}
});
return new Tuple<>(name, stacks);
}
private Tuple<String, NonNullList<ItemStack>> get() {
if (mc.screen == null) {
return null;
}
if (!(mc.screen instanceof ShulkerBoxScreen)) {
return null;
}
String name = mc.screen.getTitle().getString();
NonNullList<ItemStack> stacks = NonNullList.create();
ctx.player().containerMenu.slots.subList(0, 27).forEach(slot -> {
if (slot.hasItem()) {
stacks.add(slot.getItem());
} else {
stacks.add(ItemStack.EMPTY);
}
});
return new Tuple<>(name, stacks);
}
if (mc.player.currentScreenHandler instanceof ShulkerBoxScreenHandler)
(edited)if (mc.player.currentScreenHandler instanceof ShulkerBoxScreenHandler)
(edited)if (mc.player.currentScreenHandler instanceof ShulkerBoxScreenHandler)
(edited)mc.player.currentScreenHandler == mc.screen.getScreenHandler()
as-well (edited)public abstract class HandledScreen<T extends ScreenHandler> extends Screen implements ScreenHandlerProvider<T> {
public static final Identifier BACKGROUND_TEXTURE = new Identifier("textures/gui/container/inventory.png");
(edited)instanceof HandledScreen
first thoughmc.player.currentScreenHandler == mc.screen.getScreenHandler()
as-well (edited)if (mc.player.currentScreenHandler instanceof ShulkerBoxScreenHandler)
(edited)public abstract class HandledScreen<T extends ScreenHandler> extends Screen implements ScreenHandlerProvider<T> {
public static final Identifier BACKGROUND_TEXTURE = new Identifier("textures/gui/container/inventory.png");
(edited)mc.player.
three times and found nothing that looks anything like thatmc.player.
three times and found nothing that looks anything like that if (mc.player.currentScreenHandler instanceof ShulkerBoxScreenHandler)
(edited)if (mc.player.containerMenu instanceof ShulkerBoxScreenHandler)
(edited)public abstract class AbstractContainerScreen<T extends AbstractContainerMenu> extends Screen implements MenuAccess<T> {
public static final ResourceLocation INVENTORY_LOCATION = new ResourceLocation("textures/gui/container/inventory.png");
private Tuple<String, NonNullList<ItemStack>> get() {
if (mc.screen == null) {
return null;
}
if (!(mc.screen instanceof ShulkerBoxScreen mcScreen)) {
return null;
}
if (mcScreen.getMenu() != ctx.player().containerMenu) {
return null;
}
String name = mc.screen.getTitle().getString();
NonNullList<ItemStack> stacks = NonNullList.create();
ctx.player().containerMenu.slots.subList(0, 27).forEach(slot -> {
if (slot.hasItem()) {
stacks.add(slot.getItem());
} else {
stacks.add(ItemStack.EMPTY);
}
});
return new Tuple<>(name, stacks);
}
test := regularizeRawNbt(getNBTOrNil(41868))
for _, nbtid := range []NBTID{33283, 35569, 33283, 35569, 33283, 35569, 41868, 33283, 41868, 33283, 41868, 33283, 41868, 33283, 41868} {
log.Println(nbtid, rawNbtToString(getNBTOrNil(nbtid)), bytes.Equal(test, regularizeRawNbt(getNBTOrNil(nbtid))))
}
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 35569 { Fireworks(Compound): { Flight(Byte): 3 } } false
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 35569 { Fireworks(Compound): { Flight(Byte): 3 } } false
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 35569 { Fireworks(Compound): { Flight(Byte): 3 } } false
2023/10/15 17:10:18 41868 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 41868 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 41868 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 41868 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 33283 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
2023/10/15 17:10:18 41868 { Fireworks(Compound): { Flight(Byte): 3 }, display(Compound): { Name(String): {"text":"Duration 3 Rockets"} } } true
.minecraft/baritone/gringotts/
folder for each stash that you have unlocked<html>
<body>
meow gringotts is down, see <a href="https://youtu.be/t-T8kndT6kE?t=18">this</a> video to see what gringotts is doing rn (kitten is eepy and yawning)
</body>
</html>
<html>
<body>
meow gringotts is down, see <a href="https://youtu.be/t-T8kndT6kE?t=18">this</a> video to see what gringotts is doing rn (kitten is eepy and yawning)
</body>
</html>
tHiS IS A SPAWNMasoN SHulKEr
), which had various flowers and plants and was withdrawn from msd2 earlier today, is glitching out and your client is reporting that the grass stack is a 64 stack of airtHiS IS A SPAWNMasoN SHulKEr
), which had various flowers and plants and was withdrawn from msd2 earlier today, is glitching out and your client is reporting that the grass stack is a 64 stack of air