#development

1 messages · Page 110 of 1

hard wigeon
#
        prisma.server.create({
            data: {
                id: guild.id,
                groups: JSON.stringify([])
            },
        });

is highlighted as groups being invalid

winged pebble
#

Invalid how? As in the wrong type?

fiery pollen
#

If you do for eachs loops, will they always go in the same order if you are looping over the same array/list?

winged pebble
#

Array and list keep order iirc

#

Set does not

fiery pollen
#

Ohh shit

#

I have like a keyset, but i can't put them in the same foreach loop

winged pebble
#

Oh yeah that's different

#

Because you're technically dealing with a map I'm guessing

fiery pollen
#

Yeah

winged pebble
#

The keys returned by the map won't always be the same order iirc

fiery pollen
#

Should i add just all key values to a list?

#

and then loop over these?

winged pebble
#

Because map doesn't maintain order

#

What's your context?

fiery pollen
#

So well i have this ticketembed, and there are like catagories you can choose. First i need to loop over the catagories for the names and the emoji's and later i have to add the emoji's to the embed

winged pebble
#

How are you handling it currently?

dense drift
#

LinkedHashMap does keep order

winged pebble
#

Does that order continue on to a keyset though?

dense drift
#

I guess

olive dirge
#

Are persistentdatacontainers in 1.18?

fiery pollen
#

Or should i use a LinkedHashMap

olive dirge
#

Oh that's dope

lyric gyro
olive dirge
#

Anyone having trouble with using Vault API?

#

Econ keeps returning null for some reason 🤔

winged pebble
olive dirge
#

Yeah I have Essentials installed

winged pebble
#

Does you plugin depend on it?

#

If not, it could be loading before essentials

olive dirge
#

Yep I have it on the plugin.yml

#

What's the difference between Build Artifact and Build Project?

winged pebble
#

artifact is what is output when built

olive dirge
#

seems that I need to build artifact to update the jar

#

rather than build project

#

Just wonderin now what build project does 🤔

formal locust
#

is using enum for configuration recommended?

#

public enum Class {

PREFIX(plugin.getConfig().getString("general.prefix"));
}

lyric gyro
#

I’d say you’re better off having constants it’s whatever tho

winged pebble
#

Yeah enums are typically for things that aren't dependent on other things

night ice
#

Hey...just a quick doubt...is block#MetaData persistent in Spigot API

                    player.getEyeLocation().getBlock().setMetadata();

So will the meta data i set to this block, will it go after a server restart?

dense drift
#

I think that on older versions it is not persistent =/

formal locust
#

is DisplaySlot.PLAYER_LIST tab?

dense drift
#

Yes

formal locust
#

ok

dusky harness
#

Is there a way to get the item that would be used with right clicking?
ex if I have a stone block in main hand and snowball in offhand, it would select stone block if I was looking at the ground, but snowball if i was looking in the air

rugged bane
#

On right click, get the hand used, then get the item stack

prisma briar
rugged bane
#

Oh wew

cinder forum
pure crater
#
    private final List<String> list = new ArrayList<>();

    public SpawnTeleportEvent(FileConfiguration config) {
        list.add("UNRANKED-QUEUE");
        list.add("RANKED-QUEUE");
        list.add("KIT-EDITOR");
        list.add("PARTY");
        list.add("HOST-EVENTS");
        list.add("LEADERBOARDS");
        list.add("SETTINGS");
        list.add("IDK-YET");
        list.add("IDK-YET");
       
    }

why do this?

#

When you can just:

#
private final List<String> list;

public SpawnTeleportEvent(FileConfiguration config) {
  this.list = Arrays.asList("UNRANKED-QUEUE", "RANKED-QUEUE", etc...);
}
cinder forum
#

because im noob, thank you

pure crater
#

in your loop logic, considering creating an explanatory variable for list.get(i)

#

Also I recommend using minimessage rather than the dumb & symbols

#

Lol

mellow kindle
#

So I recently Optimized my server and it caused my portal based farms from despawning when they reach the nether this includes Overworld --> Nether and Nether --> Overworld!

Files I optimized:-

Bukkit.yml
Paper.yml
Spigot.yml
Server properties (Only Edited view distance)

Guides I used for assistance:-
https://www.spigotmc.org/threads/guide-server-optimization⚡.283181/
https://shockbyte.com/billing/knowledgebase/154/Optimizing-bukkityml-to-Reduce-Lag.html
https://shockbyte.com/billing/knowledgebase/155/Optimize-paperyml-to-Reduce-Lag.html
https://shockbyte.com/billing/knowledgebase/153/Optimizing-spigotyml-to-Reduce-Lag.html

elder marsh
#

hi, this is my first time hooking papi into plugin, can someone help me, i followed the papi hook tutorial but it didn't work.. : D

#
@EventHandler (priority = EventPriority.HIGH)
    public void onJoin(PlayerJoinEvent e) {

        String text = plugin.color("&e%player_name% &fjoined the server.");
        String nText = PlaceholderAPI.setBracketPlaceholders(e.getPlayer(), text);
        e.setJoinMessage(nText);

    }
#
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {

            Bukkit.getPluginManager().registerEvents(new JoinEvent(this),this);
            Bukkit.getPluginManager().registerEvents(new ChatEvent(this), this);

        } else {
            getLogger().warning("Could not find PlaceholderAPI! This plugin is required.");
            Bukkit.getPluginManager().disablePlugin(this);
        }
elder marsh
#

thanks in advance!

proud pebble
#

cannot access net.minecraft.nbt.CompoundTag
im trying to compile using the mojang mappings, but its giving me this, any ideas why?

#

i have md5's maven plugin so i assumed it would work

cinder forum
#

Hi guys, I'm getting error

[21:37:29 ERROR]: [Practice] Practice v1.0-SNAPSHOT attempted to register an invalid EventHandler method signature "public void com.kuba256.practice.listeners.spawn.RightClickListener.onRightClick(org.bukkit.event.player.PlayerInteractEvent,java.lang.String)" in class com.kuba256.practice.listeners.spawn.RightClickListener

RightClickListener.java: https://paste.helpch.at/ahicuqufop.java
in main class is

pm.registerEvents(new RightClickListener(this.getConfig()), this);

Why is it happening? 🤔

lyric gyro
#

event handler methods can only have one parameter that's the event itself

cinder forum
#

ooh

#

thx

proud pebble
#

i found the issue, was building against java 11 for some reason instead of 17.

lyric gyro
#

you'll have to share a fair bit more code to get to the bottom of the issue, chief

#

e.g. where is meta coming from exactly and what does getItemStack() do exactly

#

@tight junco my problem is that i want to gett all paths and if i do .getConfiguration().get("path") that i need to enter the name of the Location

#

like i want to list them all and print them out with a foreach loop

tight junco
#

FileConfiguration#getKeys(false)

#

wait no

#

maybe

lyric gyro
#

