#general

3141 messages · Page 60 of 4

stiff yarrow
#

yeah there's a lot of naughty things you can do with Java

vestal jasper
#

Oh

#

I see

pulsar wigeon
#

i mean this plugin is a piece of shit

#

but so is 99% of the stuff published these days

vestal jasper
#

^^ If there was a better alternative with the same end result that I knew about I'd be using it

void void
#

whats it do exactly

vestal jasper
#

Drops a chest with your shit when you die

stiff yarrow
#

make one

pulsar wigeon
#

being a server admin these days must be like walking through a minefield with a blindfold on

void void
#

i mean what

stiff yarrow
#

sounds ez

void void
#

i think i have something that does that

#

in my org

#

let me look lol

pulsar wigeon
#

aren't graves plugins a dime a dozen

stiff yarrow
#

I can literally write that for you for 50 bucks

vestal jasper
#

When you right click the chest it redoes your inventory

stiff yarrow
vestal jasper
#

¯_(ツ)_/¯

stiff yarrow
#

that is also easy to do

vestal jasper
#

And 1.13 plugins in specific are god awful

#

At least for 1.12 I have lots of options and a good amount of decent plugins

#

but it seems only retards update / make plugins for 1.13

void void
#

yeah i wrote this in like 15 mins and never looked at it gain, so could use a cleanup big time

#

but

deep shoal
#

I am annoyed at minecraft

vestal jasper
#

Oh yeah another plugin I have force disables keepInventory in the death event and modifies the drop table to force its stuff to drop

stiff yarrow
#

why'd you link this plugin anyways

#

does it not werk

void void
#

because it was crashing the server by update checking on main thread

vestal jasper
#

It's crashed my server twice due to it triggering watchdog because of its main thread HTTP requests

stiff yarrow
#

seriously tho that sounds pretty damn easy to bang out yourself

vestal jasper
#

Yeah I just don't have the time to tbh

void void
#

Vic you can fork that deathchance thing I linked and remove the "pseudo chance" bullshit

#

it works

#

clean it up slightly

deep shoal
#

@vestal jasper I'll work for you

stiff yarrow
#

its like a 20 minute job, give or take 10 minutes to shit talk spottedleaf on discord while developing it

vestal jasper
stiff yarrow
#

if you get desperate I'll write it for 50 bucks

#

but not today I'm sleepy

vestal jasper
#

You should work on Dwellings with me and do the WG shit for me HmmCoffeeSmile

void void
#

he shot his shot

stiff yarrow
#

but then I'd have to work in ktl

vestal jasper
#

Kotlin is a glorious language

deep shoal
#

is it?

stiff yarrow
#

looks like hipster JVM to me

pulsar wigeon
vestal jasper
#

Oh no it has no reload command

#

I have to fucking stop the server or else it'll crash it in 20 hours

#

gdi dude

void void
#

wow

#

mfw i last touched th is exactly a year ago

pulsar wigeon
#

you don't run your live servers with a java agent attached so you can hotswap code out?

vestal jasper
deep shoal
#

is org.bukkit.event.EventHandler used for anything except annotating

void void
#

no

#

it is an annotation

pulsar wigeon
#

did you just ask if an annotation is used for anything other that annotation?

void void
#

if you look at it, it will be an @interface declaration

stiff yarrow
#

yee

void void
#

aka annotation

stiff yarrow
#

Annotations are interfaces sort of

#

they are their own special thing

pulsar wigeon
#

they're basically mixins Kappa

stiff yarrow
#

mixin PogU

pulsar wigeon
#

interfaces that mix in to classes, fields, methods, params, etc....

stiff yarrow
#

I'm familiar with it

#

hence the pogchamp

pulsar wigeon
#

and may or may not exist past source/compile/runtime

#

so uh

#

nothing like mixins in short

#

Kappa

pulsar wigeon
#

tbh why are annotations interfaces anyway

stiff yarrow
#

its just confusing names

pulsar wigeon
#

is it?

#

i guess they mean a form of the philosophical idea of an interface

#

not an actual java interface

void void
#

now it ju st drops a chest with all t heir shit

#

i havent tried it tho kek

vestal jasper
#

poggers

pulsar wigeon
#

yea but does it protect it from other people

void void
#

nah but he can fork and do that

pulsar wigeon
#

and prevent creating chests in protected worlguard areas

#

and uh

void void
#

it was a special use case plugin, no need to attack the code kthx

pulsar wigeon
#

:^)

#

OH

stiff yarrow
#

there's probably a better word for what annotations are besides 'interfaces'

pulsar wigeon
#

holograms

#

it needs holograms

vestal jasper
#

so basically you want the AngelChest plugin but without the retardism

pulsar wigeon
#

and it should be written in scala, not kotlin

#

:^)

void void
#

lmao

finite wave
#

Pay me

pulsar wigeon
#

oh

#

write it in eta

#

there you go

stiff yarrow
#

write it in D

void void
#

anyway, use if you want; or don't. Don't care :p

finite wave
#

I can do kotlin, scala, eta and java if you want. They can interop

vestal jasper
#

make a plugin in all

stiff yarrow
pulsar wigeon
#

polyglot plugins

#

just what we need

stiff yarrow
#

how am I gonna make 50 bucks if you keep working for compliments simple

#

driving the economy down

void void
#

write plugin with all native interfaces, implement in C

#

you're welcome

finite wave
#

Would be funnier to have a random generator 1-4. Kotlin, scala, eta and java. Run it for every class i need.

pulsar wigeon
#

don't forget clojure

vestal jasper
#

nossr when you say you won't do it today do you have an eta on when you would ablobthinkzerogravity

stiff yarrow
#

@vestal jasper tomorrow morning

finite wave
#

@pulsar wigeon Ugh, i can do it sure. I just don’t like the parenthesis.

stiff yarrow
#

but I don't work for free because I'm a whore

finite wave
#

Fuck why do i keep pinging him

pulsar wigeon
finite wave
#

