#dev-general

1 messages Β· Page 33 of 1

slate elk
#

sometimes

sly sonnet
#

try doing !(drop instanceof whateverclass)

slate elk
#

i thnk the code i startd writinigis no sense

half harness
#

yep I just had to add this: ```kt
val stackWalker = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE)
val frame = stackWalker.walk { stream1: Stream<StackWalker.StackFrame> ->
stream1.skip(4).findFirst().orElse(null)
}
if (frame.className.contains("logback", true)) {
original.write(b)
return@write
}

#

idk why I spent 4 hours on this issue πŸ˜ƒ

hard dagger
#

ooh

#

was it recursing

half harness
wind patio
#

why are you walking on the stack

quartz zenith
#

Hi guys i'm trying to get the proc chance of a enchant i have made, but it says that enchant.getProc() is null but im a little confused on how

    public void Explosive(BlockBreakEvent e) {
        EnchantsManager enchants = new EnchantsManager();
        Player p = e.getPlayer();
        ItemStack pickaxe = p.getInventory().getItemInMainHand();
        int level = api.getNBT(pickaxe, "Explosive");
        if (level>0) {
            Enchants enchant = enchants.getEnchant("Explosive");
            if(randomDouble(0, 100) <= enchant.getProc() * level) {
                World world = e.getBlock().getWorld();
                Location location = e.getBlock().getLocation();
                world.createExplosion(location, 10f);
            }

        }
    }

Thats my block break event and this is my getProc

    public Double getProc() {
        return this.proc;
    }
    public Enchants(String enchant) {
        this.enchant = enchant;
        this.max = 0;
        this.price = 0L;
        this.proc = Double.valueOf(0.0D);
        this.exponent = Double.valueOf(0.0D);
        this.requirement = 0;
        plugin.getEnchantManager().addEnhcant(this);
    }

This is the error it says:
Caused by: java.lang.NullPointerException: Cannot invoke "me.simonxz.core.api.Enchants.getProc()" because "enchant" is null

wind patio
#

it's not the proc that is null

#

it's enchant

#

Enchants enchant = enchants.getEnchant("Explosive"); this is null

quartz zenith
#

I'm unsure on how to even get the proc chance of that enchant

wind patio
#

what

potent nest
#

why Double instead of double

cinder flare
#

bro needs that null state yk

wind patio
#

he wants NPE

#

let him cook

quartz zenith
#

i havn't got a clue on where to put the null D:

distant sun
quartz zenith
#

i still don't get it can't figure out how to do the null check

hard dagger
#

i don't think thats the issue

#

it shouldnt be returning null in the first place

#

@quartz zenith what does EnchantsManager look like?

#

actually nvm

#

it's because you're creating a new EnchantsManager in the Explosive(BlockBreakEvent) method

#

you should use the same one that the Enchants constructor is using

quartz zenith
#
package me.simonxz.core.api;

import java.util.HashMap;
import java.util.Map;

import me.simonxz.core.Main;
import org.bukkit.configuration.ConfigurationSection;
public class EnchantsManager {
    private static Main plugin = (Main)Main.getPlugin(Main.class);

    private Map<String, Enchants> enchants = new HashMap<>();

    public Enchants getEnchant(String string) {
        for (Enchants enchant : this.enchants.values()) {
            if (enchant.getEnchant().equals(string))
                return enchant;
        }
        return null;
    }

    public void addEnhcant(Enchants e) {
        this.enchants.put(e.getEnchant(), e);
    }

    public void loadEnchant(String enchant) {
        ConfigurationSection config = plugin.getConfig().getConfigurationSection("Enchantments.Enchantments");
        Enchants b = new Enchants(enchant);
        b.setMax(config.getInt(String.valueOf(enchant) + ".Max"));
        b.setPrice(config.getLong(String.valueOf(enchant) + ".Price"));
        b.setExponent(config.getDouble(String.valueOf(enchant) + ".Exponent"));
        b.setRequirement(config.getInt(String.valueOf(enchant) + ".Requirement"));
        b.setProc(Double.valueOf(Double.parseDouble(config.getString(String.valueOf(enchant) + ".Proc"))));
    }
}
wind patio
#

private static Main plugin = (Main)Main.getPlugin(Main.class); what am I looking at pls bleach my eyes

hard dagger
#

i already gave you your answer

wind patio
#

that is so poorly made I want to help this guy out buy I think it's beyond helpable

quartz zenith
#

i got it working

wintry plinth
#

C'mon guys, we've all been there once, don't be so harsh..

wintry plinth
# quartz zenith ```java package me.simonxz.core.api; import java.util.HashMap; import java.util...

Well done on getting it working so far, as some have mentioned you could replace this line of code:

private static Main plugin = (Main)Main.getPlugin(Main.class);

It's recommended against this, instead you could use dependency injection, like so..

public class EnchantsManager {
  private Main plugin;
  public EnchantsManager(Main plugin) {
    this.plugin = plugin;
  }

  // Rest of code
}

Inside of your plugins onEnable method you'd do..

public void onEnable() {
  // other code
  new EnchantsManager(this);
}

Another pointer, it's recommended to not use Main for your plugin class, instead something like EnchantsPlugin or something like that

quiet depot
#

could definitely simplify that getEnchant method

cerulean ibex
cerulean ibex
slate elk
obtuse gale
#

Guys guys

wind patio
#

omg what

obtuse gale
#

Let talk about dropshipping and how to make some dollars πŸ’°and again I’m a store owner I help people that having problems with their account or store

wind patio
#

no I dont think I will

#

and why is your profile picture the same as this mf @quartz zenith

drifting aspen
quartz zenith
#

yeah defualt avatar

wind patio
#

what the fuck

#

bring back wumpus

drifting aspen
#

