#dev-general

1 messages · Page 161 of 1

pastel imp
#

will just do the core plugin

steel heart
#

👍

pastel imp
#

wait would it be a good idea to have EVERY custom plugin in one single plugin xd?

steel heart
#

Uh sure

pastel imp
#

I mean... 50mb plugin probs

#

buuuutt

#

ye

hot hull
#

If you approach it properly yes

steel heart
#

I mean I’d still use them plugins like luckperms

pastel imp
#

yeye

#

speaking about the custom ones

hot hull
#

And if you get 50mb of code you're doing something wrong lol

pastel imp
#

I mean

steel heart
#

Yeah my enchant plugin is fat :6

pastel imp
#

not exactly

#

if it's rlly lots of things

#

ye I am doing a custom enchant plugin rn too

#

welp I mean

#

currently my Core plugin

#

is 51kb

#

oof

steel heart
#

Mine is fatpeppo

#

10mb

hot hull
#

Mine is 600kb, and it has 9 plugins condensed

pastel imp
#

LOOOOL

#

ok that's just too much

#

10mb?

#

for an enchant plugin?

hot hull
#

Conclure, assuming JDA?

#

Wait what

pastel imp
#

you gotta compact that sh@

hot hull
#

The fuck is you doing :kek:

pastel imp
#

bruh

steel heart
#

For now I just shade packages like com, net and org etc

pastel imp
#

my core plugin has like 10 custom enchants rn

steel heart
#

Will probably organize it later

hot hull
#

Ah yes the, help my Hello World ploogin is 1GB GWvertiPeepoSadMan

pastel imp
#

lol

steel heart
#

I have like 100 but my goal is 500 on release

pastel imp
#

WHERE TF

#

will you get that many custom enchants

hot hull
#

Show one of the classes for it Conclure

pastel imp
#

.-.

steel heart
#

Well my main focus is making an incredible api

pastel imp
#

where tf do you have 500 custom enchants ideas?

steel heart
#

Well I shade in like a lot of stuff

pastel imp
#

I will have in total like 40

steel heart
#

Idk, skyvlock, factions and other enchants

pastel imp
#

welp I could have more but I don't want useless enchants

#

like most plugins have

hot hull
#

Why not go modules style then Conclure?

#

Surely noone wants all enchants at once

steel heart
#

Like tokenenchant?

pastel imp
#

ye^^

hot hull
#

Idk I don't follow that shit

steel heart
#

Maybe I should

pastel imp
#

uuhuhuhu big idea

#

make it so you download the plugin

#

and then you do a cmd

steel heart
#

Well I have stuff like custom enchant currency, xp, enchtable, blacksmith and all that stuff

pastel imp
#

and you click on the enchants you want to enable

#

and it installs those modules

#

and voila

steel heart
#

Yeah I could make an enchant cloud

pastel imp
#

ye

#

ecloud alert

steel heart
#

Yeah well very much is still wip and it won’t be 10mb by the end

#

It’s just for simplicity

#

Libraries like guava is already in spigot for instance

pastel imp
#

oof

#

still a little bit too much xd

steel heart
prisma wave
#

@hot hull perhaps the Location is being modified elsewhere? Maybe return a clone

hot hull
#

I'll try, but I'm legit printing it out 1 line after so there's no way it could be

#

:bruh:

Location{world=CraftWorld{name=world},x=-259.0,y=68.0,z=41.0,pitch=0.0,yaw=0.0}
Location{world=CraftWorld{name=world},x=-259.0,y=68.0,z=41.0,pitch=0.0,yaw=0.0}
[18:06:14 INFO]: Spawner not present
heady birch
#

@heady birch why isn't it?
@pastel imp

#

They tell me decouple it!

#

Your choice really

#

I'd personally do it separately

pastel imp
#

They tell me decouple it!
@heady birch decouple?

#

what?

viscid charm
#

Ok i kinda see this now ```JAVA
private final LitTestPlugin main;

public ConfigValues(LitTestPlugin main) {
    this.main = main;
}
When object is created in the main, it will always run the constructor
#

But my question is

#
    private final LitTestPlugin main;

    public ConfigValues(LitTestPlugin main) {
        this.main = main;
    }```
CAN we do something like this without having any parameters in the constructor brackets?
steel heart
#

Nope

#

That’s why I don’t use di of main if I don’t have guice or something.

#

I just use final Plugin plugin = JavaPlugin.getPlugin(Main.class);

heady birch
#

decouple is like seperating parts

lost edge
#

I've made a number of spigot plugins but i'm looking to get into making some mods and I was wondering if anyone was aware of a client side block break event for forge? Or at least a way to prevent players from breaking blocks on the client side.

steel heart
#

Haven’t worked with Forge for a while

#

I think they have java docs?

lost edge
#

The official forge ones are limited and there are unofficial ones but I cant find anything about client side block break events or something similar. I've seen it done in mods like SkyBlockAddons so I know its possible to prevent a player from breaking certain types o blocks...

steel heart
#

There is

#

You should probably ask in the Forge discord

#

That’s where all Forge pros hangout

lost edge
#

Hmm thx I'll look into joining it

hot hull
#

What would be the difference in using server instead of client block break?

#

(other than the fact it would be only visible to the one user)

steel heart
#

Idk, making not everything based on the server side HanShrug

hot hull
#

Smh

steel heart
#

hms

lost edge
#

Some events require the mod to be on the server

steel heart
#

a remote server?

lost edge
#

Single player world or a server itself

steel heart
#

Aight

#

Well when running your mod you’ll always have a server running whether it’s internal or a remote one

#

iirc

viscid charm
#

Is this possible to do without having any parameters for Hello() constructor?

#
public class TestCode {


    public void show() {

        System.out.println("Okay!");

    }

    public static void main(String args[]) {

        TestCode a = new TestCode();
        Hello obj = new Hello();
        obj.hello();

    }

}

class Hello {

    private TestCode classname;

    public Hello() {

        TestCode classhello = classname;

    }

