#dev-general

1 messages · Page 50 of 1

half harness
#

tempted

brazen ether
brazen ether
half harness
#

mmmmmmmm

brazen ether
#

it's as shrimple as that

#

🦐

half harness
#

oh

#

sorry barry

brazen ether
#

what did bro post

half harness
#

yelled at me twice 😭

brazen ether
#

revealed the cia's femboy stash

half harness
#

shhhhhhh

brazen ether
#

what the flip

#

that was like 4 words

#

5

#

THEY KEEP them IN JARS

stark niche
stark niche
#

Ooo okay then. I wanted to make the same thing for my minigame but thought that it will be "laggy" I guess you've made it using a velocity

brazen ether
#

player can't walk on it if you just use "velocity"

stark niche
#

Hm i dont have any idea how did you did it then.

brazen ether
#

invisible shulkerboxes

#

but unless you feel like this feature is essential i'd just go without it

stark niche
#

Really? Omg I forgot about them its so genious

#

Ty

brazen ether
#

if u actually want to implement it then lmk

#

you need a bit of linear algebra to get it sorted

#

and a texture pack to make the shulkers properly invisible

#

not really possible without that

stark niche
#

Texture pack kinda ruins it because I dont want to include it but thank you anyway

brazen ether
#

yea i'd suggest jus ditching the idea

#

you could do it with velocity if you dont need people to be able to walk on it

stark niche
brazen ether
#

might look a lil goofy

stark niche
#

I have no idea how to implement it in other way

brazen ether
#
public Matrix4f getMatrix() {
        Matrix4f leftMatrix = new Matrix4f();
        leftRotation.get(leftMatrix);
        Matrix4f rightMatrix = new Matrix4f();
        rightRotation.get(rightMatrix);
        matrix.identity();
        matrix = matrix.translate(translation).mul(rightMatrix).scale(scale).mul(leftMatrix);
        return matrix;
    }```
DisplayTransformation is just a wrapper for Transformation; refer to getMatrix function above
```java
vertices = new ArrayList<>();
        vertices.add(new Vector3d(0, 0, 0));
        vertices.add(new Vector3d(1, 0, 0));
        vertices.add(new Vector3d(1, 0, 1));
        vertices.add(new Vector3d(0, 0, 1));

        vertices.add(new Vector3d(0, 1, 0));
        vertices.add(new Vector3d(1, 1, 0));
        vertices.add(new Vector3d(1, 1, 1));
        vertices.add(new Vector3d(0, 1, 1));

        DisplayTransformation displayTransformation = new DisplayTransformation(transformation);
        Matrix4f finalMatrix = displayTransformation.getMatrix();
        vertices = vertices.stream().map(k -> finalMatrix.transform(new Vector4f((float) k.x, (float) k.y, (float) k.z, 1f))).map(k -> new Vector3d(origin.x + k.x, origin.y + k.y, origin.z + k.z)).toList();```
#
//paralleloepiped is defined by 4 points, X,A,B,C, with basis vectors XA, XB, XC
    //XP = u * XA + v * XB + w * XC
    //Px - Xx = u * (Ax - Xx) + v * (Bx - Xx) + w * (Cx - Xx)
    //Py - Xy = u * (Ay - Xy) + v * (By - Xy) + w * (Cy - Xy)
    //Pz - Xz = u * (Az - Xz) + v * (Bz - Xz) + w * (Cz - Xz)
    //use cramer's rule to find solutions
    public boolean isInside(Vector3d P) {
        Vector3d X = new Vector3d(vertices.get(0));
        Vector3d A = new Vector3d(vertices.get(1));
        Vector3d B = new Vector3d(vertices.get(3));
        Vector3d C = new Vector3d(vertices.get(4));

        double d = new Matrix3d(
                (A.x - X.x), (A.y - X.y), (A.z - X.z),
                (B.x - X.x), (B.y - X.y), (B.z - X.z),
                (C.x - X.x), (C.y - X.y), (C.z - X.z)).determinant();
        double u = new Matrix3d(
                (P.x - X.x), (P.y - X.y), (P.z - X.z),
                (B.x - X.x), (B.y - X.y), (B.z - X.z),
                (C.x - X.x), (C.y - X.y), (C.z - X.z)).determinant() / d;
        double w = new Matrix3d(
                (A.x - X.x), (A.y - X.y), (A.z - X.z),
                (P.x - X.x), (P.y - X.y), (P.z - X.z),
                (C.x - X.x), (C.y - X.y), (C.z - X.z)).determinant() / d;
        double v = new Matrix3d(
                (A.x - X.x), (A.y - X.y), (A.z - X.z),
                (B.x - X.x), (B.y - X.y), (B.z - X.z),
                (P.x - X.x), (P.y - X.y), (P.z - X.z)).determinant() / d;
        return (0 <= u && u <= 1 &&
                0 <= w && w <= 1 &&
                0 <= v && v <= 1);
    }```
#

@stark niche this is the only math you need for that then

stark niche
#

Holy

brazen ether
#

if you try to implement it you'll see that you need this eventually

stark niche
#

Thank you. I wonder can boats be invisible and instewd of shulkers use boats?

brazen ether
#

at all

stark niche
#

Sad

brazen ether
#

it is indeed

brazen ether
modern lotus
#

Can someone please help me. Is it possible to have two separate boolean values for two different placeholders?
I have a placeholder testing if pvp is enabled or not and it will return Enabled or Disabled, but I have another placeholder that checks for AFK, and I need it to return [AFK] or "" (blank)

harsh ivy
#

Hello! I am facing some error/issue with my Nlogin plugin while I use Database backups.

If anyone here knows a little about NLogin Premium, can you please help me out?

#

It's a big error.

pastel imp
#

Bro just admitted to being cracked lmao

harsh ivy
#

What's ur problem

#

I just asked help for NLogin Premium?

#

This rando keeps interfering every now and then bruhh

half harness
#

they have "Special Support" for premium

#

might want to ask there

harsh ivy
sly sonnet
#

Dont use cracked plugins

#

Hope you’ll understand, bud! 😉fingerguns

harsh ivy
#

Wish you had knowledge before spitting brother.

#

😉

