#dev-general

1 messages · Page 197 of 1

hot hull
#

Oh hi weebs

old wyvern
#

Calculate that on the outer shell block locations

#

each one

jovial warren
#

what about that code being ran size^3 times

obtuse gale
#

:what:

old wyvern
#

It wont?

hot hull
#

What about spaghetti?

jovial warren
#

how will it not be?

old wyvern
#

more of size^2 * 6

#

Its not to be used at all locations

onyx loom
#

🍝

obtuse gale
#

this is confusing me lol

old wyvern
#

You dont want to spawn itemframe in random spots afaik

#

Just on the outer shell

jovial warren
#

still ran way too many times though

old wyvern
#

Thats not much at all

#

That isnt even any complex logic guy

jovial warren
#

what else could be causing the item frames to keep placing?

old wyvern
#

Its litrally just a substraction and sigma

#

😂

jovial warren
#

he said loads of them drop on the floor

obtuse gale
#

sigma thonking

old wyvern
#

sigma function
<0 = -1
0 = 0

0 = 1

#

signum*

obtuse gale
#

bruh what

old wyvern
#

my bad 😂

jovial warren
#

I was gonna say

old wyvern
#

Its called signum function

#

Meh

jovial warren
#

sigma is notation for how many times something should iterate

#

or a part of

old wyvern
#

No there is a sigma function as well

#

Completely unrelated tho

obtuse gale
#

im even more confused now lol

#

I just want this to work :():

jovial warren
#

it’s maths lol

old wyvern
#

What exact part confuses you?

obtuse gale
#

er

#

all of it

jovial warren
#

ffs lol

old wyvern
#

Have you studied vector maths?

obtuse gale
#

nop

jovial warren
#

oof

old wyvern
#

Coordinate geometry?

obtuse gale
#

what kinda stuff is that lol

old wyvern
#

What grade are you in my guy?

jovial warren
#

I’ve studied both of those

obtuse gale
#

10 lol

jovial warren
#

How?

old wyvern
#

Why havent they taught u coordinate geometry yet

#

owo

#

Anyway

obtuse gale
#

How?
._.

jovial warren
#

I learnt this shit in year 10 (US grade 9 equivalent)

frigid badge
#

what for weird edu system do you guys have

obtuse gale
#

what kinda stuff is coordinate geometry lol

#

I might know it, just never heard that name before

old wyvern
#

It deals with coordinate systems

jovial warren
#

basically drawing shapes between coordinates I believe

old wyvern
#

and gives a intro to vectors

#

A vector is basically something that has direction and has a length(termed as magnitude of the vector)

obtuse gale
#

is it like parabolas or whatever?

old wyvern
#

Parabola is just a eqn

#

Anyway

#

Explaining

jovial warren
#

just read the wikipedia page lol

old wyvern
#

A vector may represent position, or directional length ..ect

#

In mc

#

Your location

#

Thats a vector

#

comprising or your x,y,z positions

jovial warren
#

a vector is a measurement made of two main components: speed and magnitude (direction)

old wyvern
#

Vector distance between you and another player is the difference between, but do keep in mind, vector is relative

obtuse gale
#

isnt that like vector from dispicable me's slogan

jovial warren
#

yes

obtuse gale
#

speed & magnitude or whatever

#

oh wait

#

now it makes sense

#

bruh

jovial warren
#

a vector is any quantity that has those two properties

#

for example, velocity is a vector

old wyvern
#

Direction of A from B = A - B

regal gale
#

Are you really not being taught vector? 👀

old wyvern
#

That is final position - initial position

regal gale
#

I've already learnt the coordinated geometry when I was in grade 9

obtuse gale
#

wait how is velocity a vector

jovial warren
#

Are you really not being taught vector? 👀
^

obtuse gale
#

nerds

onyx loom
#

^

jovial warren
#

I've already learnt the coordinated geometry when I was in grade 9
^^

old wyvern
#

wait how is velocity a vector
Velocity has direction, does it not?

obtuse gale
#

we're doing like quadratics and stuff

regal gale
#

Uh.. also

onyx loom
#

imagine remembering anything from school kekw

regal gale
#

Not gonna disappoint ya nerds

jovial warren
#

velocity is speed relative to direction

hot hull
#

I'm pretty dissapointed tho..

obtuse gale
#

does that have anything to do with the cube im tryna make?

old wyvern
#

If you want to find the inner side, Yes

#

I told you the steps youd need to do as well

onyx loom
#

nothing in development support is related kapp

jovial warren
#

vectors aren’t measurements of distance though, they’re measurements of speed relative to direction

obtuse gale
#

:what:

old wyvern
#

Um no?

#

Vectors dont have anything to do with speed

jovial warren
#

what?

old wyvern
#

A vector is not speed relative to direction

#

That makes no sense

#

A vector is simply a direction with some length

#

It can represent directional speed i.e, Velocity, Yes

#

But that does not make all vectors velocity

jovial warren
#

actually you’re right, BLOODY SCIENCE CONTEXT-RELATED DEFINITIONS

obtuse gale
#

lol what

#

🤔

old wyvern
#

Its not a context related defenition

jovial warren
#

this is why I hate GCSE science

#

and yes it is

old wyvern
#

No?

onyx loom
#

actually you’re right, BLOODY SCIENCE CONTEXT-RELATED DEFINITIONS
@jovial warren barry broke with caps

jovial warren
#

I was told a vector was a quantity with speed and magnitude, that’s context-related

onyx loom
#

pretty sure yugi is correct lol

old wyvern
#

You probably are misremembering

jovial warren
#

I’m not

onyx loom
#

a vector having speed doesnt make sense

old wyvern
#

Take your books out my guy

regal gale
#

I voted for Yugi's

jovial warren
#

that’s exactly what science taught me Yugi

onyx loom
#

science wrong

old wyvern
#

As I said

onyx loom
#

religion right

old wyvern
#

Open your book

regal gale
#

Vector is just direction thingy, nothing special

old wyvern
#

Check

obtuse gale
#

religion right
thonking

jovial warren
#

and I’ve read now on wikipedia that it’s wrong

onyx loom
#

😂

obtuse gale
#

get phillip from earlier on that

jovial warren
#

you think I have last year’s book on me? I’m at school rn lol

old wyvern
#

What you described is the defenition for velocity(speed w/ direction)

#

Not vector

jovial warren
#

also I can 100% guarantee that’s exactly what I was told

onyx loom
#

^

prisma wave
jovial warren
#