    public void hello() {
        classname.show();
    }

}```
steel heart
#

Dependency injection without passing it through the constructor?

#

No

viscid charm
#

I am just having harder time seeing stuff with parameters in methods

steel heart
#

Yeah same

#

You don’t have to pass your main through all classes

#

Just use JavaPlugin.getPlugin(Main.class)

versed ridge
#

uh

viscid charm
#

I am trying to know like all the ways to communicate with TestCode in Hello without creating objects directly into Hello class

steel heart
#

Worst case scenario it would be some nano seconds slower

versed ridge
#

Pretty sure you shouldn't use that?

steel heart
#

Why not?

dusky drum
#

getplugin(class) is kinda bad

steel heart
#

Say that we have an object that requires your main and you invoke its constructor very often would make it annoying to pass main every time.

#

How is it bad

viscid charm
#

whos constructor do you invokE?

dusky drum
#

how is it bad just sending main into all classes that need it ?

viscid charm
#

the object's?

steel heart
#

Not bad

#

But it’s not needed

dusky drum
#

its faster

#

more reliable

steel heart
#

Okay rn

#

Can you do some testings

#

I want to see how much faster it is

dusky drum
#

i cant do testing

steel heart
#

It’s really not more reliable either

#

It’s the same

viscid charm
#

Yo can you explain what you meant by invoke it's constructor? Did you mean the object's constructor?

steel heart
#

Only thing is that it breaks oop

dusky drum
#

if you get class its not always allow you to use all its functions.

steel heart
#

Yes

#

Wym gasper

dusky drum
#

since its just gonna send you javaplugin main

steel heart
#

It returns the same instance ?

deft patrol
#

Wouldn't a singleton pattern be better if we suggest not using dependency injection?

dusky drum
#

yes but you have to convert it.

steel heart
#

Well we have singletons

#

JavaPlugin.getPlugin(

viscid charm
#

what is singleton pattern or singletons

steel heart
#

gasper how?

#

I don’t see what you would convert

viscid charm
#

WHAT would singleton pattern or singletons BE IN THIS piece of code?

#
public class TestCode {


    public void show() {

        System.out.println("Okay!");

    }

    public static void main(String args[]) {

        TestCode a = new TestCode();
        Hello obj = new Hello();
        obj.hello();

    }

}

class Hello {

    private TestCode classname;

    public Hello() {

        TestCode classhello = classname;

    }

    public void hello() {
        classname.show();
    }

}```
dusky drum
#

even supporters at spigotmc say its way better to use dependency injections.

steel heart
#
class MyObj {
  private final Main main = JavaPlugin.getPlugin(Main.class);
  public MyObj() {

  }
}```
dusky drum
#

since with JavaPlugin.getplugin you can get NPE

steel heart
#

What’s their reason then?

#

Not if you use it internally

viscid charm
#

No i meant like in terms of my code here guys

#

not in spgiot code

deft patrol
#

I mean, it is, but I am still going along with your heretical ideas @dusky drum

viscid charm
#

How do I use what u guys said

steel heart
#

You’d make a static singleton then

deft patrol
#

A singleton, basically put, is a static method that returns your plugin instance

dusky drum
#

and if you use injections youre more likely to have more readable and easier to use code,

deft patrol
#

In this case

viscid charm
#
public class TestCode {


    public void show() {

        System.out.println("Okay!");

    }

    public static void main(String args[]) {

        TestCode a = new TestCode();
        Hello obj = new Hello();
        obj.hello();

    }

}

class Hello {

    private TestCode classname;

    public Hello() {

        TestCode classhello = classname;

    }

    public void hello() {
        classname.show();
    }

}```
How do you implement SIngleton in this ^?
steel heart
#

Gasper yes I can agree you it’s good for structure and oop principles but I wouldn’t say it’s faster (worst case scenario just some nanos). In fact they’re not real static singletons and it only reduces boilerplate.

deft patrol
#

I generally use dep injection cuz it's good practice, but I also use the singleton pattern when I am given no other choice

dusky drum
#

its just better to use injections, example what if you're not on spigot and you dont have JavaPlugin.getPlugin ??

viscid charm
#

Then you cant use singletons?

dusky drum
#

its just bad pratice to use javaplugin.getplugin if you ask me.

steel heart
#
class Main {
  private static Main instance = null;

  public static void main(String... args) {
    instance = this;
  }