sly sonnet
#

What is bro yapping about

brazen ether
#

is this you

#

anime pfp, self proclaimed "cool"

cerulean ibex
cerulean ibex
brazen ether
#

i take lessons

cerulean ibex
#

i bet everyone loves u

brazen ether
#

they do

cerulean ibex
#

i could tell

brazen ether
#

my gf especially :3

#

she's amazing

cerulean ibex
#

not :3

brazen ether
#

he's cooking

brazen ether
#

i was expecting more

#

you lack willpower

cerulean ibex
#

how is :3 even a face like what

brazen ether
#

put some backbone behind it

brazen ether
cerulean ibex
brazen ether
cerulean ibex
#

unlucky pal

brazen ether
#

i meant that youre cooking up an insult

cerulean ibex
#

😭

#

i meant like

#

not the ":3"

brazen ether
cerulean ibex
#

cuz idl that

brazen ether
#

do you

#

do you know his name

#

do you wanna know it

#

say yes

#

SAY IT

cerulean ibex
#

y

#

e

#

--no

brazen ether
#

his name is

#

big boobs

#

not even joking

cerulean ibex
#

😭

brazen ether
#

didn't know i could pull through like that

#

checkmate buckaroo

#

Big Boobs.

#

heh.

wide crypt
harsh ivy
sly sonnet
#

Blud uses cracked plugins and is yapping damn blud

harsh ivy
#

are you dumb?

#

nlogin is a premium plugin

sly sonnet
#

You are using pirated software

harsh ivy
#

wth are you saying bro

harsh ivy
#

bro how can you be so dumb

sly sonnet
#

Your error says it

harsh ivy
#

bro

#

this is clearly proving ur dumb knowledge on minecraft

#

error does not relate to cracked plugin bro

#

it relates to cracked server.

#

💀

#

OMG

#

tf is ur brain bro

rotund egret
#

Yeah you said it

harsh ivy
#

sorry for reply ping

#

can you join any minecraft server?

#

some people are saying there are authentication issues

#

going on

#

with Mojang

rotund egret
#

True

harsh ivy
harsh ivy
rotund egret
#

Ok

harsh ivy
#

alr

#

thanks

sly sonnet
#

Mans new in plugins

#

Doesnt know shit

harsh ivy
#

istg

#

you really need a fix

wintry plinth
rotund egret
harsh ivy
sly sonnet
#

Randoms these days smh

kindred sequoia
#

That is a terrible font

pastel imp
opaque willow
#

How to disable player pushing in minecraft?

wind patio
#

by changing a config option, most likely, if you are using paper

#

ir maybe spigot has it, idk

opaque willow
#

but where in config

static zealot
#

that is an option added by paper in paper.yml config file

harsh ivy
harsh ivy
harsh ivy
opaque willow
#

or spigot

ocean quartz
opaque willow
#

idk

ocean quartz
#

lol

brazen ether
brazen ether
opaque willow
brazen ether
#

spigot shouldn't really be used for servers

#

paper is jus faster and better

harsh ivy
pastel imp
#

reminds me of that one guy of analyiticus thingy

#

raymond?

#

don't recall his name

#

such a joke lol

modern lotus
#

Can someone please help me. Is it possible to have two separate boolean values for two different placeholders?

I have a placeholder testing if pvp is enabled or not and it will return Enabled or Disabled, but I have another placeholder that checks for AFK, and I need it to return [AFK] or "" (blank)

distant sun
potent nest
#

more like psvm

cold prawn
#

how many modern java projects actually have that tho

#

i feel like barely anyone writes vanilla anything anymore

brazen ether
#

it was genuine advice

#

"touchmenot" guys what?

cold prawn
#

I have a plugin which on restart or overall serversided disconnect, throws u into a lobby, and was wondering if there is a plugin out there for velocity which puts you back once the server comes back, if not was considering making that

cold prawn
#

as in vanilla languages, without frameworks or big libraries

brazen ether
#

i mean they do

ocean quartz
#

I mean even using frameworks and libraries your application still needs a main

static zealot
wind patio
#

oh nvm its about the args

#

I thought you meant void main()

distant sun
#

Ye @static zealot and is just void main

harsh ivy
distant sun
#

Or well, can be

crude cloud
#

technically 🤓 it depends on the java launcher

#

funnily enough despite javafx not being part of the jdk anymore, if your main class extends javafx's Application class, it'll start the jfx platform for your class

#

even if it has a psvm, it won't invoke it

steep lark
#

Hey guys, I am a server owner and I keep having problems, is there anyone who would like to be my dev? Dm me if you can

#

It’s a velocity server

half harness
#

lots of options 🥲

brazen ether
#

actually I think you should ask your questions in #showcase

#

make sure to reply to the people there and completely ignore all the rules

drifting aspen
tranquil crane
#

imagine not using public static void main(String... args) varargs supremacy

steep lark
#

Anyone able to help with me not being able to join my server? It says online on console but it’s offline when I join and use a server pinger

cold prawn
#

console logs?

#

probably a closed port

cold prawn
#

Is there a plugin or something in general premade to pull data from a mc server via http?

steep lark
cold prawn
#

selfhosting?

steep lark
#

I’m not gonna self host tho…

cinder flare
#

i use OkHttp for my stuff and it's fine

wintry plinth
#

What type of data do you need to pull Wuzzy?

half harness
#

analyse? :D

oblique heath
#

analyse more like
analice 🦗

cold prawn
#

Just the basics most likely, player lists etc player stats and so on, maybe something cooler, just hoping someone has made a plugin like that so i can avoid building another maintaince needer :)

cold prawn
#

oh u mean pulling from java, but no not what i need

#

i need a way to server data from spigot via http

cold prawn
# half harness analyse? \:D

looks like they have pretty limited endpoints unless im missing something, not really a fan of tebex, wanna keep everything selfhosted

wintry plinth
half harness
#

I just heard it mentioned here a bunch lol

cinder flare
#

they even have an article on it

cold prawn
#

Still not what im asking :D im asking if something like that exists already, but will look into it if i will have to do it myself

wintry plinth
# half harness v1? 🤨

I’m rebuilding the entire platform from the ground up, better stats, better APIs, separate from Tebex etc