(It's way worse than the old ones IMO)

drifting aspen
#

The old default avatar was just the discord logo in different colored backgrounds

wind patio
#

fuck, not the wumpus

#

the default logo*

distant sun
#

Clyde or smth like that 🀣

drifting aspen
#

hang on, I still have someone in my friends list with the old avatar

#

I would love to upload it here if I had the permission to do so :/

drifting aspen
#

I don't think the avatar really had a name or smth

distant sun
#

I think it had a name at some point but idk what it is

drifting aspen
#

yeah this is just dumb

distant sun
#

ah I see

#

cool ig

#

a bit of offtopic but I'm watching this random TS video and I would like to say that this sum types thing is kinda cool

wind patio
#

this sum props?

distant sun
#

Sorry, I meant to say "sum types", I got it from a comment (although that's not the name in ts I think)

For those curious, these are called tagged unions or discriminated unions. The typescript docs mentions them. They are common in functional languages and also in most newer languages like Rust. They are from a category of types called "sum types". What we're used to in OOP languages are usually "product types"

wind patio
#

yeah it's pretty neat

distant sun
#

Although I prefer the OOP way xD doing the type check with a string if (response.status === "success") doesn't feel like a good structure, but I guess the status can be turned into some other type that I don't know of, like an enum.

cinder flare
#

he's using a sum type with string constants, so that's literally how you would use it

#

TS doesn't have native discriminated unions, you have to do it yourself

#

OH

#

i had it backwards

#

yeah TS doesn't have native instanceof checking like that, so it's kinda better to do hardcoded enum constants as the discriminator

distant sun
#

interesting thing

cinder flare
#

but yeah in Rust and most functional languages, you can just do a little pattern matching with like match (response) { is Success -> ... ; is Failure -> ...; }

cinder flare
#

oh shit

#

that's super cool

#

and it's an LTS

drifting aspen
#

😎

cinder flare
#

didn't think it would drop honestly

#

thought they would hit me with a (Fifth Preview)

drifting aspen
#

I think virtual threads also made it into JDK 21

#

yup

cinder flare
#

oh my god 21 is gonna be huge bro

drifting aspen
#

I think it should drop next month

cinder flare
#

september yeah iirc

#

oh my god and generational zgc

#

guys... is java... good again?

half harness
#

If I try it in kotlin, I get the error

None of the following functions can be called with the arguments supplied.

#
matching("text") {}
matching("text", {})
```none of these work
#

and if I try making a new Closure, then I get a NullPointerException from some internal (?) code

cerulean ibex
#

is closure some class or?

#

cuz all kotlin lambdas are closures

#

if it is a class, try doing matching('...', Closure { header = ... })

#

or just use spotless

half harness
#

I'm trying to configure build.gradle.kts

half harness
half harness
cerulean ibex
cerulean ibex
cinder flare
half harness
cinder flare
#

does it error when you actually run it, or just in your IDE?

#

sometimes IJ messes up the gradle cache and thinks there are problems

half harness
#

IDE

cinder flare
#

try running an actual gradle command

half harness
#

gradle also errors ☹️ ```kt
matching("s") {
println("test")
}

cinder flare
#

is that in a license block?

#

becuase matching is most likely an extension function on the this passed in license

half harness
#

yea

wintry plinth
#

Hey folks, looking for some guidance..

I am using the sgui library within a server-side Fabric mod, currently like so..

modImplementation("eu.pb4:sgui:0.5.0")

Now, I need to shade this in, so I'd typically do..

shadow(modImplementation("eu.pb4:sgui:0.5.0"))

However I get:

e: file:<path>/fabric/build.gradle.kts:33:12: Type mismatch: inferred type is Dependency? but Any was expected

What am I doing wrong? Using Gradle 8.2.1

half harness
#

aw

#
this@license.matching("s") {
    header.set(project.resources.text.fromFile("THIRDPARTY-LICENSE.txt"))
}
```tried this too
#

πŸ₯² πŸ₯²

cinder flare
#

shadow already automatically includes any implementations

wintry plinth
#

That modImplementation passes the classes through (without the obfuscated names)

cinder flare
#

according to the docs, have you tried modImplementation(include("eu.pb4:sgui:0.5.0"))?

wintry plinth
#
e: file:///Users/charlie/Documents/Development/Java/Tebex/fabric/build.gradle.kts:33:23: Type mismatch: inferred type is Dependency? but Any was expected

Same silly error

#

Very frustrating i can't figure why πŸ˜‚

cinder flare
#

!! after the include?

#

might be a nullability thing

wintry plinth
#

Damn got me excited as it compiled πŸ˜‚ annoyingly it didn't shade it in, but also TIL about the !! thing

cinder flare
#

weird, the include should shade it

wintry plinth
#

ill try shadow

cinder flare
#

but yeah !! is a non-null assertion

pastel imp
cinder flare
pastel imp
#

ty

#

this for fabric only?

wintry plinth
#

Soon you'll be able to source dive tebex v2.0, hopefully beta testing soon

#

and yes

#

I use Triumph GUI for bukkit

cinder flare
#

😌

pastel imp
#

I don't use tebex sooo

pastel imp
wintry plinth
#

Can still source dive :P if you needed

cinder flare
#

cause shadow picks up on plain implementations

wintry plinth
#

ahh really, ill try this

pastel imp
#

although triumph gui gonna get a rewrite in the following 5 years and it will be paper only

#

just a tiny future headsup

wintry plinth
#

thats fine

cinder flare
#

paper 😌

#

by then, we'll have the hard fork and we won't support spigot users!

pastel imp
#

5 to 7 business years

#

depends on matt

#

xD

wintry plinth
cinder flare
#

add another !!!

pastel imp
wintry plinth
#

good

#

and ty star will try

pastel imp
wintry plinth
#
            SimpleGui gui = new SimpleGui(ScreenHandlerType.GENERIC_9X3, player, false);
                            ^
  class file for net.minecraft.class_3917 not found
cinder flare
wintry plinth
#

RIP

cinder flare
#

hmm

#

what about putting them in separate lines

pastel imp
#

restart ide?

#

ide sometimes bugs

cinder flare
#

modImplementation("eu.pb4:sgui:0.5.0")
then
implementation("eu.pb4:sgui:0.5.0")

pastel imp
#

happened to me a bunch of times already

cinder flare
#

or possibly include

#

i'm not like super familiar with the fabric loom stuff

pastel imp
#

me neither

#

they use mixins

#

which in theory is cool

#

but too much work to learn how to use

#

lol

cinder flare
#

oh it's cool in practice

#

it's not very hard to use lol

wintry plinth
#

Same error, and ngl I realise using fabric how thankful I am with bukkit apis

#

like fabric ones are terrible

cinder flare
#

they're better in a lot of ways

pastel imp
#

Star, I have been here for a while now, you should've already known that I am lazy AF lol

cinder flare
#

you just aren't used to em lmao

#

and they have a lot more to do, with the whole remapping jars and stuff, Bukkit just loads its own custom jars for you

pastel imp
#

paper hard forking gonna feel like a dream

#

pair that with the rewrite of triumph guis

#

and cmds

#

and it's paradise

#

if the rewrite isn't there yet, I will just use vision lol

#

anyways time to go migrate more data from some wikis to my db for my bot

#

adios

cinder flare
#

lmao

wintry plinth
#

ree this is driving me crazy

cinder flare
#

hmm okay

#

so what about doing modImplementation and include

half harness
#

trying every combination πŸ₯²

wintry plinth
#

Type mismatch: inferred type is Dependency? but Any was expected

If I add the !! then it doesn't shade

cinder flare
#

i'm honestly not sure if you're even supposed to use shadowjar with fabric mods

#

maybe the include thing just does it for you?

wintry plinth
#

Yeah its frustrating, same thing πŸ˜‚

cinder flare
#

send whole build.gradle.kts

wintry plinth
#

Reverted back its..

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

group = rootProject.group
version = rootProject.version

plugins {
    java
    id("com.github.johnrengelman.shadow")
    id("fabric-loom")
}

var minecraftVersion = properties["minecraft_version"] as String
var yarnMappings = properties["yarn_mappings"] as String
var loaderVersion = properties["loader_version"] as String
var fabricVersion = properties["fabric_version"] as String

java {
    toolchain.languageVersion.set(JavaLanguageVersion.of(16))
    sourceCompatibility = JavaVersion.VERSION_16
    targetCompatibility = JavaVersion.VERSION_16
}

dependencies {
    shadow(project(":sdk"))
    shadow("it.unimi.dsi:fastutil:8.5.6")
    shadow("com.github.cryptomorin:XSeries:9.3.1") {
        isTransitive = false
    }

    minecraft("com.mojang:minecraft:${minecraftVersion}")
    mappings("net.fabricmc:yarn:${yarnMappings}:v2")

    modImplementation("eu.pb4:sgui:0.5.0")
    modImplementation("net.fabricmc:fabric-loader:${loaderVersion}")
    modImplementation("net.fabricmc.fabric-api:fabric-api:${fabricVersion}")

    compileOnly("dev.dejvokep:boosted-yaml:1.3")
}


tasks.named("shadowJar", ShadowJar::class.java) {
    configurations = listOf(project.configurations.shadow.get())

    relocate("it.unimi", "io.tebex.plugin.libs.fastutil")
    relocate("okhttp3", "io.tebex.plugin.libs.okhttp3")
    relocate("okio", "io.tebex.plugin.libs.okio")
    relocate("dev.dejvokep.boostedyaml", "io.tebex.plugin.libs.boostedyaml")
    relocate("org.jetbrains.annotations", "io.tebex.plugin.libs.jetbrains")
    relocate("kotlin", "io.tebex.plugin.libs.kotlin")
    relocate("com.github.benmanes.caffeine", "io.tebex.plugin.libs.caffeine")
    relocate("eu.pb4.sgui", "io.tebex.plugin.libs.sgui")
    minimize()

    archiveFileName.set("${project.name}-${project.version}-shadow.jar")

    finalizedBy("remapJar")
}

tasks.remapJar {
    dependsOn("shadowJar")
    val shadowJar = tasks.shadowJar.get()

    inputFile.set(shadowJar.archiveFile)
    archiveFileName.set("tebex-${project.name}-${project.version}.jar")
    archiveClassifier.set(shadowJar.archiveClassifier)
    delete(shadowJar.archiveFile)
}
#

(Multi-module project)

wind patio
#

yall like data or what

cinder flare
#

oh wow that is a lot more than i thought it would be

#

uh, maybe try getting rid of minimize?

wintry plinth
#

ye sure lemme try

cinder flare
#

ooh and try shadow("eu.pb4:sgui:0.5.0")

wintry plinth
#

Beneath modImple ?

cinder flare
#

yea

half harness
#

πŸ€”

cinder flare
#

they likely don't

wintry plinth
#

So weiredly if I do..

    modImplementation("eu.pb4:sgui:0.5.0")
    shadow("eu.pb4:sgui:0.5.0")

I get:

Caused by: net.fabricmc.loader.api.LanguageAdapterException: Class io.tebex.plugin.TebexPlugin cannot be cast to net.fabricmc.api.DedicatedServerModInitializer!

I wonder if now this means the mod is having a conflict somewhere

#

Seems it shaded

cinder flare
#

ah, progress!

wintry plinth
#

GOT IT

#
    modImplementation("eu.pb4:sgui:0.5.0")
    shadow("eu.pb4:sgui:0.5.0") {
        isTransitive = false
    }
#

isTransitive fixed it

#

ty star <3 got a github donate page?

cinder flare
#

haha, no worries brother

#

just pass it on, next time i'm confused by something in laravel or something lmao

wintry plinth
#

πŸ˜‚ always a DM away you know that, happy to help

#

Recently persuaded someone else into Laravel too

cinder flare
#

sheesh, the adoption rate has gone up exponentially!

wintry plinth
#

Laravel users went from 1 -> 3/4

#

Planning to rebuild the Analyse dash this quarter, brand new Laravel app hehe

cinder flare
#

awe yeah

#

no more Vue >:)

wintry plinth
#

I wish I could go react, I'm sure work wouldn't approve πŸ˜‚

#

my new personal project is laravel+react tho :D

cinder flare
wintry plinth
cinder flare
#

oh huh, the more you know

#

maybe you can rewrite that too 😌

#

surely good for the old job security!

wintry plinth
#

Our team has gotten so big now πŸ˜‚ nearly 30 of us at tebex

#

There was 10 of us last year

#

The Analyse dash rebuild I am looking forwArd to, new APIs, etc

#

How you been getting on with your Laravel project Star?

pastel imp
#

If Charlie does a 1h+ crash course/intro of laravel, I might look into it xD

cinder flare
#

you ever used Django or Ruby on Rails or anything?

wintry plinth
#

Me? No

cinder flare
wintry plinth
#

I loveee socialite

cinder flare
# wintry plinth Me? No

ah no not you, Afonso, since knowledge from those frameworks transfers really well to Laravel

wintry plinth
#

And ahhh that makes sense yeah

pastel imp
cinder flare
#
class DiscordLoginController extends Controller
{
    public function redirect(): RedirectResponse
    {
        return Socialite::driver('discord')
            ->scopes(['email', 'guilds.members.read'])
            ->redirect();
    }

    public function callback(): RedirectResponse|JsonResponse
    {
        $discordUser = Socialite::driver('discord')->user();
        return response()->json($discordUser);
    }
}
#

look at that

#

Discord OAuth in like literally 15 lines

pastel imp
#

that's actually

#

nice...

#

hmm

#

will see

#

I have to finish projects lol

#

too many rn

#

but might use laravel for the dashboard of my discord bot

#

although, it legit has no settings so no need for that lol

#

hmm

#

gonna do a wiki type website with laravel

#

web version of my bot lol

wintry plinth
#

Laravel developer experience is beautiful tbh

pastel imp
#

I mean, I am used to svelte nowadays

#

but.... I kinda hate js lol

#

so might do svelte frontend and laravel backend

cinder flare
#

ah, just you wait!

pastel imp
#

now, a more important question/topic, what shall I cook for lunch? πŸ€”

cinder flare
#

Laravel also has this package called Inertia, which lets you get all the nice backend benefits of Laravel with a JS frontend super easily

#

you literally just call a render function in your views as normal, and it does everything else

#

so you can have a Laravel/Svelte combo app like super, super easy

wintry plinth
#

So sexy

#

Funny because I’m doing a talk on Friday showing inertia to the devs in team

pastel imp
cinder flare
#

so it wouldn't be with SvelteKit, it's just Svelte

#

but basically you pass props in from Laravel and then you get them in a Svelte component

#

and it has a bunch of stuff for like links and forms and stuff that tie it all together really nicely

pastel imp
#

quite interesting

#

will check it later, will probably watch a crash course or smt

#

just to know the basics

#

also kinda need a rework on my php

#

a bit rusty lol

#

(even though I did php this year at school, but it was basics of basics)

wintry plinth
#

Defo think without Inertia, I'd prob not be using Laravel as a mono-repo

distant sun
wintry plinth
#

The talk I'm doing on Friday will be showing the team how nice it is to pass props across from Laravel backend to Inertia frontend

cinder flare
#

it's what they call a Facade

#

basically a static interface that does dependency injection for you, yeah

distant sun
#

cool

cinder flare
#

they have a ton of em, like Auth::attempt($username, $password) which will attempt to log in a user

wintry plinth
cinder flare
#

okay that's pretty funny

wintry plinth
#

hahaha

distant sun
#

ig php's structure is not as robust as java's? Like, in java you would do smth like Socialite.driver(DriverType.class) so it knows to return a DriverType

cinder flare
#

oh no it gives you type inference

#

it's actually surprisingly good at types and stuff

wintry plinth
cinder flare
#

like, leagues better than Django in Python

distant sun
#

ah cool

pastel imp
#

quite random, but a client just sent me this and I found it a bit funny

cinder flare
#

polymorphism, etc. etc.

#

like how you'd return a DataStorageProvider or something and then have ones for like file storage, postgres, mysql, etc.

distant sun
#

ohhhh so all drivers have scopes() and stuff, I see

cinder flare
#

yeah

distant sun
#

I thought that's smth specific to the discord one, thats why I said it is not as robust as java's, I thought it knows that the string "discord" is for DiscordDriver

#

makes more sense haha

cinder flare
#

yeah it's pretty nice

#

i like the dynamicism that it gives, without the crazy reflection and stuff of Spring

final scroll
#

I'm trying to reference one of my APIs stored locally on my pc from a maven project in eclipse. It has previously worked fine but now I just get a bunch of errors in my console saying: /C:/Users/<Name>/eclipse-workspace/Vip5/src/main/java/com/sniskus/vip/core/CommandManager.java:[15,30] package com.sniskus.score.util does not exist when I compile it. Why does this happen, it works fine in while editing the code in the IDE? I don't remember changing anything but haven't touched eclipse for a few months.

long dagger
wintry plinth
long dagger
#

Yeah

wintry plinth
#

Beautiful syntax tho

agile galleon
#

Well Laravel seems pretty cool

#

Although I'm not quite fond of learning a new language xd

wintry plinth
#

Walks you through Laravel and building an example app, free of course

agile galleon
wintry plinth
#

It's all preference, I'd personally say go with Vue as a beginner, as you can use Vue for more things

#

The templating engine is very basic I find, can't really do much real-world wise

agile galleon
#

Is that still SSR?

wintry plinth
#

Feel free to @ me or mention in replies, happy to help if you're stuck. And it is when you enable it yes

#

It's not by default but its an option

cinder flare
#

it really depends on what you're building

#

if you're making a mostly static site, like for a main page or something without a ton of functionality, you can definitely get away with just blade templates

#

the website i had been working on for like 1.5 years now is all just Django templates

#

but now i've moved to a point where I could really benefit from having a discrete frontend framework, so I'm moving to Laravel/React with SSR

#

but like, if you're making an admin panel or something, honestly it might just be better to not SSR

half harness
#

Does anyone have a Java websocket server library that they would recommend? Preferably one that supports features things like pinging, etc?
I couldn't find any nice ones online :((((, but I haven't used any of them yet so I'm wondering if anyone has, and has experience

#

If only ktor could be used in Java πŸ₯Ί

ocean quartz
#

Springboot?

distant sun
half harness
half harness
prisma wave
#

spring for websockets is like using a nuke to deal with a fly

crude cloud
#

i don't see the problem with that

#

I would rather kill every fly on earth

#

than one at a time

#

I hate flies

pastel imp
#

guys...

#

any of you saw 1.20.2?

#

big W

distant sun
#

o wow

#

MAYBE now you won't get kicked out that fast if it takes a bit longer to apply the texture xD

pastel imp
#

multi version support is also pog

distant sun
#

I wonder what that means

still portal
#

They also added a whole new protocol stage for so called β€˜data driven content’ in the future

distant sun
#

perhaps smth like merging a pack for 1.12 and 1.13 together and the game knows which one to use?

still portal
#

With a mention of custom packets, but I’m not sure what that means and if that already existed

distant sun
#

yup cool stuff

still portal
#

Overlay resource packs too, which are essentially toggleable resource packs inside of the main pack

still portal
#

Must be pretty big

distant sun
#

I hope it is smth cool at least ugh

#

I have a feeling that they want to add more cosmetic stuff and sooner or later we will have a marketplace for java too xD

still portal
#

Praying they’ll give us the bedrock content systems

distant sun
#

There is one thing that I would like to have from bedrock, namely 3d armour

still portal
#

Native custom mobs and blocks would be awesome too but they’ve already given us display entities

pastel imp
still portal
#

Bedrock ui system would be crazy

pastel imp
#

like 16, [16,17], {"min_inclusive": 16, "max_inclusive": 17}

distant sun
#

good points combi

sly sonnet
pastel imp
inner umbra
#

Are there any JDA alternatives (java based) that are modular? I don't want audio or everything all in one. I just need adding/removing roles and sending direct messages.

cerulean ibex
#

D4j better anyway

crude cloud
#

d4j my beloved

agile galleon
#

Yeah prob http client

pastel imp
#

look in the wiki

gusty glen
#

Just add these two dependencies and BOOM, fully integrated, amazing

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.7.3")
implementation("io.projectreactor.kotlin:reactor-kotlin-extensions:1.2.2")
#

I never created a discord bot before (surprisingly, as everyone here seems to have done that already), but if I ever create one in the future, I will definitely use that API, thanks for sharing this tip Emily and Sparky

hard dagger
#

Reactive streams >>>

crude cloud
#

wait what

#

there are two sparkies????

#

no chance, it's gotta be an alt

cerulean ibex
ruby dew
#

wait there is one and the only one wanderingpalace that makes super cool c++ AOT compilers, standalone minecraft servers, nms decoders, ?

pastel imp
#

seems a bit off, also, display entities?

still portal
#

It’s a cool concept but limits the blocks to 8x8 textures instead of the standard 16x16 resolution

wind patio
#

true

#

I'd assume this would be better for decoration purposes, like people do custom skin heads, not for actual full builds.

still portal
#

Wouldn’t it be possible to use 8 display entities with 8 player heads and a 16x16 texture split over those 8 head textures for a full block

wind patio
#

could be

#

thought 7 extra entities?

#

dk

pastel imp
#

display entities don't take less resources than armor stands no?

wind patio
#

also, anyone here dealt with item "glow" (item appearing to be enchanted)? specifically in 1.19.4.
I'm using TriumphGUI and neither manually applying, neither using ItemBuilder#glow doesn't apply the enchanted tint.

sly sonnet
#

are you using lunar client by any chance?

#

its enchantment glint is broken

#

support/staff doesn't give a damn

wind patio
#

no, fabric with mods

distant sun
wind patio
#

a tool

#

might try checking if it displays without mods, maybe something is interfering

inner umbra
wind patio
#

yeah JDA itself is pretty big

pastel imp
#

^^

wind patio
#

though I don't really care about the size lol, still using it regardless

inner umbra
#

Discords api is basically just a rest api right? Might just make something for simple requests.

inner umbra
#

πŸ‘

remote goblet
#

libraries: in plugin.yml CB_strong

agile galleon
#

But the stuff you want probably is

half harness
crude cloud
#

but not everything is ws in discord

#

the rest bits are rest yes, but the bits that aren't aren't

#

you're welcome

wind patio
#

what

remote goblet
#

skill issue

agile galleon
#

Yeah

crude cloud
#

skull emoji

half harness
#

Β―_(ツ)_/Β―

wind patio
#

they are clearly written under my name when you click on my profile

cinder flare
#

inb4 you get banned for abusing the pronouns feature

wintry plinth
#

I'd set mine, but they're broken /s

sly sonnet
wintry plinth
ornate lodge
#

anyone have buy and sell prices for shopgui i could use

agile galleon
#

No

#

Make them urself

#

It's a pain all server owners have to go through

pastel imp
#

ngl interesting

wintry plinth
pastel imp
#

yeah, might eventually use it

wintry plinth
#

Will be dope for building useful desktop apps or menu bar ones

pastel imp
#

I kinda like webdev, like, in the middle, like and dislike at the same time lmao

#

but job opportunities in webdev suck

#

you don't get paid that much compared to other sectors

wintry plinth
#

What salaries in web dev do you not find much?

sly sonnet
#

in my country there are literally only web dev positions available

#

if ur lucky you can find senior dev position

pastel imp
#

lmao

#

at least from what I have spoken to several people in the work world

#

IT Teachers get more than web devs

#

lol

wintry plinth
#

Interesting, I find the salaries here are suitable tbh

pastel imp
#

okay yeah, world.

distant sun
#

does anyone know a documentation software similar to docusaurus that has client side rendering as well? I've played with docusaurus a bit and it is pretty nice, but it is (probably like most documentation stuff) static, although with some BrowserOnly react component provided by them you can have dynamic stuff.

#

what I want to render is some math exercises, with a latex library for the formula and the an input or more for the result. The exercises will be random every time you open/refresh the page (loaded from a file)

pastel imp
distant sun
#

The 3rd image is a bit disturbing ngl xD

agile galleon
pastel imp
#

@glass vine this available to the public?

cedar gorge
#

I have a question about apis

#

i wanna make a website that has a login when the player logs in the website their minecraft inventory shows up on the website

#

issue is in the database i encryt the items so how wuold i do it

#

oh wait sorry their is another channel

subtle fulcrum
#

Totally random question

#

Is it possible to put items/pictures into Minecraft books in vanilla/spigot?

#

Say a player opens a book and can see a Diamond sword with writing next to it in a book. Possible?

agile galleon
#

yes

#

custom glyphs

distant sun
distant sun
#

has anyone used this https://mantine.dev/ ? Looks pretty cool

React components and hooks library with native dark theme support and focus on usability, accessibility and developer experience

cerulean ibex
#

and according to npm at least 265 people have

distant sun
#

funny

wind patio
#

i used MUI

#

pretty good too

ornate lodge
#

I need some help so basically there are some crates setup using excellent crates with a hologram above them and on a line it includes the placeholder to show how much keys a player has however it is taking like 10 seconds to update is their any way to fix it

distant sun
#

How do people work with all these CSS libraries like tailwind? The random class names - which ig at some point makes sense, but not for a beginner - are killing me every time I see a good looking component but it consist of 5 other components, each with at least 4 css classes 😭

wind patio
#

tailwind aint that bad

#

boostrap is also easy to learn

distant sun
#

I guess I need to spend more time on basic css first, idk

pastel imp
#

lol

distant sun
#

yeah as I've said I probably need to spend more time on css xD

cinder flare
#

yeah it's literally just more terse names for css properties lol

wintry plinth
#

Yeah I think once you know CSS, even at a basic level, the utility classes are near enough a 1:1 of the css versions

cinder flare
#

super easy and nice to use, plus you get a teeny tiny bundle size

wintry plinth
#

I much prefer Tailwind and would never go back to anything else, so nice when I can look at markup and know exactly what its doing

#

And yeah defo, bundle size is beautiful

distant sun
drifting aspen
#

I can't imagine doing responsive design without tailwind

distant sun
#

Yeah I wasn't saying anything about its usefulness

gusty glen
#

Since ChatGPT, I am dreaming about some AI that is able to convert code between programming languages without (many) errors, I mean, imagine converting entire programs in a blink of an eye? I would love to do that with some open-source projects that I've seen out there

agile galleon
#

Minecraft server -> Go

gusty glen
# agile galleon Minecraft server -> Go

What do you mean? Oh, you mean converting Minecraft Server to Go? That would be very interesting indeed... I would love to compare the performance and see the gains/losses. πŸ€”

cerulean ibex
#

i wanna see it the regular server but compiled with graal native image

#

u could prob do a host that spins up the servers lazily with it

#

cuz graal could reduce start up time by a ton

#

and from looking a mache the only reflection i can see looks like gson

#

i mean theres a few other bits but theyre easy to remove or just add to the config

cinder flare
#

i mean, the vast majority of startup time is dedicated to loading the worlds and loading the plugins

#

both of which aren't really helped with graal or anything

half harness
#

Not regular copilot

#

It's like copilot preview or smth

agile galleon
#

I'll pay a buck for somebody to throw the whole mc server in there

prisma wave
#

Made by none other than Sxtanna

hard dagger
#

And loading plugins won't be an issue (cuz u cant do em)

#

Well not jvm plugins at least

prisma wave
pastel imp
#

actually, they added support to use it in like, html

#

similar to php

#

that's interesting

wind patio
#

mf talking like he invented the word 'syntax' in programming

#

it's not like javascript is basically the same thing πŸ’€

#

takes couple of braincells to understand that
let x = 5is the same as set x to 5

inner osprey
#

yo one of my scripts dont work?

#
var usage = args[0]
function getTime(seconds) {
  var result = "";

  minutes = seconds / 60;
  hours = minutes / 60;
  days = hours / 24;

  minutes %= 60;

  var hs = "h ";
  var h = "h ";
  var ms = "m";
  var m = "m";

  if (usage == "command") {
    hs = " hours ";
    h = " hour ";
    ms = " minutes"
    m = " minute"
  }

  if (hours > 1) {
    result += hours.toFixed() + hs;
  }
  else if (hours == 1) {
    result += hours.toFixed() + h;
  }

  if (minutes > 1) {
    result += minutes.toFixed() + ms;
  }
  else if (minutes == 1) {
    result += minutes.toFixed() + m;
  }

  return result;
  }
getTime(seconds);```
wind patio
#

idk, shouldn't you return getTime(seconds)?

inner osprey
#

I had someone make this for me real quick and it did work

#

but now not?

#

also please @ me

distant sun
#

Check the formatter expansion

inner osprey
#

still nothing

#

come to think if it

#

none of them work

#

my expansions

#

idk why tho

#

I havent touched it

#

only updated papi etc

#

Still no idea :/

static zealot
#

see Expansion-javascript.jar and Javascript-Expansion-QJS.jar

inner osprey
#

oh dam yeahj

#

which one do I need?

#

Just downloaded Javascript-Expansion-2.1.2

#

so I guess the old one?

static zealot
#

IDK. I'd just recommend uninstalling both and reinstalling using /papi ecloud download

#

to get the latest

inner osprey
#

ah slay

#

tyty

static zealot
#

/papi reload before redownloading

inner osprey
#

not evene there

#

nothing on the list either

#

got it to work

#

removing both and manually downloading Javascript-Expansion-2.1.2 fixed it

distant sun
#

The expansion is not verified

#

You need to download it manually

agile galleon
#

How in the jesus is that expansion not verified

distant sun
#

eh..

static zealot
agile galleon
#

Tell me

inner umbra
#

RCE if I remember correctly. And people wouldn't fix it themselves when it was written how to.

wind patio
#

interesting

#

how though

inner umbra
#

🀷 was fixed by negating perms though

distant sun
#

someone had the great idea to make a command like /jsexpansion parse <js code here> and well .. 🀣 I think this was an issue mostly on servers where people didn't setup their permissions right

pastel imp
distant sun
#

'client' - you are just interacting with a dashboard hosted somewhere

distant sun
#

yeah it is

#

but it was patched shortly after

wind patio
#

owell

pastel imp
#

I have never worked with grafana so yeah just trying to figure it out

#

if too much hassle, will go with an alternative

cinder flare
pastel imp
cinder flare
#

you wouldn't use grafana to input data, you use it to visualize!

#

if you just wanna store data, prometheus is the best for metrics, and i think it has a thing you can do so that you can webhook log events to it

#

yeah you can use pushgateway

pastel imp
#

Ahhh that makes a lot more sense

cinder flare
#

or actually, you could probably just do a prometheus exporter for your bot

#

since total guilds/users and stuff is a constant, not event based

pastel imp
#

I could also use the prometheus java client

#

xD

cinder flare
#

well the point of prometheus is that it scrapes your data

#

so you expose a web api in a standardized format and then it scrapes it every like 10s or whatever

#

so you could just track amount of usages in the last minute or whatever

pastel imp
#

so count usage, once it gets scrapped, reset it, and loop?

cinder flare
#

could do yeah

#

honestly not 100% on that, kinda new to metrics stuff, just use it for my minecraft network

pastel imp
#

yeah same here, but would love to have them

agile galleon
#

I wouldn't do prometheus

pastel imp
agile galleon
#

Afaik it's for scraping endpoints that don't natively support stuff like that but not sure

pastel imp
#

?

agile galleon
#

No idea lol

#

Grafana API?

pastel imp
#

?????

agile galleon
#

Idk

pastel imp
#

hell I found an ultra pog dashboard and setup for discord bots

#

but it's for python

#

legit no idea how I would convert it to java

#

lmao

crude cloud
#

πŸ’€

cinder flare
cinder flare
sinful geyser
#

hey idk how much yall know about databases but im in a little bit of a stick. Im using phpmyadmin mysql server which works perfectly using localhost but when for example i try to connect to it from server ran from a host it wont connect. Idk if i have the wrong host Isnt it just ment to be the ip in which it is ran off? i know i have the right port etc... anyone know why i cant connnect to it?

mental trench
#

i dont think you can connect from another ip to your localhost server, might be wrong

#

but you should test using an external database (prob something about ports opened)

prisma wave
#

port needs to be open publicly in your firewall yeah

#

among other things

wind patio
#

@cinder flare oi πŸ‘‹

#

I have a quick question regarding prometheus and unified-metrics

#

so in the driver config

mode: "HTTP"
http:
  host: "0.0.0.0"
  port: 9100
  authentication:
    scheme: "NONE"
    username: "username"
    password: "password"
pushGateway:
  job: "unifiedmetrics"
  url: "http://pushgateway:9090"
  authentication:
    scheme: "NONE"
    username: "username"
    password: "password"
  interval: 10

what's the first port and the pushGateway url/port for?

#

plus, does prometheus need any additional setting up?

#

well, I think I got it lol

cinder flare
wind patio
#

prometheus setup was prob the longest

#

also, where is the data stored and how heavy does it get?

pastel imp
#

prometheus stores the data

#

I think

wind patio
#

figured out how to create custom data, added server total balance tracking, was thinking what else would be interesting to track lol

pastel imp
#

yeah it has an internal timeseries db

wind patio
#

uniquemetrics setup is pretty cool as it is but I still find Plan more useful as it tracks data for each player, their activity, etc

pastel imp
#

unified*

ornate lodge
#

anyone know of a plugin that can reduce all players balances by a certain amount

cinder flare
#

Plan is player analytics

#

UnifiedMetrics is metrics

#

helps you keep server stuff going, it doesn't help you figure out where users are coming from or anything like that

wintry plinth
#

Analyse >>

prisma wave
#

stunning and brave

brittle leaf
#

currently doing my first attempts at packet only blocks so a can clump all mines in one location without them being visible to other players

distant sun
#

enjoy the pain

brittle leaf
#

its gunna be funℒ️

#

but if it works, itll be good

brittle leaf
#

id assume theres a difference

#

ill look into it

crude cloud
#

mfw Player.sendBlockChanges

sweet cipher
#

How would you detect player's breaking those blocks without packets though?

brittle leaf
#

that be the issue kekw

#

its why im using protocollib in the first place

#

since im somewhat comfortable sending packets already

#

its the intercepting and modifying that im not so comfortable with

wind patio
wind patio
wind patio
static zealot
#

plan >>

wind patio
#

ive heard both positive and negative stuff abt plan, but I feel pretty comfortable using it, thats why I chose to go w it

static zealot
#

plan is good. only thing is you have to set it up yourself.

wintry plinth
wind patio
#

not live yet, planning to open this friday

#

it's a survival world, nothing too crazy

brittle leaf
#

been headdesking trying to get these packets to send, turns out im a stupid and forgot to convert the coordinates back from their section relative coordinate

wintry plinth
wind patio
#

well, gotta hope it turns out well

#

considering how much time and effort was put into the making

#

I was previously a dev for the most popular server in my country and I didnt bother doing the stuff I currently did for my own server, like setting up metrics, grafana, prometheus, making entire e-shop from scratch, a huge main/core server plugin with shit load of features, custom/extra fishing/mob/mining drops, enchants, daily, weekly, monthly server/database backups on another server, and a lot more but tired to type everything out lol

#

a bunch more to do for the future but the foundation is pretty well set-up

wintry plinth
wind patio
#

gone crazy

#

not everything is custom, I suppose its nothing really unordinary, just a lot of vanilla enchancements with economy ig

wintry plinth
wind patio
#

yeah, well, the previous server had a shitty community to say the least, mostly kids and sometimes a few older ones, but not exacty very wise

#

at least from what I know this server had a pretty mature community

pastel imp
#

setting up the prometheus and grafana for my discord bot

#

hopefully will be soon in the following hour or so

distant sun
agile galleon
#

I had a really shitty server, plain vanilla and in season 2 it was so much better but still nothing special, and it closed in 2021. I had such an awesome bond with the community.
I lost money running it but to this day I get DMs to bring it back xD

brittle leaf
#

this is supposed to be a stone cube kekw

agile galleon
#

Lmao

#

Just use packetevents XD

brittle leaf
#

i dont think this is a protocollib issue

#

cus im not even using protocollib to send the packets

#

i know ive fucked something up while doing the calculations

#

the x coord is right, its the y and z that arent

agile galleon
#

What the heck

#

Why are you even trying to do this?

brittle leaf
agile galleon
#

Uhh why

brittle leaf
#

to make performance better and to reduce file size

#

or something

#

idk

#

why not, even if it never makes it to production why not try to see what i can make

#

wayyy i fixed it

#

Before
blockPosX & 15) << 8 | (blockPosY & 15) << 4 | blockPosZ & 15

After
blockPosX & 15) << 8 | (blockPosZ & 15) << 4 | blockPosY & 15