I just know I was told what I said

#

stop doubting me

old wyvern
#

Go check your book when you get home 🙂

onyx loom
#

vector !!!!

#

oooo yeahh !!!!

#

elara !!!

regal gale
#

vector is da best

jovial warren
#

I am 999999% guaranteeing that I’m right Yugi

old wyvern
#

Go check your book when you get home 🙂

jovial warren
#

ffs stop doubting me and just believe me

onyx loom
#

no need for books when u have the internet

regal gale
#

You have a long night, get some rest

#

👍

obtuse gale
#

right, so is this what ive gotta work out how to do lol?

Assume center = (cx,xy,cz)

current_position = (x1,y1,z1)

trying to find inward direction:
inward_direction = (center - current_position) with sigma function applied to each coords

block_to_check = current_position + inward_direction

jovial warren
#

also it’s unlikely I have that in my book @old wyvern as I’m a lazy bastard and never write anything down

old wyvern
#

yes Aj

obtuse gale
#

hmmmmm

old wyvern
#

That should be pretty simple

regal gale
#

Small tip

#

The velocity length I've used in my showcase was 25

obtuse gale
#

so do I have to convert the location to a vector?

prisma wave
#

ligma function

obtuse gale
#

whats ligma

prisma wave
#

ligma function

old wyvern
#

Better to do so aj,

jovial warren
#

you can’t believe that all they give us in science is context-related “dumbed down” definitions can you Yugi

prisma wave
#

advanced maths

obtuse gale
#

ah yes

old wyvern
#

location mutates with most functions

obtuse gale
#

Assume center = (cx,xy,cz) tf is cx xy and cz lol

#

also wouldnt centre just be the current location?

old wyvern
#

just variables since I didnt know ur value?

obtuse gale
#

so is it just the centre of the cube?

old wyvern
#

Center would be the center of the cube

#

yes

regal gale
#

you can’t believe that all they give us in science is context-related “dumbed down” definitions can you Yugi
@jovial warren you might check your school sometimes 👀

obtuse gale
#

right, so just the input location .toVector im guessing lol

#

inward_direction = (center - current_position) with sigma function applied to each coords

Does the current position change? Wont this always = 0 since center = current_position?

old wyvern
#

No aj

#

Center is the center of the cube

obtuse gale
#

yeah

old wyvern
#

current position is the location of a block on the shell you generated

obtuse gale
#

so just in the middle of all the loops?

old wyvern
#

I havent read your code, but where you place the blocks, yes

obtuse gale
#

and what should the inwardDirection be lol? And Int? A vector? Or like :what:

old wyvern
#

A vector

#

Vector - Vector = Vector

obtuse gale
#

val inwardDirection = location.toVector().subtract(Vector(x,y,z)) 🤔

old wyvern
#

Dont you have the location instance of the block?

obtuse gale
#

oh yeah

old wyvern
#

Just use toVector on that

obtuse gale
#

val inwardDirection = location.toVector().subtract(loc.toVector())

#

with sigma function applied to each coords whats this about?

old wyvern
#

Then youd need to use signum on each coordinate

#

Math.signum

#

You probably wont need that if you are dealing with block locations

#

but just in case

obtuse gale
#

on what bit? Like after the subtraction?

#

or like

old wyvern
#

after substraction

obtuse gale
#

on what values

old wyvern
#

Or and normalize it btw

#

Did I not mention that?

obtuse gale
#

tf does normalize mean

old wyvern
#

yup forgot

#

Unit vector

#

Make it a vector with length one and just direction

#

use the normalize function

obtuse gale
#

val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
then what values to I call signum on lol

old wyvern
#

the x, y, z components

#

Actually it may be worth it to just do the math on each coordinate than using Vectors

#

as in the Vector class

#

Actuall nah just continue

obtuse gale
#

what do I do with the result of like sign(inwardDirection.x)

#

(IJ told me to use sign not Math.signum)

old wyvern
#
val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
val inwardBlockPos = Vector(sign(inwardDirection.x), sign(inwardDirection.y), sign(inwardDirection.z))
#

That should give you the block direction you want to move towards

#

If you were using int block positions you probably wont need to do the last step tbh

#

Actually nvm

obtuse gale
#

wait so what position does this give me lol

old wyvern
#

You still would have cases which you would need to do the same

obtuse gale
#

the one i need to put the item frame?

old wyvern
#

wait so what position does this give me lol
@obtuse gale
What you need to substract from current pos to get the block location to place the item frame at

#

Add actually

obtuse gale
#
                    val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
                    val inwardBlockPos = Vector(sign(inwardDirection.x), sign(inwardDirection.y), sign(inwardDirection.z))``` So do I just do location.subtract(inwardBlockBos)? Dont I already subrtact it from the centre in the first val?
old wyvern
#

Thats to get the direction

#

What you did is get 1 block movement to that direction

#

And its add

obtuse gale
#

oh what

#
                    val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
                    val inwardBlockPos = Vector(sign(inwardDirection.x), sign(inwardDirection.y), sign(inwardDirection.z))
                    val finalPosition = location.add(inwardBlockPos)```
old wyvern
#

what is location?

#

Isnt that center location?

obtuse gale
#

the cntre

#

yeah

old wyvern
#

Add it to block position

#

Not center

obtuse gale
#

add what? centre to block position?

old wyvern
#

inwardBlockPos

#

Add inwardBlockPos to block psotion

#

position*

jovial warren
#

wow the sign function is simple lol

#

it just extracts the sign from a real number