cinder flare
#

i'm still not sure what you're asking lol

wintry plinth
cinder flare
#

like you want placeholder-style serving over http from your backend servers?

cold prawn
cinder flare
#

what data

cold prawn
#

like me be able to fetch players from the servers and thier data and so on

#

stats etc

cinder flare
#

so like world file data?

cold prawn
#

Yea sure, just wanna make some website features for getting player data etc

wintry plinth
#

Yeah may be a few months away

wintry plinth
half harness
#

wait charlie aren't you working on something else (although not public) as well

#

or am i misremembering

cinder flare
#

yeah i'm not super aware of something like that, but it would be pretty trivial to make a little http server with javalin that just does that

half harness
#

oh

wintry plinth
#

Will release it at the weekend finally 😂

half harness
#

this weekend?

wintry plinth
#

Yes

half harness
#

ooooooo

cinder flare
#

or like, you could probably leverage a prometheus exporter setup and get the data from that

#

abuse metrics a little bit

wintry plinth
#

Server is ready, just got the website profile stats to finish off 💪

cinder flare
#

yeah here's what my Grafana looks like for my server network

cold prawn
#

big server wowie

#

okay will look into it

wind patio
#

😎

cold prawn
cold prawn
slate elk
#

Online convertor to convert sql queries to sqlite ?

#

I got about 400 different sql queries i got to rewrite to sqlite

wind patio
#

by hand

slate elk
#

No no Its headache

#

There for sure some sort of translator

distant sun
#

Yourself

slate elk
#

I need to convert the syntax no way there no convertor

#

I got Like 400 lines to do i will go crazy

crude cloud
#

i mean

#

from what dialect to sqlite?

slate elk
#

MySql

#

To sqlite3

#

Or there any flatfile database that use same syntax as mysql

crude cloud
slate elk
#

It converts a database

#

Its easy to do

crude cloud
#

it converts a mysql dump

#

mysql dump is quite literally just a sequence of queries

slate elk
#

Ill try 🙏

#

Imma look for what the file is

#

I need to create one

#

Sińce my garbage is in Java

oblique heath
slate elk
#

chatgpt does syntax errors and gibrish

oblique heath
#

i dont believe you

#

4o?

#

making syntax errors? how complex is the command

#

and how many mysql specific features are you making use of

cold prawn
#

maybe 1 by 1 it could do, but even if u batch like 30 i feel like it would eat shit

oblique heath
#

oh well yeah you should not be trying multiple at once

#

just ask once per query

slate elk
oblique heath
slate elk
#

i can rewrite by hand but its too much

oblique heath
#

you can just automate sending the queries to gpt

slate elk
#

i dont have api for that ill just start re writing queries by hand

oblique heath
#

get some random python library and for each the queries to gpt

slate elk
#

gpt has api its not hard to use u dont need libary u do request and it returns u a string[] backwards if i remember correcttly

oblique heath
#

yes

slate elk
#

i did some chat bot project 2 years ago for an company that used chat gpt api

#

u each time send the entire chat history to tha shit

oblique heath
#

if you want to interface with the gpt api directly you are free to do so

#

i think its a hassle for simple stuff like this

slate elk
#

nah there too much tables and shit

#

and around 400 queries

oblique heath
#

are you sending the tables as part of the query

slate elk
#

nah creating table is the same

oblique heath
#

right but you should be sending it for context

#

so the model knows what the tables look like

cold prawn
#

hot citizens wowie

slate elk
#

gonna test tnow

#

that line

#
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near ",": syntax error)
#

nice

#

l... so what do u think about chatgpt?

slate elk
#

dogshit chatgpt

cold prawn
#

just do the work at this point :)

slate elk
#

ig yeah

brazen ether
#

<100ms mesh generation for 15x15x15 block entity with 0.5 block resolution

#

we be working

brazen ether
#

ong ts is surprisingly performant

#

even on my shitty overheated mac

#

fully async too

slate elk
#

Fuck chatGPT

wind patio
#

no ty

ocean quartz
#

A chance to be part of innovative projects in the blockchain
😬

devout hatch
#

is this even the channel for spam

ocean quartz
#

Not really, there is not channel for spam, not even sure if that message would even fit for any of the request channels either lol

cinder flare
#

i swear we made this channel require Tier 2 to even post in for this exact reason

quiet depot
#

@feral echo this isn't the place for that

devout hatch
half harness
half harness
#

lol

#

yeah

#

hmmmmm
link redirects to a 160 member "TICKET TOOL" discord server

#

ig ill report this to barry

agile galleon
#

Lmao

#

That's so desperate

half harness
#

:(

vital plaza
#

Hello chat , I am trying to code a plugin for land claiming . for the selection visualisation part I wanted to use blocks (eg. block of diamond) .
I was wondering if its possible to make them appear client side so that not every one can see the temporary block change and make them not mineable.

#

I am sorry if I am not using the right channel for questions like these. Thank you very much for who ever is willing to point me to the right direction.

oblique heath
#

it's possible but you'll have to use packets

half harness
#

:)))))))))

vital plaza
#

Thank you so much all !

#

🙏

terse elbow
#

modify bytecode directly

brazen ether
#

what

rotund egret
#

True!!!

oblique heath
#

indubitably

remote goblet
#

im about to delete my whole profile

cold prawn
#

ai gotten wild

agile galleon
#

I'm gonna delete my socials

steel heart
#

lol

stark niche
#

is this possible without protocollib to set a listener (or some kind of workaround) when a player starts "seeing" a player? By "seeing" I mean when a player loads for other player if he was unloaded (usually happens when a player loads a chunk and there was a player already)

crude cloud
#

Paper has PlayerTrack/UntrackEntityEvent

#

but also maybe consider using Player#hideEntity if you want to control this better ?

brazen ether
#

you could also just read outgoing packets, for future reference

static zealot
agile galleon
#

what the fuck

brazen ether
#

I'm telling a trusted adult.

safe crescent
#

british people are unmatched in computer science fr

#

we literally invented the world wide web

#

alan turing was doing ai before it was cool

#

first programmer ever, british

#

we are so based

faint fractal
#