I swear it’s like a reflex.

vestal jasper
#

several people are typing

void void
#

nossr, accept my fucking friend request you fried balut

pulsar wigeon
#

as punishment you have to use all of those

finite wave
#

Omg

stiff yarrow
#

I don't see one from you simple

void void
#

he ignored me

#

that bitch

pulsar wigeon
#

jesus never even heard of some of these

vestal jasper
#

@stiff yarrow where's the paypal link smh my head

deep shoal
#

I love programming

stiff yarrow
#

@void void you're already on my friends list you tennen boke

void void
#

oh

#

shit

finite wave
#

Jython, JRuby lol

#

Sure

stiff yarrow
#

@vestal jasper only pay me when the job is finished

finite wave
#

Those other ones naaah

stiff yarrow
#

feels dirty otherwise

vestal jasper
#

aight

finite wave
#

Wtf is Arden Syntax

pulsar wigeon
#

graalvm monkaS

finite wave
#

Pascal sure

#

SmallTalk

void void
#

I gotta use graal one of these days. I was using nashorn, finished my shit, open google and fuck around for a bit

#

nashorn deprecated!

#

me: thinking_gun

pulsar wigeon
#

worldedit uses rhino still for craftscripts

#

works perfectly

finite wave
#

I swear if you give me a list of 5 langs. I’ll make a plugin using all of those with equal amount of code in each of those divisions.

pulsar wigeon
#

sorry i don't want to be held accountable when you're found dead in a bathtub in 3 weeks

wide chasm
#

Wolfram Language

#

A0A0

#

Assembly

finite wave
#

Okay, let’s use proper high enough languages

void void
#

kotlin, eta, scala, javascript for the kek, and Java

finite wave
#

Like Java+

wide chasm
#

Wolfram Language is a high language

finite wave
#

Okay Simple remind me on monday i got a vacation then.

pulsar wigeon
#

hexagony is very high level, you should use that

void void
#

wtf jan me too

#

thats when i leave

pulsar wigeon
#

and by high level i mean you'd have to be high af to consider it

wide chasm
#

lol

stiff yarrow
#

only using high level languages

#

automatic -rep

finite wave
#

M8, there is Brainfuck to JVM compilers.

#

I don’t want people to even think of brainfuck.

stiff yarrow
#

use ASM x86, BASIC, D, Haskell, and Objective-C

vestal jasper
#

Wooo more debugging

void void
#

Look at this nerd playing MiNeCrAfT

finite wave
#

I’ll do Haskell sure fuck those other ones

wide chasm
#

ASM x86
high level

void void
#

NERD

stiff yarrow
#

no one said it was high level stef

#

what you smoking

finite wave
#

Crack prolly

vestal jasper
#

oh no none of my debug messages are sending

stiff yarrow
#

use the debugger

wide chasm
#

He asked for high level languages and you are suggesting ASM x86

stiff yarrow
#

yeah because fuck what he wants

wide chasm
#

Guess that's fair

stiff yarrow
deep shoal
#

what do you think is a sensible name for a class that is essentially a Map.Entry<Class<? extends Event>, EventExecutor>
I was calling it an EventHandler
but EventHandler is already a thing in the bukkit API

#

I wonder if tehre's another appropriate name

finite wave
#

@deep shoal Are you reimplementing thr Event system?

stiff yarrow
#

he wanted to show off with an easy task and I made it reasonably tedious Kappa

deep shoal
#

no

#

not reimplementing

#

I just want to dynamically register events

stiff yarrow
#

dynamically?

deep shoal
#

yeah

stiff yarrow
finite wave
#

@stiff yarrow Considering writing equal amounts of code, the asm part could aimply be some math operations ew.

pulsar wigeon
#

you can dynamically register events already

finite wave
#

Apply it to the event handlers @deep shoal

stiff yarrow
#

why does it need to be equal code

pulsar wigeon
#

there's register/unregister methods

deep shoal
#

wdym apply it to the event handlers

#

yeah I am using the register methods

pulsar wigeon
#

just store the listener and unregister it when you don't want it anymore

finite wave
#

@vernal moth has a GlobalEvent code stuff

deep shoal
#

yeah I do that already @pulsar wigeon

pulsar wigeon
#

tbh it's easier to just stop (ie check a bool) than unregister a lot

deep shoal
#

why is that easier

pulsar wigeon
#

changing event handlers at runtime is very nonperformant since the handler lists need to rebake

stiff yarrow
#

rebake PPepeStoned

pulsar wigeon
#

dunno how you're using this tho

#

do you have a pepe for everything nossr

vestal jasper
pulsar wigeon
#

don't answer that

stiff yarrow
deep shoal
#

how very is "very" nonperformant

pulsar wigeon
#

why do you want this?

deep shoal
#

I want users to be able to code their own scripts to run on the server

pulsar wigeon
#

sounds like more xy problems

finite wave
#

It’s called skript

stiff yarrow
#

you can't just call everything xy problems wiz

pulsar wigeon
#

yes i can

#

your face is an xy problem

finite wave
vestal jasper
#

wiz is an xy problem

pulsar wigeon
#

but in this case it really is

deep shoal
#

skript is well defined as its own thing

#

I want to make a diff api

vestal jasper
#

skript peepoDetective

pulsar wigeon
#

"how do i make a dynamic event listener" or w/e is like 5 steps removed from what the original purpose is i'm sure

finite wave
#

@deep shoal QuickSkript

deep shoal
stiff yarrow
#

I'm gonna go on with life never knowing what skript is

deep shoal
finite wave
#

@wide chasm

stiff yarrow
#

blissful ignorance

finite wave
#

I’m just dissing it etc. never actually written any skript.

vestal jasper
#

Did you really put a pepe in a teaser update?

stiff yarrow
#

are you surprised

vestal jasper
#

no

stiff yarrow
deep shoal
#

QuickSkript just parses Skript faster

#

apparently

finite wave
#

Yes

deep shoal
#