obtuse gale
#
                    val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
                    val inwardBlockPos = Vector(sign(inwardDirection.x), sign(inwardDirection.y), sign(inwardDirection.z))
                    val finalPosition = inwardBlockPos.add(location.toVector()).toLocation(world)``` like that?
old wyvern
#

Why not add inwardBlockPos to location instead

#

?

#

wait no

#

My guy

obtuse gale
#

isnt that what I had above?

old wyvern
#

is location not center?

obtuse gale
#

it is

old wyvern
#

I asked u to use the block location

#

i.e, loc i assume from your snippet

obtuse gale
#

lol what?

#

loc is the block from the loop

old wyvern
#

The location of the block you are placing

#

yes Aj

obtuse gale
#

so do I add inwardBlockPos to loc?

old wyvern
#

yes

#

Does mutation of loc affect your loop?

#

If so clone it

obtuse gale
#

alright

#

then I still need to get a BlockFace dont I? So I know what way to face the itemframe

old wyvern
#

Cant you getFace on new location's block with old loc as arg?

obtuse gale
#

getFace?

old wyvern
#

What exactly do you want?

obtuse gale
#

dotn I need to call this for stuff to work?

jovial warren
#

won’t there be multiple faces?

obtuse gale
#

itemFrame.setFacingDirection

jovial warren
#

what does that do, just from the name, tell me

obtuse gale
#

...sets the facing direction?...

old wyvern
#

call getFace on the itemframe location with block location as arg

#

the opposite face should be the face u want

jovial warren
#

exactly @obtuse gale , now, is that what you want to do?

obtuse gale
#

getFace doesnt exist lol

old wyvern
#

What are you calling it on?

obtuse gale
#

exactly @obtuse gale , now, is that what you want to do?
yes but I dont know what to set it to

#

Location

jovial warren
#

what does it take?

old wyvern
#

I said block

jovial warren
#

you said item frame location

obtuse gale
#

call getFace on the itemframe location with block location as arg
getFace takes in a BlockFace

old wyvern
#

Cant you getFace on new location's block with old loc as arg?

#

getFace takes in a BlockFace
It takes in a block

obtuse gale
#

oh yeah

#

right

#

it no work :((

#

[00:24:25 WARN]: Caused by: java.lang.IllegalArgumentException: Cannot spawn hanging entity for org.bukkit.entity.ItemFrame at Location{world=CraftWorld{name=mapgames},x=-2.0,y=98.0,z=-2.0,pitch=0.0,yaw=0.0} (no free face)

old wyvern
#

Did you call opposite face?

obtuse gale
#

oh what?

#

how do I get the opposikte face

old wyvern
#
call getFace on the itemframe location with block location as arg
the opposite face should be the face u want```
#

BlockFace#oppositeFace() I think

#

lemme check

#

BlockFace#getOppositeFace()

obtuse gale
#

still get the error

old wyvern
#

Check the output you get for inwardBlockPos, finalPosition and the respective loc

obtuse gale
old wyvern
#

the respective loc?

obtuse gale
#

which ones that lol?

#

loc?

old wyvern
#

The block location in respect to which you wanted to place the item frame

obtuse gale
#

isnt that finalPosition?