Can someone help me? my server api just stopped working with some features eg top kills, mining, playtime. anyone got a fix?>

distant sun
#

Welp

tranquil crane
#

I think you're in restoring a backup territory

static zealot
#

Is BStats down for everyone else?

lavish notch
static zealot
lavish notch
static zealot
#

That's weird. I also thought https://bstats.org/ should work as I've used it before but it doesn't seem to work for me.

old wyvern
past eagle
#

Anyone know what I should directly look into with ProtocolLib to make NPCs (through Citizens) only visible for certain players and invisible for everyone else? Any response is appreciated :')

safe crescent
distant sun
#

@ocean quartz how do I use the first method in kotlin? D:
Class.get(entity) { nbt -> nbt.getSomething() } calls the second method, but I need the first one for the result

crude cloud
#

Class.get(entity) Function { ... }
Class.get(entity) Consumer { ... }

#

idk if you can put that outside of the parenths, but you can definitely do it inside

ocean quartz
#

Class.get<T>(entity) { nbt -> }

crude cloud
#

or that

#

smart

potent nest
#

or you store the lambda in a variable before with an explicit type

#

(or you just don't use kotlin)

brazen ether
distant sun
#

thanks

ocean quartz
#

Emily's solution also works, but it has to be inside the parenthesis Class.get(entity, Function { nbt -> })

distant sun
#

interesting

wintry plinth
#

If I want to get the players primary rank, would I just use the vault api? I'm running LP, but not sure if vault just returns it

sly sonnet
wintry plinth
oblique heath
half harness
#

what stops me from making my own message and just using your pgp signature?

#

since its just a txt file

prisma wave
#

thats the point

#

it's like an encryption key

#

so once you've used the signature you can only decrypt the message with the corresponding private key

oblique heath
#

if you try to change the message, the signature will no longer be valid and anyone who has my public pgp key will be able to tell

agile galleon
crude cloud
#

smh dkim

half harness
#

ohhh

#

lol

faint fractal
#

Someone help please
i am getting this error - [05:32:32 INFO]: [PlaceholderAPI] Fetching available expansion information...
[05:32:33 WARN]: [PlaceholderAPI] Cannot load expansion playertime due to a missing plugin: PlayerTime
[05:32:33 INFO]: [PlaceholderAPI] Successfully registered external expansion: statistic [2.0.1]
[05:32:33 WARN]: [PlaceholderAPI] Cannot load expansion playerstats due to a missing plugin: PlayerStats
[05:32:33 WARN]: [PlaceholderAPI] Cannot load expansion playerstats due to a missing plugin: PlayerStats
i have tried to manuly install the ecloud placeholder. it seems not to update please status and playtime

half harness
craggy forge
#

how do i merge model engine resource pack with oraxen

prisma wave
#

That’s cool dude

crude cloud
distant sun
#

Banned

crude cloud
#

rude

brazen ether
#

realized recently I need to write a proper entity system for my Minecraft server (like proper game engine style) and damn ts complicated

#

why am I even bothering with paper atp :Kek: should jus go with Minestorm

wind patio
#

give emily admin

rotund egret
#

Probably use sponge

#

Superior api fr

brazen ether
rotund egret
#

The api is super based

brazen ether
#

server side fabric modding makes more sense if anything

rotund egret
#

Wym vanilla stuff

#

Also you're practically (literally) doing server-side modding fwiw.

brazen ether
# rotund egret Wym vanilla stuff

the reason I mentioned Minestorm is because I was wondering whether it was actually even useful to have the vanilla Minecraft server as a base

#

I meant like whether it would be useful for me to literally just ditch Mojang entirely in that way

half harness
#

isn't DP basically just caching results to be used in future calculations

#

or at least the basics of it

#

sounds scarier than it is

#

or I guess that's the point of the video lol (at least based off the title)

brazen ether
#

i just like the leetcode thought process shown in the vid

brazen ether
#

jus made an algorithm literally 58% better

#

life is good

brazen ether
#

how many of you guys actually ever have a "Utils" class

#

do you consider them okay for small projects?

#

i have my own strong opinions abt this but i'm interested in what others think

remote goblet
#

i think its fine

#

when its used for its designated purpose; having standalone methods that'll be used a lot throughout the project

#

I use this method a lot but it wont anywhere else in the project logically

cerulean ibex
#

idk but btw guava has that

lucid falcon
#

mb

#

wrong thing

rotund egret
# brazen ether how many of you guys actually ever have a "Utils" class

Most things are best described, so like in a perfect environment you wouldn't have one.

But we must also admit our projects aren't perfect and they'd be annoying if they to meet that mark.

We don't necessarily need a separate class and package structure for 1 static method, but it's more of a "future-proof" which sometimes means redundancy in the short term.

So we can reduce these redundancies and make a utils class and perform migrations later if categorically it fits somewhere else. Or simply never move them because the project doesn't grow to necessitate it.

#

If i have to dig trough like 30 classes in your utils though you're just bad at categorizing

cinder flare
#

kotlin extension methods, bam

#

my utility functions are just part of the class lmao

rotund egret
#

I think extension methods run the same issue just in a different way

#

Don't get me wrong though. I abuse the fuck out of em

sweet cipher
rotund egret
#

Really says a lot about society

wind patio
rotund egret
#

Maybe you do, but not me. I'm a free-spirit, on my own path.
Shits myself

sweet cipher
potent nest
#

you'll hopefully get banned for writing minestorm instead of minestom, but what else do you expect to happen?

sweet cipher
#

I expected it but Mr. Afonso doubted me

pastel imp
#

Hell not gonna risk my donator role xd

#

But 1s

#

511

#

And from what I checked, none banned

sweet cipher
#

Also I'm talking about the Minestom server not the paper one

pastel imp
sweet cipher
#

No

sweet cipher
half harness
#

ohh I get it

#

I think

#

:)

#

I love minestorm

brazen ether
#

also my autocorrect doesn't like me saying minestom

warped shoal
#

where is support?

half harness
warped shoal
#

i dont need help

#

thanks

#

I managed to solve my problem

wind patio
#

Cool

warped shoal
#

How do I make an item glow?(in menu)

brazen ether
#