  public static Main getInstance() {
    return instance;
  }
}
class Other {
  {
    Main.getInstance();
  }
}```
#

If you’re going with dependency injection use guice then

prisma wave
#

It's kind of a bad practice

#

DI is always going to be better

dusky drum
#

^^

prisma wave
#

In a purely object oriented language, static doesn't exist

steel heart
#

Depends on what you define as better

prisma wave
#

in what way would it not be better

steel heart
#

It’s less boilerplate to use the JavaPlugin.getPlugin

deft patrol
#

It's better having as little instantiated objects as you can, that's what dep injection helps reduce

viscid charm
#

^ i was told that

steel heart
#

Initiated?

dusky drum
#

bukkitrunnable lets say bukkit/spigot drops that function?

prisma wave
#

@steel heart neglible difference

steel heart
#

Well I don’t like having hundreds of this in my main

prisma wave
#

not an excuse

steel heart
#

Doomful you’re really not initiating anything

prisma wave
#

You're using an object oriented language

steel heart
#

Just creating a reference

prisma wave
#

So write object oriented code

steel heart
#

Yes that’s true alex I said that you’d use di for oop and structure

#

Although I use JavaPlugin.getPlugin because it takes away this spam

dusky drum
steel heart
#

The this spam

#

If I use di then I use guice

viscid charm
#

what is guice tho?

prisma wave
#

it shouldn't be spam

#

If you have your code structure setup properly

deft patrol
#

I might be wrong, but using static to have the main class stored will cause that object to get stuck in the garbage collection process

dusky drum
#

only where you could have spam is in registering listeners.

steel heart
#

Alex that’s true

prisma wave
#

@deft patrol correct

#

Static references are never gc'd

steel heart
#

Doomful true but JavaPlugin.getPlugin is not a real static singleton

prisma wave
#

it's kind of an exception

#

But not really

#

The principle still applies

#

It's a bad practice

steel heart
#

Yep

prisma wave
#

It creates tight coupling that isn't explicit

#

And isn't OOP

#

Bad stuff

steel heart
#

Yes it isn’t oop although you don’t have to pass your javaplugin main class explicitly in every class constructor almost

dusky drum
#

idk why you have to pass it to almost every class?

steel heart
#

And for very big projects it’s a negligible difference if you use di or JavaPlugin.getPlugin to obtain main

hot hull
#

Atleast noone suggested lombok yet sheesh

prisma wave
#

In terms of what?

steel heart
#

Gasper

prisma wave
#

neglible difference in what?

dusky drum
#

imagine what LuckPerms main class only has like 100 this and you're saying thats spam?

#

and tahts mostly due to this.blablba

viscid charm
#

is LuckPerms bad or good?

dusky drum
#

God

viscid charm
#

in terms of good

#

Everyone seem sto say its good

steel heart
#

The project as an entirety. It’s not like it’s going to affect performance and doing an exception for main wouldn’t suddenly make your entire plugin break oop and unstructured

dusky drum
#

best Perms plugin out there..

viscid charm
#

W#hy is that?

steel heart
#

It has a good structure

viscid charm
#

OH its just best in terms of PERMission plugins

steel heart
#

Well anyways alex big projects should use guice which would defeat my point anyways

hot hull
prisma wave
#

The project as an entirety. It’s not like it’s going to affect performance and doing an exception for main wouldn’t suddenly make your entire plugin break oop and unstructured
@steel heart

It would though. Like I said, it creates implicit tight coupling which is usually a bad idea

steel heart
#

Well if you feel like one line of that fake static singleton JavaPlugin.getPlugin then you’re very pedantic. And why is it a bad idea?

prisma wave
#

because it destroys any form of clear code structure

steel heart
#

Lol

dusky drum
#

text is disappearing hmmmm

steel heart
#

Well oopwise yes that’s totally true. And I fully agree that static should be avoided 99% of the time as well as not using di

prisma wave
#

Tight coupling is usually a bad idea anyway

#

Well oopwise yes that’s totally true. And I fully agree that static should be avoided 99% of the time as well as not using di
Then what's your point?

steel heart
#

Already told you?

#

I mean if you only want to work with oop and avoid static totally then you shouldn’t code java anyways

#

There exist better language for pure oop

prisma wave
#

Such as?

#

Also that's dumb

steel heart
#

How

prisma wave
#

Java is very much an object oriented language

#

Everything has to be in a class

#

Static is a small exception

steel heart
#

That’s true

dusky drum
#

yo how to make static value in kotlin like
in java where you have all cap styled variables?

steel heart
#

I just say that if you want to code in pure oop then you should find some language which doesn’t allow static then if that is the importance

dusky drum
#

like atm i have it private val TABLENAME = "CropStorage"

steel heart
#

Think there is something like top class functions idk Alex knows better

prisma wave
#

companion objects are effectively static

#

As are top level variables / functions

dusky drum
prisma wave
#

I just say that if you want to code in pure oop then you should find some language which doesn’t allow static then if that is the importance
That doesn't mean you should violate Java's key principle

#

@dusky drum send code

dusky drum
#
private val TABLENAME : String = "CropStorage"
steel heart
#

Well that depends, you’d use static for things like constants anyways

prisma wave
#

send the full code

#

@steel heart getPlugin isn't a constant though

dusky drum
#

sure

steel heart
#

Yes if you’re going pure oop sure. But I don’t see the big problem with using getPlugin consider it’s not slower, and only using that one isn’t going to affect your entire project to totally violate oop and destroy your project structure

prisma wave
#

@dusky drum because it's not "static"

steel heart
#

This is an endless discussion anyways

prisma wave
#

Put constants in a companion object

dusky drum
#

thats what im asking how can i make it static?

prisma wave
#

@steel heart you're going in circles here. I told you why it does violate OOP and could make your code structure difficult to maintain

#

@dusky drum companion object

dusky drum
#

oke

#

done

#

and my message is goner

steel heart
#

Well you’re not differing your answers either. I don’t see how just using getPlugin would make my code structure difficult to maintain

dusky drum
#

i love how this conversation is still going on :3

steel heart
dusky drum
#

i remember how i used to say kotlin is bad like less than week ago, now i code in kotlin HMMMMMMM

prisma wave
#

@steel heart because it creates implicit tight coupling

#

Tight coupling is bad enough, but when there's no clear links it can turn into spaghetti easily

#

By using getPlugin you instantly tightly couple your code to the main class without making it clear from the constructors' signatures

steel heart
#

Yeah kotlin is superior

#

Yes it is tight coupling but I don’t see how that would suddenly make your entire code structure difficult to maintain.

#

It could end up being more spaghetti yes true

onyx loom
#

i remember how i used to say kotlin is bad like less than week ago, now i code in kotlin HMMMMMMM
@dusky drum literally said by everyone 🙂

dusky drum
#

i kno

#

kinda confused with hikaricp in kotlin right now

steel heart
#

Yeah kotlin bad

#

Sike

dusky drum
#

go away

#

static user

steel heart
#

Lol I don’t use static unless it’s convenient

dusky drum
#

XD

steel heart
#

You want to see my first plugin?

oak coyote
#

I always use static it’s fun

steel heart
oak coyote
#

😂😂

#

IntelliJ Told me to make it static to fix an issue so I just do đŸ‘ŒđŸ»

old wyvern
#

🙃

prisma wave
#

I don’t see how that would suddenly make your entire code structure difficult to maintain.

It could end up being more spaghetti

hot hull
#

Spaghetti is good

#

Especially when you put lots of cheese on it

dusky drum
#

welcome the forst of y

hot hull
#

Goodbye

dusky drum
#

xd

onyx loom
#

u must be SO funny frosty

#

i bet you have A LOT of friends

oak coyote
#

The kids in the playground think he’s cute

onyx loom
#

😳

oak coyote
#

😊

deft patrol
#

Didn't know about google guice until I've read the rants here, now I will revamp my huge ass plugin, thanks

steel heart
#

@prisma wave rarely then well, I don’t have a spaghetti with my 70 classes

#

Oh well I did use guice there but anyways

#

But anyways I did use getPlugin as well

oak coyote
#

Spaghetti is fun

steel heart
#

Well I mean static singleton is used for explicitly guarantee that only one instance will be given during runtime I guess

#

Or I mean that’s kinda what it is for but JavaPlugin.getPlugin isn’t too bad wesmart

prisma wave
#

Static bad

steel heart
#

Yeah I agree

#

Won’t stop using getPlugin in exchange for explicit di and ioc pattern

heady birch
#

you must help me

#

i need containers

#

i cannot work without them

analog crater
#

Static isnt all bad

#

It can be useful

steel heart
#

Yaa

analog crater
#

It just gets abused the funked out

#

By "professional" spigot devs

steel heart
#

Very exceptionally true

heady birch
#

This part specifically hurts so much to see new > ArrayList<>(Collections.singletonList("discord"));

#

From earlier

steel heart
#

hahah

#

I’m going to pr that

#

Also have you looked into that authors other repos? It’s all masterpieces

analog crater
#

Send link. I want to cringe

steel heart
heady birch
#

Wait do you mean the rest are masterpeices as in good quality?

steel heart
#

Obviously top class highest quality

heady birch
#

S.java

analog crater
#

I think this person got an anvil dropped onto him/her

steel heart
#

Lol yeah and his bio is 👌👌

prisma wave
#

looks like someone should learn kotlin

#

Actually

#

No

#

The kotlin gang doesn't want code like that

steel heart
#

lmao

analog crater
#

The java gang doesn't want it either. The js gang can have it

prisma wave
#

Fun fact

#

It is physically impossible to not write clean code in clojure

steel heart
#

Objectively true

heady birch
#

And in rust

analog crater
#

Rust is good

heady birch
#

lol

#

remove the laughing face immediatley

#

and teh doubting person

#

and the closure emoji

#

A s s h o l e

steel heart
analog crater
#

Rectum*

#

And sphincter

prisma wave
#

Imagine

analog crater
#

That you wrote what we should imagine about

prisma wave
#

no

#

Don't imagine that

heady birch
#

neeed help pls i buy plug and dont have dowload need buy again WTF i payment

analog crater
#

Get scammed bitch fingerguns

prisma wave
#

please tell me why rust :)

heady birch
#

oxi gen + water 😩

analog crater
#

..

#

You missed out on chemistry lessons

heady birch
#

Lol I cant remember 😐

analog crater
#

Rust is the chemical reaction between iron and oxygen. 4Fe + 3O(2) -> 2Fe(2)O(3)

heady birch
#

Close 🙂

analog crater
#

Is it?

#

I swear thats reaction

heady birch
#

No i mean I was close

analog crater
#

But its been like 2 years since I did it

#

I had to work it out

heady birch
#

10 on both sides so probably

analog crater
#

Its exothermic right

heady birch
#

Idk

#

That where it gives off more energy or something

#

compared to Endothermic

analog crater
#

It releases energy as heay

#

Endothermic is opposite

#

You can also release energy as light or sound or even electrical

#

Electriciy*

#

A level Chemistry is fun

empty flint
#

Is there a complete list of spigotAPI versions?

#

talking about the "1.16.2-R0.1-SNAPSHOT" and such. Not every version has the R0.1-SNAPSHOT suffix, I'd like to know which

steel heart
#

I think only 1.16.1 has 0.4

#

iirc

#

Might be wrong

empty flint
#

That where it gives off more energy or something
@heady birch Exothermic means it releases energy, in whichever form suitable but most often as heat or light. Endothermic means the reaction requires the absorption of energy, ~~exclusively ~~ usually heat energy. Meaning the thing gets colder because it sucks energy from the environment and stores it in the bonds of the atoms of the resulting chemicals.

prisma wave
#

Bruh why are we talking about chemical reactions

steel heart
#

Dev general (::

empty flint
#

I think only 1.16.1 has 0.4
@steel heart I know there are other ones as well. I just need the whole list and which spigot version has which spigot-api version

prisma wave
#

Kinda glad my exams got cancelled because exothermic and endothermic still confuse me

#

Actually that explanation is pretty good

#

I always thought exothermic would get colder since it's losing energy

#

But yeah that makes sense now

empty flint
#

Kinda glad my exams got cancelled because exothermic and endothermic still confuse me
@prisma wave Exo just means outward (think exoskeleton) and Endo means inwards. Both words describe the direction the energy goes...

prisma wave
#

yeah, I got that bit

#

It was the link between that and temperature and stuff

#

Pretty much the only part of chemistry that I found difficult

empty flint
#

How come there was no Spigot 1.16 version though?

#

it started with 1.16.1

analog crater
#

Just look at the maven repo

lavish notch
#

Anyone willing to give me a crash course to (Bukkit?) packets, or provide me the resulting code for this:

@ me

empty flint
#

Just look at the maven repo
@analog crater which one? where?

heady birch
#

RIP

heady birch
#

whoa nice

pastel imp
#

bruh

#

this brazilian dev

#

is making "Bukkript"

#

a kotlin api for minecraft

#

and he made this plugin for intellij

#

like it previews the GUIs

#

he's making

#

sadly only works with bukkript

#

lol

#

someone knows something similar for javabukkit?

empty flint
#

Is bukkript compatible with the spigotapi or is that its own thing?

pastel imp
#

I think it's like spigot in kotlin

#

not sure

empty flint
#

the issue with that is you probably have to wait quite a while longer for newer versions

pastel imp
#

it's like a skript plugin

#

you make scripts

#

for it

#

and it runs them

#

but like 2000X better

#

some tests he did

analog crater
#

What is so good about it? Explain

pastel imp
#

it's in kotlin?

#

and it's fast af

empty flint
#

it's like a skript plugin
@pastel imp I don't quite get it tbh, it's for skripting but in kotlin instead of java or what?

analog crater
#

What is it fast asf at?

empty flint
#

and how does it relate to spigot?

pastel imp
#

you know the plugin Skript?

#

it's something similar

#

and yes

empty flint
#

oh

pastel imp
#

he just explained

analog crater
#

Can it make super speady database transactions

empty flint
#

no I don't know that plugin :/

pastel imp
#

that it exists bukkript

#

and bukkript-api

#

the api is to work with spigot and bukkit

#

no I don't know that plugin :/
@empty flint welp search a little bit

#

honestly don't know

#

ask the questions to the dev

#

he's streaming rn

analog crater
#

Whats his twitch or a link

pastel imp
#

oh wait

#

let me send you the github link

#

he has docs

#

etc

analog crater
#

K

obtuse gale
#

send his twitch

pastel imp
#

twitch is DevSrSouza

analog crater
#

You said its like skript.. it just looks like a framework for plugins

pastel imp
#

it kinda is

#

welp

#

not sure

#

ask the dev

#

the questions

#

xd

#

he's speaking english now lol

#

sooooo

#

ask whatever you want

pastel imp
#

oof okay

#

after speaking some things with the dev above

#

I am gonna for sure make my server in 1.8

#

lol

empty flint
#

is that plugin only for 1.8?

manic ridge
#

Anybody experienced with Bungee/Waterfall and have any idea why players who login via Bungee are invisible?
If I VPN in and connect directly to the server, players are visible, but through Bungee nobody is visible. Other entities (e.g. items) are visible when I throw them, but players not

pastel imp
#

is that plugin only for 1.8?
@empty flint no

#

but he's using 1.8 to test it

#

and he explained why 1.8

#

is sooo good

#

for servers

#

etc

#

and why hypixel still uses 1.8

empty flint
#

and he explained why 1.8
@pastel imp Could you relay that info? I'm curious

pastel imp
#

welp in general 1.8 has some big fat long time

#

means most of the bugs in it already got fixed

#
  • it's a lot better to have 1.8.8
#

and support newer versions

#

than have for ex. 1.12.2 and support both newer and older versions

#

cause support older versions is a big risk

#

also performance is a lot better in 1.8

#

he gave an example of a brazilian server that only uses 1 server for their factions server

#

and has/had 1k players

#

playing at the same time

#

with 20 tps

empty flint
#

But aren't you missing all the 1.9+ features and blocks then?

#

idk if that's a tradeoff I'd make

pastel imp
#

yes you are

#

BUT if you even want to use 1.9+ blocks

#

then you can't support 1.8

#

and 1.8 has a big player base

#

sooo yes.. it's your choice

#

but it's always better to support the max amount of versions

empty flint
#

why is 1.8 so popular tho?

#

playerbase wise I mean

pastel imp
#

pvp

#

mostly

#

and also it's not heavy to play

#

and bugs

empty flint
#

doesn't seem worth to me but to each his own

#

I don't like too much pvp in mc anyway

pastel imp
#

it's not what you like or not

#

it's what the playes like

empty flint
#

ye ye I know

pastel imp
#

if you don't support 1.8

#

that's equals to a knife in your own idk

#

chest?

empty flint
#

I don't care tho, I don't make my plugins for the playerbase, I make them for myself and whoever else wants to use it can update or cry themselves to sleep, their choice.

pastel imp
#

you literally kill your server by half

#

oh if you are speaking about public plugins

#

then that's another thing

empty flint
#

Eh, the way I see it you kill your server by half the features or half the players. I'd rather kill half the players.

pastel imp
#

but ye

#

if you support lots of versions

#

you are gud

#

if not

#

don't expect people to download a lot

#

Eh, the way I see it you kill your server by half the features or half the players. I'd rather kill half the players.
@empty flint not exactly

#

cause

#

PACKETS

#

but anyways

ocean quartz
#

@pastel imp Ah I see you're a fellow Brazilian as well

#

Oh wait i think i already knew that

#

Ignore it xD

pastel imp
#

no

#

I am not

#

xd

#

I am a fellow portuguese @ocean quartz

#

xd

ocean quartz
#

Ah yeah, well I am both so it works xD

pastel imp
#

welp half portuguese half luxembourgish

#

wait you are portuguese?

#

.-.

#

say what

ocean quartz
#

I have dual nationality

pastel imp
#

brazilian and portuguese?

ocean quartz
#

Yeah

pastel imp
#

welp I have also double nactionality

#

luxembourgish and portuguese

#

xd

#

welp that's like "wtf"

ocean quartz
#

Portugal and Portugal 2 xD

pastel imp
#

facts

#

I didn't knew you were portuguese

#

lol

ocean quartz
#

Not many do ;p

pastel imp
#

makes sense xd

#

welp now I think I am going to 1.12.2 again

#

cause of the issues I am having in 1.8.8

#

with GameProfile

#

lol

#

welp actually.. wouldn't a 1.12.2 plugin work in 1.8 too?

ocean quartz
#

It should

analog crater
#

If you use features above 1.8 then no

pastel imp
#

ye

#

ik that

#

sooo

#

ok

#

gonna make my plugins in 1.12.2

#

I mean.. it's a legacy version

#

should work

analog crater
#

Just don't support 4 year old versions.

pastel imp
#

It should
@ocean quartz also not sure if it was you

#

but I am big fan of your GUI api

ocean quartz
#

If you wanna publish the plugin then i think it'd be better to make it in 1.16 and do support for 1.8
Yeah it is me

pastel imp
#

nha it's for private server

#

soo

#

also

#

@ocean quartz you could maybe do an intellij plugin like this for java bukkit

#

xd

#

would help making GUIs using your api with thins plugin

#

I mean it's from the dev above

#

and it's only for his project

#

it's like a preview of the gui

#

would be cool

#

just an idea

ocean quartz
#

Sounds fun actually, prolly hard but fun

pastel imp
#

ye

#

he said it's kinda hard

#

but if you are gonna do it

#

gl

#

also only noticed now that you actually have a command framework too

#

xd

#

an idea for that would be also adding listeners

#

etc?

steel heart
#

You can already add all necessary listeners?

surreal quarry
#

what would listener supprt change about default bukkit listeners?

pastel imp
#

nha not exactly speaking about that

#

this for listeners

#

would help clean out the code

#

a lot

#

xd

pastel imp
#

was speaking about multiple

#

not just one

#

xd

surreal quarry
#

yea

#

i lowkey though i had it set up for multiple

#

and just realized i didn't after i sent that

steel heart
#

I use a framework allowing you to do this Events.subscribe(Event.class).handler(e -> {

});

pastel imp
#

oof

steel heart
#

If you want to try it out I have custom version which fixes the dependencies and relocation

pastel imp
#

bruh sad part of using 1.8.8: can't use latest version of DM

#

😭

steel heart
#

DM?

pastel imp
#

DeluxeMenus

steel heart
#

Ah

split talon
#

why's bukkitrunnable bad?

onyx loom
#

because coroutines exist Kappa

#

iirc conclure only thinks theyre bad because he nitpicks on something small about them

steel heart
#

They’re useless in newer versions

viscid charm
#

Yo u guys think its good to have 2 Methods like this?

    public String getStringColor(String s) {

        return ChatColor.translateAlternateColorCodes('&', s);

    }
    public String getStringColorConfig(String s) {

        return ChatColor.translateAlternateColorCodes('&', main.getConfig().getString(s));

    }
empty flint
#

first one, yes

#

second one, no

viscid charm
#

Why no to second one?

steel heart
#

First one can be used in more scenarios

viscid charm
#

I am saying to have both or have first

#

Yes

#

SO ia m saying should I have both or just 1st one only?

steel heart
#

And it defeat the point of having the second one

empty flint
#
getStringColorConfig(s) { 
return getStringColor(main.getConfig().getString(s))
}```
viscid charm
#