it worked

#

❤️

tight junco
#

wait yes

lyric gyro
#

Thank you very much

wintry grove
#

so I'm bored and wanna try making a game from scratch, I'm looking into opengl but I have got 2 language options:
1.- Java (+ I know a bit more on it / - Bad Performance I guess)
2.- C# (+ Performance / - I dont know a lot of it (will need to learn))

Also if I go for C#, what library should I use? thanks in advance

icy shadow
#

C(++) or nothing for opengl

#

Rust at a push but probably not

wintry grove
#

not really willing to learn those other 2 Cs

icy shadow
#

probably

#

what

lyric gyro
#

isn't C# actually worse in performance than Java?

wintry grove
#

idk

#

just I want to learn then

leaden sinew
#

Does C# have garbage collection?

wintry grove
#

java will be then

#

from hytale's blog:

#

thats where I got the idea from

pulsar ferry
leaden sinew
#

Isn’t garbage collection what makes Java slower than other languages?

pulsar ferry
icy shadow
#

Better but still not great

#

Garbage collection is a wonderful thing but it's not applicable everywhere

wintry grove
#

then c#?

#

hytale is being coded in C# and that gives me confidence

#

idk why but ye

lyric gyro
#

and minecraft is made in java, so what, lol

wintry grove
lyric gyro
#

and hytale ain't even out yet

warm steppe
#

yeah if ur pc is made from wood

topaz gust
#

Not really

#

Java is fine performance wise sure not perfect, but it does fine

wintry grove
#

I'll give java a shot

wintry grove
topaz gust
#

It’s more just your preference

lyric gyro
#

i mean yeah minecraft does run incredibly well actually

topaz gust
#

^ for what it is it’s great

#

And it’s shortcoming are reduced by legends such as akair

warm steppe
#

aikar*

#

pls don't disrespect him

wintry grove
#

LWJGL or LibGDX

warm steppe
#

1

wintry grove
rugged bane
wintry grove
#

@warm steppe why should I use LWJGL?

#

just wondering

icy shadow
#

lwjgl is an opengl wrapper, libgdx is more like an engine @wintry grove

cinder forum
#

hi, what is easiest way to save text in ItemStack but dont make it visible if its possible?

fiery pollen
#

Nbt?

lyric gyro
#

Minecraft’s performance is shit because it’s coded like shit not because it’s using java.

lyric gyro
wintry grove
#

client is C# and server side java

lyric gyro
#

But yea there’s hope for hytale I feel that

wintry grove
#

so I will use java then

#

thanks

lyric gyro
#

Depends on your goal

wintry grove
#

I was looking to make a game thats good on performance (in the language used for coding terms) and thats easy to setup lmao

lyric gyro
#

Just use unity

#

And again, still needs to be coded and executed well for good performance

wintry grove
#

but I want to do it from scratch

lyric gyro
#

2d?

wintry grove
#

3D

#

I'm gonna suffer

#

for good

lyric gyro
#

If you haven’t made 2d games most definitely lmao

#

Gl with graphics

wintry grove
#

heh

dusty frost
#

that's more of bad architecting

#

server side performance would be way better if there was better multithreading and stuff

wintry grove
#

wait now I'm confused

#

with server side you mean the server program you join for, well servers?

#

or like that weird internal server in mc

lyric gyro
#

spigot

#

and all of it

#

nms even

wintry grove
#

ok so its the program you join for playing servers

#

nice

lyric gyro
#

thats why people tend to fork spigot

#

fix the shite

#

"""fix""" and scam for $5k

#

theres adding stupid patches that theoretically do nothing. but theres big changes you can make that are worth

#

you cant really make full scale optimizations without nms but some fs

wintry grove
#

well

#

now I'm curious why Hypixel Studios decided to do the client on C#

lyric gyro
#

unity/c# is much easier

wintry grove
#

oh so C# with opengl = easier?

lyric gyro
#

you can use what you want

wintry grove
#

the hytale team also use their own engine

#

just being amazed by this type of stuff

lyric gyro
#

graphics is aids always

wintry grove
#

so now I get it

#

they use opengl for well GPU stuff and rendering

lyric gyro
#

i dont think we know what glib they use

wintry grove
#

but what do they mean by

#

custom engine

#

like

lyric gyro
#

game engine

#

much like unity or unreal

wintry grove
#

so basically the program that lets them add stuff easily?

#

using opengl as example?

lyric gyro
#

yes

wintry grove
#

ohhhh

#

idk why I see it a bit unpractical

#

wait not I see it

#

lmao

lyric gyro
#

prolly wasnt worth it

wintry grove
#

yeah

lyric gyro
#

some people like making shit themselves tho :3

wintry grove
#

LMFAO

#

thats true

#

I dont really get the point of doing so

#

in this type of game I would call engine directly the render shit

lyric gyro
#

does more than that

#

manages your project

wintry grove
#

well add that too

lyric gyro
#

they have a diff approach than mc

wintry grove
#

so basically their engine is for render shit and manage project

#

like

#

hummm

#

give example lmao

lyric gyro
wintry grove
#

yeah

#

but doesnt really give a lot of meaning to do so but well

#

sooooo

#

C# for client will be then :3

#

at this point I find it easier to use that language because of the way is done

#

and the stuff you can do

#

I can literally embed the launcher in the game

#

or the game in the launcher

#

now time to setup Visual Studio smh

#

wait what wrapper should I use?

lyric gyro
#

wrapper?

wintry grove
#

or well how do I use it in C#

#

lmao

lyric gyro
#

use "it"?

#

use what?

wintry grove
#

any docs or guide on how to setup opengl in C#

pulsar ferry
#

What's the point of using pure C# for it? I mean if you want it why not just use unity?

#

Or Java since you're more used to

wintry grove
#

java will be then lmfao

lyric gyro
#

lol

wintry grove
#

I forgot the meaning of life

#

F

pulsar ferry
#

It's 42

wintry grove
#
  • 5 - 10 / x(10/3098908.2120938019283*shit+life)
#

haha die shitty visual studio

#

IJ will take the contract

pulsar ferry
#

Yikes visual studio, could have at least used Rider

wintry grove
#

while I remember I will have to do 3D math

#

help

dusty frost
#

god I love Rider

#

it's very cool

lyric gyro
#

/nick rider

pulsar ferry
#

😌

#

Love you too star

lyric gyro
#

okay

#

leave the LONELY EMILY alone

#

i will not tolerate this

smoky hound
#

they never saw my nickname coming

pulsar ferry
lyric gyro
#

i recommend something youre at least familiar with lmao

cerulean birch
#

why is my apache compiler plugin doing some fatal error compiling when i give it java version 16 or 17

sudden sand
#

Hello can someone explain me this kind of error : java.lang.IllegalAccessError: tried to access class com.zcdevelopment.eurastats.npc.StatNpc$1 from class com.zcdevelopment.eurastats.npc.StatNpc