make a texture pack that changes the item texture to a version that glows

warped shoal
brazen ether
#

I wouldn't call the enchanted effect a "glow"

warped shoal
#

thanks

brazen ether
#

if you want to make an item look enchanted there's plenty of info online Abt that

brazen ether
#

wrong channel

warped shoal
tropic whale
#

i need mcc skybattle plugin with resource packs

remote goblet
ocean quartz
tawny crest
#

Hey guys, can you spam my DMs with minecraft plugin ideas? I kinda have to get a lot of hours coding in

wind patio
#

nah

tawny crest
oblique heath
#

clearly there is demand for it

tawny crest
#

lmaoo

steep lark
#

On my tebex store it says “Webstore Hidden Customers cannot purchase packages on your webstore because it is currently hidden.” But the customer support says the wait time for support is 24-48 hours, can anyone help me? I don’t really know what to do about it

tacit briar
#

Essentials vs CMI? Which one is the best?

oblique star
pastel imp
grim umbra
wind patio
#

I really want to move away from essentialsX

#

but cba to re-do 70% of permissions

wind patio
oblique star
#

open source tho

sly sonnet
pastel imp
#

Just compile it, ez

steep lark
oblique star
#
  • who pinged me
dry harbor
# tacit briar Essentials vs CMI? Which one is the best?

I’ve used both for a bit now.

EssentialsX has better short form commands, more sensical aliases, easier usage, and I think mini message support now

CMI does more, has a lot of helpful niche features, and covers more ground than EssX

Overall, I prefer EssentialsX, but since my server has a lot of small things that CMI has that EssX does not, I prefer using it to have to download like 10 single-purpose plugins to accomplish what I need

#

EssX being free also helps a lot. I’d say EssX is perfect for most servers generally

#

Biggest issue with these Essential type plugins is they try to step into features that they just.. don’t perform as well with as other plugins do. It’s great to have an all in one, but there is so many plugins that handle features that are more worth it

Examples being TAB being the ultimate plugin for scoreboards, tabs, boss bars, etc, I couldn’t imagine using anything else.

LiteBans being an excellent punishment plugin having a lot of great functionality and web panel

You’ll always have byproducts you don’t particularly need with these “Essential” plugins, but yeah, ranting 😵‍💫

rotund egret
#

Idk why you'd expect a kitchen sink plugin to be good at all of its features -- it's to cover the essentials, not everything.

So its not an "issue" of the plugin. Its a specific design choice to balance between having features everyone uses, and not overwhelming users with features/configuration.

The balance is off sometimes, but the point is that it isn't an issue that essentials isn't "fully featured" for its features.

dry harbor
#

That’s why at the end I said byproduct

#

I don’t expect essential plugins to be like the best plugins mashed into one, I just wanted to let the person know, but I realized it was a rant at the end xD

#

But regardless you are definitely right

crude cloud
#

beezooka and kittycannon are absolutely vital and essential for my server to operate

pastel imp
#

This is why I am making my own essentials plugin, which actually only contains what is needed and its not going to try to replace other plugins like TAB, etc.

wind patio
#

so not everything is cramped into a single plugin like CMI

pastel imp
#

Yeah modular is also very nice cocncept

#

Was looking into it too

crude cloud
#

I mean, at that point you're just splitting it into separate plugins for each feature lol

wind patio
#

I suppose so, I was thinking about having like a main plugin, where you have like a modules.yml, where you can toggle things, well, let's say, TAB module, and it'd automatically download it

#

tho the automatic download is probably not something everybody want, since it kinda creates a vulnerability problem lol

distant sun
#

Ye no automated downloads no

pastel imp
#

Well besides automatic download

#

It would just be able to fully enable the module or not

#

But it all is bundled in the same plugin which at the end, doesnt change much

wind patio
#

or, you'd need to download the modules externally and add it to "modules" dir, for ex.

#

which would be loaded by the main plugin, so you wouldn't have additional plugins like essentials does

pastel imp
wind patio
#

well, I kinda had a working prototype

#

5 months ago lol

#

basically each module uses an interface which exposes the commands and listeners, which get registered/unregistered by the main plugin via /module load/unload somemodule

wind patio
#

tho there were some interesting issues

crude cloud
#

ServiceLoader prayga

half harness
#

with its expansions

#

¯_(ツ)_/¯

pastel imp
crude cloud
#

yeah but papi is ☠️💀 ⚰️👻

#

leaking classloader

#

luckperms does it slightly better

half harness
distant sun
steel heart
#

java’s probably 🌚

crude cloud
#

java yeah

distant sun
#

And how do you properly load the classes of a jar without leaking the classloader?

crude cloud
#

by keeping a reference to the classloader and closing it when it needs closing

dry harbor
#

Imo

rotund egret
dry harbor
#

CMI definitely does cramp harder in general though

#

Even though the configuration is separated into separate files it actually makes it harder lol

crude cloud
#

my understanding is that cmi adds more and more useless features because the author can't be bothered to fix the metric ton of bugs it has

#

I can't attest for that myself but it's what I've seen several people mention time and time again

cedar estuary
#

Which code can I use to edit the EssentialsX sound effects?

#

on the developer version uses sound: but on the stable version isn't using the same command.

dry harbor
#

It honestly doesn’t seem as bad as people make it sound

#

CMI has no noticeable problems imo

brazen ether
#

writing the sort of code where if i write it wrong, it doesn't break and explode in my face but instead just causes performance issues with no easily detectable errors!

rotund egret
#

Simply write good code then

#

Praying for you