doens't it make it shorter?

steel heart
#

The second won’t defeat the point of having the first one

#

It won’t be that much shorter

empty flint
#

if you have to make 2 methods, define the second one through the first

viscid charm
#

Wow fking genius maan

empty flint
#

that way if you change the behavior

viscid charm
#

why didnt i think of that

empty flint
#

you don't have to change it twice

#

secondly

#

you don't need 2 methods

#

main.getConfig().getString(s) is not a long ass method parameter

#

so just do getStringColor(main.getConfig().getString(s))

viscid charm
#

I know but i am like learning new and stuff so i am trying to create utils and stuff

empty flint
#

for sure, do it then if you want to.

steel heart
#

Generally avoid too much utils

viscid charm
#

Oh y?

steel heart
#

Static

viscid charm
#

cus I dont mind using ChatColor.translate

steel heart
#

Well unnecessary static

#

Not that

viscid charm
#

Wait this is not static tho

empty flint
#

no he means boilerplate

steel heart
#

Utils classes should contain static methods mostly ?

viscid charm
#

o i didnt konw that

empty flint
#

well yeah but why are static methods a problem?

viscid charm
#

Oh i am also avoiding static methods btw

#

cus i am new and Static methods seem a lot easier

empty flint
#

Oh i am also avoiding static methods btw
@viscid charm When using Util classes, don't