#

                    val inwardDirection = location.toVector().subtract(loc.toVector()).normalize()
                    val inwardBlockPos = Vector(sign(inwardDirection.x), sign(inwardDirection.y), sign(inwardDirection.z))
                    val finalPosition = loc.clone().add(inwardBlockPos).toBlockLocation()
                    inwardBlockPos.debug()
                    finalPosition.debug()
                    location.debug()
                    world.spawn(finalPosition, ItemFrame::class.java){ itemFrame->
                        val direction = itemFrame.location.block.getFace(location.block)?.oppositeFace ?: return@spawn
                        itemFrame.setFacingDirection(direction)

                    }``` thats what ive got lol
old wyvern
#

the loc

#

isnt that finalPosition?
@obtuse gale
Final position should be the inner location

obtuse gale
#

this is loc

old wyvern
#

In the same case as last right?

#

Or are you checking only for 1 block position?

obtuse gale
#

yeah

old wyvern
#

ok

#

having a look

#

hmm thats a corner block?

#

You dont need to place there

#

Ignore the 8 corner blocks

obtuse gale
#

how lol

#

also if i actually teleport to the world only one block was placed

old wyvern
#

Distance

#

also if i actually teleport to the world only one block was placed
@obtuse gale
What?

obtuse gale
#

If I go to the location only the block at 0 0 was placed before the exception was thrown

old wyvern
#

As in the center?

obtuse gale
#

yeah

old wyvern
#

Why are you running this on the center block?

#

You only need to run it on the shell locations

#

Use pythagoras formula to ignore the corners

obtuse gale
#

what lol?

old wyvern
#

Ah distance formula in 3d

#

Wait no

#

pythagoras should be fine

#

One sec

#

actually root of r^2

#

but yea

#

You get the point I assume

obtuse gale
#

yeah

#

and then what do i check from that tho?

old wyvern
#

You could just compare distance squared

#

and then what do i check from that tho?
@obtuse gale
Distance sqaured to center

#

All 8 corners should satisfy that

#

Alternatively you can create a list of the 8 corners beforehand and just check if your list contains the placing location

#

Basically you need to apply that earlier part only on the wall blocks

#

Not on the center

#

Not on the corners

obtuse gale
#

🤔

old wyvern
#

You have any questions?

obtuse gale
#

many

old wyvern
#

Ask away

obtuse gale
#

how do i get the distance squared to the centre lol

old wyvern
#

Pythagoras Theorem?

obtuse gale
#

oh yeah right

#

since Ive got the length of both htings

old wyvern
#

For a block being placed you would need to get the lengths from difference from center

#

Math.pow(Math.abs(center.x - blockpos.x), 2) + Math.pow(Math.abs(center.z - blockpos.z), 2)

obtuse gale
#

then what do i check if that =

old wyvern
#

radius squared

obtuse gale
#

still get the error 😎

#

[01:01:48 WARN]: Caused by: java.lang.IllegalArgumentException: Cannot spawn hanging entity for org.bukkit.entity.ItemFrame at Location{world=CraftWorld{name=mapgames},x=-2.0,y=98.0,z=-2.0,pitch=0.0,yaw=0.0} (no free face)

old wyvern
#

Gimme a sec

#

Let me try this for ya

onyx loom
#

yugi boutta flex his math skills

old wyvern
#

🙃

hot hull
#

What's the java equivalent to kotlin's setOf() ?

ocean quartz
#

Java 8 it'd be something like new HashSet<>(Arrays.asList("", ""))
In java 9+ there is Set.of()

hot hull
#

danke

onyx loom
#

time to switch to latest java

hot hull
#

cba

onyx loom
#

look at that boilerplate cut down

prisma wave
#

new java is actually good

hot hull
#

still java tho

onyx loom
#

kotlin still better

hot hull
#

Elara best

onyx loom
#

:elaramoon:

ocean quartz
#

After 10 years of trying i finally managed to deploy with Gradle, holy shit

onyx loom
#

in before niall says maven is better

#

nice

heady birch
#

After 10 years of trying i finally managed to deploy with Gradle, holy shit
Lol

ocean quartz
#

in before niall says maven is better
Well, it kinda is for deploying to central

onyx loom
#

🙁

hot hull
#

I'm debating on how I should handle storage with this, do I just go for a db and say fuck it or

onyx loom
#

with what

hot hull
#

Check what I'm playing fingerguns

onyx loom
#

uh oh

ocean quartz
#

Oh, gl adding the dinosaurs

hot hull
#

Luck is indeed what I'll need

ocean quartz
hot hull
#

Best creature ever fingerguns

ocean quartz
#

100% ^^

hot hull
#

The goal is to not use an RP for everything, cause otherwise I could just cheese it with that

ocean quartz
#

We should make it a fabric mod

hot hull
#

I mean

#

Where's the fun in that fingerguns

ocean quartz
prisma wave
#

yes

#

well which bit?

ocean quartz
#

The getting the credentials from gradle.properties

prisma wave
#

yeah works fine for me

ocean quartz
#

Can't seem to get it to work >.<
Tried all sorts of things, every time i try to publish it gives me error like the credentials are wrong

prisma wave
#

Are you using ~/.gradle/gradle.properties?

ocean quartz
#

I have it on the project, let me try putting it there
The thing is that when i println the values it actually works

prisma wave
#

Hmm

ocean quartz
#

Omg..

prisma wave
#

oh?

ocean quartz
#

The error was the dumbest thing

#

So, repoUsername = "admin" this bad
But repoUsername = admin good..

hot hull
#

oof

prisma wave
hot hull
#

jesus niall

ocean quartz
#

lol

hot hull
#

@ocean quartz You ever used world painter or whatever it's called?

steel heart
#

@prisma wave are you good with databases

prisma wave
#

reasonable

#

what's up?

steel heart
#

Well I may ask here right now, how would I do self checking

heady birch
#

Hello

#

I do not know what self checking is

steel heart
#

It's kind of a way to store ids

heady birch
#

Store IDs as in?

steel heart
#

in a database

heady birch
#

I have no idea what you mean

steel heart
#

primary keys

heady birch
#

Why do you want to store them?

#

Surely that's just a relationship?

steel heart
#

No but assume I want to store ids which are unique in a database and I want to store the IDs in base 10 mainly

#

So self checking would be the best way to do it I heard

#

although I dont get how it works mathmatically

old wyvern
#

Just a Integer for the primary key then?

steel heart
#

yeah but how would the self checking part be done

old wyvern
#

What are you talking about?

#

define what you mean by self checking?

heady birch
#

primary key

#

will always be unique

#

or make column unique

steel heart
#

yes

heady birch
#

I have no idea what the objective is here

frigid badge
#

self checking??

#

define what you mean by self checking?
this

ocean quartz
#

@hot hull For like creating custom terrain and stuff?

hot hull
#

Yea

steel heart
#

No but assume I might want to store IDs somewhere. I don't want it recurring and don't want to store it as UUID because its not user friendly. So I could use self checking for the IDs. Yes I'd store it as an int. For instance generating random ints wouldn't be smart as that can generate duplicates.

ocean quartz
#

I have used it yeah

frigid badge
#

just let the db generate your ids?

old wyvern
#

You could have it auto increment

hot hull
#

Wanna make me The Island fingerguns

steel heart
#

auto increment has lack of thread safety?

frigid badge
#

what?

steel heart
#

or maybe I'm wrong

frigid badge
#

what database server you using?

ocean quartz
#

I can try xD

steel heart
#

Currently none. I was mainly confused about how the selfchecking part would be done

frigid badge
#

there's no need

#

you just generate the ids on the database

heady birch
#

Hibernate has a thread safe id generator

steel heart
#

okay because iirc self checking was something 8 numbers summed individually equals the last two

distant sun
#

Lets hibernate together

steel heart
#

but I don't understood why it would be useful to do that

frigid badge
#

idk what you read

#

but it's weird and wrong

#

if you want to just use incrementing ids you can just let the database handle all that without you having to worry

#

and if you are using an ORM you can actually choose what for primary key generation you want

heady birch
#

For example hibernate + native AI = no batching enabled

#

So you use hibernates own generator

steel heart
#

hmm okay

silver flower
#

i linked my account but cant see the premium support channels?

prisma wave
#

dev general

hot hull
#

Already handled the above

silver flower
#

my bad

frigid badge
heady birch
#

Laravel

frigid badge
#

not everything php related is laravel niall

heady birch
#

Ive used propel before

frigid badge
#

never heard of propel before

heady birch
#

How do Idelete a github prject

frigid badge
#

oh it's an old orm

heady birch
#

i want to delete this

#

it was meant to be a milestone

onyx loom
#

open source kiteboard

#

then it deletes itself

heady birch
#

@frigid badge Can you give me permission

#

on PlaceholderAPI/Animations-Expansion

#

To transfer issue to it

frigid badge
#

what issue

heady birch
#

72

frigid badge
#

the animations-expansion is empty?

#

why is that even there

heady birch
#

nevermind

#

Spring is just so good

onyx loom
#

niall is at the forefront of the spring circlejerk

heady birch
#

thanks

surreal quarry
#

https://paste.jaims.dev/qupuxowawa.coffeescript i have this event waiter that i just made for handling events inside of command classes instead of the normal way with a list or map of uuids, then checks and all that stuff
it is working for me, but does anyone see anything that looks like a bad way to do something or ways it could be optimized

bleak valley
#

how do i set like a lobby compass ?
to open a menu
?

surreal quarry
#

#development but just make a click listener (PlayerInteractEvent iirc), then open the menu when it runs

prisma wave
#

CloudFlare Blog

we have decided to switch our backend infrastructure to elara as we have found it is quicker than assembly

#

we now serve double the bandwidth per second

#

@steel heart the type system is a big feature

surreal quarry
#

good job i guess

#

seems sorta like an average accomplishment

prisma wave
#

elara moon

onyx loom
#

🌚

steel heart
#

Hmm that’s nice and it will be able to run in jvm?

#

Or nah?

old wyvern
#

most probably yes

onyx loom
#

👀

#

mc plugins with elara 👉 😳 👈

prisma wave
#
let onEnable = {
  print "lol"
}```
steel heart
#

Okay Java and kotlin be flopping

distant sun
#

uh

#

anybody know the right x values to make a hand swing animation for an armor stand?

