#dev-general

1 messages Β· Page 206 of 1

prisma wave
#

lemmo you ever used julia?

frigid badge
#

nope

steel heart
#

you ever used JavaScript 1.0?

prisma wave
#

ah it's quite cool

#

I've not used it for anything fancy but it seems pretty cool

#

Apparently it's very flexible

frigid badge
#

ah okay

#

interesting

obtuse gale
#

I was asked to upgrade someone else's plugin from 1.8.8 to 1.16.3

  1. No source code available, I got the compiled jar given instead, and the decompiled code is a nightmare
  2. I'm 10000000% sure the original source was a nightmare, decompiled nice code isn't really that bad...
  3. I think it would have worked anyway, no upgrading required lmao
  4. help
  5. please help
frail glade
#

Never accept a project if you don't have the source is what I learned quickly.

prisma wave
#

don't change anything you don't need to

#

Updating will probably just be changing material names and a few method names

#

Leave everything else if it's a mess

obtuse gale
#

this 100% works on latest

#

it barely makes use of bukkit at all, other than commands and sending messages

#

only thing I'll do is just add an api-version lmao

ocean quartz
#

Really wanting to write this config stuff in Kotlin but people might want to use it in Java 😩
Suffering

prisma wave
#

interop

surreal quarry
#

isn't the kotlin -> java interop kinda bad tho
like extension functions are weird, certain things dont work at all im pretty sure

ocean quartz
#

Not really, the problem is just in case of Spigot needing to shade Kotlin because of a lib

surreal quarry
#

ah ok

frigid badge
#

I've never programmed on a pc tbh

#

only laptop

prisma wave
#

bruh what is this conversation

static zealot
#

I code = I go on github and steal code xD

obtuse gale
#

whenever I have to type I prefer laptops tbh

prisma wave
#

Everyone is just saying things

obtuse gale
#

yes

#

banana

static zealot
#

ugh Pizza

#

xD

frigid badge
#

ew

static zealot
#

nahhhh

#

that github shit

#

also I'm pretty sure its Frcsty not Frxsty

#

demoted from what?

#

oh being staff is like being a member with just more random pings and friend requests

ocean quartz
#

Then we'd need to demote most staff kek

static zealot
#

so would basically be a promote

#

nope

#

not true

ocean quartz
#

Coding is basically getting code from others and adapting

static zealot
#

that's boosting

prisma wave
ocean quartz
#

Why Frosty? lol

static zealot
#

yah that's what I said Matt

#

if you want to never do something good then copy code from Frosty xD

onyx loom
#

elara ide&

prisma wave
#

/elara
@obtuse gale ElaraLang*

pseudo owl
#

elaranguage

prisma wave
#

πŸ™‚

#

slight_smile

static zealot
#

🌚

#

@obtuse gale
@obtuse gale

#

nice

#

xD

pseudo owl
#

you should make your own language

static zealot
#

yeah xD

#

discord doesn't let you quote a quote

#

you should make your own language
@pseudo owl its called elara ...

prisma wave
#

Will elara have a feature to sync with github automatically
@obtuse gale no

static zealot
#

they are actually making it xD

pseudo owl
#

is it a actual language

prisma wave
#

Yes

#

Mostly

pseudo owl
#

oh

#

πŸ˜„

prisma wave
#

because that's what an IDE or Git is for @obtuse gale

#

true

#

SO many features

#

print function πŸ™‚

static zealot
#

Elara is going to be the language with most promised features ever and never actually to become true

prisma wave
#

uh

#
  1. make it work
static zealot
#
  1. make it actually work
#
  1. fix it again xD
prisma wave
#

lol

static zealot
#
  1. delete everything because it doesn't work and restart
prisma wave
#

we've already done that

pseudo owl
#
  1. go to 1
static zealot
#

^

prisma wave
#