#

use static for Utils, they shouldn't be parts of any instance

steel heart
#

I mean the thing is that any method should in principle of oop take an instance

#

But things like factory and utils methods doesn’t take an instance

#

And therefore can be static

#

And static methods doesn’t really work with inheritance

viscid charm
#

Man its tough :/

#

Guys what would be the fastest way to learn more about creating plugins and stuff? Would it be to look at other peoples code on github? Or follow some plugin making series?

steel heart
#

both

#

doing little bit of everything and find what you learn the most from

#

I'd suggest to ask many questions though, it usually gives you a good perspective on your question

#

rather than googling

pastel imp
#

Facts

#

I ask atleast one question everyday

#

Even for stuff I know it works I ask

steel heart
pastel imp
#

Cause maybe there’s a better alternative

surreal quarry
#

also make sure you know at least the basics of the language you plan to make your plugins in

surreal quarry
#

just made my discord bot auto updating with github actions

#

now i don't have to log into my server and pull changes every time lol

obtuse gale
#

is kotlins delegation useful?

#

Still dont really understand how it works

viscid charm
#

Yo this stuffs pretty hard man :/ How long have u guys coding/doing java?

obtuse gale
#

Ive been going since like just before the start of this year probably

viscid charm
#

o hmm

hot hull
#