I don't want to use Skript

#

it's got its own api and everything

#

I want to expose less to the user

pulsar wigeon
#

yes, he'd rather make his own even more useless thing

stiff yarrow
#

I'd put pepes in the code if I could

vestal jasper
#

make a custom font

pulsar wigeon
#

name everything 🐸

deep shoal
#

what do you think is a sensible name for a class that is essentially a Map.Entry<Class<? extends Event>, EventExecutor>
I was calling it an EventHandler
but EventHandler is already a thing in the bukkit API
I wonder if tehre's another appropriate name

finite wave
#

Map.Entry seems like a fitting name

stiff yarrow
#

@deep shoal EventRuntimeBitchMap

pulsar wigeon
#
public class 🐸 extends JavaPlugin {
public void onEnable() {
    🐸();
}
public void 🐸() {
    load🐸();
}
}
deep shoal
#

@finite wave maybe but then every single time I use it I fill up 50% of the line width

stiff yarrow
acoustic pilot
#

o boi lol

finite wave
#

Lol

stiff yarrow
#

@deep shoal welcome to Java

deep shoal
#

I just want it in a little container class

pulsar wigeon
stiff yarrow
#

the delegates to your container class are gonna fill up 50% of your linewidth

deep shoal
#

I had originally basically

interface EventHandler {
  public Class<? extends Event> getEventClass();
  public EventExecutor getEventExecutor();
}
#

idk what a delegate is

stiff yarrow
#

if you're OCD about verbosity you're in for a bad time with Java

pulsar wigeon
#

why is that a map tbh

stiff yarrow
#

^

#

whys this a map

deep shoal
#

I was just using it as an example

pulsar wigeon
#

can scripts not register more than one listener per event class?

deep shoal
#

this is not a map

#

it's basically identical

#

to a Map.Entry

finite wave
#

CAN I EAT MY COOKIES ALONE

pulsar wigeon
#

a...pair?

#

a tuple?

deep shoal
#

yes a tuple

#

tuple is the right word

finite wave
#

Tripler

deep shoal
#

just java doesn't have that data type

finite wave
#

It does

pulsar wigeon
#

so, a tuple

deep shoal
#

Map.Entry is the closest

pulsar wigeon
#

but

#

you know

#

you can write classes

#

in java

#

that do things you want

deep shoal
#

yeah

#

YEAH