#

if you're wondering what it does, it converts a block position to a relative position in a chunk section and then into an integer

#

i mixed around the y and z values causing the funky behaviour

#

i copied and pasted it from the sectionRelativePos method in SectionPos and while troubleshooting i changed the variables used and ended up mixing them up

inner umbra
#

... can't you just do blockX << 16 not at PC so I can't check the code I used.

thick monolith
#

anyone know how to change attack damage on weapons?

#

specifically the bow

#

i know i can spawn in unique stat-edited items but i need to the change the stats of all bows globally and permanently

noble gulch
#

AttributeModifer

#

And listen to the on player shoot event

#

Hm no then you would need to give them back the new item

#

I wonder how quickly that would happen

humble prism
#

also mc hosting isnt really about making money (atleast imo), its very few servers that actually make/get costs back tbf

agile galleon
#

Blud missed the entire point

brittle leaf
humble prism
#

i mean if he wants to host it again for the ones who ask in the future

#

Β―_(ツ)_/Β―

agile galleon
#

I wanted to say that having a nice community is mostly all that matters

pastel imp
#

yo did you guys see https://idx.dev/

potent nest
#

Another project Google can kill in a few years?

obtuse gale
#

any dev here avail? im hiring a dev for my server

#

minecraft

#

just dm me if ur interested Hype