What exactly do you find hard?

viscid charm
#

idk like a lot of things like looking at methods with parameters, it takes a lot of energy. Lol, even something so basic like for loops I find difficult in terms of not knowing but, ability to utilitize it well for example. It would take me days to code just:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Or

$ $ $ $
$     $
$     $
$ $ $ $```
And like it kinda feels hard to create plugins. I looked at one guys code, the StringLore method litterally gave me headache lol.. Also wondering if programming is based on IQ or not
hot hull
#

I mean yea you're a begginer.. it's not going to be easy at the start, and you shouldn't go around looking at other peoples code for a comparison,

Also wondering if programming is based on IQ or not
No, it requires persistency.

viscid charm
#

Also it does feel shitty to know that even despite not knowing syntax I also find the actual algorithm/programming/logic part hard/unable to do lol

hot hull
#

kek

viscid charm
#

And I am also wanting to speed up the process :P

hot hull
#

If you're looking for speed, sorry but this may not be for you lol

viscid charm
#

hmm dang

obtuse gale
#

Something important for me when I was learning was to make sure I enjoyed what I was learning about - idk if this is for everyone, but I cant understand something if i dont enjoy it

viscid charm
#

Also yo it feels like theres so much stuff to remember and shit :/

hot hull
#

If you actually enjoy it, it's not hard at all/you're going to want to remember all of it

#

And there really isn't that much

viscid charm
#

U dont think theres that much?

hot hull
#

There isn't no, but like everything worth learning, it requires time

viscid charm
#

how mcuh do you code everyday?

obtuse gale
#

too much

hot hull
#

^

obtuse gale
#

and not enough at the same time

hot hull
#

Master procrastinator fingerguns

old wyvern
#

Worst thing to do is drop a project in between tho thinking youll do it later. Thats just the beginning of the end for that project then xD

#

Id suggest going through some problems from hacker rank or something if you want to get familiar with the logic part @viscid charm
Might take some time tho. Be patient

hot hull
#

Yugi, that's why you should always work on atleast 2 projects at a time, so if you get tired of one you switch to the other, and vice versa, meaning you're procrastinating, but still productive fingerguns

old wyvern
#

That never works out for me, so I just try to focus on one till its at the very least usable

hot hull
#

What kind of storage system would be the most efficient/safe when it comes to storing crucial information (less likely to break)?

old wyvern
#

crucial info such as?

hot hull
#

not "crucial" as in sensitive, just like if it breaks the entire server is fucked info

old wyvern
#

I mean, any database works I assume? just depends on how often you update the db or how you would handle any loss due to crashes I guess. Not too sure

obtuse gale
#

am I the only one that learnt by naming variables like shit and fuck?

hot hull
#

lol

#

sec Yugi, gotta fix an NPE and I'll show you

obtuse gale
#

imagine NPEs

old wyvern
#

alrighty frost

hot hull
#

Aj, I reworked the entire storage system without testing so yes NPEs fingerguns

obtuse gale
#

kotlin good

hot hull
#

Yes

viscid charm
#

So I just did this exericse

#
public boolean monkeyTrouble(boolean aSmile, boolean bSmile) {
  if ((!aSmile && !bSmile) || (aSmile && bSmile)) {
    return true;
  } else if ((aSmile && !bSmile) || (!aSmile && bSmile)) {
    return false;
  }
  return false;
}

public boolean monkeyTrouble(boolean aSmile, boolean bSmile)
^ my code. Answer code V

return (aSmile == bSmile);```
#

:c

obtuse gale
#

what?

#

whats the problem?

old wyvern
#

Thats okay frsh

#

Continue doing more

viscid charm
#

monkeyTrouble(true, true) → true
monkeyTrouble(false, false) → true
monkeyTrouble(true, false) → false
monkeyTrouble(false, true) -> false

old wyvern
#

Look up solutions when you can find em and try to understand the diff between your soln and theirs

viscid charm
#

if we run those values, what is the return value taht we get ^

#

yea i understood it

#

but i dont think I can think of something like that next time xD

old wyvern
#

Good Job

#

Now continue doing more problems

viscid charm
#

its better to do problems then to lok at other peoples code and try to understand it??

old wyvern
#

Yes

viscid charm
#

oh

old wyvern
#

Trying something and then checking someone elses soln is better than just reading someones soln cause you understand the thought process

hot hull
#

Need help due to shitty ass spigot still, the ones which have a type are spawners, the last location is the spawner I broke, issue is it doesn't actually recognize it's a spawner since the location doesn't match, any suggestions?

ZOMBIE, Location{world=CraftWorld{name=world},x=-252.5,y=67.8999969959259,z=41.5,pitch=0.0,yaw=0.0}
ZOMBIE, Location{world=CraftWorld{name=world},x=-254.5,y=67.8999969959259,z=41.5,pitch=0.0,yaw=0.0}
ZOMBIE, Location{world=CraftWorld{name=world},x=-256.5,y=67.8999969959259,z=41.5,pitch=0.0,yaw=0.0}
ZOMBIE, Location{world=CraftWorld{name=world},x=-250.5,y=67.8999969959259,z=41.5,pitch=0.0,yaw=0.0}

Location{world=CraftWorld{name=world},x=-257.0,y=68.0,z=41.0,pitch=0.0,yaw=0.0}

(The spawner broken being the 265.5, 67.9, 41.5 one)

old wyvern
#

What are you getting the location from?

hot hull
#

block placed

#

the last one block broken

old wyvern
#

Can you show me the snippet where you fetch the location?

hot hull
#
Block Break
final Block broken = event.getBlock();
final Location location = broken.getLocation();

Block Place
final Block block = event.getBlockPlaced();
final Location location = block.getLocation();
#

Not really much to show :p

old wyvern
#

weird

#

Are you sure you gave the right output?, why would the Y axis be 1 integer above...

#

Also for storing block locations I suggest using your own class that stores them as ints rather than floating point numbers

hot hull
#

I'll try my own class and we'll see

old wyvern
#

Alrighty

hot hull
#

I am so confused..

[08:39:35 INFO]: Set spawner: -250, 64, 44