#
interface EventHandler {
  public Class<? extends Event> getEventClass();
  public EventExecutor getEventExecutor();
}```
stiff yarrow
#

wow Java actually has that datatype

deep shoal
#

WHICH IS THIS

#

this is the class

#

I want to write

#

"you can write classes
in java
that do things you want"

finite wave
#

Shut up

deep shoal
#

I am just wondering

#

what a good name is

#

that doesn't clash with bukkit

pulsar wigeon
#

a tuple

finite wave
#

EventEntry

pulsar wigeon
#

a good name would be a tuple

deep shoal
#

EventEntry haha

stiff yarrow
#

@deep shoal why does it have to avoid clashing with bukkit

pulsar wigeon
#

for a type that's a tuple of two types

deep shoal
#

nice

#

thanks jan

stiff yarrow
#

fuck bukkits namespace

deep shoal
#

I like that one actually

finite wave
#

Now don’t pester us with this. 😉

stiff yarrow
#

ask yourself why you're registering event listeners during runtime

pulsar wigeon
#

we're over that nossr

#

we've already decided to write a heap of smellyness

void void
#

wow, philippine pisos are heading back to around 51 to a dollar, nice

#

they were nearly at 55

#

last june

deep shoal
#

what's wrong with my heap of smellyness

stiff yarrow
#

possibly a lot of things

acoustic pilot
#

You should put your dev chat in #paper-dev so we don't have to see it here in our social hangout 😃

stiff yarrow
#

but this is the only channel I read byte

acoustic pilot
#

That's the point.

deep shoal
#

if I finish this project can I show it here to get told how to make it better

acoustic pilot
#

Out of sight, out of mind.

stiff yarrow
pulsar wigeon
#

we are telling you how to make it better

deep shoal
#

not really

pulsar wigeon
#

except you're choosing to do retarded things instead

deep shoal
#

I don't think you understand what I want

pulsar wigeon
#

well we were fucking ASKING

stiff yarrow
#

I don't think you understand what you want

finite wave
#

Tuna we will audit the crappy idea yes.

pulsar wigeon
#

and you're like NO LET ME USE MY SHITTY DYNAMIC EVENT REGISTRATION

#

lul

stiff yarrow
#

explain why you register events during runtime so I can move past being triggered by it if its a legitimate reason

deep shoal
#

it's bc it's a big project to explain

#

I can type it all out though

pulsar wigeon
#

so you don't actually want help

#

that's an excuse

stiff yarrow
#

if you can't describe what your mess is doing maybe that's a red flag

finite wave
#

To be honest that’s just object oriented programming in a nutshell

stiff yarrow
#

Jan do we need to tutor you too

finite wave
#

Suck my flaccid coke can.

void void
#

MY GOD.

#

Aight

#

nossr

pulsar wigeon
#

ew soda

acoustic pilot
#

mm soda

void void
#

that extra request thing i was talking bout earlier

#

client didnt even request it

stiff yarrow
finite wave
#

Lol

void void
#

she just wants it because "it's cool"

stiff yarrow
#

did she scamaz you into it

finite wave
#

Hey

void void
#

FUCK THIS BITCH

finite wave
#

If it’s cool

void void
#

i am so done

stiff yarrow
#

answer honestly

void void
#

no I'm not doing it

pulsar wigeon
#

send her an invoice

#

for your consulting time

void void
#

I told her, no, not unless I am paid more

stiff yarrow
#

whys she paying you for work shes not even being paid for

void void
#

i have no fucking idea what her deal is

acoustic pilot
#

Well I think she wasn't going to pay him

#

So it was just free work she wanted him to do

void void
#

im never working with this cuntaroo ever again

stiff yarrow
#

you can work with me on your next freelance but we only program in memes

void void
#

better than this bullshit

stiff yarrow
void void
#

christ

pulsar wigeon
#

send an invoice to the client for damages spent trying to interact with cuntaroo

deep shoal
#

@pulsar wigeon I want to make the core API which can be used on a bunch of servers
based on gamemodes where players equip "kits"
a kit defines the armor players wear and a collection of abilities they can use, an ability is basically a collection of EventHandlers that define custom behaviour when the player does stuff
I want to be able to code e.g. one server where all the kits are pre-defined, sitting on top of the api in their own plugin
and e.g. another server where users can use a website, submit their own javascript, which is interpreted by me, and then runs on the api to implement custom kits
when a player equips a kit, that's when I am imagining I'd dynamically register event listeners
and when a player dekits, I would unregister

#

maybe there's better ways

void void
#

why is everybody's first project a "core"

#

everybody

#

every time

deep shoal
#

this isn't my first project

#

I can't think of a better word than core

void void
#

sorry i should say first "big" project lmao.

pulsar wigeon
#

you absolutely should not be registering a listener for each player donning the armor HOLY SHIT

acoustic pilot
#

When people say "core" they mean "framework" and a framework generally is a common starter project for many.

deep shoal
#

why not @pulsar wigeon

void void
#

here we go

pulsar wigeon
deep shoal
#

bc it's expensive yeah

#

but I imagine

stiff yarrow
#

@deep shoal the design is flawed

deep shoal
#

kitting 4 people at once

#

won't freeze the server

void void
#

you're registering a listener for the lifeitme of the plugin everytime someone puts armor on

stiff yarrow
#

first of all you're modifying a list that Bukkit depends on so you're halting everything in the main thread while that happens

deep shoal
#

no it gets unregistered

void void
#

that means its going to fire multiple times, as you continue registeirng

deep shoal
#

someone told me unregistering is also bad though

void void
#

yikes

#

you fucking register and unregister

#

LMAO

#

fuck im done

stiff yarrow
#

I'd probably avoid unregistering too

pulsar wigeon
#

each time someone changes their armor

stiff yarrow
#

no real need for it unless you have some special weird ass plugin

pulsar wigeon
#

he want to register/unregister events for EVERY event that "kit" touches

acoustic pilot
#

registering and unregistering should only ever be done in one place: in the enable/disable lifecycle phases.

pulsar wigeon
#

lmfao

acoustic pilot
#

of the plugin

stiff yarrow
deep shoal
#

what if I implement my own event system then so this "first of all you're modifying a list that Bukkit depends on so you're halting everything in the main thread while that happens
"

#

doesn't happen

acoustic pilot
#

as it incurs a pretty big penalty doing it elsewhere

pulsar wigeon
#

wait wait wait

#

slow down

#

you're implementing your own event system now? not dynamically registering/unregistering with bukkit?

acoustic pilot
#

why would you implement your own event system?

deep shoal
#

yeah

#

I can do that

stiff yarrow
#

@deep shoal the event is a snapshot for state, so you don't really need to have one for each player, the state can dictate which player it is

pulsar wigeon
deep shoal
#

if using bukkit.registerListener

#

or whatever

#

is bad

#

then I can just use myApi.registerEvents(blah)

#

and then myApi has one listener

void void
#

oh fuck

deep shoal
#

registered onto bukkit

void void
#

he just doesnt understand...

acoustic pilot
#

why can't you just make it in a way that you only register your listeners once and use bukkit's event system?

#

why does it have to be so complicated

stiff yarrow
#

@deep shoal all the concepts of bad and good you have you should delete from your memory and start over

deep shoal
#

because I don't know which listeners I need to register

#

when the server starts

pulsar wigeon
#

yes you do

stiff yarrow
#

all of them?

acoustic pilot
#

you could register a listener for all the events you know you're going to use

pulsar wigeon
#

you register whatever your api exposes

deep shoal
#

yes ^^

#

wizjany is right

#

which is hwy I think of this

pulsar wigeon
#

THAT'S NOT WHAT YOU SAID THOUGH

stiff yarrow
#

rarely you will ever need to selectively register things

deep shoal
#

I thought this is what I said

pulsar wigeon
#

yes 2 minutes ago

#

not 30 minutes ago

acoustic pilot
#

a plugin should know what events it needs to use when it's being enabled

deep shoal
#

but this is a good idea?

acoustic pilot
#

why wouldn't you know

pulsar wigeon
#

well, for the last 30 minutes

deep shoal
#

bc simple reacted with "fuck"

finite wave
stiff yarrow
#

btw who else uses the WINDOWSKEY + SHIFT +S shortcut its so dope

deep shoal
#

and you blew up at me

#

for "reimplementing the events system"

pulsar wigeon
#

i use sharex

#

much more dope

deep shoal
#

so if I put one event listener on bukkit

#

which listens to every event my api exposes

pulsar wigeon
deep shoal
#

and then in each handler there

pulsar wigeon
#

takes 3 seconds

deep shoal
#

I just walk through my api's list of

#

eventexecutors

#

is that fine

pulsar wigeon
#

why do you have a list of eventexecutors

#

that's not reimplementing

acoustic pilot
#

you could just design your events in a way that plugins can register their own listeners that use your events

deep shoal
#

or whatever

#

you get the idea

pulsar wigeon
#

that's copying bukkit's system

stiff yarrow
#

there's no middleman with WINDOWSKEY+SHIFT+S tho, just CTRL+V into discord

acoustic pilot
#

why do you have event executors in the first place

#

sounds dumb

#

let plugins register events like normally

#

listeners, rather

stiff yarrow
#

you should use bukkits API for events so other plugins can interact with your custom events

#

you tennen boke

pulsar wigeon
#

there's no middleman with sharex eitehr?

#

dunno what you mean

stiff yarrow
pulsar wigeon
stiff yarrow
#

doesn't that mean it just does the same thing but you're using a program as the middleman

pulsar wigeon
#

windows is a program

deep shoal
#

but if I only register one listener on bukkit

#

is it probably going to be fine

pulsar wigeon
#

win shift s isn't NT kernel lol

stiff yarrow
#

?

#

tuna what are you so paranoid about

#

you're doing what is called defensive programming

#

stop it

deep shoal
#

everyone keeps telling me my ideas are shit

acoustic pilot
#

I think for the sake of everyone's mental health it'd be best if we just discontinued this discussion in here lol

deep shoal
#

idk what defensive programming is

stiff yarrow
#

it's what you are doing

#

you think everything is bad so you're over engineering things

vestal jasper
#

fuck

stiff yarrow
#

except you're over-engineering things to be shitty

deep shoal
#

lol I didn't think stuff was bad

#

people told me my idea was bad

#

so I wanted to know how to improve it

stiff yarrow
#

thats about the only descriptor you've used to explain your actions

#

'x is bad so I made y'

void void
#

agreed byte

#

but knowing the mc community, it's going to take more than a suggestion

pulsar wigeon
#

that's why you use NotImplementedException instead of //TODO

void void
#

lay it down babey

pulsar wigeon
#

or better, use both

stiff yarrow
#

except you're saying 'I was told x is bad so I did y'

acoustic pilot
#

There's no need for that, it was just a suggestion 😃

#

They can torture themselves all they want

stiff yarrow
#

which means you trust your source too much

void void
#

kek

#

im just going back to youtube

acoustic pilot
#

I'm off to get a California Burrito 😄

deep shoal
#

I trust this chat more than I trust myself

#

I am v inexperienced

void void
#

fuck those are good

stiff yarrow
#

@deep shoal if you filter out the mean words and the screeching you are getting solid advice from us

pulsar wigeon
#

REEEEE

vestal jasper
#

REEEE

void void
pulsar wigeon
#

yea but seriously, you started by saying "I'm not reimplementing the event system, i'm dynamically registering/unregistering listeners" and we're like "that's a bad idea, why would you do that" and it took you half an hour to just explain your use case

#

and then you went full circle and said you are reimplementing the event system

deep shoal
#

yeah

#

I thought that was a better idea

#

by this point

#

bc people told me using bukkit.registerEvents or w/e freezes the main thread

stiff yarrow
#

it does

#

but lots of things "freeze" the main thread

pulsar wigeon
#

you never at any point said "hey i'd like to allow people to make custom scripts that execute js when people wear my armor 'kits'"

stiff yarrow
#

don't register things during runtime

#

and you don't freeze it

void void
#

any sync method "freezes" the main thread for a short time. what do you think tps is measuring

finite wave
#

Time per second^60

vestal jasper
#

tea pours?

finite wave
#

Clearly

deep shoal
#

I will try to create what I understand as a better system now

pulsar wigeon
#

time (in seconds) per second * 20

#

that's tps formula

deep shoal
#

then can I just show it to you

finite wave
#

Wow

deep shoal
#

lol

pulsar wigeon
#

if your tps is below 20, you may be experiencing relativistic effects

#

:^)

stiff yarrow
#

@deep shoal the better system is not to register anything during runtime

#

use Bukkits event system

#

and handle all players with 1 event

deep shoal
#

handle all players with 1 event

void void
#

yeah but what i meant...is 1 tick = a full game loop, including calls to sync methods; those sync methods if they take longer will result in 1 tick taking longer than 1/20th per second, hence a tps drop

pulsar wigeon
#
onSomeEvent(PlayerEvent bla) {
  if (isWearingKit(bla.getPlayer())) {
    kit.executeEvent(context);
  }
}```
stiff yarrow
vestal jasper
#