sly sonnet
wind patio
inland bay
#

Hello
I put my server in 1.16.5 and when I launch it writes : Unsupported Java detected (61.0). Only up to Java 16 is supported. someone knows the source of the crash please . Thank you in advance

wind patio
#

too new java

distant sun
lavish notch
#

I am back in business.

sly sonnet
#

Who do ppl like static abuse so much?

wind patio
#

depends what you call static abuse

#

if it's your main class, which is, effectively a singleton, setting a static main class instance variable is not, imo, static abuse

civic cairn
#

Just laziness

potent nest
#

Misunderstanding of the concept behind static

brittle leaf
#

either by changing the java to your/java11/location/java.exe or change your enviroment variable for java home to the new java location

wind patio
crude cloud
#

not mutually exclusive statements

cerulean ibex
cerulean ibex
#

I also don't think what you're referring to can even be considered the singleton pattern

#

The singleton is also a creational design pattern, not a way to provide static access to some instance. Given that, there is no need for it at all since the plugin instance should be passed in by referencing this, not getInstance().

crude cloud
#

singletons don't even need to be static, they are not synonymous lol

#

but, y'know, "i'm too lazy to di", use a di framework and it'll do 99% of the work for you, excuse for being lazy

sweet cipher
#

The best way is to make all variables in a class static and then you can just make a new object every time you want to access them