:(

static zealot
#

well its a process that repeats

#

xD

pseudo owl
#

and elara wont release

prisma wave
#

it will

#

Mark my words

#

Even if it takes is 20 years

#

It will release

#

Int x = 4
@obtuse gale no thank you

heady birch
#

COULD UUSE existing language FOR INCREASE PRODUCTIVITY such as rust for examples

pseudo owl
#

so my grandchildrens can see the elara

prisma wave
#

let x = 4

pseudo owl
#

i'm happy now

prisma wave
#

COULD UUSE existing language FOR INCREASE PRODUCTIVITY such as rust for examples
@heady birch ok

#

the same

#

There is only 2 number types

#

Int and Dec probably although the names might change

#

Let for everything

#

let str = "hello"

#

probably

#

We have print function

#

Adding

#

Subtraction multiplication division

#

Number

#

No decimals allowed

pseudo owl
#

@prisma wave which languages you are using to make elara

heady birch
#

unsigned long long

#

5ULL

prisma wave
#

@pseudo owl at the moment we are using Go for the runtime

#

@obtuse gale yeah I think that will work but without the semicolons

pseudo owl
#

so whitespaces?

prisma wave
#

world show-firework owo cool timer πŸ™‚

#

Optional dots and brackets

pseudo owl
#

oh its nice

surreal quarry
#

is the language conventions dashes

prisma wave
#

Yes

#

For variable names anyway

surreal quarry
#

why not camel and lower camel

pseudo owl
#

^

prisma wave
#

why not camel and lower camel
@surreal quarry we wanted a gimmick

#

Basically

#

But I think it looks alright

surreal quarry
#

yea its not bad

#

i wish all languages wouldve just stuck to one naming convention but theres so many now that it doesnt really matter

prisma wave
#

Nah

#

It's cool that they're unique

#

Are variables a thing
@obtuse gale let is for variables

#

for anything

surreal quarry
#

isnt let for everything

pseudo owl
#

but its elara

surreal quarry
#

let = for elara

pseudo owl
#

πŸ˜‰

surreal quarry
#

why not?

#

tf?

#

i was just saying let is for elara

#

im so confused

prisma wave
#

what

#

let is the equivalent of val

#

let mut is the equivalent of var

surreal quarry
#

correct me if im wrong but isn't let also for functions

pseudo owl
#

yeah i think

surreal quarry
#

thats all I was trying to say is that let is for everything in elara

prisma wave
#

Indeed it is

#

Super first class functions

#

I was tempted to make let for everything

#

i.e structs too

#

But that seems dumb

pseudo owl
#

i think its okay but idk

prisma wave
#

☹️

old wyvern
#

correct me if im wrong but isn't let also for functions
@surreal quarry
let is for any data, functions also being a form of data in elara

#

also, lazy arguments reversed_fingerguns

let or = (Bool a, lazy Bool b) => {
     if a => return true
     else => return b
}
#

b arg is evaluated only when b is requested

prisma wave
#

Elara good

frigid badge
#

that's pretty cool tbh

prisma wave
#

indeed

#

Quite a lot of optimization potential

#

List.filter can avoid evaluating its predicate if the list is empty, etc

#

The real difficulty is figuring out how to implement that on the JVM

old wyvern
#

lambdas

prisma wave
#

isn't that just deferring the overhead a lot of the time though?

#

Idk

old wyvern
#

wdym?

#

it would be called only once inside the function

#

right before the first usage

prisma wave
#

Ah yeah true

old wyvern
#

we could have something like

class LazyArgument<T> {
     private T t = null;
     private Supplier<T> supplier;
     public LazyArgument(Supplier<T> lazyT) {
         supplier = lazyT;
     } 
     public T get() {
        if (t == null) {
           t = supplier.invoke();
        }
        return t;
     }
}
prisma wave
#

that's probably best

#

Although I'm not sure how significant the overhead would be there

#

At the moment the interpreter can just pass the Command rather than the Value

old wyvern
#

true true

frigid badge
#

man I should really contribute

#

seems like a very fun project

old wyvern
#

ayy πŸ’― πŸ’―

obtuse gale
#

yugi

#

tier v when

old wyvern
#

probably not soon

#

im not active enough

obtuse gale
#

:(

prisma wave
#

@frigid badge do you know Go

surreal quarry
#

lemmo go fast

prisma wave
ocean quartz
#

Golang.go

surreal quarry
#

how similar is go to java or kotlin for example

prisma wave
#

Syntactically it's fairly similar

#

It has some quirks that are pretty different

heady birch
#

add smart casting

#

else I may have to build an alternative πŸ™‚

prisma wave
#

To elara?

heady birch
#

elara not even OO is it

prisma wave
#

Not entirely

old wyvern
#

Its multi paradigmn

prisma wave
#

It's as OO as Go or Rust is

#

Kind of

#

Maybe a bit more

old wyvern
#

add smart casting
@heady birch
We have the match block which does something similar

prisma wave
#

Some<T> | None πŸ™‚

heady birch
#

πŸ₯°

old wyvern
#

Better nullability handling fingerguns

heady birch
#

is enum?

old wyvern
#

or rather, no nulls

prisma wave
#

no enum

heady birch
#

compile to PURE null check

prisma wave
#

πŸ˜‹

heady birch
#

native machine code

prisma wave
#

If memory βœ“ is empty =={ ?@8!

surreal quarry
#

will elara support like dependencies with gradle and stuff or how will all that work

heady birch
#

😫

prisma wave
#

Probably

#

I think a package manager could be cool

heady birch
#

😫

#

cargo

prisma wave
#

But gradle compatibility will probably be good too

heady birch
#

😫

#

😫

old wyvern
#

for JVM we would probably have to have it work with gradle and maven as well

heady birch
#

true

#

😫

#

😫

prisma wave
#

No maven

heady birch
#

no?

#

😫

surreal quarry
#

interop with jvm languages or not

heady birch
#

😫

old wyvern
#

Why?

surreal quarry
#

maven gross

prisma wave
#

Also it's not technically necessary

heady birch
#

😫

old wyvern
#

interop with jvm languages or not
Yes

prisma wave
#

Leiningen supports dependencies from maven repositories but is a separate build tool for example

heady birch
#

Leiningen ?

old wyvern
#

hmm

#

I guess we could work something like that out

#

Its probably better to have it work with gradle itself tho and later work on the build tool

frigid badge
#

@frigid badge do you know Go
@prisma wave who knows maybe I do....

obtuse gale
#

maybe you don't

prisma wave
#

You're the perfect candidate

#

Leiningen ?
@heady birch clojure build tool

old wyvern
#

Schrodinger's Lemmo

surreal quarry
#

you dont need to know go to contribute

prisma wave
#

Ehhh

surreal quarry
#

just PR some whitespace to the readme

prisma wave
#

You kinda need to know a bit

#

No

old wyvern
#

just PR some whitespace to the readme
@surreal quarry
πŸ™ƒ

heady birch
#

biased voters i showcase as susual

prisma wave
#

yes

heady birch
#

CHANGE them to green upvotes NOW that is a fair vote in my opinion

#

no one knows a fair vote better than me. believe me

prisma wave
#

no

frigid badge
#

Schrodinger's Lemmo
@old wyvern lmao

#

make elara run on quantum computers is a must

prisma wave
#

Can we make this the most downvoted showcase ever please

old wyvern
#

make elara run on quantum computers is a must
@frigid badge
Yes!

prisma wave
#

Thanks

old wyvern
#

Have you watched that movie where the world ends due to quantum computers? xD

#

"The Mandela Effect" I think

prisma wave
#

The Elara Effect

heady birch
#

Cool thumb nail

prisma wave
#

nial

heady birch
prisma wave
#

no

#

Thumbniall

heady birch
#

Whats elara file extension?

prisma wave
#

.el

#

Probably

heady birch
#

.e

#

main.e

prisma wave
#

No thanksπŸ™‚

heady birch
#

like main.c .h

old wyvern
#

Its currently recognized as emac lisp on github tho

#

xD

prisma wave
#

Lol

surreal quarry
#

.elaraelaraelaraelaralang

heady birch
#

.elang

#

Sounds like Erlang

prisma wave
#

Erlang

#

Lol

old wyvern
prisma wave
#

😐 ☹️

surreal quarry
#

tuff

static zealot
#

:))

heady birch
#

Purple πŸŸͺ

old wyvern
#

Down with the Niall

static zealot
#

Niall that's a "feature"

old wyvern
#

#MakeHelpChatGreatAgain #DownVoteNiall

heady birch
#

I have yet to try my example in practice, I think it has good prospects

#

Just wait till you tube channels start teaching it πŸ™‚

obtuse gale
#

Niall purple

static zealot
#

also don't spam the upvote button xD

heady birch
#

All classes must implement the throwable

static zealot
#

funny will get mad at you

surreal quarry
#

plugin tutorial shows java smart cast by niall

old wyvern
#
no one:
absolutely no one:
Niall's classes:     extends Exception
surreal quarry
#

: Exception()

heady birch
#

Oh can they tell when you upvoteyour own?

static zealot
#

Niall should rly become a youtuber making java tutorials. They are the best

prisma wave
#

but what if class extends other class

static zealot
#

it actually spams him xD

prisma wave
#

Eg JavaPlugin extends Exception

heady birch
#

cant you implement throwable?

old wyvern
#

xD

prisma wave
#

no

#

It's class

heady birch
#

Well I would implement it

surreal quarry
#

implends

old wyvern
#

He would remake spigot

steel heart
#

@frigid badge now if I use redis, could that replace mysql ?

old wyvern
#

Actually

prisma wave
#

@static zealot kindly remove your "upvote", thanks

old wyvern
#

He would remake the jdk

static zealot
#

@static zealot kindly remove your "upvote", thanks
@prisma wave K

prisma wave
#

reasonable

old wyvern
#

Object replaced with Exception

heady birch
#

I am not going to let the final keyword get in the way of quality programing

prisma wave
#

ok

#

niapl; Java void public main instanceof
Elara: match packet ChatPacket => lg πŸ™‚

static zealot
#

he's going to remove the final keyword himself

heady birch
#

Rust as well rust + elara good

frigid badge
#

@steel heart no

heady birch
#

Kotlin ok- java not good with match

frigid badge
#

well you can

heady birch
#

If only you could switch class smart cast

frigid badge
#

but shouldn't

#

redis can do persistent storage but I'd not use it for that

heady birch
frigid badge
#

unless your data is really small or something

static zealot
steel heart
#

So I should use mysql for storage and redis just for the tcp socket so I can update data between servers right?

static zealot
#

stutter why is this emoji a thing? :))))