#
        when (step) {
            0, 8 -> moveArm(210.0)
            1, 7 -> moveArm(240.0)
            2, 6 -> moveArm(270.0)
            3, 5 -> moveArm(300.0)
            4 -> moveArm(300.0)
            9 -> {
                moveArm(180.0)
                step = 0
            }
        }
    private fun moveArm(to: Double) {
        robot.stand.rightArmPose = robot.stand.rightArmPose.setX(to)
    }```
This rotate it backwards lol
#

ayeeee, using Math.toRadians(to) fixed it 😮

surreal quarry
#

gaby i thought you didn't like kotlin

steel heart
#

kotlin is nice

#

gaby wasnt aware of its holyness

distant sun
#

nah @ocean quartz made my try it

steel heart
#

I mean when statement is lit

distant sun
steel heart
#

hm

#

whats the measurement of x

distant sun
#
        when (step) {
            0, 6 -> moveArm(240.0)
            1, 5 -> moveArm(270.0)
            2, 4 -> moveArm(300.0)
            3 -> moveArm(330.0)
            7 -> {
                moveArm(210.0)
                step = 0
            }
        }```
steel heart
#

no but like how does minecraft handle the values of x y and z to the arm

#

is it rotations?

distant sun
#

uh

#

some EulerAngle thing

steel heart
#

oh so a x y and z angle

distant sun
#

ig

#

do I have to use nms to make the block "crack"?

steel heart
#

packets

#

so yh

distant sun
#

mhm

steel heart
#

wait wym by rotating

#

like in the video

distant sun
#

it doesn't look too organic

steel heart
#

too hacky?

distant sun
#

ye

steel heart
#

instead of 8 steps make 20

distant sun
#

uh

steel heart
#

considering tps is 20

distant sun
#

10 forward, 10 backwards?

steel heart
#

yeah

#

or 19

#

more frames = less hacky

distant sun
#

mhm

#

aight

#

why are GUIs such a pain in the ass smh

steel heart
#

Is BigInteger a smart class to use when wanting to store large numbers?

#

or is some type of encoding and decoding better

#

the numbers is big and will be used frequently over the network

distant sun
#

Big numbers use more ram iirc

obtuse gale
distant sun
#

:))

steel heart
#

Yeah that’s why I considering not using it

#

I was thinking base64 but it would mess with performance

#

Because decoding and encoding every tick isn’t very convenient

distant sun
#

arent big numbers some kind of array of strings?

steel heart
#

Why you big brain

obtuse gale
#

array of strings?

distant sun
#

xd

obtuse gale
#

I really doubt it is

steel heart
#

I mean array of longs then

#

But that’s clever

ocean quartz
#

God, adventure is just as ass to work with as bungee's chat 😫

distant sun
#

use negative numbers :smart:

steel heart
#

Well minecraft tends to crash when you put a too big number

distant sun
#

Long.MIN_VALUE will be your lowest

#

0 will be in the middle

#

problem solved

steel heart
#

I doubt anyone will play minecraft in Long.MAX_VALUE ticks but it’s possible

#

Yeah that’s smart as well

obtuse gale
#

What is it you're trying to do lmao

distant sun
#

arent statistics stored as integers?

steel heart
#

So basically an entity which has an age in ticks data paremeter

#

And I got to the conclusion it might mess up

#

If long max value is the maximum value

#

Because when passing over it minecraft would start to behave weird

#

Since the size of the entity is based on the ticks

obtuse gale
#

Isn't the age of an entity, like, backwards?

#

Like a countdown

#

It's a baby till it reaches 0

steel heart
#

Normally yes

obtuse gale
#

But?

#

In general terms it's that way, there's a countdown and stuff happens when it reaches 0

steel heart
#

Assuming we have more than just a baby and an adult I’d have a ton of those timers

obtuse gale
#

Run them async reversed_fingerguns

ocean quartz
steel heart
#

Hmm yeah

ocean quartz
#

Conclure, this means forge compatibility blurryeyes

steel heart
#

🤩

#

Fefo the timer isn’t actually dumb

#

Well u have a very big brain

obtuse gale
#

lmfao

steel heart
#

Matt that’s very GODLY

obtuse gale
#

I do

#

yeah that's p cool

steel heart
#

I don’t know why mine is particularly small

distant sun
#

someone's has to

ocean quartz
#

Oh wait, i don't think adventure has forge

obtuse gale
#

LAFF

ocean quartz
#

So technically works on, Bukkit, Bungee, Velocity, Sponge, Fabric

distant sun
#

who uses forge anyways

steel heart
#

Well forge shouldn’t be too hard to implement?

#

Bruh

ocean quartz
#

It shouldn't, just thought it was already a thing with adventure

steel heart
#

Hmm I can try implement it if you are tired of that

ocean quartz
#

Jokes aside, i can try

#

The annoying part is just testing

distant sun
steel heart
#

Yeah Matt I agree. Like in forge one run takes for fucking ever

ocean quartz
#

Heyo @quiet depot I have a few Gradle related questions, on RPF you have different modules right?
So i am trying to do the same, I have all the modules set and everything, the problem is when publishing
Idk how to set the maven publish to have the modules like mf-msg-bukkit and mf-msg-adventure

quiet depot
#

look at the deploy script in rof

#

rpf*

#

it’s in a folder called scripts iirc

ocean quartz
#

Gotcha, tyty

#

Oh so basically you build them "individually" and then deploy it

quiet depot
#

yea

obtuse gale
#

still need help fixing this