pastel imp
cinder flare
#

Dagger is my favorite

#

Guice is also kinda nice

cerulean ibex
# pastel imp any recommendations on DI frameworks?

ill list a few for u and what they do

  • spring - not so lightweight but its the standard
  • guice - requires a descent amount of boilerplate and afaik integration testing against it requires some boilerplate
  • dagger - if youre running on a toaster use it, or, just don't do di
  • micronaut - lots of features but doesnt work if the plugin jar has a space in it and hard to debug cuz it generates bytecode but supports graal
  • avaje-inject - everything is checked at compile-time and its pretty lightweight. only downside beans are initialized eagerly so u need to set up all beans for tests even if u dont use them
  • quarkus - no reflection afaik, implements cdi, easy to debug, supports graal
#

they all implement the jakarta inject api so if u dont like one u can easily switch to a diff one

crude cloud
#

I mean I wouldn't use spring or micronaut for the di, but if you're making a project already using either then that's what you should use lol

#

dagger is neat

cerulean ibex
#

i aint writing

@iforgotwhatannotation
abstract NuggetMaker nuggetMaker(VeryGoodNuggetMaker nuggetMaker);
crude cloud
#

okay

pastel imp
#

isn't there a @Inject or smt

#

remember seeing that somewhere

cerulean ibex
#