[08:39:40 INFO]: ZOMBIE, -250, 64, 44
[08:39:40 INFO]: ZOMBIE, -255, 68, 41
[08:39:40 INFO]: ZOMBIE, -253, 64, 44
[08:39:40 INFO]: ZOMBIE, -256, 64, 44
[08:39:40 INFO]: ZOMBIE, -251, 68, 41
[08:39:40 INFO]: ZOMBIE, -252, 64, 45

[08:39:40 INFO]: -250, 64, 44
[08:39:40 INFO]: Spawner not present
viscid charm
#

Rip i gave up on this

obtuse gale
#

dont

viscid charm
#
Given an int n, return true if it is within 10 of 100 or 200. Note: Math.abs(num) computes the absolute value of a number.

nearHundred(93) → true
nearHundred(90) → true
nearHundred(89) → false```
```JAVA
public boolean nearHundred(int n) {```
#

I dont evne get teh solutiuon

#
public boolean nearHundred(int n) {
  return ((Math.abs(100 - n) <= 10) ||
    (Math.abs(200 - n) <= 10));
}```
#

nor the question

#

so ripperoni

hot hull
#

You have to check if the given number is within 10 range of 100 or 200, you've got 3 examples there, what seems to be the issue?

viscid charm
#

I dont know what Math.abs(num) computes the absolute value of a number means

hot hull
#

Ctrl + Click on the method

viscid charm
#

cant

#

its on browser

obtuse gale
#

just type it in ur ide

viscid charm
#
    public static int abs(int a) {
        return (a < 0) ? -a : a;
    }```
hot hull
#

Then ya know, "What does Math#abs do" since you already have google opened

viscid charm
#

Dont know what that means

obtuse gale
#

if a is less th an 0 it will return -a and if its not then it will return a

#

not sure why...

viscid charm
#

LOl wow you say it like taht it makes more sense

#

Tenary operate just a bit hardcore for me to read

obtuse gale
#

it doesnt make sense to me either

viscid charm
#

O

obtuse gale
#

I understand the ternary operator but idk why you would want that method

viscid charm
#

Dude you guys have any tips on like a < 0. I TAKE LON GASS TIME TO PROCESS THIS :/

hot hull
#

variable a is less than 0

viscid charm
#

no i get that

#

But i have long ass time understanding the > <

hot hull
#

:bruh:

viscid charm
#

a < 1, a > 1

#

I KNOW

#

what does < mean?

#

there was a trick long time ago

#

taht i read but i forgot

#

Like just look at tail and memorize something

obtuse gale
#

< is less than

#

is greater than

viscid charm
#

but cant you say that: a < 1. 1 is greater tahn A?

obtuse gale
#

what?

viscid charm
#

a < 1 <-- your say a is less than 1 in that symbol?

obtuse gale
#

no clue what you mean lol

viscid charm
#

Oks o

#

1 < 2,
you can say 1 is less than 2. but oyu can also say 2 is greater than 1

obtuse gale
#

1 < 2 > 1

#

I mean idk if thats right

#

but idk what you mean fully lol.

hot hull
#

What are you on about lol

#

You read from left to right

viscid charm
#

always?

#

in just programming or wat/

#

cus I remmeber having to read it both ways

#

from childhood

obtuse gale
#

:what:

hot hull
#

It's a language..

obtuse gale
#

its english

viscid charm
#

No like in MATH

#

1 < 2, 2 is greater than 1 would still be valid wouldn't it?

hot hull
#

I mean yea 2 > 1

#

Which would be the same

#

Well different output, but technically the same

viscid charm
#

Fk I am used to like swapping it and not the way you guys say it

#

I needa get used to the other way xD

old wyvern
#
if a is less th an 0 it will return -a and if its not then it will return a
not sure why...```
@obtuse gale 
Absolute value.
if a is less than 0, it means that a is negative.   negative * negative = positive and hence that negative of a
obtuse gale
#

ah

#

will just doing it without that not give u that?

old wyvern
#

wdym?

#

without what?

obtuse gale
#

like if you did it without Math.abs

old wyvern
#

its already defined in the standard lib doesnt mean you cant do that yourself. But you probably should just be using the given function rather than redefine it

#

(a < 0 ? -a : a) returns the same value as Math.abs(a) would

#

because it does the same thing

hot hull
#

So for some reason the spawner is always null, I'm debugging it and it's showing up correctly in the map, yet when I try to retrieve it it's null, I've no idea why tho..

        final Spawner spawner = SpawnerMechanics.WRAPPER.getSpawner(location);
        if (spawner == null) {
            Bukkit.broadcastMessage("Spawner not present");
            SpawnerMechanics.WRAPPER.removeSpawner(location);
            return;
        }
dusky drum
#

lel

hot hull
#

Legit can someone tell me what the fuck is going on cause I'm so lost..

[09:43:44 INFO]: world: -259, 68, 43
[09:43:44 INFO]: CraftWorld{name=world}: -259, 68, 43 (ZOMBIE)
[09:43:44 INFO]: Spawner not present

(First location being when I place a spawner, and it get's put into a map, second location when I break the spawner it prints out the map)

heady birch
#

the spawner is not present

hot hull
#

No shit Niall

heady birch
#

what u using as key

hot hull
#

SpawnerLocation, world x y and z

heady birch
#

what u using as key

hot hull
#

(The printout above)

heady birch
#

what u using as key

#

equals()

#

override that

hot hull
#

What?

#

Are you on about?

heady birch
#

is it the same instance of object you compare

old wyvern
#

@hot hull is the location mapped to the spawner in a hashmap?

hot hull
#

yes

old wyvern
#

Have you overrode hashcode and equals?

hot hull
#

However Niall has a point, no I haven't

empty flint
#
class Version {
    val blocky = object {
        val root = "1.0.0"
        val lib = "1.0.0"
        val ranks = "2.0.0"
    }
}

How do I access Version.blocky.root?

when I try it like above I get Unresolved reference: blocky

heady birch
#
class Version {
    companion object {
        val blocky = object {
          val root = "1.0.0"
          val lib = "1.0.0"
          val ranks = "2.0.0"
        }
    }
}
#

I think?

old wyvern
#

object { } returns a type of Any which wont have any field of name root

#

Id suggest just making a class to hold that

empty flint
#

object { } returns a type of Any which wont have any field of name root
@old wyvern Wait what's the point of objects then if I can't access the fields?

old wyvern
#

Thats used mostly to create anonymous classes for interfaces of abstract classes not for this purpose

#

}

Would create a anonymous class that extends BaseClass with your defenition and return a BaseClass type

#

You can still only call functions defined in the parent class

#

Which was Any since you didnt define any

empty flint
#

right

#

any way to do this without defining a class for blocky?

old wyvern
#

a map I guess?

empty flint
#

can't access a map with the field accessor .

old wyvern
#

yea ofc

empty flint
#

that would be Version.blocky["root"]

#

which is ugly

old wyvern
#

You contradict yourself. Without defining a class you do not have a field

empty flint
#

I know that now

#

I thought object offered me that access

old wyvern
#

Ah I see

empty flint
#

still new to Kotlin ^^

#

Thanks for clearing that up

old wyvern
#

🍉

empty flint
#

Yugi, do you happen to know some gradle as well?

old wyvern
#

Ill try to answer the issue. Ask away

empty flint
#

I'm trying to set up a root project for all my plugins and link the dependencies in the plugins to the root gradle setup. I know how to do that in maven but it doesn't seem possible in gradle. Any ideas?

I don't want to maintain versions for all dependencies in all projects. I just want them to be all in one place

old wyvern
#

You mean like with modules?

empty flint
#

yeah

hot hull
#

This good enough, or should I do something different for it?

    public Spawner getSpawner(final SpawnerLocation input) {
        Spawner spawner = null;
        for (final SpawnerLocation loc : storage.getSpawners().keySet()) {
            if (!loc.getWorld().equals(input.getWorld())) {
                continue;
            }
            
            if (loc.getX() == input.getX() && loc.getY() == input.getY() && loc.getZ() == input.getZ()) {
                spawner = storage.getSpawners().get(loc);
                break;
            }
        }

        return spawner;
    }
analog crater
#

Does it work? If so, its good. If not, its not good

light leaf
#

How about implementing equals in SpawnerLocation?

hot hull
#

Probably cleaner yea

old wyvern
#

@empty flint
you can just have compile project('YourModuleName') in yout dependencies. and include the modules in your settings.gradle although I think intellij does that for you

#

@hot hull Why are you iterating over a map to check if the key exists? xD

hot hull
#

because I don't have the exact instance of it

#

I only have the coords

old wyvern
#

You dont need the instance to be equal

#

Just the hashcode

#

Have you not overridden the hashcode and equals?

hot hull
#

I haven't

#

Anyhow this works now

old wyvern
#

This is an unneeded O(n) function

#

hashmap does this for you in O(1)

hot hull
#

elaborate on what I should be doing, because I've no clue what you mean exactly

old wyvern
#

Go to your SpawnerLocation class, right click, click "Generate..." then click hashcode and equals and tell it to match world and the 3 axis

#

Alternatively you can write the hashcode / equals yourself but I do not recommend it

#

you can then just call HashMap#get and it should return the same result as what you are doing

#

except its much faster

hot hull
#

This is what I currently have

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof SpawnerLocation)) {
            return false;
        }

        final SpawnerLocation input = (SpawnerLocation) obj;
        return input.getWorld().equals(this.world) && input.getX() == this.x && input.getY() == this.y && input.getZ() == this.z;
    }