#
[12:00:34 WARN]: Caused by: java.lang.IllegalArgumentException: Cannot spawn hanging entity for org.bukkit.entity.ItemFrame at Location{world=CraftWorld{name=mapgames},x=-2.0,y=98.0,z=-2.0,pitch=0.0,yaw=0.0} (no free face)```
#

code:

obtuse gale
#

If instead of spawning an item frame I place a block it places blocks in all the right locations...

#

except it does place some on the corner piece

white kettle
#

heey I bought AutoSell via SPIGOT. what version do i need for 1.8.8?

obtuse gale
#

?spigot

compact perchBOT
#
FAQ Answer:

Spigot Account Linking
To get support for a premium plugin owned by Clip or Glare you will need to verify your spigot account using =spigot in the #bot-commands channel. After you have successfully linked your spigot account you should ask your question in the coresponding channel for that plugin. If you have already linked your account and want to update your roles, run this command =spigot check.

obtuse gale
#

@white kettle

obtuse gale
#

Anyone know how to use the IJ debugger well lol?

jovial warren
#

JetBrains do, they even made a full guide on it

obtuse gale
#

apparently I need to step through my code and work out why im being told to fuck off by the exception

#

And I worked out how to step through and stuff...

old wyvern
obtuse gale
#

Yes

old wyvern
#

Reminder, the top and bottom doesnt seem to work on spigot 1.14.4, but does on paper spigot 1.14.4. Apparently its fixed on 1.15+ on spigot as well I think

obtuse gale
#

I'm on 1,16,3

old wyvern
#

Alrighty, make sure you the block location you are using has whole number values

#

Else just do location#block#location, it gives you back whole numbers

old wyvern
#

=paste

compact perchBOT
#
HelpChat Paste

Please use a paste service to share configs, errors, code and long logs.
HelpChat Paste

old wyvern
obtuse gale
#

ty ill check it out

obtuse gale
#

Welp

#

It works until I try and assign the result of spawnEntity to a value

remote goblet
#

Ah

#

maths

heady birch
#

FlightTrails

obtuse gale
#

@old wyvern this works

    private fun World.placeItemFrameAt(center: Location, x: Int, y: Int, z: Int, r: Int) {
        val location = Location(this,center.x + x, center.y + y, center.z + z)
        val inwardDirection = center.toVector().subtract(location.toVector()).normalize()

        val vx = if (abs(x) == r) sign(inwardDirection.x) else 0.0
        val vy = if (abs(y) == r) sign(inwardDirection.y) else 0.0
        val vz = if (abs(z) == r) sign(inwardDirection.z) else 0.0

        val finalPosition = location.clone().add(vx,vy,vz)

        center.world?.spawnEntity(finalPosition, EntityType.ITEM_FRAME)
    }``` But this doesnt
```kotlin
    private fun World.placeItemFrameAt(center: Location, x: Int, y: Int, z: Int, r: Int) {
        val location = Location(this,center.x + x, center.y + y, center.z + z)
        val inwardDirection = center.toVector().subtract(location.toVector()).normalize()

        val vx = if (abs(x) == r) sign(inwardDirection.x) else 0.0
        val vy = if (abs(y) == r) sign(inwardDirection.y) else 0.0
        val vz = if (abs(z) == r) sign(inwardDirection.z) else 0.0

        val finalPosition = location.clone().add(vx,vy,vz)

        val itemFrame = center.world?.spawnEntity(finalPosition, EntityType.ITEM_FRAME)
    }```
#

which I thought was impossible but i mean

old wyvern
#

Huh, what does it result in?

obtuse gale
#

the error from earlier

old wyvern
#

Are you sure center is block location?

empty cave
#

Hello

#

can anyone help me?

old wyvern
#

It needs to be in whole numbers

#

show me your defenition of center

obtuse gale
#

val center = location.block.location

old wyvern
#

hmm

empty cave
#

Yugi

old wyvern
#

Yes?

empty cave
#

I'm trying to learn arguments

#

and I need help with something

old wyvern
#

Ask away?

#

Aj can you send me your stacktrace?

obtuse gale
#

oh wait

#

hol up

#

one sec

empty cave
#

I made gamemodes plugin, and its only self gamemode changing

#

so im trying to make it so I can change other people gamemode

#

by using arguments

#

but look at this

#