yes

pastel imp
#

doesn't that also work lol

cerulean ibex
#

@Inject tells the injector where to inject the dependencies, but what i was showing was telling the container that NuggetMaker should resolve to the VeryGoodNuggetMaker implementation

boreal acorn
cinder flare
wind patio
#

pretty sure the way the plugins are handled there cant be loaded more than one instance of a plugin

#

and, well, setting a static variable of the instance itself shouldnt be a huge issue

#

when it comes to, not sure if its a correct term, maintainability (all the accessors of variable), I would say thats another topic

#

if your codebase is small, DI wont magically make it N times better

civic cairn
#

Never understood DI frameworks tbh

#

It is useful only if your codebase consists of singletone services

potent nest
#

never understood
pretends to understand

civic cairn
#

Am i wrong tho?

potent nest
#

services don't need to be singletons, you can benefit from DI even if only small parts of your codebase are services

civic cairn
#

I mean, not singletones with the static instance, classes that are instantiated once and used all over the place

cinder flare
#

yeah that's generally a lot of codebases lol

#

especially minecraft plugins, which a lot of people here work on

civic cairn
#

Good for them

#

but, like, if you have 10 dependencies on class its a design issue

#

5 maximum

cinder flare
#

eh

#

depends on what you're doing

potent nest
civic cairn
potent nest
civic cairn
#