heady birch
#

Where do you get these emoji`s

static zealot
#

oh you don't want to know

heady birch
#

:stutter: Never work for me 😫

static zealot
#

there's so many nsfw emojis there ||spermat||

#

xD

steel heart
#

alexSneak .

static zealot
heady birch
#

Oh

#

Emoji mood swings

static zealot
steel heart
#
//Nialls first pattern
try {
   throw packet;
} catch (ChatPacket chatPacket) {
    //smart casted. "chatPacket" is an instance of ChatPacket
} catch (OtherPacket otherPacket) {

}
#

I like it

heady birch
#

I came up with this ages ago

steel heart
#

Bruh java legit has smart casting fr

steel heart
#

I'm proud of you

static zealot
surreal quarry
#

thanks for linking another one for me to downvote :)

heady birch
#

all down voters are

static zealot
#

oh he took it down.

heady birch
#

its still there

static zealot
#

oh nvm

#

xD

heady birch
#

It's kind of neat though

steel heart
#

Niall you have a very great chance of getting into Oracle as an employe

heady birch
#

i present you the "smart cast"

#

we do not need "Record" types

steel heart
#

Yo ever thought about generics for annotations?

heady birch
#

😳 as in how would that work?

steel heart
#
@interface lol<T> {
  Consumer<T> consumer() default t -> {}; 
}
``` or smtng
heady birch
#

hmmm

ocean quartz
#

What would be the point of generics on annotation?

#

(genuine question)

steel heart
#

So I was thinking like this:

class idk {
  @Handle(clazz = PlayerJoinEvent.class, consumer = event -> {})
  @EventHandlerInstance
  EventHandler handler;
}
#

its very dumb

#

then

EventHandler.register(idk.class)
ocean quartz
#

Decided to do it in Kotlin, config is already going to be nicer cuz of the operator function

steel heart
#

O nice

distant sun
#

2mb config lib, let's go

ocean quartz
#

Don't use it in Java fingerguns

distant sun
#

You suck

ocean quartz
#

I do kek

frail glade
#

Just run your own fork and shade it into the server jar. Then you can enjoy small jars (:

distant sun
#

You too

ocean quartz
#

Need to get Aikar to shade Kotlin into Paper

#

Since MD will never

distant sun
#

He probably wont either

steel heart
hasty flower
#

@heady birch KiteBoard says it supports 32 chars but only displays 30 out of my 31 chars

pseudo owl
#

i have a mysql server that i store player informations
and i have to get data on ex. basic events

#1 should i get data from mysql everytime
#2 or getting data first from mysql, saving it via hashmap or something like that after then getting data from hashmap

prisma wave
#

Definitely use a cache

umbral mica
#

I know LP uses caffeine to handle caching, and luck generally knows what he's doing.

frail glade
#

Yeah load on startup, save on interval.

pseudo owl
#
public SimpleCache{
    private static Map<String,Object> simpleCache = new HashMap<>();

    public static <T> T getValue(String key, Class type){

    //todo check contains here, if map doesn't contains key, throw not found exception

    Object val = simpleCache.get(key);

    return (T)val;    
  }
}

should i make my own cache class?

#

cache libraries are a little bit confusing

umbral mica
#

should it not be T used where you have object, and no cast in the return?

pseudo owl
#

idk i just found on stackoverflow and reference that
btw thanks

heady birch
#

@hasty flower Are you using colours? character limit include colours.

pseudo owl
#

or spaces " "?

frigid badge
#

don't make your own cache class

#

just use a library

distant sun
#

Guava :)

frail glade
#

Guava is pretty nice since it's already implemented into bukkit

heady birch
#

🀒

pseudo owl
#

πŸ˜„

#

why

gentle coyote
#

Hey^^.
I want to listen to one specific Event using the PluginManager#registerEvent method, but that takes an EventExecutor. I couldn't really find what I should pass in there. May someone help me in here?

distant sun
#

#registerEvents

heady birch
#

@frigid badgeI may need your expert advice in a minute if thats ok

frigid badge
#

what's it about

obtuse gale
#

If I've got like a base API, then different applications that use said api, do I have them all in the same repo? Do I make a different repo for each? What's the normal way to do it

#

Each application does the same thing, just on a different platform kinda thing

hot hull
#

Well ideally you'd use modules for different platforms

obtuse gale
#

Tf is a module lol

hot hull
#

Someone smack this man

static zealot
#

and then maybe explain him what a module is ?

hot hull
#

Nah, just smacking

distant sun
#

@obtuse gale you can use subprojects and have a different jar for each platform

hot hull
#

Maven modules or whatever you'd call them, you've probably heard of those

regal gale
#

Even IJ also have that "module" term πŸ‘€

oak coyote
#

Why does minecraft source not behave

#

like what?

#

if i go into a different file it exists

distant sun
#

Is that a texture pack?

oak coyote
#

it's a splash page

#

so it shows up when the instance is loading

#

but i don't want to go any further if i can't seem to load files as something is clearly wrong

#

as i will need more assets later on

#
            splash = new ResourceLocation("venice/splash.png");
``` ^ the line it complains about
heady birch
#

@frigid badge efficient map/shapefile rendering. I have base map cached in buffered image. Also lots of map "features" I currently store their bounds and get them when click is detected. Need some cool hashing method to easily get whats at X, Y without looping through thousands of objects and checking bounds

#

spatial hash e.g

eager patio
#

i have some problem any body help me ?

#

first i say sorry for my bad english

#

im from turkey

#

i send a stringlist message

#

how i do that

#

have color support

prisma wave
#

loop over the list and color each string

eager patio
#

no no no so like this

messages:

  • "&cHey there"
  • "&cThanks for using my plugin"
#
            for (String msg : msgs) {
                p.sendMessage(ChatColor.translateAlternateColorCodes('&',msg).replace(cname, name));
                return;
            }```
#

that is work ?

prisma wave
#

Don't return

eager patio
#

okey

#

but i use PlayerJoinEvent

frank pewter
#

That changes nothing it should still work

eager patio
#

doesnt work

brittle depot
#

HI

#

i have a question

compact perchBOT
#