if (target.equalsIgnoreCase("")) {

#

here I need to put the name of the player?

old wyvern
#

What?

empty cave
#

uhh

old wyvern
#

Why are you comparing that to an empty string?

empty cave
#

I am asking if I need to put in that empty string the event to get player name

old wyvern
#

What you just said makes no sense

empty cave
#

idk

obtuse gale
#

You need to use Bukkit.getOnlinePlayer or whatever

#

then check if its null

old wyvern
#

getPlayer*

obtuse gale
#

eyy

#

ty yugi, got it working

frigid badge
#

aren't location's immutable? No need to clone it @obtuse gale

heady birch
#

Lemmo you ever built like an advanced search/pagination system?

frigid badge
#

define advanced

heady birch
#

Filter by multiple fields

#

Including relation

frigid badge
#

oh yeah I've done that

heady birch
#

So lets say

#

Filter:

in category "A"
has tag's "B" and "C"
name contains "Sometext"

frigid badge
#

yeah

obtuse gale
#

aren't location's immutable? No need to clone it @obtuse gale
most methods mutate them dont they?

heady birch
#

How do you do it (talking mainly about form handlin) unless you have only done it restfully

frigid badge
#

they don't mutate they make a new location @obtuse gale

#

I've only done it restfully

#

but if you are using spring you can just use spring's lang for that

#

it has an entire search/filter language right

obtuse gale
#

pretty sure stuff like Location#add adds to the current location

frigid badge
#

oh damn really

#

I thought location's were immutable my bad

#

weird.

obtuse gale
#

Its messed me up some times before

heady birch
#

it has an entire search/filter language right
@frigid badge

#

Believe so. Im looking at Specification<T> currently

regal gale
#

I thought location's were immutable my bad
I thought you already knew this before? thonking

frigid badge
#

probably, I don't remember. I never work with bukkit

obtuse gale
#

If I wanna include an image that my plugin uses can I keep it in the jar or do I need to like unpack it to the config folder or something?

#

If so how do I get it as a file

distant sun
#

saveResource()?

obtuse gale
#

hm?

#

Can I just chuck the image in the resources file then access it from within the plugin?

distant sun
#

Try to see if saveResource also work with images. You might be able to access it from inside the jar but idk how

obtuse gale
#

doesnt saveResource imply like... that its aves it?

#

Im tryna load

heady birch
#

@frigid badge whats best layout:

aircraftService.findByOperator(Operator operator)
operatorService.findAircraft(Operator operator)

oak coyote
#

You can use saveResource on an image

obtuse gale
#

but im not tryna save an image im tryna get an image

oak coyote
#

That’s what it does you can get the image from resources

#

It’s a little misleading of a name

hot hull
#

@ocean quartz I have such good ideas on how to make the dinosaurs but not sure how doable it'll be since they'll be pretty intense

frigid badge
#

saveResource saves it

#

you can just get a stream from the resource

#

@obtuse gale

#

find by operator

heady birch
#

Spring is being slow 😦

#

Oh my bad

distant sun
#

saveResource saves it
@frigid badge to data folder

frigid badge
#

yes and he only wants to load it from his resources folder.

#

here's an example of just loading it as an image ImageIO.read(getClass().getResource("/images/squared_menu_main.png"));

#

@obtuse gale

heady birch
#
final d = new DataInputStream(null);
System.exit();
oak coyote
#

That is definitely the final d 😔

heady birch
#

I hate imageio

distant sun
#

Big brain lemmo

heady birch
#

This pagination kind of beautiful

old wyvern
#

aren't location's immutable? No need to clone it @obtuse gale
@frigid badge
sadly its not 😂
Spigot 👏

#

or rather Bukkit I guess

frigid badge
#

f bukkit

obtuse gale
#

whats better performance wise, I heard someone say if I wanted to like set a block I should do
Add to location
Set block
Subtract intial add,
instead of cloning, or is the difference negligible

old wyvern
#

Its possibly better to add and substract

oak coyote
#

It’s does cause less objects

old wyvern
#

Atleast if thts being run a lot of times

obtuse gale
#

whats the best way to handle players in my games

#
    @EventHandler
    fun onInteract(event:PlayerInteractAtEntityEvent){
        val game = gameManager.games.firstOrNull { event.player in  it.players }
        if(game == null || game !is TicTacToe) return

// Do stuff here - the player is in a game of TicTacToe
``` This is what ive got atm, idk if its a good way to do things tho....
heady birch
#

whats it?

#

Kotlin thing

#

Maybe have Map<Player, Game>

#

Quicker lookup (since its every interaction)

obtuse gale
#

well games can have multiple players

#

atm Game has a val list = mutableListOf<Player>

#

and I just add the players to that at the start, but i feel its a weird way to do it

heady birch
#

I would do

#

Have a map of all players and there current games

#

Maybe make it static in the game class

#

When you add a player to a game you add it to the map

obtuse gale
#

what would the map be?

heady birch
#

<player, game>

obtuse gale
#

But there can be multiple players per game

#

or does that not matter

heady birch
#

Doesnt matter

obtuse gale
#

ah right

heady birch
#

As long as a player cant be in 2 games at once

obtuse gale
#

cos I still add the same instance

#

yeha

heady birch
#

Just so you can quickly lookup on the events

#

Instead of doing

obtuse gale
#

and chuck it in a companion object?

heady birch
#

yeah

obtuse gale
#

I still need to run instanceOf checks tho? Isnt that the slow bit?

heady birch
#

for game in games {
for player in players {
if player == thisplayer {
}
}
}

vs

game = map.get(player)
if game == null || !(game instanceof TickTacToe) {
return
}

//do stuff

#

Compared to the iteration I think it should be fine

obtuse gale
#

alright

#

Thinking about it each game can only ever have two players

#

should I use a Pair for that or stick with a list or something?

#

I guess its expandable if I use a list, that way if in future I decide to have more players I can

oak coyote
#

If you have similar games you could consider Compat

heady birch
#

Whats compat?

oak coyote
#

Ahh yeah it may not be it’s real name it’s used primarily for adding support for multiple plugins aka all the different factions plugins by having methods that are identical in name in each handler

#

But in theory it could be used for the different games

#

But I feel it’s too limiting actually

obtuse gale
#

Niall how owuld I get the players in a game tho?

#

cough @heady birch cough

heady birch
#

Well you have the game

#

game = map.get(player)

#

game.players ?

obtuse gale
#

Wait so should game contain a list of players?

#

I have the game instance but not the players

#

and the map is <Player ,GAme>

heady birch
#

it might be useful if the game had a list of players

obtuse gale
#

so should I just add the list of players to the itnerface?

#

Then when would I set that list in the implementation

jovial warren
#

val players: MutableCollection<Player>

#

and then just implement it

#

MutableCollection because that allows you flexibility with the type of collection you want to use (e.g. set, list, etc.) and it allows you to manipulate it

obtuse gale
#

When should I add the players to the list?

remote goblet
#

okay nerds kittyshy

heady birch
#

When they join the game

remote goblet
#

how the fuck would you make a client like badlion

#

would it just be one chonker of a forge mod

heady birch
#

A client for the server and then render the received data

#

As with most client like applications

jovial warren
#

no @remote goblet , it’s a massive collection of utilities and a lot of design work by Badlion’s designers

heady birch
#

Ori support

obtuse gale
#

To get an itemframe by a location would I have to use getNearbyEntities?

heady birch
#

Most likely

obtuse gale
#

as the radius would I have 1 or 0?

#

Since I only want it for the block its on

heady birch
#

1 To be safe

surreal quarry
#

try with 0

obtuse gale
#

well there are itemframes around it

surreal quarry
#

it'll be more efficient if you can do it like that

obtuse gale
#

here's an example of just loading it as an image ImageIO.read(getClass().getResource("/images/squared_menu_main.png"));
@frigid badge Caused by: java.util.zip.ZipException: invalid bit length repeat

frigid badge
#

code?

obtuse gale
#
 val bottomRightRenderer = ImageRenderer.create(ImageIO.read(this::class.java.getResource("/maps/bottom_and_right.png")))```
frigid badge
#

make sure your resources are correct in the jar

obtuse gale
#

yeah they are

frigid badge
#

it's caused by your ImageRenderer

obtuse gale
#

oh

#

im using johnnys lib, is it thats fault, or is it that im passing it in a dodgy picture or something

frigid badge
#

send me the lib

#

is it on gh?

obtuse gale
frigid badge
#

honestly no idea.

#

make sure to ImageTools.resizeToMapSize(catImage); first

old wyvern
#

Try replacing the image in the jar with a fresh copy without building

obtuse gale
#

what?

#

lemmo trying that now

old wyvern
#

Open your jar

#

delete the image

#

throw in a fresh copy of the image

obtuse gale
#

oh alright

frigid badge
#

to make sure it isn't due to building basically

obtuse gale
#

ah ok, trying now

old wyvern
#

I had a similar issue earlier

#

I couldnt be bother with fixing it at that time so I just did that, you probably need to make a custom task copy the file

obtuse gale
#

oh wow

#

yeah that fixed ti

old wyvern
#

😂

obtuse gale
#

Nowwww

#

How do I make it like not do that lol

#

heyo

#

when will deluxe be updated to 1.16.2?

onyx loom
#

theres about a thousand deluxe plugins

obtuse gale
#

deluxe chat xD

onyx loom
obtuse gale
#

ah right, ty.

obtuse gale
#

Can anyone help me??

hot hull
#

Ah yes because we read minds.

obtuse gale
#

So how do i make it so that certain lp groups can see liek certain buttons kind of thing

hot hull
#

Wrong channel

obtuse gale
#

I seemed to get ignored in the other one

hot hull
#

Because you're saying "hi help me" we don't read minds, ask the actual question and someone will help if they know

young kettle
#

is there a plugin that would allow you to buy/sell items such as a diamond hoe durability X ID?

#

im planning on making a bunch of new custom items using the durability ID's on items

#

im using 1.12

#

but i need to know if those items can be actually sold/maybe even bought so they function properly.

hot hull
#

Wrong channel

young kettle
#

ah right

#

general plugins im guessing mb

regal gale
#

I still don't get why most people in Spigot discord hates kotlin because it's so-simplified Java thonking

distant sun
#

🤷

hot hull
#

Because they are smoothbrains lol

prisma wave
#

4head

#

Sxtanna

#

Not everyone there is dumb though

#

Proxymist is a Clojure user

hot hull
#

The majority is

steel heart
#

I still don't get why most people in Spigot discord hates kotlin because it's so-simplified Java thonking
@regal gale I mean there is always this argument like “oh boilerplate reduces isn’t always good” or like “I heard it lacks in performance” :/

hot hull
#

They worries about wrong performance

#

worried*

#

boilerplate 🤢

public final class Node {

    private final Location location;
    private final Material material;

    public Node(final Location location, final Material material) {
        this.location = location;
        this.material = material;
    }

    public Location getLocation() {
        return this.location;
    }

    public Material getMaterial() {
        return this.material;
    }
}
steel heart
#

Funny thing, why even use java if you only care about speed

obtuse gale
#

Go C++ then fingerguns

steel heart
#

Ye

prisma wave
#

r

#

rus

obtuse gale
#

@ Niall

hot hull
#

So I'm trying to make "natural" looking material nodes, anyone got any suggestions on how one would achieve that (otherwise I'm just gonna experiment random shit)

prisma wave
#

BlockFace.values().random()

#

what

#

wdym

hot hull
#

sec lemme show an example of what I'm trying to recreate

distant sun
#

Material nodes?

hot hull
#

Basically Stone, Iron, Flint, etc

regal gale
#

Shade?

hot hull
#

What?

distant sun
#

You want to spawn ores on the map?

hot hull
#

Yes Gaby

distant sun
#

Could use worldedit and create structures I guess

hot hull
#

hmm

distant sun
#

Or just bukkit if the structures are small

hot hull
#

Gonna use worldedit for other stuff anyways so might as well for this

distant sun
#

Commission or for fun?

hot hull
#

Look at what I'm working on

#

You really think anyone would commission something like this?

distant sun
#

Yes?

surreal quarry
#

lol

hot hull
#

No Gaby no

distant sun
#

People play rust un minecraft

hot hull
#

You do realize it's a massive game, which would be hella expensive, ain't nobody gonna spend that much

distant sun
#

Why are you so sure

#

Lol

#

Anyways, have fun

heady birch
#

People talking "big project" with 100 classes 🙄

hot hull
#

From seeing how people commission shit in the past :((

prisma wave
#

"big project"

(defn main [& args]
  (println args))
#

clojure moon

distant sun
#

Horrible

prisma wave
#

no

#

you are wrong

#

first class functions

#

macros

#

lightweight syntax

distant sun
#

Horrible syntax*

prisma wave
#

it's still light

heady birch
#

Horrible eyes

prisma wave
#

#(println %) lambda

distant sun
#

ew

prisma wave
#

tfw a rust "noob" talks about their new "macro" and your just like "no :)"

#

plebs ```rust
if condition {
blah
} else {
blah
}

```clojure
(if condition
    (blah)
    (blah))

clojure master mind

distant sun
#

Bm

#

Please

#

Stop

hot hull
#

Agreed ^

distant sun
#

My eyes are bleeding

#

Btw did jhonny left?

surreal quarry
#

bm how do you do multiple things in your if block

hot hull
#

Nope

surreal quarry
#
(if condition
    (
      blah
      blah
     )
    (blah))```?
distant sun
#

You dont

hot hull
surreal quarry
#

ew =

hot hull
#

ok boomer

distant sun
#

Check their wiki

hot hull
#

I did but it's confusing as shit, should be what I put

#

Was hoping you used it in the past fingerguns

prisma wave
#

@surreal quarry the first list is the if, the second is the else

#

so yeah something like this

#
(if condition
  ((println "1")
   (println "2"))
  (println "Else"))
surreal quarry
#
(if condition
    ((blah)
      (blah))
    (blah))```?
prisma wave
#

not sure that's formatted properly

surreal quarry
#

ah ok

prisma wave
#

but yeah

hot hull
#

ew again

surreal quarry
#

kinda ugly :)

prisma wave
#

meh

surreal quarry
#

lol

prisma wave
#

looks fine in practice

surreal quarry
#

i could jsut never get used to having to wrap every line in parenthesees

prisma wave
#

you do get used to it

#

also it makes sense

#

since the parentheses are for function calling

surreal quarry
#

its like ; with extra steps

prisma wave
#

well in terms of the syntax, if takes a list of expressions

#

it just so happens that lists and expressions are both made with ()

#

since, you know, it's a lisp

surreal quarry
#

wack

frigid badge
#

I mean it's good that there's so much variety in languages.

prisma wave
#

indeed

surreal quarry
#
fun test(t: String.() -> String) {
    print(t("abc"))
}

fun otherTest(t: (String) -> String) {
    print(t("abc"))
}
#

whats the difference between these two

#

cause they seem to do the exact same thing

prisma wave
#

in that example nothing

#

the difference is for the caller

surreal quarry
#

like (String) vs String.()

prisma wave
#

the first one has the String as the receiver (i.e this) the second it's a parameter (i.e it)

surreal quarry
#

when would you use one or the other?

#

does it not matter

#

or do they have a specific use case

prisma wave
#

doesn't particularly matter

#

just depends on if you want the user to have to type it or not

surreal quarry
#

oh ok

#

lol

prisma wave
#

the only time you might want to consider it is if you have nesting

#

as kotlin fun1 { fun2 { fun3(this@fun1) } } is gonna be more annoying and messy than kotlin fun1 { a -> fun2 { b -> fun3(a) } }

surreal quarry
#

ah ok

#

good to know

distant sun
#

I did but for 1.8 @hot hull

hot hull
#

These API docs really wanna make me yeet

#

Already figured it out Gaby :p, but yea the docs are actual garbage

distant sun
#

Ikr

#

Getting help with 1.8 is even worse

hot hull
#

"Ah yes so we use an Actor from an EditSession" now have fun trying to figure out how the fuck to get an actor or an edit session from a user, cause why would we document that

frigid badge
#

I have the perfect solution

#

no more bukkit