#

this error is non-sense

#

also this

#
java.lang.IllegalAccessError: tried to access class com.zcdevelopment.eurastats.manager.impl.HologramManager$1 from class com.zcdevelopment.eurastats.manager.impl.HologramManager```
graceful hedge
sudden sand
#

How can I fix it

graceful hedge
#

It’s a bit weird, because you compile against something which allows you to access x thing, but then that something doesn’t allow you to access x thing during runtime. This is caused when the version of something is different from compile time and runtime. Ideally you might just want to recompile and redeploy all your dependencies with the newest versions or make sure to use the same version in the server as well as a dependency.

sudden sand
#

Ok I will try thanks for explications

sterile hinge
#

you probably need to figure out what the first anonymous class you have in StatNpc is

sudden sand
#

probably a runnable

sterile hinge
#

I'd suspect that the super class might be not accessible anymore, because an anonymous class should always be visible to its enclosing type (as long as you compiled it in one run)

sudden sand
sterile hinge
#

a normal Runnable shouldn't be an issue, that would be very weird

#

but you can extract the HologramManager$1.class file from your jar and inspect it with javap, that might help to figure out what's going on

warm steppe
#

Why does

implementation("net.dv8tion:JDA:5.0.0-alpha.3") {
    exclude group: 'club.minnced', artifact 'opus-java'
}

Screams at me: 'exclude' in 'org.gradle.api.artifacts.ModuleDependency' cannot be applied to '(['group':java.lang.String], ?)'

#

ah wait nvm i had to read the docs a bit more xd

#
implementation("net.dv8tion:JDA:5.0.0-alpha.3") {
    exclude module: 'opus-java'
}

Fixed it

formal locust
#

any good theme for IntelliJ

lyric gyro
#

Actually Material Theme is great

#

With Atom Icons

dusky harness
lyric gyro
dusky harness
#

yea

#

also .ignore, Discord Integration, IntelliJDeodorant, Statistic, and WakaTime

#

🙃

lyric gyro
#

Tf is that

dusky harness
#

🤷

broken elbow
#

yo someone list me the ess javadocs

#

link*

#

please

lyric gyro
#

Butugh

broken elbow
#

Butt

queen plank
#

How can you use multiple different clickable commands in one line? I want to edit a lore add have it setup like this "[Edit] [Remove] texttexttexttext". So I want to execute one command by clicking on edit, and one by clicking on remove. I know that I can use textcomponents for clickable commands, but I can't combine different commands in one line. How do I do this?

dense drift
#

Just append them together

uncut elk
#

Where can I find the API for autosell?

tight junco
uncut elk
#

I don't have access to it

tight junco
#

idk i have the command to check

#

=check

#

nope

#

feelsbadman

neat pierBOT
#
FAQ Answer:

Here you can find the API to hook into Clip's plugin AutoSell, which was made by vk2gpz - https://www.spigotmc.org/resources/62935/
Please do not contact Clip for help with this particular resource.

broken elbow
#

@uncut elk ^^

broken elbow
# tight junco =check

that's a staff command... smh. Every user has the ability to recheck their roles tho. /spigot check. That one =check accepts any user as input.

tight junco
#

o

#

i dont pay attention to that stuff here

#

anyway go away default pfp rat

broken elbow
#

😦

broken elbow
tight junco
#

okay you can stay

#

but thats just cause its pink slpyBonk

broken elbow
#

k. thank you

neat pierBOT
#
Hey son,

How do hens stay fit? They always egg-cercise!

#
Hey son,

Mahatma Gandhi, as you know, walked barefoot most of the time, which produced an impressive set of calluses on his feet.
He also ate very little, which made him rather frail and with his odd diet, he suffered from bad breath.
This made him a super calloused fragile mystic hexed by halitosis.

broken elbow
#

damn. I'm not reading that

lyric gyro
#

That's so fucking dumb oh my god

broken elbow
#

I assume that's a chemistry joke?

tight junco
#

supercalifragilisticexpialidocious joke

uncut elk
#

Is there any public jar available so I can test if the API works?

tight junco
#

no

#

not made by helpchat feelsShrugMan

broken elbow
uncut elk
#

I know

broken elbow
#

which means no public jar exists.

uncut elk
#

I won't pay 10 bucks to see if an outdated plugin's API works, someone just requested that I add support for it to my plugin.

broken elbow
#

well then don't do it... lol. You asked, I answered

uncut elk
#

Oh well, there are other ways ;')

broken elbow
#

and it is getting updates. slowly. but yes

hushed badge
#

the other way is to get the person requesting support to test for u

uncut elk
#

Sure Kappa

#

#getMultiplier(Player) returns null even if I have a multiplier

#

Tried it deopped too, same issue

#

Got it working but by accessing other classes of the plugin instead of the API.

neat pierBOT
#
Hey son,

Which is the fastest growing city in the world? Dublin'

pure crater
#

So I am trying to return a pointer in Go. If I created my byte array is as so data := make([]byte, length), and I added some values and stuff. Is the proper way to return unsafe.Pointer -> C.CBytes(data)?

cinder forum
pure crater
#

you should still try to use DI. Only use that method if there is no other possible way

pulsar ferry
#

Only when you can't use DI

pure crater
#

for example, static blocks

cinder forum
#

I still don't understand why to not use it 😔

#

noob explanation please? 😳

lyric gyro
#

It’s a static singleton right?

rugged bane
lyric gyro
#

Breaks almighty dip

cinder forum
#

everybody says something else

rugged bane
# cinder forum everybody says something else

Want me to be honest? Either method isn't gonna fuck the performance, I've gotten to learn over the years to not care too much, use what works, then refactor later if needed, otherwise you'll waste more time trying to "optimise" every step of the way

#

I used to do that with web projects, constantly googling finding optimised methods, but you'll end up slowing yourself down massively

lyric gyro
#

I mean it’s just common sense tho

proud pebble
#

make a working project and then go back and optimize

lyric gyro
#

You don’t give your main class to anything else considering it’s your highest order

#

How you create coupling

broken elbow
#

that's not even performance optimization tho 🥲

lyric gyro
#

It can hurt performance at some point cuz it’ll be so shit with tight coupling

rugged bane
rugged bane
lyric gyro
#

Then you’re just making a pos

#

To go back and maybe fix it

rugged bane
#

Is your end server owner going to notice where you place that code? no?

broken elbow
#

Except that then yo urealise what you did was fucking shit and you have to rewrite 50% or more of it.

#

just learn to use best practices from the start. it saves you way more time

lyric gyro
#

Yea exactly lmao

cinder forum
#

is there any performance difference between DI and JavaPlugin#getPlugin?

pulsar ferry
#

It's nothing to do with performance, it's about being concise and organized, only passing what is needed

lyric gyro
#

Xdd di is not getPlugin

cinder forum
#

i know

rugged bane
#

he didn't say that

#

he asked DI or #getPlugin

broken elbow
#

and we said DI, then he asked why

lyric gyro
#

The real response is don’t use either

broken elbow
#

and you said "Don't care about that"

cinder forum
lyric gyro
#

With your main class

#

If you really need Plugin. Go make a class that implements plugin

rugged bane
#

People spend too long drooling over code, slows down shipping

cinder forum
#

chazza you r good smart man 👍

rugged bane
#

Ship fast, refactor later

#

I learnt @cinder forum over time, lol

#

Don't be drawn into spending 100s of years on tidying the tiniest bit, i did that

lyric gyro
#

Id say that’s how you ruin a project

rugged bane
#

then I never released projects

lyric gyro
#

And be forced to restart lmao

#

But yea caring about this

#

Is small and stupid

pulsar ferry
#

You'll regret that "refractor later" turns into full rewrite because of becoming confusing

rugged bane
#

I suppose, but consider that later, if anything

broken elbow
#

^. Happened to me multiple times before.

rugged bane
#

not now

broken elbow
#

LMAO

pulsar ferry
broken elbow
#

you literally save yourself 3 seconds at most by using javaplugin#getplugin instead of DI

lyric gyro
#

You don’t want to go back and have to fix tight coupling. That’s hell in itself

pulsar ferry
#

I'd argue DI is faster, just type the field then alt + insert the constructor lol

rugged bane
#

For me when building sites, I used to spend so long on small detail like this, I read something online from an engineer at google, and it changed my mindset, ill have to try find it

proud pebble
broken elbow
#

and if you come here asking for help, and then just say "wasn't going to do what you recommended anyways", you wasted way more time. so don't see the point

cinder forum
lyric gyro
#

This isn’t proper di lmao

pulsar ferry
#

You won't need the plugin everywhere, some places you'll need just the config
Etc

rugged bane
lyric gyro
#

As I said you don’t pass that shit around. I mean you can

rugged bane
#

https://thezbook.com/

There are two kinds of programmers, generally speaking. There are programmers who care more about code, and there are programmers who care more about product. The former – I’ll call them “code-first” programmers – are obsessed with how code is architected, what tools, libraries and languages are used, how much test coverage there is – stuff like that. Code-first programmers are psyched when they check in the perfect abstraction, when they get to use the latest language-feature, when they delete dead code. That is, they love the code they write – the code is the thing.

proud pebble
#

i started my custom enchant plugin by wanting to make a custom gui for enchantment table

rugged bane
#

read this]

proud pebble
#

that i never finished

rugged bane
#

the link is by a ex-google engineer

#

before he went to launch his own company

lyric gyro
#

@rugged bane you must be working on small scale projects then

rugged bane
#

makes total sense, and changed my mimndset

#

what?

#

Nowhere near small scale projects lol

lyric gyro
#

If you’re making a large scale@project

#

You don’t make shit

rugged bane
#

?????

lyric gyro
#

That’s even more reason to not just code it like ass

rugged bane
#

You make larger scale because you dont waste time on small shit

#

"oh do I use x over y, makes 0 diff to perf tho"

pulsar ferry
#

For larger scale you use a DI framework like Guice

lyric gyro
#

Obviously depends on the project right?

#

You’d say something like networking you should rush?

#

If I’m making a python tool I could give zero fucks

broken elbow
#

as long as it works fingerguns 😦

cinder forum
proud pebble
#

half the developement process is figuring out why your code doesnt do what you want it to

lyric gyro
#

I wouldn’t use a di framework either. Makes it just as unreadable.

lyric gyro
proud pebble
#

remember kids, ; and {} are your frend

broken elbow
#

kek. java problems

pulsar ferry
rugged bane
#

time is money at the end of the day

broken elbow
#

and that is why no one will ever want to build on your projects

#

kek

rugged bane
#

Maybe im too business focuwed, lol

#

nice try

lyric gyro
#

There’s a diff when you’re the boss vs you’re the employee. As an employee I want to make quality.

rugged bane
lyric gyro
#

As the boss it doesent even matter

#

Unless you care enough

#

Which I probably do

pulsar ferry
#

Let's move the argument to #dev-general and keep this for support

broken elbow
#

please support my argument in this support channel

#

thanks

lyric gyro
#

I mean tbf I don’t make my projects for others

#

In a sense of, I’m not making it so you can write on top of it

cinder forum
#

well so basically its
organization vs code speed

pulsar ferry
#

What

lyric gyro
#

Not at all

pulsar ferry
#

What code speed?

dense drift
#

Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61
any idea why I get this when trying to compile a project with gradle? 🤔

broken elbow
#

xdd. Just so you understand, you say you don't care about micro optimization, and then end up carrying for 2 extra lines.

cinder forum
# pulsar ferry What code speed?

JavaPlugin#getPlugin = 1 line
DI = 3 lines + typing shit in main class (well only if you need to use main in 1 class, if you pass it in other class params its more annoying)

rugged bane
#

java ver is diff

pulsar ferry
#

Lol

dense drift
#

different than what

rugged bane
#

I think

pulsar ferry
#

If you care about "code speed" then don't use Java

dense drift
rugged bane
#

when you run java -version whats the result

#

in terminal

dense drift
pulsar ferry
#

The issue is Gradle vm version is lower than compiling version

rugged bane
#

its usually when your java ver is diff to the one in the project

#

o

pulsar ferry
#

Go to your settings build tools gradle then change the Java there

#

Oh you already have

#

What gradle version?

dense drift
#

7.3.3

pulsar ferry
#

Huh sounds like a invalidate caches type issue kek

lyric gyro
#

My homie had that problem I gave up on helping him

#

I recommend giving up

#

And never using java again

#

use skript

dense drift
#

Fixed, had to add jdk17 to Path

rugged bane
#

Oh boom

cerulean birch
#

why is my apache compiler plugin doing some fatal error compiling when i give it java version 16 or 17 but it works when i give it version 1.8

lethal plaza
#

How can you storage passwords from plugins ideas?

#

Files or whats the best option?

lyric gyro
#

Wdym?

#

Like where do you put the password

warm steppe
#

Why is this code not running? It was running but is no longer runnning 🤷‍♂️ (there are no errors)

player.spigot().sendMessage(player.getUniqueId(),
                new ComponentBuilder(plugin.color(settingsManager.get(Config.MESSAGE_CODE).replace("%code%", kods)))
                        .event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click to copy your code").create()))
                        .event(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, kods))
                        .color(ChatColor.GRAY)
                        .create()
);

Code before and after this sendMessage thing is running perfectly fine...

#

@ me if you know why did it stop running

winged pebble
#

@warm steppe What is the asd from

warm steppe
#

i added to see if the command is running

#

that code i showed is running between 3rd and 4th log

winged pebble
#

Why is it an error?

warm steppe
#

because i made it so?

winged pebble
#

Fair enough, just gives the wrong impression. DEBUG log level would be more appropriate

#

If I were you I would do less of this inline

dense drift
#

only if it was active on spigot 🥲

winged pebble
#

And check the intermediate steps

warm steppe
winged pebble
#

I just mean double check to make sure the component is building like you expect it to

#

Also sending a more simple component could be useful to verify that method works fine as well

warm steppe
#

also it did work before, now it just somehow stopped and i dont know why

winged pebble
#

What have you changed?

warm steppe
#

nothing, that's the thing

winged pebble
#

You haven't changed the server at all?

warm steppe
#

literally 30mins and boom

#

nope

#

i did a restart

winged pebble
#

What version are you on?

warm steppe
#

1.18.1

winged pebble
#

Any reason that you're trying to send the player a message from themself?

#

Also, can you show more about the player variable and where it's defined?

#

@warm steppe

lyric gyro
#

Why don’t you just debug better

steady ingot
#

Anyone knows how to create an NMS block in 1.18?

lyric gyro
winged pebble
steady ingot
#

I would like to change the hardness of a blocj

#

I don't even know how to nms in 1.18. Idk what they did over the update

lyric gyro
#

that's how you nms in 1.18

#

if you use maven, md5 has a maven plugin for it too but uh 1. idc enough about spigot or maven to do any research and 2. a lot of people say it only works on 10-lines example plugins, nothing too serious or it breaks lol

steady ingot
#

Is it a Gradle plugin?

lyric gyro
#

paperweight-userdev is

#

that's an example (bukkit) plugin using paperweight-userdev to use nms

steady ingot
#

Wait, then how do I use it?

lyric gyro
#

read the readme 🙃

#

At that point just use reflection and change the strgth

#

For something so simple

#

yeah go figure the reobfuscated names

steady ingot
#

Just copy the gradle files?

lyric gyro
#

sure, that'll do the job

#

might want to read them too...

steady ingot
lyric gyro
#

Not hard to find

#

What you need

#

Emily just lazy

#

i mean if a tool can do the job for me

#

why would i do it myself lol

#

seems counterintuitive than just dropping in a few lines of gradle configuration and have it laid out to me with mojmaps

mental cypress
#

Sorry I only speak in s.r().

lyric gyro
#

If it’s that easy sure. It’s pretty easy to use fern flower. Idk about newer versions

winged pebble
# warm steppe 1.18.1

If you're storing a Player then that could be why it stopped working, so that's why I ask about where that variable comes from

steady ingot
#

Got the plugin, nice. Was confused at first cause it wasn't on Gradle plugin portal

lyric gyro
fiery pollen
#

What should i use to like get values out of yaml files when i am not using it for spigot plugin or something

graceful hedge
#

Hmm I usually use just a yaml parser like eo yaml or snake yaml (probably exist others) or something more sophisticated like configurate (: (which uses snakeyaml iirc but yes yes happy Santa’s birthday)

fiery pollen
#

Ahh tysm

warm steppe
#

I am using Matt's command framework

winged pebble
#

Are you storing it in any way?

warm steppe
#

nope

winged pebble
#

Can you show the whole method?

warm steppe
#

Here you go

winged pebble
#

Hmmm yeah I don't see anything that stands out to me at first glance

warm steppe
#

Yeah, and neither do I...

#

And it's driving me crazy

dense drift
#

I feel like your while loop does nothing

#

Because you set kods to the same value as before the loop

warm steppe
#

it checks if there is no came key in the hashmap

dense drift
#

Ah you generate a code

warm steppe
#

yes

dense drift
#

So your problem is that the component is not sent?

warm steppe
#

Yes

winged pebble
#

Is it sometimes it's not sent? Or after awhile it stops sending?

warm steppe
#

It did send it when I first implemented it, idk at which point it did stop working but the changes I made are not even linked with spigot...

dense drift
#

Try to send a simple message

warm steppe
#

Yeah, that worked fine

#

(simple message)

dense drift
#

What about a simple component?

warm steppe
#

Ok so there is a problem with the main component, because the simple one worked too

warm steppe
#

Okay, so the COPY_TO_CLIPBOARD action broke the whole thing even though it did work earlier

#

thanks to everyone who helped! Happy holidays to you guys! ✨

dense drift
#

Try adventure @warm steppe

warm steppe
#

Why is this query throwing error? Parameter at position 1 is clearly being set and it can't be null because you can see it is being added in the log line...

Console Output:

[12:29:52 ERROR]: Error inserting to `registered_users` [UUID: 128a8765-2984-4ea5-a99f-cd1619665761] [Discord ID:924778890545745932]
[12:29:52 ERROR]: Error: (conn=93) Parameter at position 1 is not set

K = UUID
V = String

REGISTERED.forEach((K, V) -> {
    try (Connection con = dataSource.getConnection();
         PreparedStatement pst = con.prepareStatement("INSERT IGNORE INTO `registered_users` (uuid, discord_id) VALUES (?, ?);")) {
        ResultSet rs = pst.executeQuery();

        pst.setString(1, K.toString());
        pst.setString(2, V);
        pst.executeQuery();

        rs.close();
        con.commit();

        log.log(Level.INFO, "Inserting to `registered_users` [UUID: " + K + "] [Discord ID:" + V + "]");
    } catch (SQLException exception) {
        log.log(Level.SEVERE, "Error inserting to `registered_users` [UUID: " + K + "] [Discord ID:" + V + "]");
        log.log(Level.SEVERE, "Error: " + exception.getMessage());
    }
});
high edge
#

You start with 0 my guy

#

not 1

broken elbow
#

you start with 69 my guy. not 1

high edge
#

Or am I stupid again

broken elbow
#

idk frosty. are you?

warm steppe
#

prepared statements start from 1

high edge
#

Then get good I guess

broken elbow
#

wouldn't printing the entire stacktrace help?

warm steppe
#

No

bitter basin
#

u execute query before setting ur parameters

high edge
#

Oh yea

#

Didn't even notice that lol

broken elbow
#

oh. this ResultSet rs = pst.executeQuery()

warm steppe
#

yeah just wanted to say that i fixed it xd

#

yeahh

broken elbow
#

good thing I know mysql

#

lol

#

and was able to help you out

#

kek

bitter basin
#

👍

broken elbow
#

I think it is time to learn mysql. where do I start

bitter basin
#

anyone tryna do my final year project for uni?

#

pls

warm steppe
high edge
#

How much you paying

broken elbow
#

I agree with frosty

bitter basin
#

ill make you a minecraft plugin that will let you throw a snowball and tp you when it lands

#

similar to an enderpearl

#

ill call it, snowpearl

broken elbow
#

bet you already made it and never used it so you finally found a "use" for it

bitter basin
#

not made yet actually, im just extremely creative

broken elbow
#

w3schools?

bitter basin
hushed badge
broken elbow
#

thank you. will start looking at mysql for now.

bitter basin
#

w3 is always best

broken elbow
#

at w3schools*

#

lmao

#

is maria similar to mysql?

wheat carbon
#

maria is a mysql fork

#

has performance benefits

broken elbow
#

Ic. cool

high edge
#

maria best

broken elbow
wheat carbon
#

dbeaver

broken elbow
#

thanks

broken elbow
# wheat carbon dbeaver

would you be able to help me with this? kek. Does "making a new connection" mean "making a new database"?

high edge
#

making a new connection means making a new connection

broken elbow
#

yeah. then how do I make a new database from dbeaver?

high edge
#

idk read the docs

broken elbow
#

yeah. right

#

there's nothing about creating a database

#

just connections

barren heath
#

How do I get rid of the warning:

[14:25:04 WARN]: Legacy plugin MyPlugin v0.1 does not specify an api-version.
broken elbow
#

specify an api version in plugin.yml

lyric gyro
#

How do I get the .javaClass of a kotlin data class?

barren heath
#

org.bukkit.plugin.java.annotation.plugin.ApiVersion does not have v1_18 :C

dusky harness
#

u prob have to make the database from sql console

broken elbow
dusky harness
#

or intellij

broken elbow
lyric gyro
#

I thought it was ::class.java but that doesnt appear to be working

#

yeah

broken elbow
#

its java.class

#

not the other way around

dusky harness
#

.javaClass is for instances

lyric gyro
#

ah, its been a while

dusky harness
#

and ::java.class for "static"

#

so you can use .javaClass for data classes too

lyric gyro
#

well yeah its a data class but none of the above seems to be working

#

I feel like ive hadf this issue before

#

is it something with my SDK potentially

dusky harness
#

hmm

broken elbow
#

ait

#

I was wrong

#

kek

dusky harness
#

ohh

#

smh blitz

#

@lyric gyro ^

lyric gyro
#

ive had this problem before

#

but ages ago, i havent touched kotlin or java in months

dusky harness
#

if you type this

#

does it error or no

dusky harness
#

since .java is an extension function

lyric gyro
#

KClass gives an unresolved reference

dusky harness
#

of KClass

#

o

#

build.gradle(.kts)?

lyric gyro
dusky harness
#

try adding version 🤷 1.6.10

#

hm

#

not sure why its not working tho

#

do other kt classes work?

#

ex Unit

lyric gyro
#

yeah

dusky harness
#

🤔

#

but if you type kotlin.reflect.KClass it doesn't work?

lyric gyro
dusky harness
#

o

#

and test.java errors?

lyric gyro
#

yeah

#

and i cant do val test: KClass<RoomModel> =....... for some reason

clear wing
#

hey can someone help me

dusky harness
#

?help

neat pierBOT
#
FAQ Answer:
» Give the helpers some details
» Ask suitable questions
» Be polite
» Wait

Source

clear wing
#

oh

dusky harness
# lyric gyro yeah

maybe you'd need kotlin reflect dependency? thonking
but i remember being able to do basic reflection without it

#

hmm

#

blitz

#

do u know

broken elbow
#

ok. I had to get mariadb and mariadb server. and I can use cli to create databases

lyric gyro
#

i did select kotlin when making the project with spring initializr

clear wing
#
package com.clonkc.killeffects.effects;

import com.clonkc.killeffects.main.Core;
import de.slikey.effectlib.EffectManager;
import de.slikey.effectlib.effect.DnaEffect;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.plugin.Plugin;

public class Dna implements Listener {
  public Core cM;
  
  public int Heigth = 0;
  
  public Dna(Core core) {
    this.cM = core;
    core.getServer().getPluginManager().registerEvents(this, (Plugin)core);
  }
  
  @EventHandler
  public void onPlayerDeath(PlayerDeathEvent playerDeathEvent) {
    Player killer;
    EffectManager em = new EffectManager((Plugin)this.cM);
    Player player = playerDeathEvent.getEntity();
    Core core = this.cM;
    if (player.getKiller() != null) {
      killer = player.getKiller();
    } else {
      return;
    } 
    if (core.pdEffects.get(killer) != null && ((String)core.pdEffects.get(killer)).equals("dna")) {
      Location location = new Location(player.getLocation().getWorld(), player.getLocation().getX(), player.getLocation().getY() + 1.0D, player.getLocation().getZ());
      DnaEffect effect = new DnaEffect(em);
      effect.setLocation(location);
      effect.start();
    } 
  }
}```