Ye

#

But di frameworks are kinda used to work around that?

potent nest
#

there's nothing to work around, you can write strongly coupled code without DI frameworks easily

wind patio
#

anyone wanna explain tf is wrong with my fs

#

mysql has a table with max 5gb data

civic cairn
wind patio
#

hm?

civic cairn
#

ah nvm

#

saw the first screenshot

wind patio
#

πŸ₯΄

#

cool

cerulean ibex
wind patio
#

well you can use a wrench to hit a nail too

#

but usually hammer is the way to go

cinder flare
#

like bringing in Spring just for the DI is the textbook definition of overkill

cerulean ibex
wind patio
#

πŸ₯΄

cerulean ibex
#

tbh theyre not as big as i thought tho

#

in terms of file size at least, compared to guice, theyre like only 10% bigger

cinder flare
#

yeah but like guice is huge lol

#

look at dagger 😌

wind patio
#

this is the first time I see someone recommending spring for DI

cerulean ibex
#

it is the og di framework tho

vestal hedge
#

I know this is Java, but have a problem with Vue.js and Laravel.
This does not seem to work and am getting an browser error Type Error: e not defined.
Get this error when clicking on button:

                                        <button class="m-2" @click="addToCart({{ json_encode($menuItem) }})">Toevoegen</button>

Vue:

<script>
    const app = Vue.createApp({
        data() {
            return {
                cartItems: []
            };
        },
        methods: {
            addToCart(menuItemJson) {
                console.log('hoi');
                const menuItem = JSON.parse(menuItemJson);
                this.cartItems.push(menuItem);
            }
        }
    });

    app.mount('#app');
</script>

Any help would be greatly appreciated!

wind patio
#

Step 1, dont use vue

vestal hedge
drifting aspen
#

Hey

#

be grateful that you're learning Vue in school

#

You could be learning JQuery

vestal hedge
#

atleast one upside

vestal hedge
#

Actually nvm that. I have fixed it. Did not remind to put id="app" all above. the @click was not in the div. Love starting to program again... πŸ™‚

rose wing
#

tell me ideas for a name for a guis lib

crude cloud
#

YAGL

pastel imp
#

Yet Another Gui Library? xD

austere shale
#

me when plugin didnt work for no reason for weeks on end and now it works

sweet cipher
#

Anyone have any idea how to fix this? Idk what is going on (using paperweight)

There was a failure while executing work items
A failure occurred while executing io.papermc.paperweight.tasks.GenerateMappings$GenerateMappingsAction
Mapping operation failed
java.lang.IllegalStateException: Unexpectedly merged method: ana/a
Unexpectedly merged method: ana/a

crude cloud
#

git gud

sweet cipher
#

Git is good

sweet cipher
zenith phoenix
sweet cipher
#

I tried invalidating IntelliJ cache, and using gradle clean, I'll try the gradle one

#

Unfortunately that did not work

crude cloud
sweet cipher
#

Oh yeah I forgot to reply I figured it out, it had to do with me missing a repository for a completely unrelated dependency in a different module lol

crude cloud
#

ah

slate elk
#

yo Fisher i saw your showcase

#

looks really good

#

next generation redstone haha also dont forget to add batteries and shit i might do something very simillar soon not stealing ur idea but something simillar

#

kinda sucks minecraft doesnt allow cables stick to walls

#

maybe using itemframes or armorstands but it will be kinda heavy task to do tbf imagine many people use the new electricity

pliant blaze
#

anyone know a plugin like the one used in herobrine .org skyblock server

#