old wyvern
#

That hashcode looks wrong

hot hull
#

Yea, but what do I do with it?

old wyvern
#

do with what?

hot hull
#

The hashcode..

#

Ah I see

#

got it

#
    @Override
    public int hashCode() {
        return Objects.hash(world, x, y, z);
    }
old wyvern
#

mhm

hot hull
#

Meaning I should be able to just use get on the map now?

old wyvern
#

Yes

hot hull
#

neat works

old wyvern
#

🍉

hot hull
#

Now to fix these hecking holograms

old wyvern
#

xD

hot hull
#

So Yugi, now onto my storage, this is how I currently store them in a yml file (for persistency)

spawners:
  world;-255;64;45: 1;BLAZE;BLAZE
  world;-251;64;41: 1;BLAZE;BLAZE
  world;-258;64;40: 1;SNOWMAN;FROZEN_SNOWMAN
  world;-261;64;44: 1;ZOMBIE;ZOMBIE
old wyvern
#

Why not just use sqlite?

hot hull
#

Open for suggestions

#

Should I use sqlite instead?

old wyvern
#

Yea

hot hull
#

Time to google fingerguns

analog crater
#

Can I use bootstrap studio to make a frontend and then link with a backend?

remote goblet
#

one day i'll learn how to do cooldowns pepeLaughYou

analog crater
#

They are literally easy

remote goblet
#

I'm aware

#

but i still have no fuckin clue how to do it EmiCool

obtuse gale
hot hull
#

Baked Beans

obtuse gale
#

indeed

heady birch
#

Rookie error

obtuse gale
#

its saying x depends on y which depends on z which depends on x but z doesnt depend on x REEE

#

Ok some sketchy shits going on here

heady birch
#

it probably does somehow

obtuse gale
#

its given me this flow chart thing with like 12 classes 😩

#

o

#

fixed it

obtuse gale
#

How reliable is intellijs refactoring just to change a variable name lol

#

Ive got like 30 usages of a variable - and I wanna change the name by 4 letters

heady birch
#

very

#

hover over variable

#

rightclick -> refactor type new name

empty flint
#

Or F6

obtuse gale
#

Alright

#

netx up

#

how would one get the unicode from an emoji

#

I tried using a lib val parsed = EmojiParser.parseToUnicode(emoteId)

#

and that didnt do shit to the emoji

remote goblet
heady birch
#

wack

remote goblet
hot hull
#

What is that wack color scheme sheesh

remote goblet
#

notepad++ has like

#

the worst fuckin theme

heady birch
#

Please give formats 🙂

#

Easy 2 use in placeholders

remote goblet
#

they're like the most cancer shit

#

you've ever seen

heady birch
#

eternal reports

remote goblet
#

niall say another word and your dick is getting chopped off

heady birch
#

do they expire? đŸ€Ł đŸ€Ł đŸ€Ł đŸ€Ł đŸ€Ł

#

đŸ€Ł đŸ€Ł đŸ€Ł

#

đŸ€Ł đŸ€Ł đŸ€Ł

pallid gale
#

nial pls

onyx loom
#

đŸ€Ł

heady birch
#

đŸ€Ł
@onyx loom đŸ€Ł

#

Im not stopping till we get Emoji leaderboard

pallid gale
#

A mute will stop you

onyx loom
#

đŸ˜±

heady birch
#

biased

#

i cant count how many times ive been let off the hook 😄

onyx loom
#

biased
@heady birch some may say abusive

heady birch
#

True

#

Where can I report a staff member ?

hot hull
#

DM Barry

#

And then cube can review his own report fingerguns

heady birch
#

😐

onyx loom
pallid gale
#

Only use it for legit reports

onyx loom
#

is this not a legit report? Kappa

heady birch
#

Anyone got a better format for the animations expansion?

#

Something nice and compact

onyx loom
#

niall u been asking for days now 😭

heady birch
#

yeah no one answered

pastel imp
#

WAIT

#

what

#

I am using the latest version of DM in 1.8.8

#

lol?

onyx loom
#

😬

pastel imp
#

??

empty flint
#

My gradle won't work and idk why :(((

#

Can somebody help out?

onyx loom
#

well.....