Im working with effectlib, but i cant seem to change the yaw or pitch of the effect using effect.yaw = float; and the effect.yawOffset doesnt work either. I was thinking about using a vector and a target location but im not sure how to do that
#

i couldnt find anything on the wiki but maybe thats because i havent looked into it enough

broken elbow
clear wing
#

do you need my core file too?

#

its the main thing holding the plugin together

robust flower
#

I need a way to manually convert UUID to an int/long and vice versa (java/kt) using the least/most significant byte byteshifting, what is the easiest way of doing that (looking for resources, if available)

lyric gyro
#

WELL..... invalidate caches fixed it....

dusky harness
#
logDebugInfo("Checking x: $x, z: $z", print = false)
logDebugInfo("Range ($x, $z): ${min.y..(max.y.coerceAtMost(chunk.getHighestBlockYAt(x % 16, z % 16)))}", print = false)
```So i have this code, `Checking x` prints, but the second line doesn't print (it does for my test server, but not for the server owner I'm developing this for), I suspect that it's unable to run `chunk.getHighestBlockYAt` for some reason? 
> ```
> Checking x: -1408
> Checking x: -1408, z: -912
> Range (-1408, -912): 10..10
> Checking x: -1408, y: 10, z: -912
> Not in region
> Checking x: -1408, z: -911
> ```
It works for the other coordinates, but not for these 🤔
#

anyone have any idea?

#

It's still stuck on that :/ even after like 5 minutes

queen plank
sharp cove
#

How do i save a file like this with the defaults?

#

So with the # texts too.

#

I know that you can do saveDefaultConfig with a Bukkit Config File

#

But i want that too but with a messages.yml

lyric gyro
#

I think there's saveResource

pulsar ferry
sharp cove
queen plank
dusky harness
sharp cove
#

So something like this would work?

dusky harness
#

btw chunk is a ChunkSnapshot

pulsar ferry
queen plank
lyric gyro
sharp cove
#

ah

#

''if true, the embedded resource will overwrite the contents of an existing file.''

#

it works.

river solstice
#

Does anyone know a way to create an area that only X players at a time can be in it?

high edge
#

Make a region, then on region enter yeet if anymore try to enter

river solstice
#

why didn't I think of that before fingerguns

#

I'm using residence plugin for the "region".
I'm storing the players in a map (<String (residence name), List<UUID> (players inside)) and updating the map once they enter/leave

#

but it's very buggy fsr

#

sometimes it denies correctly, sometimes it just allows the other player to move in

high edge
#

I wouldn't store them in a map, I would loop through the players in the region, might not be as efficient, but would probably be way more accurate

broken elbow
#

^. Otherwise you'd have to listen for many many events to make sure you keep track of the player. what if they leave the server, what if they go to the nether, what if they teleport out, what if they walk out, etc.

river solstice
#

Well, I tried that

#

but then the X players in the area cannot move

high edge
#

Then you seem to be doing something wrong lol

river solstice
high edge
#

Just loop through the people in the region

river solstice
#

well I was a bit sleep deprived when I first did it, decided to hop back on to the idea, so I might fix it with fresh head

high edge
#

Just don't overcomplicate it

river solstice
#

stupid copilot

dense drift
#

If the player is already in region and the region is full, dont stop them from moving

high edge
#

Is that allman I'm seeing

river solstice
dense drift
#

Not really, just take this aspect in consideration

river solstice
#
            for(CuboidArea arr : entered.getAreaArray())
            {
                double highX = arr.getHighLoc().getBlockX();
                double highZ = arr.getHighLoc().getBlockZ();
                
                double lowX = arr.getLowLoc().getBlockX();
                double lowZ = arr.getLowLoc().getBlockZ();
                
                int players = (int)e.getPlayer().getWorld().getEntities().stream().filter(entity -> entity instanceof Player)
                        .map(entity -> (Player)entity)
                        .filter(p -> p.getLocation().getBlockX() >= lowX && p.getLocation().getBlockX() <= highX 
                                && p.getLocation().getBlockZ() >= lowZ && p.getLocation().getBlockZ() <= highZ)
                        .limit(2).count();
                
                if(players > 1)
                {
                    e.getPlayer().teleport(e.getPlayer().getLocation());
                }
            }
#

well let's see if this works

barren heath
#

I get warning: The compiler compliance specified is 1.8 but a JRE 17 is used

#

What should I set to make it go away?

#
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
wintry grove
#

you have your JRE set to 17

lyric gyro
#

hey. does anyone know how to logon to a minecraft server with a migrated mojang account (microsoft) on the API level?
the problem: in ye olden days, i would just use authserver.mojang.com. but now microsoft is planning to migrate mojang accounts, meaning i cannot use that authentication server with my details.

clear wing
#

hi

wintry grove
#

go to File > Project Structure > Project SDK and set to 1.8

barren heath
wintry grove
#

then set both of them to 17

barren heath
#

thanks

queen plank
#

How do you get the item a player has selected in an inventory? Like if you left click it you can move it around, how do I get that item? Do I have to use a map and store the data or is there a better way?

lyric gyro
#

listen to InventoryClickEvent?

#

if it's a "special inventory" you can compare the clicked inventory (there's a method in the event for that) with your own (store it in a field) just by using .equals (myInventory.equals(clickedInventory))

queen plank
#

Yeah ok, so no good getSelectedItem stuff? Sadge

shut wharf
#

does anyone know a way how to empty the nametag from a player let's say but still assign them to teams and use the team prefix/suffix (diffrent for each player)? I currently have a way by editing the player add info packet to a name including colourcodes to get rid of the characters but it messes up tabbing, would love any ideas

lyric gyro
#

I mean you got getClickedItem, yes

clear wing
#

anyone know effectlib

lyric gyro
#

but you'll want to check the item was clicked in the desired inventory

iron pulsar
#

Yo is there a way method which returns true when a player is the passenger of an armorstand? Player#isInsideVehicle() won't do it for armorstands

queen plank
lyric gyro
#

??? what?

lyric gyro
queen plank
#

Yes I know that exists, but I would rather avoid a another variable. I want to a player to place an item in my custom inventory, and the item they place in the inventory should be registered. So I was hoping it existed a way to get the placed item

lyric gyro
#

maybe it's named different, i don't remember it 100% but you definitely can do that?

queen plank
#

Yeah you can

lyric gyro
#

mate what kind of meth did you take

queen plank
#

Isn't getClickedItem ran before you click the GUI item?

lyric gyro
#

you can also get the item that at the time was being held on the cursor

#

it's one of these, one is the item inside the slot, the other is the one being held

queen plank
#

So: Player clicks with an item -> I get the item in the clicked slot with getClickedItem() -> the item is placed in the GUI?

lyric gyro
#

the naming doesn't really help

queen plank
#

Yeah, is that function ran before or after you place an item in an inventory?

#

Do I get the item I CLICK or the item I PLACE in the inventory?

lyric gyro
#

I think the event is called before the action actually takes place but I mean... if it's not one method it's the other, it's 50/50, there aren't that many options there lol

queen plank
#

Oh, I thought both were ran before you click

lyric gyro
#

the event is dispatched before the inventory is modified
getCurrentItem returns the item inside the slot
getCursor returns the item being held on the cursor

queen plank
#

Ohhhh

#

Me dum dum

lyric gyro
#

everything inside the event handler happens before the inventory is modified

#

well, that event

#

there are events that happen after the action takes place

#

and the documentation is so poorly written it's a matter of trial and error for some of them

queen plank
#

Yeah lol, well thank you!

iron pulsar
#

Anyone know how to add an external jar as an dependency to maven in intellij? Can't get it to work despite quite many tutorials xD

queen plank
#

This: https://paste.helpch.at/atocekukib.java does not work correctly. It does not update the inventory as I want it to. It is like if it set the variable after the inventory is created. When I enter the GUI, I can swap pages and it works. Why does this happen?

icy grail
#

Why are you doing new Runnable

#

Use a lambda

#

() -> { //Runnable contents here }

#

Also you're updating the inventory async

#

No part of the spigot API can be used async unless explicitly stated otherwise

#

Try wrapping all your logic in a sync delayed task

lyric gyro
hard wigeon
#

via Java / Spigot is there a good way to make a decentralized communication system?

#

I have multiple plugins

#

and they each contain the same code

#

but if 2 or more exist

#

then only one should run the code

#

so there's no base plugin they can rely on to talk to

wintry grove
#

packets?

hard wigeon
#

what? how would sending stuff to the client help?

mental cypress
#

I'm a little confused here Fred. Why do you have 2 plugins with the same code?

wintry grove
#

also should I use java (JFrame) or C# (.NET Core or framework) for a launcher for a java game lmao

broken elbow
#

kek

and

kek

wintry grove
hard wigeon
wintry grove
#

oh

hard wigeon
#

but if 2 or more plugins exist, they shoulden't both verify

#

only one

wintry grove
#

then make a central server

hard wigeon
#

and the others should communicate with that one

wintry grove
#

and make them comm with it

mental cypress
#

Okay, have your system save a file to their plugin directory?

winged pebble
#

Could you register a service that handles that?

mental cypress
#

Ahh wait I still see the problem here.

hard wigeon
#

yeah

#

there's no central "manager" per-se

#

they need to choose one at runtime

#

if theres multiple

#

which would probably be the first to load

#

or something

mental cypress
#

I mean is it really a big problem if they both verify? Isn't it just a quick http request?

#

Oh wait

#

This is so easy

#

Set a system property

hard wigeon
#

the whole system relies on only one verifying, since if you're sending more than an average of one verification every 5 minutes (besides restarts), then it looks like multiple people

broken elbow
#

lol

#

C#

wintry grove
#

was thinking of that one

#

thanks lmfao

mental cypress
#

PaperLib does this for the suggestPaper method so it's only shown once if multiple people have a plugin that runs it

hard wigeon
hard wigeon
#

cool

#

thank you 😄

dusty frost
#

I still don't see why each plugin can't verify itself

broken elbow
#

hello Star

dusty frost
#

hey

broken elbow
#

you know

#

I am still waiting for that FJ spigot update

#

kek

dusty frost
#

aren't we all

hard wigeon
wintry grove
#

oh wait I'm stuck with merry starmas bc I stopped boosting

broken elbow
#

just give me access to your spigot account. ez

wintry grove
#

nooooo

hard wigeon
#

it looks like multiple people are verifying on the same account

#

at the same time

broken elbow
dusty frost
#

and I still don't understand what that means

hard wigeon
#

if 5 people use the same patreon code

dusty frost
#

sure

hard wigeon
#

then I'll get an average of 5 requests per 5 minutes using that code

#

to verify

#

and I can notice that someone has shared their code

dusty frost
#

I definitely don't think that's how it works

hard wigeon
#

how so?

dusty frost
#

What if I scheduled all 5 of my servers to restart 1 hour after the other

#

Then bam, no detection from you

#

Or what if they have a proxy with multiple subservers all running the plugin?

hard wigeon
#

well first, these plugins are being used by people who have a single spigot server, not multiple

wintry grove
#

then add proxy support

hard wigeon
#

but also, it sends a request every 5 minutes

dusty frost
#

Why do a keepalive for DRM?

hard wigeon
#

so a steady stream besides a few blips during restarts

hard wigeon
dusty frost
#

what you're doing

#

a keepalive every 5 minutes

hard wigeon
#

ah yeah

dusty frost
#

what purpose does that serve?

hard wigeon
#

so that people can't share their token

dusty frost
#

surely you only need to verify once at server startup

#

okay so if you want one token to be one server, just bind it to a UUID for that server

hard wigeon
#

I thought about that

#

but if people were smart

#

they'd just copy the uuid

wintry grove
#

at one point tho

dusty frost
#

don't let it be a UUID they can change lmao

hard wigeon
#

(ignoring the fact that if they were actually smart they could decompile the plugin)

wintry grove
#

it would be better is you just made a master server

dusty frost
#

MAC Address

hard wigeon
#

hm

dusty frost
#

Yeah if they were smart they would disable your stupid ass DRM

hard wigeon
#

okay

wintry grove
#

and contact to it for verification and that UUID stuff

hard wigeon
#

I just want something simple to persuade people from sharing the code with tons of people

#

and a way to detect that easily.

#

without making it complicated to transfer the code from one server to another

dusty frost
#

oh my god, an open source plugin shared with tons of people!

#

how terrible

wintry grove
#

then make it one time use

pure crater
#

yea

wintry grove
#

ez

pure crater
#

make it open source

hard wigeon
pure crater
#

fremium 😄

dusty frost
#

how about throw away your whole DRM thing

hard wigeon
#

well how else do I do a premium system that won't instantly get abused?
I know a few other devs doing the same thing I do, but entirely premium instead of free

#

and they all get their stuff leaked

pure crater
#

you cant stop leakers

dusty frost
#

Everyone gets everything leaked

pure crater
#

simple answer

hard wigeon
#

this is true

pure crater
#

best solution is open source

#

cause nobody can leak anything

dusty frost
#

The point is to not have a DRM in the first place

#

Open source

wintry grove
#

ohhh

hard wigeon
#

I'd need to have like 50

dusty frost
#

oh my god are you kidding me lmao

hard wigeon
#

and only make them public after videos were uploaded

pure crater
#

not a lot tbh lol

broken elbow
hard wigeon
#

yes I know

broken elbow
#

there is no point in making all this

#

kek

#

people are just dumb

hard wigeon
#

also, I need to make a verification system anyway to differentiate patreons and non patreons

#

since I'm not releasing multiple jars

#

thats more work :p

wintry grove
hard wigeon
#

it still is

#

that was the point

dusty frost
#

don't segregate

#

feature withholding sucks

hard wigeon
#

I just want some supporters 🥲

pure crater
#

just add "early access"

wintry grove
#

yeah

pure crater
#

dont do extra features

dusty frost
#

yeah

hard wigeon
#

I tried that

wintry grove
#

or donations

hard wigeon
#

did not go down well

dusty frost
#

Im sure this won't either buddy

hard wigeon
#

and I have a single patron

#

who's also staff

wintry grove
#

take it or leave it

pure crater
#

also, fred, im pretty sure we are all poorer than you anyways 🥲

wintry grove
#

at least you have one lmao

pure crater
#

you work with content creators so you actually get stuff out of the things you do

hard wigeon
#

I don't earn much from them

pure crater
#

but, popularity :p

hard wigeon
#

this is true

#

but apparently popularity doesn't get you donations

#

and we circle back

dusty frost
#

yeah so don't muddle your public image by using shitty DRM

broken elbow
#

kek

hard wigeon
#

well what else am I supposed to do to get a little support 🥲

dusty frost
#

sell support

#

or a freemium model

#

pay to download, but open source for anyone smart enough to compile

wintry grove
dusty frost
#

all DRM does is make it harder for legitimate customers to get it

#

I guarantee a ton of firewalls will block your stupid keepalive

wintry grove
#

close sourced, obfuscated, with that stuff = maaaaaaaaaaaaaybe possible

dusty frost
#

But anyone who is determined not to pay can just remove that stupid DRM check

hard wigeon
#

since offline people

dusty frost
#

what lmfao

hard wigeon
#

eh

dusty frost
#

so i just firewall block your DRM and it's done?

hard wigeon
#

people can play when not on internet

#

sure

dusty frost
#

what the fuck is the point then

wintry grove
#

LMFAO

mental cypress
#

All I'll say is I never bothered with DRM given all the problems that came with it.

wintry grove
hard wigeon
#

I guarantee 95% of people who would want the features don't know what a firewall is

broken elbow
#

be like glare. glare has 2 very successful freemium projects. glare is cool

dusty frost
#

then charge them an upfront fee

#

and be done

hard wigeon
#

but I want to make the base products available to everyone who wants them 🥲

dusty frost
#

it's all or nothing fred

hard wigeon
#

😦

dusty frost
#

paywalling features is absolutely the worst

hard wigeon
#

I just wanted to add a config for patreons