which generates random nether blocks

#

like this clip

distant sun
#

https://youtu.be/f6TXY5EyrHU I guess it is just a modified cobblestone generator plugin since it says "skyblock multiplayer" in comments

This is the best nether generator to get netherite scrap, which you can craft into netherite ingots in skyblock multiplayer !

Join me in Herobrine server: mc.herobrine.org
My IGN is: RakanSalaitah

Twitch: https://www.twitch.tv/RakanBS17
Music: https://www.youtube.com/watch?v=FA9vqPWR0Ks&ab_channel=NoCopyrightSounds

β–Ά Play video
kindred sequoia
#

Ok

half harness
inner umbra
distant sun
#

Do you guys know any general use tool for statistics? I just need to push some data to it and then to be able to view the data as charts.
E.g. when someone joins the discord server, I want to increase the number of joins for the invite they used and later on to view the statistics about all invites used every day.

pastel imp
distant sun
#

It was just an example Afonso, and ik about grafana but I would need a db too

distant sun
oblique heath
#

ez

distant sun
#

Smh

crude cloud
#

tsdb my beloved

distant sun
#

yeah

#

I was looking for smth that I don't need to setup, but ig I will just do that

latent spear
#

Hey anyone has a code for a loot box in deluxemenus ?

wind patio
#

how about ya do it yourself cursed_fingerguns

civic cairn
#

Is there an api for deluxe menus?

lavish notch
#

Touch grass

prisma wave
#

?

oblique heath
#

moni

abstract osprey
#

Is it possible for someone to compile a git repo for me into a jar?

oblique heath
#

are you unable to do it yourself for some reason o.o

woven plaza
#

i can for 10usd

lavish notch
prisma wave
#

?

steel heart
#

nah there is surely no way my uni forces us to write in haskell

#

this is offensive

prisma wave
#

wtf i love ur uni now

#

so based

#

so so based

oblique heath
#

omg

#

mine only had us do racket

#

you've been blessed

solemn laurel
#

I was remote that semester and took OCaml instead, which is very similar (just another functional language)

cinder flare
#

mmm ML-based languages

#

of which I guess Haskell is one

wintry plinth
#

Many are starting to favour PHP here, but if you’re still on the fence - https://youtu.be/ZRV3pBuPxEQ

PHP in 2023 is very different than PHP in 2012. Let's run through some of the changes!

00:00 Intro
01:16 Traits
01:34 Short array syntax
01:47 Array destructuring
02:05 Variadic functions
02:12 Spread and splat
02:34 Generators
02:49 Anonymous classes
03:06 Trailing commas in function calls
03:26 Arrow functions
03:48 Null coalescing and null c...

β–Ά Play video
wind patio
#
$phpDoesntSuck = true;
wind patio
distant sun
#

strcmp, strcasecmp, strpos, etc.
C vibes

wind patio
#

implode explode πŸ₯΄

distant sun
#

wth

wind patio
#
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

this was very weird for me when I first started php, how does it know the function when its name is passed by a string

cinder flare
#

you can just invoke stuff in like most languages like that

#

you can do that with reflection in Java

distant sun
#

poor man method reference

cinder flare
#

but iirc you can also just do a method reference yeah

wind patio
#

yeah, that's true, but php was one of my first langs back in the day lol

cinder flare
#

or something like ClassName::class . '@cmp'

#

cause it's literally just strings

#

and . is the concatentation operator

wind patio
#

I only realized that php had classes way too late

#

πŸ₯΄

cinder flare
#

lol PHP had classes for so long

#

better than C++ imo

wind patio
#

now I do, I didn't when I started and wrote a bunch of spaghetti code

cinder flare
#

it even has kotlin-style constructor property injection

#

well not as nice as kotlin

#

but you can make a constructor that's type hinted and it will automatically assign them as class variables

wind patio
#

yeah, that I noticed

#

actually found that out kinda by mistake or rather a suggestion from phpstorm when writing a symfony project

potent nest
#

PHP has variable variables

prisma wave
wintry plinth
#

PHP is the goat

prisma wave
#

πŸ˜•

wintry plinth
#

Not the latest shiny tool, but the developer experience IMO is unmatched. I tried Next.js (full stack wise) was fucking terrible

#

Frontend with nextjs is lovely, but backend was a nightmare. Went straight back to php + react

#

Plus tbh, PHP handles 25mil sessions + 40mil events + 28mil heartbeats a month without a hitch, no cpu usage

cinder flare
#

yeah honestly, i'm very impressed with Laravel mostly

#

just the documentation, the first-party utilities that hook in really nicely, it's kind of amazing

#

and the language is better than python in a lot ways imo

#

especially in the type annotations area

#

i honestly feel like Spring, etc. could have basically the same thing, they'd just need to drop the cruft of XML and basically rewrite all the documentation ever made to be a lot better

wintry plinth
#

And usually you only need first-party stuff to build things, the only other time is spatie packages, which are backed by a huge company πŸ˜‚

wintry plinth
#

Genuinely terrible, can't customise anything

cinder flare
#

yeah I heard with the whole release of Filament v3, it's basically pointless to buy Nova

#

when you can just get a free and open source admin panel that's like 100x more customizable and stuff

agile galleon
#

What the heck?????????????????

#

Why have I never heard of filament???

#

aaaa its so cool

wintry plinth
#

I've been writing tests, v1 codebase had 100, but we'll get there

#

new codebase is technically v2 not v3, just cba to change folder

wind patio
#

πŸ˜΅β€πŸ’« (not all branches are merged)

cinder flare
wintry plinth
#

like the analytics engine

cinder flare
#

stuff like it dispatches a job and it creates an event just seem so pointless to me

#

like that's literally one line that isn't in your control directly, what's the chance it's not going to do that yk lol

prisma wave
#

unfortunately without purity in the type system it is impossible to always tell if your code works

wintry plinth
#

My events schema also comes in 2 parts: events and event_metadata. I find it handy to have in case for example I add a new database field for another part of the app, I could suddenly break my heartbeats

lavish notch
#

Found this on LinkedIn

frigid badge
#

people really use linkedin for the wrong stuff lol

distant sun
#

@frigid badge corporation version of Facebook boomers

#

Wanna connect? 🀣

frigid badge
#

haha yeah basically, and sure.

distant sun
#

Ive only now used LinkedIn more because I was looking for a job, all the notifications I get from it are annoying

wind patio
#

POV: you CTLR + Click Material class

distant sun
#

I'm glad it is not only me

wind patio
#

IDE can't even handle it with 4gb πŸ₯΄ (though 4 is not necessarily high)

distant sun
#

Although I don't get that, but it takes a .. second to load

frigid badge
distant sun
wind patio
#

should try to open material class for 1.8

#

see how fast it is

distant sun
#

The enum itself is wrapped into an uh, editor fold or smth

wind patio
distant sun
#

I think there is even spigot 1.2.5

#

Or a very old version anyways xD

wind patio
#

hm, earliest nms I can find is 1.8

#

ah nvm

#

craftbukkit cursed_fingerguns

#

spigot earliest is 1.4.6?

brittle leaf
#

or atleast that i could find

#

according to the jenkins page for spigot before they stopped providing builds already compiled, there is build #129 for 1.3.2, tho from the looks of it its just a fork of craftbukkit, mentioning EcoCityCraft, was that md_5's server back in the day?

tardy dagger
#

I can't send screenshots πŸ₯²