brazen ether
# rotund egret Simply write good code then
for (int z1 = 0; z1 < size; z1++) {
                            int index2 = index + (z1 * width) + size;
                            long rawColumn2 = rawCubes[index2];
                            if (rawColumn2 == 0) break check;
                            int h2 = Long.numberOfTrailingZeros(~(rawColumn2 >> y));
                            if (h2 <= size) break check; //wasting this testing, can't get bigger
                            h = Math.min(h, h2);
                            //count useful size
                            long culledColumn2 = culledCubes[index2];
                            usefulMask |= (((culledColumn2 >> y) & 1) << size);
                            for (int i3 = 1; i3 <= size && ((usefulMask >> size) & 1) == 0; i3++) {
                                usefulMask |= ((((culledColumn2 >> y) >> i3) & 1) << size);
                            }

                            usefulMask |= ((culledColumn2 >> (y + size)) << size);
                        }``` im struggling
#

there is an error in this code. i know this because the mesh it generates is imperfect. it is simply a battle of wits between me and these lines

brazen ether
#

actually the error was somewhere else damn

brazen ether
#

and my computer is too shit to measure performance

#

life

potent nest
#

how can a computer be too shit to measure performance

brazen ether
#

not an exaggeration

potent nest
#

lol

dapper loom
#

[16:22:31 INFO]: phatto lost connection: Internal Exception: io.netty.handler.codec.DecoderException: java.lang.ArrayIndexOutOfBoundsException: Index 64 out of bounds for length 3
how do i fix this?

dapper loom
#

@half harness

half harness
#

idk

brazen ether
oblique heath
#

simd programming more like

#

simp programming

crude cloud
#

more like

#

p
r
o
g
r
a
m
m
i
n
g

tacit briar
#

Guys which essential is good? I want to use SunLight do you have any bad experiance with that? And what is your suggestion about essentials?

potent nest
#

more like "your code is too complex so you end up with a lot of allocations instead of highly optimized simd code"

kind wing
#

,

oblique star
pastel imp
#

I want a plugin that is paper only fr

#

Fk spigot

cold prawn
#

why care

pastel imp
#

If the developer supports spigot, big red flag

rotund egret
#

Wanting it to be a paper plugin, and wanting the developer to exclusively support paper are two very different things.

#

And one makes you goofy

cold prawn
#

but i could be wrong

#

¯_(ツ)_/¯

crude cloud
#

big disagree, several times per day I see someone on the spigot discord asking for help with xyz and I'm there thinking "a certain downstream fork has a method/api for that", and their only option is to use nms because that's their choice

pastel imp
pastel imp
#

ngl, quite biased but I trust devs that do paper only plugins more than spigot ones

#

Not 100% sure why but yeah

#

that's just my mind

forest pecan
#

I honestly don’t know why I still use it

cold prawn
cold prawn
forest pecan
#

Paper API has support for many features that streamline development. They actually like fix things and improve the already lacking API that’s backed by some shit code

pastel imp
pastel imp
#

on latest versions? Hell nha, over 95% are on paper or its forks

#

lower versions have more spigot usage

#

In general, across all versions, spigot holds around 21% stake

brazen ether
#

spigot is just slow isn't it

pastel imp
#

While paper alone has like 75% (all versions)

brazen ether
#

my spigot server took 6x as long to start as my paper

#

personal machine but

pastel imp
#

fr 💀

brazen ether
#

still

pastel imp
#

yeah

#

just the fact paper isn't ran by md_5 is already a huge win

crude cloud
brazen ether
#

damn

#

that's ridiculous

crude cloud
#

it is

pastel imp
#

someone gotta make compilations of spigot fanboys defending spigot

#

ngl

#

whenever I see that I laugh hard, no joke

#

you know paper is better when spigot users come to paper discord server to ask for help 😂

brazen ether
crude cloud
#

I mean yeah code that doesn't have to do with Minecraft doesn't have to do with Minecraft, but most plugins aren't like LuckPerms, people make stuff involving entities and world state, events, like minigames or game modes etc involving the API

forest pecan
#

If the plugin is designed bad it’s just a skill issue it’s not api fault lol

cold prawn
#

yea thats why i also dont get the mentality of paper = better

#

when Afonso was talking about plugin quality

forest pecan
cold prawn
#

Yea not arguing that just arguing hating on spigot plugins :D

odd laurel
#

How do I use the Spicord API in a spigot plugin?

pastel imp
#

and trust one more than the other

#

biased opinion

#

but yeah

#

Well, actually, not that biased.

#

I am just ahead.

#

Paper will be hard forking sometime soon(ish) and if I use paper plugins already, I won't have any issues migrating lol

forest pecan
#

He’s just gigachad

pastel imp
#

well, I accept that lol

#

it's just working smart, I know what's coming, and I am future proofing it

#

that's my main reason for prefering paper plugins

forest pecan
#

Actually yeah I did some thinking and I think imma just use paper lol

#

The only thing that was holding me back tbh was selling support but I can just do that on buildbybit or other stores

pastel imp
#

wait wdym

forest pecan
#

Cause I’m broke 😢

pastel imp
#

what does X have to do with Y?

#

uh?

forest pecan
#

Cause I was originally gonna sell support on the spigot forums but

pastel imp
#

oh hell nha

forest pecan
#

That site sucks ass lmao

#

They don’t care about sellers or buyers

pastel imp
#

Builtbybit and polymart are decent options

#

Soon Hangar will also have a way to "kinda" sell plugins

forest pecan
#

Yeah I’m waiting for that

pastel imp
#

They are planning on adding private release channels, which means you can sell access to that release channel

#

this way, they don't have to handle payments, etc themselves

#

which is hella beneficial and doesn't require them to register a company

#

Hangar is slowly becoming really nice.

#

Just didn't get the attention it deserves yet

cold prawn
brazen ether
#

Fuck

agile galleon
#

whats the easiest way to check if the server version is 1.20 or higher?

pastel imp
#

dies

agile galleon
#

you do that, if you have something to say please do

pastel imp
agile galleon
#

this seems to do what I need

pastel imp
#

Why not just get minecraftversion

#

Instead of the bukkit version

#

Eh technically same thing at the end I guess

#

One returns 1.20.6 the other same but extra

ocean quartz
crude cloud
#

just get the data version from the version json 🥱

pastel imp
abstract osprey
#

why does GitHub have to be down pain

rotund egret
brazen ether
agile galleon
#

lmao

scenic dagger
#

@quiet depot sorry for the ping but i want to report about someone, basically a freelancer in this server.

rotund egret
#

./report

quiet depot
scenic dagger
#

alr thanks both of you

scenic dagger
#

hey umm i have already made a report and i would like to add one more screenshot to it. how can i do that?

slate elk
#

difference between packetbased (NMS) scoreboard and teams and bukkit scoreboard api

#

beside different manipulation for each individual

brazen ether
#

ChatGPT ahh prompt

pastel imp
#

Mojang cooking last few updates/patches

#

th

static zealot
#

I am looking for a terminal with ssh support. For Android. Any recommendations?

ocean quartz
#

Why must you torture yourself

static zealot
#

:))

#

I need it more for emergencies than anything else

cinder flare
#

i've heard good things about Termius

static zealot
#

Hmm. Magazin Play recommended me Termius. Has positive ratings

#

Will try and report back

half harness
#

Personally I used termius and it was good

#

But I primarily got it bc I already had it on pc (altho I don't use it anymore) and so it synced to mobile

cold prawn
#

those are the only critisisms ive heard

#

But i use it and its fine

oblique heath
lunar crag
#

hey is there a part of the wiki that explains guild signs for worldguard regions to rent? thanks

cedar estuary
#

question, how much do you guys ask for a permissions configuration/setup ?=

cold prawn
#

i mean really depends on scale and complexity and etc

#

u get what u pay for

pastel imp
#

any ideas how I could fix gradle's release version 17 not supported when compiling? Everything is set for java 17 lol

onyx loom
#

might need to update ur gradle wrapper version?

rotund egret
#

Downgrading or upgrading gradle

pastel imp
#

doubt, the thing is

#

I have another setup which is basically set up indentically

rotund egret
#

Oh good, you had hidden information

pastel imp
#

that one works, this one doesn't

#

lmao

#

both same gradle wrapper version

half harness
#

whats the gradle wrapper version

pastel imp
#

8.1.1

lunar crag
onyx loom
#

apologies for delay

ocean quartz
#

8.1.1 should support 17, but try updating to 8.10 and see

pastel imp
#

yeah updating worked

#

weirdly

#

lol

brazen ether
#

@nocturne apex why not make the beams 1 elongated block display instead of multiple

#

you'll have better width control

#

if you don't like the elongated look at least make them rotate in the right direction

nocturne apex
#

I just wanted to make one part of the math first

#

and then imma use the quaternion for the rotation of the item display and make it longer

pastel imp
#

I wonder what the use case of this gonna be

#

lol

brazen ether
#

effects!

brazen ether
#

just use block display

gusty glen
#

What happened to Matt? His repo is down

crude cloud
#

he DIED

gusty glen
crude cloud
#

YES (no)!!

gusty glen
crude cloud
#

lol

gusty glen
#

But seriously, did something happen to him? I wasn't able to find even his Github profile.

crude cloud
gusty glen
#

Oh, the profile's name has changed, that's why I couldn't find it, thanks Emily

#

@ocean quartz seems like you have migrated from your old domain mattstudios.me, could you please share the new domain with me?

I revisited an old project I made that used one of your libraries, triumph-msg-bukkit, that was hosted in your artifactory at your website. But since the address seems to have changed, I'm unable to compile the project.

nocturne apex
ocean quartz
ocean quartz
gusty glen
# ocean quartz Check your github for the invite

Thanks, I've accepted it and manage to get it compiling (for the most part). May I ask what happened to this library in specific? It was my go-to library when I needed to have customizable colored messages.

distant sun
#

I don't remember what that library does, but all you need nowadays is MiniMessage#deserialize

ocean quartz
rotund egret
#

Paper and Sponge directly implement it 😎🔥❤️

slate elk
#

My laptop fried it’s self

#

Should I disassemble and check what to replace

#

Or get new one

#

It’s 2000$ only .

#

New one

oblique heath
#

you should get a new one and send me your broken one

sour bone
#

on servers, my plugin's placeholders randomly stop working. Parsing them just doesn't work anymore. Any idea why?

#

I've registered two placeholder expansions, perhaps this is why?

half harness
sour bone
#

I dont, let me do that

slate elk
#

U dev make everything from scratch

slate elk
#

and make an unboxing video 😝

oblique heath
#

deal

distant sun
slate elk
#

Fr

#

Beside worldedit

#

Which is just decent art

distant sun
#

Yeah I'm not having this conversation with you ablobwave

slate elk
#

And an Anticheat since it’s headache to code a one

#

😭😭😭😭

#

K anyone else wanna take Gabi spot

dry coral
#

been using hibernate a lot lately

#

really been liking it, especially how it integrates easily with redis as a cache

#

only downsize is size, but tbh size doesnt really matter

#

what do you all think about hibernate or ORMs in general?

cerulean ibex
#

jpa is fucking ass

ocean quartz
#

Hibernate with Spring is great, without it it's terrible

crude cloud
#

I can't say I've worked with either hibernate or spring, but I've worked with activejdbc and I can confidently say i didn't like it, i very much rather prefer DSLs like exposed for kotlin or jooq for java

#

I should definitely try spring but I don't have anything to do that I could use it on

oblique heath
#

is activejdbc like ruby's activerecord?

crude cloud
#

idk

cold prawn
gusty glen
dry harbor
cold prawn
#

in my humble opinion 90% of times custom just means not refined

crude cloud
#

it doesn't have to

#

it might just mean "we just need this one hook for our specific server needs that the standard plugin out there doesn't do"

#

doesn't mean the whole plugin had to be better and overhauled

dry harbor
#

I never get the mentality of needing every plugin to be custom

#

It just means you’ve rejected the x amount of years the main plugin has been maintained and tested

#

For your 1 week of work and hoping it works lol

cold prawn
#

But wouldn't necessarily call that a custom plugin

pastel imp
crude cloud
vocal silo
#

Hello, how to disable boat collisions? [PING ME]

pastel imp
#

or simply how you want it to be, can be a simple thing like "I prefer configs to be like this" or whatever

#

sometimes it's the lack of an API

#

sometimes lack of features

#

sometimes lack of version support

#

several reasons

pastel imp
#

Random question, if you had a webserver, that needed to somehow tell an MC server to do an action, how would you do it without opening any ports, websockets, or whatever?

oblique heath
#

you can have the mc server reach out to the webserver via plugin

pastel imp
#

I don't think there is really a solution besides the mc server "pinging" the webserver for updates every x time

oblique heath
#

byeah

#

not necessarily pinging either, you can just open a socket connection to the webserver and maintain it

pastel imp
#

Question is, lets say it pings every 5s, but it's 1000 servers, then that's 1000 requests per 5 seconds, which could be a lot? Idk

pastel imp
oblique heath
#

if for 1000s of servers you can use something like websockets

oblique heath
pastel imp
#

Yes

#

But no extra ports or whatever

oblique heath
#

you can use dev tunnels, or pick a middleman website

pastel imp
oblique heath
#

dev tunnels are basically a way to share a website to the public without port forwarding

#

ms azure has them, cloudflare has them

#

you borrow a subdomain of theirs and any requests to that subsomain will be redirected to your local website automagically

#

alternatively, you can use a public service like google sheets or something

pastel imp
#

That doesn't solve the problem though

oblique heath
#

it doesnt involve any open ports

pastel imp
#

I don't think you understand

#

1s

#

So, I have the webserver/website/dashboard where you control settings and can click buttons that execute actions in a minecraft server. That minecraft server does not have access to my webserver, and can't open any new ports but needs to receive updates or actions to execute when I press the buttons in the dashboard on my side. This is at scale, it's not private.

oblique heath
#

what do you mean exactly when you say the mc server "does not have access to my webserver"

pastel imp
#

It means, I am not the owner of both and can connect them easily.

#

The minecraft server owner does not have access to my webserver

#

The only thing there is a rest api

#

For example.

oblique heath
#

right

#

wait in this scenario are the minecraft server and webserver owned by different people

#

neither of which are you?

pastel imp
#

Which means I can't reallt connect via websockets, or anything that requires me to have access to both sides

pastel imp
#

Mc servers can be owned by several different people

oblique heath
jagged jasper
pastel imp
oblique heath
#

the plugin can connect to your website

#

via rest

#

or websockets

pastel imp
wintry plinth
pastel imp
oblique heath
#

just like your browser can connect to a website without you port forwarding your pc

pastel imp
wintry plinth
pastel imp
#

Lol

pastel imp
oblique heath
#

clients generally do not need to port forward, so your plugins are safe to make outbound connections to a webserver without additional setup

oblique heath
#

and once the client initiates the connection, it is free to be used both ways

#

a la web sockets

pastel imp
oblique heath
#

hijacking that is the same as hijacking a browser's page load of say chase bank.com

#

if you are using https it is very difficult

pastel imp
#

Hmm

#

Okay

oblique heath
#

i think web sockets are the move for you

half harness
pastel imp
#

Yeah, it appears so

pastel imp
oblique heath
#

yeah dkim is right you will definitely need some sort of user auth somewhere

half harness
#

Idk any type of auth

oblique heath
#

or do you expect all the server owners to allow your website to send any random commands to them?

#

ideally you have signed/encrypted payloads that can only be created by people authorized to send commands to the servers they are being sent to

#

that can be validated on the plugin side

pastel imp
oblique heath
#

hmm i mean i think its a cool idea but the first worry i would have as a user (server owner) is if you are able to execute arbitrary commands on my server

#

damn i just got hit with crazy deja vu

#

not sure why

half harness
#

Wait without scrolling all the way up can you give like a short explanation of what this is for

#

🥲

pastel imp
pastel imp
oblique heath
pastel imp
#

I don't fully understand what you mean tbh

oblique heath
#

ok let me make an ez example

pastel imp
#

I understand that you should sign/encrypt them, similar to how signed messages work in mc, but no idea how

#

Specially in this case

oblique heath
#

for that all you need is some pgp library

#

im sure java has one

#

with a sign() method and a verify() method

#

if i sign() a piece of text, i can later verify() it to be certain that it came from me

#

if the text was modified somehow, verify() would fail

#

my key to sign and verify would only live on my local machine (mc host)

#

does that make sense? idk

pastel imp
#

Hmm yeah

#

What if I didn't had the power to execute any command though? Would this be fine without signed?

oblique heath
#

yeah

#

actually thats true you can just have the plugin config decide what commands are ran

#

signing it may just be overcomplicating

pastel imp
oblique heath
#

ig you could get fancy and use clientside code on the browser to sign/encrypt the commands

#

by accepting a password that becomes a pgp key

pastel imp
#

Which could potentially be okay to do? If I require the user to manually use the reload command in the plugin to update the settings, the user needs only reloads when he is the one modifying it, if someone else modifies it somehow, they still can't reload, only the admin

oblique heath
#

or no?

pastel imp
#

Yesno?

#

When you are in the dashboard doing something else and suddenly want to change a config, it's always easier to change it there than to change tabs or open a new tab, go to the config file, change settings in a yaml file (which sometimes is not that user friendly) and then reload

#

Here it would all be in the same interface and with better UI and UX

oblique heath
#

i figured that one of the main benefits of this dashboard was bulk updates

#

if you have say 20 minecraft instances

#

would rather not have to go to each one for any reason

pastel imp
#

Yes, that is also a possibility that will actually be possible

#

Since I plan to make it possible to select servers that share the same config

#

Easy to update a network if needed

oblique heath
#

byeah

#

idk at this point i think using a user password as the seed to an signing key is the move

#

generate it in js, all is well

pastel imp
#

The only way someone could possibly abuse it is if they somehow have access to both dashboard (either server owner's account or I get hacked) AND they have access to reload the plugin in the server

oblique heath
#

or you decide to abuse it for your own personal gain at some point

pastel imp
#

But chances that somehow happens are low, + if you can reload the plugin, you already can probably execute any command

#

So yeah

pastel imp
oblique heath
#

the webserver owner

pastel imp
#

Cause even if I wanted to abuse it, as said, the plugin needs to be reloaded by the server owner

oblique heath
#

hmm true

pastel imp
#

That is something I cannot access

oblique heath
#

idk i think the reload is a bit icky

pastel imp
#

I mean, it's the only way to secure this

oblique heath
#

also forcing a plugin reload might lead people to an antipattern of making an action to reload it

pastel imp
#

If I were to auto update settings directly, then that could get tricky

oblique heath
#

and im sure they will find ways to circumvent efforts to deny them the option to reload

oblique heath
#

your plugin so happens to allow the execution of commands