This was way too simple. I feel like I'm doing this wrong.

    fun removeClaim(dwelling: Dwelling, claim: Claim) {
        getRegionManager(BukkitAdapter.adapt(claim.world)).ifPresent { manager ->
            manager.removeRegion(dwelling.getIdentifier(claim))
        }
    }```
void void
#

nah

#

thats right on

pulsar wigeon
#

that looks right

vestal jasper
#

huh

#

Every other WG thing I've done has required like an entire fucking book worth of code to accomplish

pulsar wigeon
#

like what

carmine mason
#

what programming language is that? @vestal jasper

stiff yarrow
#

?

pulsar wigeon
#

scala

vestal jasper
#

Kotlin

void void
#

kote line

stiff yarrow
#

we don't talk about scala

pulsar wigeon
#

kotlin is scala for nerds

golden gust
#

kote line

#

get out

vestal jasper
#

Tbh I think I simplified most of it

void void
#

pets @golden gust

limber knotBOT
#

purrs

vestal jasper
#

I think it was just over complex because I'm a retard who's never worked with wg before

pulsar wigeon
#

i mean, we have docs :^)

vestal jasper
#

what are docs /s

pulsar wigeon
stiff yarrow
#

@vestal jasper its okay you only get better by realizing you are shit

pulsar wigeon
#

i love that rtd has that domain

wide chasm
#

Does rtfd stand for read the fucking docs?

pulsar wigeon
#

yes

wide chasm
#

Nice

pulsar wigeon
#

rtfd is the "short link"

void void
#

i said rtfm to a coworker once and they got offended

#

😦

stiff yarrow
#

was it a man

void void
#

yea

stiff yarrow
void void
#

he kept asking me how to write regex

#

so naturally

#

rtfm

stiff yarrow
#

I wouldn't have even been offended

#

the proper response to that is 'yeah you're right'

void void
#

I was busy doing shit I can't be working and teaching, for one im not paid for that shit

#

lmao

stiff yarrow
#

tbh if I were him I would've been embarrassed by my actions the moment you told me to rtfm

#

because I have dignity

vestal jasper
#

I have to do offline permissions removal async don't I, because luckperms

#

REEEEE

void void
#

he didnt know what it meant

#

so he looked it up and said "really dude? not cool"

stiff yarrow
#

oh geez

void void
#

told his manager

stiff yarrow
pulsar wigeon
#

are you using permissions to store data too

#

like GP

vestal jasper
#

No

stiff yarrow
#

rtfm is like a pretty well known term tho

vestal jasper
#

I create regions, assign groups to the regions, and give members of the region the group

void void
#

yeah i dont know how he got a job as a programmer but whatever

pulsar wigeon
#

why do you need to remove permissions

#

of offline players

void void
#

pretty sure he just went to college, never exposed to OSS ever

#

C# fanatic

vestal jasper
#

When they leave the dwelling or the dwelling is deleted

#

I need to remove them from the groups

#

They may be offline when either of those things happen

pulsar wigeon
#

so, you are using permissions to store data

#

like, "belonging to a region" data

vestal jasper
#

I guess yeah

finite wave
#

Lol

#

Why

stiff yarrow
#

the CS grads that don't code while in school are so weird to me

finite wave
#

@stiff yarrow I code all the the or read up on concepts am i fine to you?

void void
#

The bank was his first job, he had his fancy degree, and knew how to write C#. That's it.

pulsar wigeon
#

hey i'm a full time c# dev now

void void
#

Didn't know JS, shat on Java all the time, doesn't know anything but Visual Studio

pulsar wigeon
#

i take offense

void void
#

That's fine

#

but at least you know other stuff

#

he knew ONLY C#

pulsar wigeon
#

said who

void void
#

that's IT

pulsar wigeon
#

i write worldedit in c# and transpile it to java

#

LUL

void void
#

couldn't write it without visual studio either, ask him to write some C# and he says "no that doesn't have intellisense"

limber knotBOT
#

explains a lot thonk

silent oak
vestal jasper
#

Create region
Assign group to region
Give player group

This is easier than

Create region
Assign all members of group to all existing and new regions

Add member
Add member to all existing regions

#

less work on my part

stiff yarrow
#

@finite wave as long as you are coding its gucci

pulsar wigeon
#

so you create a group for each region?

vestal jasper
#

No

upper flicker
#

idk if I'd ever call Jan "fine"

stiff yarrow
#

@void void I legit wrote C/C++ in notepad++ for a short time period

#

was fun

pulsar wigeon
#

i wrote c in vim in college

void void
#

yeah, I used to write in plain ass notepad dude

#

notepad

stiff yarrow
#

vim PogU

vestal jasper
#

One group per dwelling / village.
All regions that are part of the dwelling use the same group.
All members of the dwelling are given that group.

stiff yarrow
#

plain notepad is dead to me

#

notepad++ is life

void void
#

manually javac the classes in the correct order, too

pulsar wigeon
#

oic, a dwelling is multiregion

vestal jasper
#

Yes

pulsar wigeon
#

you know you can use a parent region for that

vestal jasper
#

Huh

stiff yarrow
#

NGL writing Java without an IDE sounds like a nightmare

pulsar wigeon
#

makes it much easier to delete the dwelling too

void void
#

that's how I learned

pulsar wigeon
#

just manager.remove("dwellingParent", REMOVE_CHILDREN)

void void
#

now I can write it with my eyes closed

pulsar wigeon
#

boom, entire dwelling nixed

#

(note that remove_children was bugged til recent dev builds so uhhhhh)

vestal jasper
pulsar wigeon
#

but besides from that it's a lot easier

#

then you add individual players to the parent

#

and don't have to fuck with the individual regions

vestal jasper
#

Would they inherit the parent region's flags?

pulsar wigeon
#

yes

vestal jasper
#

Nice

pulsar wigeon
#

unless explicitly overriden

vestal jasper
#

I'll switch over to that soon

void void
#

hmmm I think I might try to adjust to Philippine time, stay up all night to around 7am or so, and wake up around 2. Might help the jetlag

pulsar wigeon
#

yea just keep in mind that remove_children is broken until recent dev builds so you have to iterate over children yourself and remove. shouldn't be too hard if you have a list or if it's not nested deep tho

#

technically there's a major "inefficiency" that WG doesn't store children, only parents

#

so going down a tree is ugly if it's nested deep

vestal jasper
#

This won't be used for at least a few weeks so I'll just use the dev build and hope there's a release by then

pulsar wigeon
#

most people don't have multi-nested parents tho

vestal jasper
#

This will only be two levels so that shouldn't be too much of a problem

pulsar wigeon
#

most of the region api is synchronized where needed too

vestal jasper
#

I also would like to combine adjacent regions (all dwelling regions encapsulate chunks)
I have a feeling that would be a little more complex than the other stuff.

At least to keep the region count down somewhat

pulsar wigeon
#

though it's not officially documented

#

there's a bunch of stuff you can call async

#

someone else was asking about that recently

#

in our discord

#

they have a claim system they're doing like that

#

were asking about merging adjacent regions

vestal jasper
#

monkaSHAKE I'm doing the same thing

#

Except I've only said like 3 messages in the EH discord

pulsar wigeon
#

lol

#

search #api for keke i think

#

tho he wanted to make polygonal regions with his chunks which is questionable

stiff yarrow
#

very questionable

pulsar wigeon
#

pointed him to concave hulling algorithm

#

¯_(ツ)_/¯

#

if you're already managing multiple regions (especially with a parent to manage members/flags), there's really not much need

#

cuboids are significantly faster than odd polys in the end

#

even though we do aabb-based spatial indexing for the first pass

vestal jasper
#

Tbh if I just deal with the parent region I don't think merging sub regions should be needed. I'd just like to keep the region count down.

#

But if it's less efficient I don't think it's worth the effort

pulsar wigeon
#

prtree is stupid fast

#

and we balance it with loaded chunks

vestal jasper
#

I mean if poly regions are less efficient it's not worth merging them *

pulsar wigeon
#

oh i mean you can still simplify to cuboids

#

eg two adjacent chunks, or any line/square of them can simplify

#

i just wouldn't merge 3 chunks in a L shape

vestal jasper
#

Yeah that's what I mean

pulsar wigeon
#

yea

vestal jasper
#

I'd have to implement more code to check for that too

#

aka way more work than I'd like to put in just to shorten the list

pulsar wigeon
#

yea

void void
#

@stiff yarrow Romania

limber knotBOT
#

.895

upper flicker
#

can we add an alias for us mere mortals who dont know that issue by number

limber knotBOT
#

if you have a name suggestion :P I just have the issue number ingrained into my nightmares

upper flicker
#

there's some way to add an alias to an existing command

#

pingtimeout

#

there you go

carmine mason
#

is paper any securer than spigot?

upper flicker
#

it fixes some exploits and whatnot that spigot doesnt

#

but its not like it adds an explicit encryption or super secure 28 point logins or anything

carmine mason
#

i was refering more to exploits someone could use to gain further access on the system

upper flicker
#

there really arent many of those to start with

stiff yarrow
#

not aware of any of that severity on spigot personally

upper flicker
#

most of those types of exploits exist in the realm of the operating system and supporting services

limber knotBOT
#

Worse issues around that mostly relate to creative mode and plugins

static badge
#

ah creative mode

upper flicker
#

yeah if you used a plugin someone just randomly sent you its theoretically possible

#

I know of a few cases of that being used to backdoor into the user the process is running as

#

(which is why you dont run servers as root)

finite wave
stiff yarrow
#

jan for #1 most likely to link you to a virus

carmine mason
#

cause i am thinking of using my old pc as public mc server (with port forwading) and than technically the server would be the entrence to the network

finite wave
#

It’s my own plugin Nossu

#

It completely harmless if you unban everyone after

limber knotBOT
#

Unless you're only playing with a handful of players or have an ISP with a package dedicated to heavy uploads and stuff, that's likely going to suck

stiff yarrow
#

@pulsar wigeon all that curse money I've missed out on

pulsar wigeon
#

wew

#

i just checked my paypal emails and tallied

stiff yarrow
#

share

#

depending on your answer I may have to kill myself

static badge
#

inb4 $15

pulsar wigeon
#

nah the real money comes from selling crates to kids using their mom's credit card

finite wave
#

True

#

I just send nudes

#

Both very rewarding

static badge
#

do people pay you to stop?

finite wave
#

Yes

olive garden
#

I would just call the cops for child porn reasons

#

he's still below 18 😉

finite wave
#

It’s basically smart harassment

#

Jk

#

Btw

upper flicker
#

(he's not jk btw)

#

deletes text messages furiously

pulsar wigeon
#

@stiff yarrow that SBprime guy has a premium version of AWE

#

does spigot show sales

static badge
#

shows dls

olive garden
#

can confirm, he has sent me nudes

stiff yarrow
#

@pulsar wigeon yes sales are the download count for premium

pulsar wigeon
#

o dpm

#

o dpm

#

t asd-aisopfjasdra

stiff yarrow
#

but no ones gonna buy some guys knock off WE I assume

static badge
#

.g "o dpm" meaning

limber knotBOT
pulsar wigeon
#

i don't have an account so i can't see spigot premium resources

stiff yarrow
#

@pulsar wigeon link me to the page

#

I'll screenshot it

pulsar wigeon
#

o dpm = "i don" but shifted over a letter

static badge
#

.g asyncworldedit spigot

limber knotBOT
finite wave
#

Trigary did i send you that girl who is shitting tennis balls?

stiff yarrow
#

that's not a premium one spotted

static badge
#

yeah ik

pulsar wigeon
#

.g asyncworldedit premium

stiff yarrow
limber knotBOT
stiff yarrow
#

his sales are weak

#

2249 * 7

pulsar wigeon
#

how much is it priced at

#

dang

#

that's still a lot

upper flicker
#

.wa 2249 * 7

limber knotBOT
stiff yarrow
#

15743

static badge
#

16k huh

stiff yarrow
#

over 4 years

pulsar wigeon
#

brb making WorldEdit 8 selling for $2-3 a piece

finite wave
#

Not even 10 mac books

stiff yarrow
#

if WE was premium it'd have that many sales in 30-60 days or less

finite wave
#

@pulsar wigeon Make sure all older versions keep pestering people to switch.

stiff yarrow
#

@pulsar wigeon bro don't sell it for that low

#

huge mistake

pulsar wigeon
#

o yea tru

static badge
#

at least $20

stiff yarrow
#

sell it for like 20 bucks at least

pulsar wigeon
#

server sales are one per i guess

upper flicker
#

it was mentioned on minecraft's homepage lol

finite wave
#

Licensed

upper flicker
#

imagine if you got a link there

pulsar wigeon
#

idk i just have to keep up wth Jesse's shit code

#

even tho it breaks everything people like it because it's fast

finite wave
#

Let’s rewrite WG in scala

upper flicker
#

lets not

stiff yarrow
#

this begs the question

static badge
#

let's end our lives in scala

stiff yarrow
#

why isn't WE doing stuff in async when it can

finite wave
#

Cause he is just maintaining the code

stiff yarrow
#

literally FAWE is a meme

finite wave
#

Not improving duh

stiff yarrow
static badge
#

I bet most shit isn't just worth it :>

#

ur big hitter for perf is setting those blocks

pulsar wigeon
#

yea, in the end the setting has to be done sync

#

batching is possible, but requires a lot of architectural moving

finite wave
#

Unless you abuse stuff

#

Then u can set it async

static badge
#

that will break things

finite wave
#

But beware of corruption

static badge
#

u can't do it asynchronously

#

that's just a fact

finite wave
#

Lies

stiff yarrow
#

daisy chain the sync and async tasks

#

ez

#

I bet thats how FAWE does it

static badge
#

mfw

pulsar wigeon
#

kinda

#

they do other really hacky shit too

#

like making an nms Chunk and replacing the existing one pretty much

#

edit the underlying arrays async, then swap them in to the world sync

#

there's a lot of safeness/speed tradeoffs

finite wave
#

Cool

void void
#

Spectre or meltdown is still on Core 2 Duo P8600 2,4 Ghz?

pulsar wigeon
#

...do you expect hardware patches?

#

or is that a new processor?

upper flicker
#

Q3'08

#

gonna go ahead and say its affected

static badge
#

wow

#

literally unusable processors put out by intel

void void
#

spectre & meltdown kinda affect every intel core series processor

#

old wrecks such as Pentium 4 etc. shouldn't be affected - however they aren't relevant anymore anyway

upper flicker
#

sticking by my intel 8088 finally pays off

static badge
#

everytime I hear pentium 4

#

.g pentium 4 5ghz

limber knotBOT
void void
#

ye lol

vestal jasper
#

Isn't the 8088 a math coprocessor?

void void
#

no?

vestal jasper
#

Oh that was the 8087

#

8088 was a variant of the 8086

upper flicker
#

reeeeeeeeeeeeeeeeeeeeee

void void
#

Spectre and meltdown can be patched?

upper flicker
#

meltdown can be patched

#

spectre is mostly just worked around

void void
#

Hunt CPUs for years

upper flicker
#

there's a patch for like one piece of it, and then some microcode updates to make it easier for programs and software to mitigate the other 3 or 4 or 27 parts of spectre

static badge
#

huh detodated wam really has gone down in price

void void
#

why do you worry about spectre & meltdown?

#

I never saw spectre or meltdown effects
Only a BSOD because HDD is dying

upper flicker
#

its not really the type of exploit where you'd see it anyway

static badge
#

could you feel it though

#

or hear it?

upper flicker
#

yeah

void void
#

it's really rare and mostly cloud server sellers are affected of it

upper flicker
#

you can feel it in your soul

#

and it makes a really high pitched sound

ancient bolt
#

fuck the battery life of these earbuds has gone to shit

void void
#

but spectre, meltdown and even l1tf patches however make cpus slower in some degrees

upper flicker
#

meltdown doesnt really have a performance penalty

#

and its a pretty glaring thing

#

you should fix that one

static badge
#

generally ur a performance penalty

void void
#

rekt

upper flicker
#

people debate the spectre workarounds a bit more because the mitigations incur a noticeable hit on context switches

static badge
#

we should just remove context switches entirely

void void
#

effective l1tf patch disables HT

#

iirc

ancient bolt
#

I mean why does anyone care about spectre anyways

void void
#

Had today with spotify chrome and wallpaper engine(max settings) under 60°C

#

which makes my shit laptop even shittier lol

upper flicker
#

openbsd did that

ancient bolt
#

not like anyone cares about other hardware vulnerabilities like rowhammer

static badge
#

big spooky exploit

upper flicker
#

no one else has disabled HT

stiff yarrow
#

@pulsar wigeon safeness should always be #1 prio

pulsar wigeon
#

for most servers yea

void void
#

openbsd consists of bunch of security nerds anyway

pulsar wigeon
#

fawe mostly appeals to build teams tho

#

who aren't running on prod environments of many players doing whatever

stiff yarrow
#

if you put something in that only works 90% of the time but its fast that's still a NOPE from me

pulsar wigeon
#

or in plot servers where people give WE as a perk

#

cuz if you have 40 people using it at once then yea...

#

need some limits on that

upper flicker
#

40 people using WE at once...

void void
#

lul

upper flicker
#

that's just terrifying

void void
#

With FAWE no crash?

static badge
#

what does FAWE stand for

upper flicker
#

Fast Async World Exception

static badge
#

thx

void void
#

FastAsyncWorldEdit

upper flicker
#

I suspect the reason they got so popular was more like FreeAsyncWorldEdit

#

because AWE was paid at the time

static badge
#

nice job

#

you made it worse

upper flicker
#

I went to edit it and it was literally in there one time

#

so idk what this garbage client is doing

#

and then I hit enter and it fixed itself

static badge
#

idk what ur garbage hands r doing

#

it's still there

upper flicker
#

burning leafs same as always

#

not for me

#

this is kind of what Im talking about

static badge
#

yeah sounds like ur retarded

vestal jasper
#

leaf ur retarded

static badge
#

ur retarded

vestal jasper
#

no u

static badge
#

u

vestal jasper
upper flicker
void void
#

here we go again

upper flicker
#

garbage client

vestal jasper
#

retard client

static badge
#

still unedited

#

2 fix ur shit

#

reeee fix it

upper flicker
#

it is fixed

void void
#

bad paper dev

vestal jasper
#

FIX IT reeeeee

static badge
#

REEEEE

pulsar wigeon
#

it stands for FreeAsyncWorldException

static badge
#

we all know ur just fucking with us

pulsar wigeon
#

:^)

upper flicker
static badge
#

mfw

void void
#

When Paper 1.12.2 will be perfect(no bugs or exploits) what will happen?

upper flicker
#

never

#

no software is ever bug free

#

and no software based on minecraft can ever even dream of it

vestal jasper
#

Wait won't I have to put the parent region somewhere?

pulsar wigeon
#

you can make it a global region

#

which is different from __global__

#

see GlobalProtectedRegion

vestal jasper
#

That sounds fuckity

pulsar wigeon
#

same type different meaning

#

it's just a region that has no spatial area

static badge
#

__global__

#

fuk

vestal jasper
#

Wouldn't non dwelling multiregion members be fucked out of using the world then?

upper flicker
#

globul

vestal jasper
#

Oh

#

I see

static badge
#

is this C

pulsar wigeon
#

yea it's literally used for this

vestal jasper
#

docs scare me

#

I'm allergic to docs

static badge
#

figures

#

ur a kotlin retard

upper flicker
#

I love that rtd has the rtfd domain

static badge
#

rtd = ?

hot hound
#

ITS SPOTTED LEAF

upper flicker
#

spotted lead lol