There is no time to wait! Ask your question @brittle depot!

brittle depot
#

What is the placeholder to see the online players (example: 50/100)

eager patio
brittle depot
#

And here I was there

frank pewter
#

What doesnt work

eager patio
#

?

frank pewter
#

Ok that wasnt cool

eager patio
#

im just try helping

compact perchBOT
#
πŸ“‹ Your paste, Mixer
https://paste.helpch.at/nafenuzovu

A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.

frank pewter
#

Put large text on a paste website

#

Yeah that

obtuse gale
#

yes

#

but kotlin still greater

heady birch
#

Whats new in java 15?

quiet depot
#

records

prisma wave
#

text blocks too iirc

pseudo owl
#

i finally figured out how to use cache

#

thanks for helps

reef maple
#

Hi,
I got this message when i want to compile (shaded) my plugin with org.apache.commons inside my pom.xml (dependency and plugin).

Usually the compilation ends with 3 files with one shaded with more weight, now all the files are exactly the same, without changes in the pom.xml

Any idea of what can do this ? '-'
https://paste.helpch.at/dalurunahe.coffeescript

#

Do you want the pom or the error generated in minecraft after the try ? (I known about the miscompilation only after the error on my serv)

#

On the plugin, it seems not find the classes :/

#

Oh, nevermind, the problem comes from that I get the original jar in the plugin folder and it use it (with a different name, I didn't see it before ^^)

frigid badge
#

@frigid badge efficient map/shapefile rendering. I have base map cached in buffered image. Also lots of map "features" I currently store their bounds and get them when click is detected. Need some cool hashing method to easily get whats at X, Y without looping through thousands of objects and checking bounds
@heady birch seems like you already have the solution?

#

but can you provide a better explanation of what you mean

heady birch
#

Well @frigid badge really just a good way to structure a map application

Map
MapLayer
MapPanel e.g

best way of caching all those bounds (surely quite a bit of memory) - considering only caching whats in the viewport. Then even harder repainting only what needs repainting (dynamically sized map objects) path2d best bet

frigid badge
#

is your current system slow then?

dusky drum
#

i belive there is no like Map in java that auto sorts by values?

umbral mica
#

There's one that sorts by keys iirc?

dusky drum
#

doesnt help me since i can have 2 same keys then

umbral mica
#

or I'm thinking of a list possibly

dusky drum
#

i need map

umbral mica
#

"2 of the same keys" what. that's not how maps work

dusky drum
#

thats why i need to sort values

#

if i switched key/value it would break it

umbral mica
#

if i switched key/value it would break it
duh.

#

What's your use case? Feels like you're trying to do something wierd

dusky drum
#

well you bringed out that treemap that sorts keys that i dont need to sort?

#

leaderboard

#

i kinda want faster way than current one

#

problem is also i cant get index of some entered key

ocean quartz
#

If you want faster then you don't want to use streams

umbral mica
#

Why are you using a map for a leaderboard?

dusky drum
#

what should i use then?

umbral mica
#

Don't you want a list?

dusky drum
#

no?

#

how would i then know whats users value?

ocean quartz
#

Normal for loop

dusky drum
#

how would the loop look then?

ocean quartz
#
Kotlin forEach: 2345.5ns
Kotlin for: 341.7ns
Java stream: 7951.1ns
Java for: 378.4ns
dusky drum
#

interesting

umbral mica
#

neat, TIL

dusky drum
#

any idea how i can change my current stream Matt?

ocean quartz
#

Hmm i guess you could apply some fast sorting algorithms to it, idk much though, only one i know is bubble sort kek

dusky drum
#

well i kinda iant good with algorithms

umbral mica
#

Hmm I has idea

ocean quartz
#

There are a few examples if you search for it on stack overflow
Though how often does the map change?
You could cache the sorted map (that you sorted with a stream) then do sortings whenever data changed

umbral mica
#

am I crazy? That should work right?

prisma wave
#

Sorting a map by value is a bad idea

#

Hmm i guess you could apply some fast sorting algorithms to it, idk much though, only one i know is bubble sort kek
@ocean quartz Collections.sort

#

You basically never need to implement a sorting algorithm yourself

#

As long as the language is vaguely modern

umbral mica
#

yeah see my link

#

Make a model class, implement comparable (not difficult), then store said model in a list and just Collections.sort

dusky drum
#

so i would make new class that would contain idk UUID and value? and then store that in list that i would later on sort somehow?

ocean quartz
#

Interesting you quoting my message made it change the emote

#

BM don't let me forget to do relocations for PDM 😩

prisma wave
#

Eh

dusky drum
#

but i kinda don't want to rework my entire work 😦

prisma wave
#

Piggy has already done most of the work i think

ocean quartz
#

oh

umbral mica
#

but i kinda don't want to rework my entire work 😦
Welcome to developing. You need to refactor stuff all the time. Currently I'm in the process of completely rewriting my bot from scratch. A simple change like that won't take too long

dusky drum
#

but i did it twice already 😦

#

and i realy have no idea how i could do it properly.

#

eh

#

will see

#

and make it πŸ™‚

#

probably a good idea to make class(object) like you said for player and its value πŸ˜‰ then just sort list of them

prisma wave
#

refactoring is arguably more important than writing

#

I say that as a massive hypocrite

#

But it's true

umbral mica
#

Begging to differ, if you have no code written, you can't refactor it

surreal quarry
#

not with that attitude you cant

prisma wave
#

^

dusky drum
#

well its already written so i guess its a refactor πŸ™‚

umbral mica
#

lmao fair enough

prisma wave
#

Begging to differ, if you have no code written, you can't refactor it
@umbral mica a skilled refactorer can make something work with as little as 1 line

dusky drum
#

interesting

heady birch
#

/**

  • Created by ${USER} on ${DATE}.
    */
#

How do I delete this

prisma wave
#

File template

heady birch
#

Yes

prisma wave
#

Java

heady birch
#

Cant delete

prisma wave
umbral mica
#

Also if you contribute to an already-written project I guess

heady birch
#

Just emptied it seems to work

#

What the heck is this java module stuff

#

Caused by: java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.scene.control.ControlHelper (in unnamed module @0x3ee56503) cannot access class com.sun.javafx.scene.layout.RegionHelper (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module @0x3ee56503

#

What is a java module?

umbral mica
#

what on earth

prisma wave
#

0xcafebabe

heady birch
#

ok sick of this please fix it for me

#

need to use some stupid javafx maven plugin

onyx loom
#

insert gradle plug here

heady birch
#

nah

#

its probably some third party chinese make do

#

like shadowjar

prisma wave
#

gradlefx

half harness
#

btw is making an api as easy as just making a public class and methods?

heady birch
#

no

#

use servicesmanager

prisma wave
#

@half harness pretty much

heady birch
#

FactoryFinder.find(CoolFactory.class)

umbral mica
#

@half harness usually you want a layer of abstraction in there though i.e. separate interface/impl

half harness
#

@half harness usually you want a layer of abstraction in there though i.e. separate interface/impl
welp i have no clue what that means :/

umbral mica
#

If you don't know what an interface is, you shouldn't be making an API.

#

Interfaces are a core part of java

half harness
#

ok

heady birch
#

make your api class private

half harness
#

wut

#

how does the plugin get the method?

#

if its private

static zealot
#

you're talking to Niall ...

#

xD

umbral mica
#

dkim; public interface

heady birch
#

@prisma wave who are your favourite programming orgnisation or favourite programmer?

prisma wave
#

Rust Lang rich hickey ElaraLang/elara-rewrite

#

Idk I don't have a favourite really

heady birch
#

foiled my plan

#

"<your organisation> shares 10 points on why gradle should never be used"

prisma wave
#

☹️

#

Rich hickey would never say such a thing

half harness
#

what's the "maximum" size of a class?

#

how many lines should it be

prisma wave
#

very subjective

#

Personally I'd say you should probably avoid anything above 200-400 likes unless you have a good reason, but generally the smaller the better

onyx loom
#

minimum of 1000 lines

#

main classes should have atleast 10000 lines however

prisma wave
#

😐

#

moderators we have a "prankster" on our hands

hot hull
#

=yeet @onyx loom

hot hull
#

I've a slight question to ask, so this website which is managed by the bus transporting company here, is honestly fucking trash, (unresponsive), so I'm wondering if there's anyway I'd be able to get access to their api or someshit. Should I send them an email or what? (So I could whip something up for myself cause it's annoying af)

frigid badge
#

what's the website

hot hull
#

I've looked a bit, but haven't dived into it massively so might've missed something

frigid badge
#

what you mean it isn't responsive

#

smh

hot hull
#

Well the location search bar spazzes out a lot, assuming it caches data, meaning you have to open a new tab instead of just being able to refresh and it'd let you change the destination

frigid badge
#

it's made using wordpress lmfao

hot hull
#

Not surprised to be honest, like it takes 4 tabs to search for the buses so I can get home

frigid badge
#

they don't have an api from what I can see

hot hull
#

Which means what exactly

frigid badge
#

only the station/location bar uses an 'api'

hot hull
#

That's what I need probably

frigid badge
#

you need a token though

hot hull
#

You think I'd be able to email them about something for this?

#

Since I know I wouldn't let some 18 year old mess with my shit lol

frigid badge
#

I mean just email lol

hot hull
#

Thank you for your wisdom kind Lemmo

frigid badge
#

idk if it contains any useful endpoints though

hot hull
#

Not gonna lie, I've honestly no idea what I'm looking at, but I'll google it when I have the chance

frigid badge
#

probably best is to scrape it

#

the token is just a timestamp

#

probably any timestamp within a certain range will work

#

let me test that

#

just have to find out what they do with the timestamp to form the token

hot hull
#

Much love Lemmo <3

frigid badge
#

okay so

#

the token gets send within the initial request

#

in the html document

#

the token & timestamp have to match and have something in common with each other

ocean quartz
#

Ugh, can't decide this, so I really want to write the config lib in Kotlin, but idk if i should cuz it'd limit it to mostly Kotlin only
If any of you were to use a config lib i made would you use it in Java?

frigid badge
#

if it's a good library yea

#

@hot hull I'd love to dissect the entire application but can't right now, let me know if you still don't have a way tomorrow and I'll have time to dissect it πŸ˜‰

heady birch
#

Im not gonna help you mat

#

make your own deciison

#

lol

frigid badge
#

says u

heady birch
#

I asked this same thing ages ago on an unrelted note

#

Java all the way

hot hull
#

@frigid badge I'm legit busy af for this and the next week, so I doubt I'll have much time to look into it

frigid badge
#

ah okay then I'll probably try and do some def legal things

heady birch
#

Intellij keeps doing this stupid thing

#

Create new project

#

It opens the desktop

hot hull
#

Kek Lemmo

heady birch
#

Changing the project location doesnt make a difference at all

#

Cant remember how Ifixed it before

frigid badge
#

what version

heady birch
#

latest

frigid badge
#

ah weird

heady birch
#

like the latest latest

#

but it happened before

#

If I delete a project then re-create it 2 or 3 times

wispy flax
heady birch
#

Cool, it must be a font

#

Or resource pack thing

wispy flax
#

Oh, so it cant be achieved through a plugin or something?

heady birch
#

Not sure

onyx loom
#

@ocean quartz if u wrote it in kotlin, how limiting(?) would it be for using it in java? i dont know much about kotlin -> java

#

at the end of the day its ur choice ofc, but save urself the pain from java fingerguns

ocean quartz
#

Well, if it's a plugin, that's 1.4MB more to your Jar

onyx loom
#

oh true πŸ˜‚

#

who cares about jar size tho fr

ocean quartz
#

Well, some do, for example I don't use coroutines for the simple fact that the jar gets close to 5mb

onyx loom
#

insert pdm here

ocean quartz
#

I'll do Java

#

Cuz i wanna expand it later

prisma wave
#

any way of finding Levenshtein distance that's built into spigot?

#

i.e in an apache util

onyx loom
#

a what what what

obtuse gale
#

leviosa?

frigid badge
#

eh

#

use jaccard index

#

or uh Jaro Winkler simmilarity

#

or both pick a side

#

twix

obtuse gale
#

Math.floor(loc.distance(otherLoc)) πŸ‘Œ

prisma wave
#

@frigid badge ah yeah i know what those mean lemme just whip up a little solution in rust java kotlin elara c# and clojure and I'll publish to central

#

nah it's fine, I ended up just shading commons-text which is pretty small

frigid badge
#

lmao

prisma wave
heady birch
#

i.e in an apache util
@prisma wave Well well well

#

Look who couldn't survive without depending on apache

#

apache > * > google

ocean quartz
obtuse gale
#

Matt

#

w h a t t h e f u c k

ocean quartz
#

Hey don't judge me i am having fun

ocean quartz
quiet depot
#

@prisma wave use fuzzy wuzzy

obtuse gale
#

us devs should leave project names to PR people

#

"fuzzywuzzy"....

nova topaz
#

Do barrier blocks cause any lag in a server when used?

steel heart
#

They can but that would be client sided afaik

#

Not plausible it would cause any server lag

nova topaz
#

Okay.

ocean quartz
#

Tbh would probably only cause lag to the client if the player is holding the barrier item

steel heart
#

we all know odd people exist, even in minecraft

half harness
#

how do I get the length of a string list?

#

getConfigurationSection().getStringList().

surreal quarry
#

isn't it just .length

half harness
#

no

surreal quarry
#

at least for arrays im pretty sure

half harness
#

yes

surreal quarry
#

.size maybe

half harness
#

yepp

#

thx πŸ™‚

surreal quarry
#

np

half harness
#

I was worried it would do something weird

#

wait

#

what do I put in getStringList()?

surreal quarry
#

the path in the config

half harness
#

wut

#

getConfig().getStringList()?

surreal quarry
#

so like

path:
  to:
    list:
      - "some"
      - "other"```
`getConfig().getStringList("path.to.list")`
#

something like that

half harness
#

ah thx

#

πŸ˜„

#

One last question

#

in the string list, does it start at 0 or 1?

surreal quarry
#

0

#

everything is 0 indexed

half harness
#

thx once again! πŸ™‚

surreal quarry
#

πŸ‘

half harness
#

How do I get placeholders?
If I have a config and you can put %name%, and it replaces that with e.getPlayer().getName(), how do I do that?

surreal quarry
#

String#replace(old, new)

half harness
#

ah thanks!

surreal quarry
#

so like "%name% is a player".replace("%name%", player.getName())

half harness
#

πŸ™‚ thx so much

hasty flower
#

@heady birch It's 31 chars counting color codes &6PvPing&eMC &7┃ &fpvpingmc.net

#

It cuts off the t in .net

distant sun
obtuse gale
#

no

#

you just can't do that

#

alrighty

#

how do i setup like a git repo for one thing, but multiple platforms for it kidna thing

#

modules or whatever its called

#

do I just make like a multi-module IJ project somehow

obtuse gale
#

Gotta love JDA

umbral mica
#

what on earth are you doing

#

What's causing that?

obtuse gale
#

A shit ton of event waiters, and .queues

umbral mica
#

It seems you have discovered callback hell

obtuse gale
#

indeed

umbral mica
#

Might want to see if you can refactor into a less arrow-y thing lol

heady birch
#

@hasty flower If you upgrade to 1.13 the limit is considerably larger

#

@hasty flower What kiteboard version

steel heart
#

@obtuse gale doesnt JDA allow allow you to map stuff like that so you don’t have to experience a callback hell?

prisma wave
#

Depends

obtuse gale
#

Idk

#

It's event waiters as well

steel heart
#

I mean RestAction#flatMap would solve it in most cases

obtuse gale
#

what does that do

oak coyote
#

Something I want to ask here is would be removing the if statements from the schedulers loops worth it and provide a improvement to how the code is ran or is it obsolete

#

For example if I have a Boolean of β€œup” which depending on if it’s true or false depends if the code does y++ or yβ€”

#

As I could in theory have 2 separate loops which activate depending on if it’s up or down or just one which loops over that if statement within it

hasty flower
#

@hasty flower What kiteboard version
@heady birch Latest Version (3.2.2)

#

@hasty flower If you upgrade to 1.13 the limit is considerably larger
@heady birch It should still work with 32 chars on 1.8 no? It works with featherboard but that plugin is laggy

heady birch
#

It should not sure why it isn't most likely I made amath error somewhere

#

Will check

prisma wave
#

@oak coyote afaik 1 bigger task is usually better as the compiler has a better chance of optimising things

oak coyote
#

alright good to know

distant sun
#

depends on your computer, project size, build tool

#

for example, gradle can build almost instantly if the file exist and the project is small because it compiles only the changed files

hot hull
#

Eclipse doodoo reversed_fingerguns

onyx loom
#

u doodoo

static zealot
#

we all doodoo

steel heart
#

U have doodoo

static zealot
#

U2

steel heart
#

what does that do
@obtuse gale
It’s a Function<T, RestAction<R>> so you could pass in this for example:
sendMessage(β€œidk”)
.queue()
.flatMap(Message::delete)

instead of
sendMessage(β€œidk”)
.queue(msg -> msg.delete())

#

Essentially it allows you to create sort of a builder pattern instead of nesting it

reef maple
#

Can we detect the player hand that shoot an arrow ? I can get the bow but not the hand (and if both hands got the exact same item, I can't see which hand did that)

umbral mica
#

Can't you only shoot bows from the primary hand?

steel heart
#

I don’t think

reef maple
#

No, you can shoot from the secondary hand if your main hand can't shoot

#

If you have a sword in your main hand, you can shoot with the arrow in the off hand

steel heart
#

I think you might need to do some packet listening to achieve a good design of your problem

reef maple
#

Mh okay.

ocean quartz
prisma wave
#

JavaPlugin

#

Whoever said that is possibly the dumbest person alive, whether it's true or not

#

That's literally the point of object oriented programming????

ocean quartz
#

Exactly lol

unreal briar
#

it's possible it refers to specific classes like 'Player"

#

where changes in the implementation may lead to other plugins having incompatibilities

ocean quartz
unreal briar
#

so it is generally deferred behavior.

ocean quartz
#

Found it lol

prisma wave
#

Anyone sane wouldn't be implementing Player anyway

unreal briar
#

haha

#

minigames

#

there are many counterexamples

prisma wave
#

Also, that's not Bukkit's responsibility - it should define a contract for an interface, and if an implementation breaks the contact, that's their problem

ocean quartz
#

Exactly

unreal briar
#

i think you can still do it, but it's just not commonly done

ocean quartz
#

I have never encountered any problems with implementing inventoryholder, and all my search there was people saying "can cause problems" but never tell which problems

prisma wave
#

Now true InventoryHolder is presumably an internal class, but if that's the case:

  1. why is it in the API?
  2. why not make an alternative that isn't "use a HashMap"
unreal briar
#

because bukkit is bukkit

#

you can't expect too much

prisma wave
#

That's such a dumb idea

unreal briar
#

sadly i've seen so much dumb stuff in the community, i've gotten used to it

#

you need to make stuff fool-proof

ocean quartz
#

I remember when people used to implement InventoryHolder which caused weird side effects really
@steel heart The side effects are?

obtuse gale
#

So just because the LuckPerms API is all full of interfaces does that mean you should go around implementing all of them?

prisma wave
#

Completely violates the open closed principle too

unreal briar
#

and some projects (eg: bukkit) weren't thought out that well

#

they were maintained for a long time and eventually became worse and worse

#

extra bodges, extra mess-ups, extra unwanted behaviour

ocean quartz
#

The idea of interfaces and stuff like that if so you can extend on them and create your own implementations, that's the whole point of OOP

onyx loom
#

oopoop

prisma wave
#

spigot bad in conclusion

ocean quartz
#

You can argue the same for many things, Bukkit uses NMS classes and implements stuff, "The original minecraft server was never meant to be implemented by APIs, creating bukkit was never intended" Lol

steel heart
#

Matt iirc there is certain blocks that implements it and I think that it was messing with the event part but I don’t really remember just know that it’s a bad practice

prisma wave
#

The problem is, there's no better practice

steel heart
#

There is ?

prisma wave
#

Apart from encapsulation which is extremely verbose

steel heart
#

Just keep the inventory instances and compare?

prisma wave
#

Messy

ocean quartz
#

Never had any issue with it, would not consider it bad practice either, it's an intended part of the language lol

steel heart
#

How is it intended?

prisma wave
#

It's probably a bad practice because nms is messy and it could break, but it should be fixed rather than discredited imo

#

I've never had any problems with it

ocean quartz
#

Because inheritance is part of Java (i was talking about how it's part of the language)
That's not my point though

steel heart
#

Idk I had some issues with it well I mean if you haven’t encountered it perhaps it was just me

#

Oh yeah Matt that’s true

ocean quartz
#

The server keeps an instance of the inventory, why keep another instance

prisma wave
#

Indeed

ocean quartz
#

Like bm said if it causes issues fix it instead of discrediting it

obtuse gale
#

Not really, ever seen how a cpp library is structured? You have the header files which are analogous to the interfaces (they define the signatures and declarations of classes and functions, but don't contain the actual implementation source), and then the translation units that "implement" (define) those functions and classes. When you work with the library, you interface with the header files, and compile with the compiled library binary. Now cpp is way more resistant and stronger than that because "it tries" to do as much as it can at compile time, and while there are workarounds to it, just because you can doesn't mean you should.
I think of APIs as bridges between my software and another software that already implements the API, and unless something is explicitly marked as "should be implemented by the end user", it's because the other end will take care of it.
Just because inheritance exists in that form and someone uses interfaces instead of exposing the actual implementation (using bukkit and cb as an example, due to legal reasons), doesn't mean you should use it in that form.

steel heart
#

Yeah I fixed it with comparing ==

#

So basically removed InventoryHolder and it worked

obtuse gale
#

So just because the LuckPerms API is all full of interfaces does that mean you should go around implementing all of them?
So no, I don't think you should do that.

steel heart
#

Fefo good point

prisma wave
#

Not really, ever seen how a cpp library is structured? You have the header files which are analogous to the interfaces (they define the signatures and declarations of classes and functions, but don't contain the actual implementation source), and then the translation units that "implement" (define) those functions and classes. When you work with the library, you interface with the header files, and compile with the compiled library binary. Now cpp is way more resistant and stronger than that because "it tries" to do as much as it can at compile time, and while there are workarounds to it, just because you can doesn't mean you should.
I think of APIs as bridges between my software and another software that already implements the API, and unless something is explicitly marked as "should be implemented by the end user", it's because the other end will take care of it.
Just because inheritance exists in that form and someone uses interfaces instead of exposing the actual implementation (using bukkit and cb as an example, due to legal reasons), doesn't mean you should use it in that form.
@obtuse gale
The open closed principle says that a class should be closed for modification, but open for extension. Extending a class is the simplest way of doing that. Bukkit saying that classes shouldn't be extended is dumb

#

Thanks for the XP btw

ocean quartz
#

^

obtuse gale
#

lmao

steel heart
#

Use InventoryHolder if you think it’s good I’m personally discouraged from it

onyx loom
#

Not really, ever seen how a cpp library is structured? You have the header files which are analogous to the interfaces (they define the signatures and declarations of classes and functions, but don't contain the actual implementation source), and then the translation units that "implement" (define) those functions and classes. When you work with the library, you interface with the header files, and compile with the compiled library binary. Now cpp is way more resistant and stronger than that because "it tries" to do as much as it can at compile time, and while there are workarounds to it, just because you can doesn't mean you should.
I think of APIs as bridges between my software and another software that already implements the API, and unless something is explicitly marked as "should be implemented by the end user", it's because the other end will take care of it.
Just because inheritance exists in that form and someone uses interfaces instead of exposing the actual implementation (using bukkit and cb as an example, due to legal reasons), doesn't mean you should use it in that form.
@obtuse gale The open closed principle says that a class should be closed for modification, but open for extension. Extending a class is the simplest way of doing that. Bukkit saying that classes shouldn't be extended is dumb.
thanks for xp btw

#

also never used cpp

prisma wave
#

Basically a public interface that isn't supposed to be implemented is dumb

onyx loom
#

so thanks for info πŸ‘

#

i need to learn interfaces, abstraction etc

#

just too lazy 🌚

prisma wave
#

they're ez

ocean quartz
#

Yeah it's pretty straight forward

steel heart
#

Afaik it’s used to represent an InventoryHolder as a block holding an inventory iirc, like Beacon etc. I don’t know but the underlying implementation doesn’t like when you messing with that and implement InventoryHolder for inventories. Most cases I think it would work fine to implement it but I came across a scenario where it didn’t work. Anyways it’s not really smart to implement api interfaces unless stated as that can cause weird and unwanted side effects

#

Just because Player interface exist and you want to add a method to it doesn’t mean you implement the Player interface

#

Anything I missed?

obtuse gale
#

you missed me

#

❀️

steel heart
#

πŸ€—

#

If you understand js fundamentals I don’t think

#

You should learn then.

umbral mica
#

ew javascript on backend

hasty flower
#

Will check
@heady birch I believe it only does 30 chars when you use colors because if I use no color codes it fits 32

distant sun
#

Does bukkit allocate memory or does something special for each plugin?
I thought about using a system similar to papi expansions but with 'plugins' and now I'm thinking if there will be any advantage over using normal plugins

prisma wave
#

No?

#

The JVM handles memory allocation

#

All bukkit really does is loads the classes

ocean quartz
#

It just loads them with the classloader nothing more

distant sun
#

Great

hot hull
#

@onyx loom I'm laying in bed and I get a random pong, like damn there's 5 other people who are online and I get pinged ;(

onyx loom
#

u know im joking anyway, β™₯️

hot hull
#

Yes yes

frail glade
#

Pog Gradle 6.7

ocean quartz
#

Time to test this org.gradle.vfs.watch=true stuff

onyx loom
#

whats new in 6.7?

#

im still on 6.5 πŸ™ƒ

steel heart
#

gradle 2

ocean quartz
steel heart
#

Isn’t that what like forge is using?

ocean quartz
#

Only old forge

steel heart
#

Any thoughts about netty over Java’s nio?

prisma wave
#

netty is nice

steel heart
#

I mean it seems fairy popular but what’s the actual benefits? It does the same NIO as java right?

prisma wave
#

i'm not too sure about java's nio but netty is mostly pipeline based, and definitely nonblocking

#

the pipelines are pretty nice

steel heart
#

Yeah pipelines are sexy

heady birch
#

Netty

steel heart
#

Yeah, Niall would you recommend my future oracle employee?

heady birch
#

Yes

prisma wave
#

"apache" employee

heady birch
#

but replay decoder

#

we do not talk about replay decoder

steel heart
#

Lol

flat flume
#

how do i set target as %player% placeholder that can be used in the config ?

#
                        Player target = Bukkit.getPlayerExact("args[1]");
                        //action goes here.
                        player.sendMessage(Utils.chat("List.player-added"));```
#

this is my current code

#

(for the target)

prisma wave
#

lol

#

remove the quotes around args[1]

onyx loom
#

String#replace("%player%, target.getName())

flat flume
#

dont bully me

#

o

#

ruight

#

my brain

#

String#replace("%player%, target)
@onyx loom and that's it ?

prisma wave
#

target.getName()*

static zealot
#

dont bully me
you came to the wrong place then my dude xD

prisma wave
#

@sxtanna

flat flume
#

you came to the wrong place then my dude xD
xDDDD

onyx loom
#

ah yea

flat flume
#

btw

#

what is this '#'

#

between string and replace

#

how does it even work

onyx loom
#

references the object u can use the method on

prisma wave
#

it's pseudocode

onyx loom
#

lets say Player#getName(), in ur case thatll translate to target.getName() for example

prisma wave
#

Class#method means execute method on an instance of Class, whereas Class.method implies that method is static

#

yeah, it saves doing whateverYourPlayerVariableIsCalled.getName()

flat flume
#

o

#

kk thx

#
                        Player target = Bukkit.getPlayerExact(args[1]);
                        player.sendMessage(Utils.chat("Banwave.player-added"));
                        String.replace("%player%", target.getName());```
#

is dis right

#

?

prisma wave
#

um

#

probably not

#

Well definitely not

#

That's not how string replace works

quaint isle
#

Hey friends, if I run bukkit async tasks, will they also run on the same CPU core as the minecraft server is primarily is running on or can it make use of multiple cores for this kinda stuff?

ocean quartz
#

Async is ran in a different thread

quaint isle
#

Alright so if I wanna do somewhat resource intensive stuff (in my case read player advancements and stats from files and store them in a mysql DB) it should not impact my server ticks in any way, right?

ocean quartz
#

Yup ;p

oak onyx
#

Hey, I want to host a minecraft server on my pc with some plugins where can i install bukkit/spigot? (that is safe)

quaint isle
umbral mica
#

(Paper is a fork of Spigot that adds huge performance improvements. Most servers use it)

oak onyx
#

Oh ok also another question i see tons on videos on setting it up and they use getbukkit.org

umbral mica
#

no

oak onyx
#

is that one safe aswell?

umbral mica
#

NO.

oak onyx
#

Ok got it

umbral mica
#

That website can expose you to legal issues

oak onyx
#

oh

umbral mica
#

(Redistributing non-distributable code aka the mojang server code)

oak onyx
#

Ah

quaint isle
#

legal stuff aside, there isn't really a reason to use paper over bukkit tbh. Bukkit used to be what everyone was running but that was 5+ years ago

umbral mica
#

The jar that paper gives you is really small, it makes the changes to the vanilla server on your computer, which is legal

#

So first run will take a long time while it actually makes the server jar

quaint isle
#

For you as a server owner, paper is pretty much the same as spigot but with some performance improvements slapped on top of it

umbral mica
#

I'd say a bit more than "some"

#

You basically need all of Paper's optimizations in order to run a server on a modern version of MC with more than like 5 concurrent players

oak onyx
#

Well I am just making it for me and some friends on a 1v1 server

#

We just want to be able to copy the 1v1 arena so we don't have to rebuild it

#

With world edit

quaint isle
#

I repeat, there is no reason not go with paper. All plugins that work on Spigot will work on paper as well.

oak onyx
#

Ah ok

quaint isle
#

Paper is also more convenient to install since you really just have to doubleclick the executable πŸ˜„

umbral mica
#

Uh you'll need to allocate more ram than the default 256mb or whatever, which needs a start script

oak onyx
#

Ok but how is paper different from getbukkit.org how is that site Redistributing non-distributable code aka the mojang server code

frail glade
#

Paper doesn't distribute the code

#

They distribute a mobile build-tools.

oak onyx
#

That is?

frail glade
#

When it says "Patching vanilla jar..." that's applying the code changes.

oak onyx
#

Oh ok

umbral mica
#

Basically when you run the server jar, it'll first download the vanilla minecraft server, then apply a bunch of changes

frail glade
#

Which is essentially Spigot build-tools.

quaint isle
#

Honestly, don't worry about the legal stuff if you're just hosting a server on your local PC for you and a couple friends.

umbral mica
#

getbukkit on the other hand is distributing pre-built versions of the server software, which is against Mojang's license since it contains their code

oak onyx
#

But i am safe from virus when using papermc

umbral mica
#

But yeah you don't really need to worry about it

#

As long as you don't download sketchy plugins, yes

oak onyx
#

Ok got it

#

Right?

frail glade
#

Yup!

oak onyx
#

I don't see a 1.8 version?

quaint isle
#

Yes, make sure to download from that official website and only use plugins that have good rating and positive reviews - use some common sense πŸ™‚

oak onyx
#

Ok will do

quaint isle
#

scroll down

umbral mica
#

ah 1.8...gotta love 6yo versions

#

:ablobsigh:

oak onyx
#

Ah i see 1.8.8

#

By no support that mean no small updates right? But that will patch major exploit problems?

umbral mica
#

Nope. They won't be backporting anything to legacy versions afaik

oak onyx
#

Ok

frail glade
#

Spigot doesn't even do that.

oak onyx
#

Uhm i clicked on 1.16.3

#

and nothing happened xd

umbral mica
#

?

oak onyx
#

Can you get in a vc real quick?

umbral mica
#

nope

oak onyx
#

Ok

#

But yea i clicked download 1.16.3 and nothing happened

umbral mica
#

like on the downloads page?

oak onyx
#

Yea like at the top it says you can download the latest versions of paper or waterfall here and i clicked paper 1.16.3 right below that

umbral mica
#

You need to click on a build to download (why they don't have a latest button, idk). Click where it says #231 at the top

oak onyx
#

Ah ok

obtuse gale
#

Spigot doesn't even do that.
@frail glade neither does mojang :kekw:

gentle coyote
#

Hey^^
I'm currently searching for the field name of the GameProfile of a EntityLiving. It was bT in older versions (1.8?) but that changed and I can't find anything related to that for my version (1.16.3).

obtuse gale
#

Well between 1.8 and 1.16.3, I would be surprised if the obfuscation maps AND the class's structures were the same LMAO

gentle coyote
#

Yeah, that's obvious

#

I'm just trying to change the GameProfile of a Player

obtuse gale
#

@gentle coyote EntityHuman#bJ

gentle coyote
#

Thank you. I just found that Paper has an integrated PlayerProfile-API which I try to use for now

obtuse gale
#

oh yeah it does

#

but there are a LOT of servers that still run pure Spigot instead

gentle coyote
#

Why tho lol

obtuse gale
#

Β―_(ツ)_/Β―

#

Paper exposes some really nice and useful APIs

gentle coyote
#

Oh wow the limit is still set to 16 chars? Player#setListName accepts names that are longer. I hate everything

#

I thought that I heard that this limit was increased by now

regal gale
static zealot
#

oh no