#help-development

1 messages · Page 753 of 1

tribal cypress
#

Hello people, sorry for interrupting if there is any question going on - I am planning of making a lot of plugins in bulk and I am tired of setting up subcommand classes, message handler, translation handler etc. -> I'd like to make an API for all of this, with the best case scenario not having to also put the API on the server, but just bundle it into a plugin. Where should I start?

rough drift
#

or use an existing lib

storm crystal
#

is there anything easier than java

rough drift
#

no

#

and java isn't hard, you just need to learn it properly

ivory sleet
#

JavaScript mayhaps lol

lost matrix
young knoll
#

Depends on easy

tribal cypress
# rough drift or use an existing lib

That's the point which I don't want to cross - using third party libraries. I just like to have control over everything and not having to worry or depend on other developers. I don't mind the extra work

young knoll
#

Idk if I called java harder than python

#

Just quite different

tribal cypress
woven epoch
#

is there a way to save custom nms entities with the world, or a library that simplifies this?

slate tinsel
#

But you mean that I should test "PI" and "PI/2" with "transformation.getLeftRotation().x"?

ivory sleet
#

but python is easier to get away with, without using that many hard or intricate concepts

#

for instance print vs System.out.println or whatever

lost matrix
storm crystal
young knoll
#

Well

#

A lot of languages have them so have fun

rough drift
ivory sleet
tribal cypress
slate tinsel
young knoll
#

Iirc there are methods to rotate joml vectors and matrix’s around an axis

#

Which is easier to comprehend

lost matrix
#

On the other side there are dynamically typed languages like python and javascript where nothing matters, no standards, no constraints,
nothing is really safe and everything is an illusion.

ivory sleet
#

There isn’t really a mathematical way of proving that a given structure such as an abstract factory belongs to the solution set of what we’re trying to solve, but one thing is sure, we arrived and concluded all these tools we use because it helps in one or another way @storm crystal

lost matrix
storm crystal
#

is Skript still a thing

lost matrix
#

Sadly

ivory sleet
#

It is

storm crystal
#

I remember working with it and it wasnt as bad tbh, is it still being updated and such?

grim hound
#

I'm aware of that

young knoll
#

Yes

ivory sleet
#

Yes but its limited and if you just learn skript you might as well learn java

rough drift
#

^

slate tinsel
young knoll
#

Tbh it’s kinda crazy what you can do with it

#

Doesn’t mean you should tho

storm crystal
#

how limited is it

ivory sleet
#

Try to get how things work, not why we should use them in the start @storm crystal you’re putting too much effort into doubt and whether something will be useful

storm crystal
#

maybe its enough for my needs

grim hound
#

get the skin pixels of the face and send the adequatte color symbols to their brightness

ivory sleet
#

I mean you ask “what are types useful for”, yet you don’t know how those work, or any of that, explaining why its useful is certainly hard if you don’t grasp the concept to begin with

rough drift
#

^

lost matrix
# slate tinsel So you usually use transformation matrix with block display or?

Example. Every tick call:

      Matrix4f transformationMatrix = new Matrix4f();

      transformationMatrix.set(new float[]{
          1f, 0f, 0f, 0f,
          0f, 1f, 0f, 0f,
          0f, 0f, 1f, 0f,
          0f, 0f, 0f, 1f
      });

      transformationMatrix.translate(new Vector3f(0.5f, 0.5f, 0.5f));
      transformationMatrix.rotate(new AxisAngle4f(angle, 0, 1, 0));
      transformationMatrix.translate(new Vector3f(-0.5f, -0.5f, -0.5f));

      display.setTransformationMatrix(transformationMatrix);
      angle += 0.15f;

Results in:
https://cdn.discordapp.com/attachments/741875863271899136/1160611842020868096/rotation.gif?ex=653e8582&is=652c1082&hm=75142ef18a17cb89033580f92b30a112f6bf5395da5bb2eff1c19578069f3f2a&

storm crystal
#

whats a class, a method, field and an object

ivory sleet
#

What do you think they are, to start with?

#

What have you understood thus far

lost matrix
grim hound
#

What would be the easiest way to show in tab all the other players? Context: Info packets are blocked but I want to show them in the tab back when verification is completed.

#

I originally wanted to spoof the PacketPlayOutPlayerInfo

#

but it changes names in each version and I can't really find all of it's constructors

sterile token
sterile token
lilac dagger
grim hound
storm crystal
sterile token
ivory sleet
#

that’s a decently good understanding (:

lilac dagger
sterile token
#

What are methods, field, classes, data types. Even the why of them

ivory sleet
#

Yeah verano maybe you can tell them what they are

storm crystal
sterile token
storm crystal
#

yes I was

sterile token
#

Why?

storm crystal
#

because I came to the conclusion that I dont even know what they are despite trying to learn them

sterile token
#

oh okay that makes sense now, things have changed now

lost matrix
grim hound
lost matrix
ivory sleet
#

I used to think this way @storm crystal

consider a water bottle factory
the class WaterBottle is the factory

when we write new WaterBottle() it means we create a water bottle from our water bottle factory

fields are just variables that each new WaterBottle() must have

methods are just things/actions the water bottle can do

#

This is not a perfect explanation but for the time being it’s probably succinct

storm crystal
#

how do I set up variables correctly

sterile token
#

I mean the fields are basically variables, where you store data based on a type, can be of type int (integer numbers), float or double (decimals), String (text) and many more, those are the most common

ivory sleet
#

They are variables

ivory sleet
river oracle
#

does anyone know if this text box on the anvil is 100% client side? Could I send a packet back to update this?

ivory sleet
#

class WaterBottle {
public String name;
}

then
WaterBottle waterBottle1 = new WaterBottle();
waterBottle1.name = "B’le of wate";
WaterBottle waterBottle2 = new WaterBottle();
waterBottle2.name = "Tap Water";

@storm crystal

#

Both of our waterbottles have the variable name, but with different values

sterile token
#

Classes are like skeletons describing any one thing. For example a book, which has properties (fields or variables, as you like) such as title and code. In them the information is stored forming a structure. Do I explain myself more or less?

ivory sleet
#

That’s not too shabby (:

sterile token
boreal sparrow
#

How to get player dimension as "overworld", "nether", and "end"

sterile token
boreal sparrow
#

true, but what if the world is named randomly

#

maybe like word_nether

sterile token
#

yo should get it via that name. or what do you mean specific?

boreal sparrow
#

I mean like what if the server owner named the end dimension folder "end_122123"

#

or something else than just word_end

sterile token
#

okay, well there you should make like a configuration in that case

#

Where they put their world name and get it thru that config

boreal sparrow
#

hm

#

what does p.getWorld().getEnvironment().name();

#

do?

#

does it return the env id as a string?

sterile token
#

there im not sure i havent seen that getEnviroment() before, sorry tho

#

I dont wanna tell something wrong

ivory sleet
#

but name() turns it into just a string as u said ^ those names into strings specifically

grim ice
#

with a new displayname

#

maybe that works.

river oracle
#

I'm updating hte Inventory API of bukkit so luckily I have all the NMS i could ever want :P

#

I supose I wasn't clear enough about what i was doing

#

granted I think i found out how

#

gotta give it a try first I guess

river oracle
grim ice
#

imo
any trickery > nms

#

some trickery to avoid using nms

river oracle
#

but but how else is Craftbukkit gonna work without nms??? 🙎‍♂️

#

good point though the best solution would be to just rip out the entirety of the inventory api and pretend it doesn't exist

storm crystal
#

why does it have empty body?

river oracle
#

you haven't put any code within the curly braces

storm crystal
#

oh its temporary okay

#

what about this one

river oracle
#

also if you're working with strings don't use == instead opt for .equals()

storm crystal
#

is there something wrong with them?

#

why?

river oracle
#

== compares the memory location

#

so if the two strings are in the same exact position within your RAM it will say its false

#

even if both characters are =

#

for example "-" == "-" could be false but "-".equals("-") is always true

#

because - and - are the same strings

#

oh my god my API actually fucking works that is insane I didn't expect that to happen

#

🙏 please nothing go wrong

boreal sparrow
#

How can I load an object from config.yml? I'm saving using:


PlayerData playerinfo = new PlayerData(location,dimension);
playerpos.put(p.getName(),playerinfo);

//Save to file
for (Map.Entry<String, PlayerData> entry : playerpos.entrySet()) {
this.getConfig().set("data." + entry.getKey(), entry.getValue());
}
this.saveConfig();
storm crystal
#

did I get it right?

echo basalt
#

lmao

lost matrix
#

...

echo basalt
#

lemme msg my homies at revivenode to change your pass real quick

tribal cypress
#

LMAO

olive valve
#

try it, it doesn't work

echo basalt
#

still

#

neither does your code

boreal sparrow
boreal sparrow
#

?

tribal cypress
boreal sparrow
#

ah

boreal sparrow
brazen badge
#

can u give me an example of code?

echo basalt
#

click on the Minecraft generator at the bottom

#

if you want to use that plugin

#

that ppl are very mixed on

lost matrix
tribal cypress
#

ight, thanks

boreal sparrow
# echo basalt you missing a .

nah still

 Error occurred while enabling revealer v1.0-SNAPSHOT (Is it up to date?)
java.lang.NullPointerException: null
#
PlayerData playerinfo = (PlayerData) this.getConfig().get("data." + key);
boreal sparrow
#

Right, now using the spigot docs example:

Objects.requireNonNull(this.getConfig().getConfigurationSection("data")).getKeys(false).forEach(key -> {
            PlayerData playerinfo = this.getConfig().getObject("data." + key, PlayerData.class);

            playerpos.put(key,playerinfo);
        });
java.lang.NullPointerException: null
        at java.util.Objects.requireNonNull(Objects.java:233) ~[?:?]
        at com.sindn.revealer.revealer.Revealer.onEnable(Revealer.java:67) ~[revealer.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.jar:git-Paper-17]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.jar:git-Paper-17]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugin(CraftServer.java:562) ~[paper-1.20.jar:git-Paper-17]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugins(CraftServer.java:473) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:435) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.jar:git-Paper-17]
        at java.lang.Thread.run(Thread.java:1589) ~[?:?]
grim hound
boreal sparrow
#

yes

grim hound
#

no "Caused by"?

boreal sparrow
#

exactly, which is why i am so confused

#

no line number

#

no basic explanation etc.

grim hound
#

AH WAIT

#

at com.sindn.revealer.revealer.Revealer.onEnable(Revealer.java:67) ~[revealer.jar:?]

lament slate
#

can anyone recommend me A way of using eclipseIDE to code 1.20 plugins since the spoigot forum for it seems outdated and no longer work? or should I not use that for coding anymore?

grim hound
boreal sparrow
#

it's in the onEnable function oc

lament slate
#

its outdated im assuming

grim hound
lament slate
#

Ok thanks

grim hound
#

number

#

67

boreal sparrow
grim hound
#

in your class

boreal sparrow
#

I missed it mb

#

wait....

#

so it's actually:

Objects.requireNonNull(this.getConfig().getConfigurationSection("data")).getKeys(false).forEach(key -> {
#

causing it

#

(line 67)

grim hound
#

so

#

it's obvious

#

getConfigurationSection("data")

#

returns null

shadow night
#

It's null

boreal sparrow
#

yes, but why would it run then?

grim hound
#

what?

#

getConfig() is not null

boreal sparrow
#

oh mb I miss everything

#

ill do a null check

grim hound
#

the error occurs from Objects.requireNonNull

grim hound
#

it's blatant

shadow night
boreal sparrow
#

ah

grim hound
#

that getConfigurationSection("data") is null

boreal sparrow
#

yea

boreal sparrow
#

remove require non null

grim hound
#

I also did that

boreal sparrow
#

yea but I mean now I get:

Error occurred while enabling revealer v1.0-SNAPSHOT (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "org.bukkit.configuration.ConfigurationSection.getKeys(boolean)" because the return value of "org.bukkit.configuration.file.FileConfiguration.getConfigurationSection(String)" is null
#
[21:59:49 ERROR]: Error occurred while enabling revealer v1.0-SNAPSHOT (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "org.bukkit.configuration.ConfigurationSection.getKeys(boolean)" because the return value of "org.bukkit.configuration.file.FileConfiguration.getConfigurationSection(String)" is null
        at com.sindn.revealer.revealer.Revealer.onEnable(Revealer.java:67) ~[revealer.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.jar:git-Paper-17]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.jar:git-Paper-17]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugin(CraftServer.java:562) ~[paper-1.20.jar:git-Paper-17]        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.enablePlugins(CraftServer.java:473) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:435) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.20.jar:git-Paper-17]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:318) ~[paper-1.20.jar:git-Paper-17]
        at java.lang.Thread.run(Thread.java:1589) ~[?:?]
grim hound
#

do

#

you

#

know how objects work?

#

cuz

#

I just told you

#

getConfigurationSection("data") is null

#

and you're here

#

invoking getKeys

#

on a null object

lament slate
#

in eclipse do I use Maven projects or Do i download something seperate for maven to start plugin development?

lament slate
#

Ya ik

grim hound
#

just use intelliJ

#

I beg of you

lament slate
#

Bruh now i gotta get that

boreal sparrow
lament slate
#

I am getting multiple mixed answers XD

boreal sparrow
#

well I did

#

and no more dying

grim hound
#

Now

#

Does anybody know all the constructors to the PacketPlayOutPlayerInfo and it's names on different versions?

river oracle
#

@grim hound ^

blazing ocean
#

hiya, how can I hide all players from the tablist so you can just see the header and footer?

grim hound
#

loop through Bukkit.getOnlinePlayers()

#

and Player#hidePlayer

#

or spoof player removal packets

shadow night
grim hound
#

or disallow their delivery, like I do

blazing ocean
shadow night
#

So if you have a server where players interact with each other, quite unideal

grim hound
blazing ocean
#

yep

grim hound
blazing ocean
#

how does that work?

grim hound
#

basically

#

Channel#writeAndFlush or something something sendPacket

#

to have direct interaction

#

with the packets

#

I'm trying to do the opposite of showing all the players in tab right now

grim hound
#
        Object entityPlayer = ReflectionUtils.getHandle.invoke(p);
        Object playerConnection = ReflectionUtils.getPlayerConnection.get(entityPlayer);
        Object networkManager = ReflectionUtils.getNetworkManager.get(playerConnection);
        return (Channel) ReflectionUtils.getChannel.get(networkManager);
``` is how I do it
boreal sparrow
#

Can you save objects to config.yml?
Using

PlayerData playerinfo = new PlayerData(location,dimension);

playerpos.put(p.getName(),playerinfo);

for (Map.Entry<String, PlayerData> entry : playerpos.entrySet()) {
   this.getConfig().set("data." + entry.getKey(), entry.getValue());
}
this.saveConfig();

Config is

data:
  sindn: !!com.sindn.revealer.revealer.PlayerData {}
blazing ocean
#

what's ReflectionUtils in this case?

grim hound
#

I'll send you the code

#

one sec

grim hound
#

remove the parts you don't need

blazing ocean
#

thanks

grim hound
#

but it's very much

#

not ideal

#

you should rather

#

create a separate file for that

storm crystal
#

would something bad happen if I wasnt using constructor at all? or is it necessary on some things?

blazing ocean
#

@grim hound for me PacketPlayerOutPlayerInfo doesn't exist

blazing ocean
#

sry i did aswell

grim hound
#

PacketPlayOutPlayerInfo

#

later it becomes

#

ClientboundPlayerInfoPacket

#

and later it becomes

#

ClientboundPlayerInfoUpdatePacket

#

or something like that

#

so depends on the version

quaint mantle
#

can you cancel a playerquitevent 😭

hushed spindle
#

lol no

grim hound
#

it just tells you that it happened

shadow night
#

Why tf

hushed spindle
#

you will stay on my server FOREVER

quaint mantle
#

random thoughts i have

grim hound
#

I also thought that

shadow night
#

Same

grim hound
#

like 2 years ago

hushed spindle
#

cancel playerjoinevents to keep people the fuck away

#

human interaction (ew)

quaint mantle
#

can you cancel playerjoinevents

hushed spindle
#

no

shadow night
#

You can disallow or some shit like dat

quaint mantle
#

just kick them in the event

hushed spindle
#

kicking people right after joining is basically the same thing tho

#

yea

grim hound
quaint mantle
#

oh

grim hound
shadow night
#

Oh

river oracle
#

@young knoll is there any easy way to get the basic registry changes so I can PR master or do I have to copy paste them

shadow night
#

Well, ¯_(ツ)_/¯

lament slate
#

This might be a dumb question but ever since after 1.15.2 I can no longer do import org.bukkit.plugin.java.JavaPlugin; Is it because of build tools?

slate tinsel
#

So it should look like this:

blazing ocean
grim hound
blazing ocean
#

like in what context

grim hound
#

this returns a channel

blazing ocean
#

it returns a Channel

#

yeah but where

opal carbon
grim hound
#

you can use it for

#

Channel#writeAndFlush

#

I personally use it to inject a channel handler

grim hound
grim hound
blazing ocean
#

like in what function because it returns something

#

to where

ivory sleet
#

i mean u only need to flush in the end but yeah

lament slate
#

I am not using spoigot API i think I am using buildtools to get a 1.20.2 version and I just started getting itellectJ I think its called sincce aparently EclipseIDE is outdated now

#

so I am switching

grim hound
grim hound
#

you can store it in like a Map

#

right after JoinEvent is fine

#

and remove at Quit

worldly ingot
lament slate
#

@opal carbon I am using EclipseIDE and im getting IntelliJ since someone told me to for ease of use

grim hound
opal carbon
lament slate
#

XD

grim hound
#

Eclipse bad

#

IntelliJ good

lament slate
#

Well I dont use maven so I assume gradel since I just created a java project

#

Now i feel dumb

grim hound
lament slate
#

Correrct

#

Correct also shadow

opal carbon
#

how are you importing the spigot nms

lament slate
#

For 1.15.2 Its really easy just drag and drop

grim hound
#

library

#

adding

#

stuuf

#

f

lament slate
#

for 1.20 it isnt

quaint mantle
#

libraries

opal carbon
#

it should be the same

#

did you make sure to import the correct thing

#

the actual full spigot remapped jar

#

actually wait no not remapped maybe?

#

not sure how specialsource would interact with not using either

lament slate
#

well for 1.15 I a bunch of com.google libraries and for 1.20 I get just org.bukkit.craftbukkit.bootstrap

#

and nothing else

wet breach
#

?bootstrap

undone axleBOT
#

Bootstrap Jar
The main spigot-1.18.jar is now a bootstrap jar which contains all libraries. You cannot directly depend on this jar. You should depend on Spigot/Spigot-API/target/spigot-api-1.18-R0.1-SNAPSHOT-shaded.jar, or the entire contents of the bundler directory from your server, or use a dependency manager such as Maven or Gradle to handle this automatically.

Please read the release notes for further information: https://www.spigotmc.org/threads/9-years-of-spigotmc-spigot-bungeecord-1-18-1-18-1-release.534760/#post-4305163

lament slate
#

thank you I am goign to go read this

#

or use a dependency manager such as Maven or Gradle to handle this automatically. AH

slender elbow
lament slate
#

Well that makes things nicer

opal carbon
#

i would sincerely reccomend using maven or gradle yeah

lament slate
#

Yeah ima go downlaod maven now

#

Thanks @opal carbon your a real one

opal carbon
#

yw

slender elbow
kindred valley
#

how can i setup 1.7.10 spigot

#

to maven

eternal night
#

you don't 👍

kindred valley
glad prawn
#

why 1.7.10

kindred valley
#

uhc

eternal night
#

spigot does not even have builds out anymore for 1.7

#

idk where you are getting them from

#

but they are certainly not official

kindred valley
#

thats racist tho

worldly ingot
kindred valley
#

same at 1.8.9?

river oracle
#

for some reason BuildTools still builds that

worldly ingot
#

1.8.9 wasn't DMCA'd so it's available on BuildTools, but we don't support it

shadow night
#

1.8.9 doesn't exist on the server

worldly ingot
#

Yeah, 1.8.8* :p

shadow night
#

1.8.9 is client only

kindred valley
#

so cant i make a plugin on 1.7 version with maven..

river oracle
#

I mean you could if you find a non infected jar somewhere

worldly ingot
#

I mean you can write against 1.8 API if you really want

river oracle
#

then you'd maven install the api jar

kindred valley
river oracle
timber whale
#

Stfu

#

Don't even talk

kindred valley
river oracle
# kindred valley where do i have to text this up
mvn install:install-file \
   -Dfile=<path-to-file> \
   -DgroupId=<group-id> \
   -DartifactId=<artifact-id> \
   -Dversion=<version> \
   -Dpackaging=<packaging> \
   -DgeneratePom=true``` full command will look like this
#

just find the Spigot 1.7.10 jar somewhere and have fun

#

though check it for malware first ofc <3

peak depot
#

how can I check a players permission on LoginEvent with bungeecord

kindred valley
river oracle
#

command line

#

you type it out by hand

#

and fill out hte info as needed

#

you'll have to know all of the following info about the spigot jar for it to be accurate

kindred valley
#

what do i have to enter to group id artifact id and packaging

river oracle
#

spigot's group id and artifact id

#

if you know how maven works just copy from the pom

kindred valley
#

mvn install:install-file \ -Dfile=<C:\Users\Secgi\OneDrive\Masaüstü\Server\spigot.jar> \ -DgroupId=<org.example> \ -DartifactId=<UhcUtilize> \ -Dversion=<1.0-SNAPSHOT> \ -Dpackaging=<pom> \ -DgeneratePom=true

#

whats wrong at here

river oracle
#

get rid of the < and >

#

those only indicate to put stuff inside it

#

also the group ID is wrong

#

so is the artifact id

#

and version

#

and packaging

worldly ingot
#

Your questions here are not instilling in me any confidence that you should be writing plugins at all, let alone plugins for 1.7

river oracle
#

I can't anymore I'm working on inventory PR lol

worldly ingot
#

Do not come back asking for help later because this is nearly a decade old version

young knoll
#

Ooh choco on that sass

river oracle
#

coll answer my question

sullen marlin
#

Oof

#

Critical hit

young knoll
#

There’s a question?

river oracle
#

I pinged you

#

wow 😭 no love

#

you just hit the escape key

kindred valley
river oracle
#

I'm sorry for your loss

sullen marlin
#

Packaging jar

young knoll
#

You can run buildtools with --pr flags

#

Add one with the Bukkit pr id and one with the cb id

lament slate
#

how do I make maven run on java 17 since I seem to be getting errors

river oracle
river oracle
#

I kinda just copy pasted everything thus far lmao

grand flint
#

md is so hot 😭

lavish hare
#

decade

#

old

#

Please don't say that

#

I don't need a reminder that I've been stuck here for what feels like forever

eternal night
#

?1.8

undone axleBOT
eternal night
#

hmm

#

close

worldly ingot
#

Hey man... 1.7.10 came out mid-2014

sullen marlin
#

🥵

lavish hare
#

Not fun times

grand flint
#

if new combat wasnt shit

river oracle
grand flint
#

people wouldnt depend on 1.8 servers 😭

worldly ingot
#

That's why I said

nearly a decade old version

eternal night
#

I fully believe 1.8 users are just a cult KEKW

young knoll
#

Probably

river oracle
#

guys I hate to break it to you but mojangs not going back to 1.8 pvp

#

Its been a couple years

young knoll
#

They’re going to a new new PvP… maybe

#

Combat snapshots kinda died

sullen marlin
#

Mojang really fked up letting 1.8 solidify

eternal night
#

could have kept log4shell unfixed on 1.8 😉

grand flint
#

some servers use custom pvp physics w newer versions which is pretty cool

sullen marlin
#

But too late to ever fix

young knoll
#

It’s not hard to get something basically identical to the old PvP

river oracle
sullen marlin
#

You could re-release 1.8 as 1.21 and people would still say it’s different

eternal night
young knoll
#

But people will still be like “guhhhh it’s not exactly the same”

#

The reach in 1.8 was 3.5373737 blocks but now it’s 3.5373736

grand flint
orchid trout
peak depot
#

how can I check a players permission on LoginEvent with bungeecord

sullen marlin
#

1.12 is the sweet spot

eternal night
#

literally just use a plugin to bring back old combat mechanics

river oracle
orchid trout
eternal night
#

md_5 confirms spigot maintains 1.12 as the sweetspot for servers

sullen marlin
#

Hot

eternal night
#

someone get the tweet ready

river oracle
#

spigot drama

sullen marlin
#

Lol deleted

eternal night
#

could be a spigot drama post yea lmao KEKW

sullen marlin
#

Choco didn’t like the flirtin

grand flint
worldly ingot
#

Huh?

#

I didn't delete anything

#

I'M BEING FRAMED

eternal night
#

sureee buddy

grand flint
#

its bc choco didnt get the sweetest spot 😔

young knoll
sullen marlin
#

Russian memes only

worldly ingot
#

Wow. Didn't copy/paste

#

Not a real programmer

young knoll
#

No but I learned more about git that day

#

And that’s what matters

river oracle
shadow night
river oracle
#

fuck it I'll figure it out later

young knoll
#

No

#

I had to cherry pick stuff

worldly ingot
#

Just wait until he learns about cherry picking, soft resets, and interactive addition

grand flint
#

i fork plugins (renames the plugin files)

worldly ingot
#

👀

orchid trout
#

omg 12 am

river oracle
#

I'm still trying to figure out whether to deal with InventoryType right now or put it off and pretend it doesn't exist

sullen marlin
#

Go to bed

orchid trout
#

my bedtime is 3am

grand flint
worldly ingot
#

12am is just 12pm if you're tired enough

grand flint
sullen marlin
#

Sounds healthy

orchid trout
#

i like to do my homework at 11

grand flint
#

i used to cry doing my hw at 4 am 😭

orchid trout
#

im half asleep at 4 am

#

no energy for tears

grand flint
#

ye but i used english classes for the missed sleep time

#

and chemistry

#

fuck chemistry

#

physics >>>>

orchid trout
#

chemistry very easy

#

just formulas

#

at least right now

grand flint
#

chemistry 👎

#

md 👍

orchid trout
#

almost got banned

grand flint
#

litearlly 😢

grim hound
grand flint
#

ill make md fall in love w me then ask him my basic java questions while coding a plugin

grim hound
#

you need to

#

chill

young knoll
#

Meanwhile md will just be staring at craftbukkit code

#

Wondering where he went wrong in life

grand flint
#

he is gonna go right in me

#

oh that sounded way more than i meant it to

young knoll
#

How did you mean it to… you know what don’t tell me

shadow night
#

I want to rewrite craftbukkit to use forge classes and methods, but I'm can't do something like that to myself

young knoll
#

Kek

orchid trout
#

i am can not

grim hound
grand flint
#

jealous bc ur not a girl

#

so u cant flirt w md

grim hound
#

Uh

young knoll
#

Hey being gay in Australia is allowed

grim hound
#

Whatever helps you sleep better

orchid trout
#

whatever sleeps you help better

grim hound
young knoll
#

Indeed

orchid trout
#

if you could pick your spawn location and ethnicity when you were born, what would you pick?

young knoll
#

Meh

young knoll
#

Canada and white isn’t bad

orchid trout
#

woman saudi arabia

young knoll
#

Speedrunning are we?

lost matrix
#

Ah yes, the best ethnicity of them all. Woman.

#

I almost made a pretty tasteless joke about current events...

#

Orthodox jew, palestine PES_SweatWhat

ivory sleet
#

smile r u packet with things to do right now?

lost matrix
#

That would be a speedrun for sure bee_sad

ivory sleet
#

:?

lost matrix
river oracle
#

I added deprecated annotation to every method in AnvilInventory and well... Bukkit won't compile now because I'm failing an annotation test

#

somehow

young knoll
#

Then you missed somethin

#

It should tell ya

eternal night
#

This development help channel does indeed miss a bit of fruitful and enriching discussion about the israel palestine conflict NODDERS

ivory sleet
river oracle
# young knoll Then you missed somethin

all the output says is this

[ERROR]   AnnotationTest.testAll:100 There 9 are missing annotation(s)
[INFO] 
[ERROR] Tests run: 1289, Failures: 1, Errors: 0, Skipped: 1
young knoll
#

Kek

#

Should be higher up

lost matrix
river oracle
hushed spindle
#

i would talk about the conflict but it israelly divisive so id rather not

young knoll
#

Hot take

ivory sleet
young knoll
#

War bad

#

The end

lost matrix
hushed spindle
#

nuh uh war is awesome

#

i love murder

lost matrix
eternal night
#

🇺🇸

hushed spindle
#

free oil

ivory sleet
young knoll
#

Oh boy

#

It goin down in the dms

hushed spindle
#

those iranian children wont know what hit em (rockets)

eternal night
lost matrix
eternal night
#

damn

ivory sleet
#

time to rizz smile up

#

/s

hushed spindle
#

dont /s commit to it

#

such that a beautiful fruitful relationship may blossom from it

tribal cypress
#

@lost matrix Any idea what this means? Did what you said, ran install on maven - everything went alright, just this thing popped up

quaint mantle
#

idk might outdated

tribal cypress
#

I've downloaded intellij just 2 days ago

hushed spindle
#

if ive learned anything

#

if you see a warning

#

just ignore it lmao

tribal cypress
#

yeah well, it aint there for no reason

grim hound
#

help wanted

sullen marlin
#

New maven likes to warn

#

It’s just a warning

grim hound
#

There is this guy

#

up until like 1.17

#

then there is ClientboundPlayerInfoPacket with the same constructor

#

and what is after that?

young knoll
#

Woo mojmap

tribal cypress
hushed spindle
#

i have a multi module project and when i build it the server cant find plugin.yml, and i dont really know how to go about fixing that

#

i got a "core" module that has the resources folder and its what the project's pom xml points to, and the other modules are shaded with it

grim hound
river oracle
#

you can see every versions mappings with that

sterile sapphire
#

Is it easy to make a command that maps things and save’s easy to make? Or hard

lost matrix
chrome beacon
#

??

sterile sapphire
# chrome beacon ??

Is it easy to make a command that maps things and save’s easy to make? Or hard

chrome beacon
#

I have no idea what you mean by that

sterile sapphire
#

Is it easy to make a command that maps names and matches it with players and save’s easy to make? Or hard

chrome beacon
#

Maps names?

hushed spindle
#

not super easy as a beginner i suppose

chrome beacon
#

Do you want to save a list of online users?

hushed spindle
#

piece of cake if you're a little experienced

wooden hearth
#

Car names?

sterile sapphire
young knoll
#

What

sterile sapphire
#

Let me explains some more

sterile sapphire
#

im trying to get a commands that when a player does /Team Create (name) it msps the team name with that player so the name can not been used 2s. somone told me it was very hard and would have to pay like £100 for him to do it, is that a scam?

wooden hearth
chrome beacon
#

What's the point of a team command that does nothing other than save it

lament slate
#

how would I find a old api for like 1.18.1 for spoigot?

hushed spindle
#

it sounds like a very very barebones teams plugin and thats very easy

lament slate
#

wouold it be 1.18.1-R0?

young knoll
#

Probably

hushed spindle
#

the simplest is just a team name with a collection of player uuids

slender elbow
#

vanilla teams in shambles

hushed spindle
#

saving and retrieving that map is something you can copy paste off of google

#

heck even chatgpt can probably do that

grim ice
#

ill use this for fabricmc support and u guys cant stop me

#

why do i get this

#

no errors in console

#

ill send code

hushed spindle
#

no

lament slate
#

are you opped ?

grim ice
#

yes

hushed spindle
#

have you checked client logs

lament slate
grim ice
#

how

young knoll
#

Go to the logs folder?

grim ice
#
package codes.domino.timedcmds;

import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.function.Supplier;

import static net.minecraft.server.command.CommandManager.*;
// getString(ctx, "string")
import static com.mojang.brigadier.arguments.StringArgumentType.getString;
// word()
import static com.mojang.brigadier.arguments.StringArgumentType.word;
// literal("foo")
import static net.minecraft.server.command.CommandManager.literal;
// argument("bar", word())
import static net.minecraft.server.command.CommandManager.argument;
// Import everything in the CommandManager
import static net.minecraft.server.command.CommandManager.*;
public class TimedCmds implements ModInitializer {

    public static final Logger LOGGER = LoggerFactory.getLogger("timedcmds");

    @Override
    public void onInitialize() {
        CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("timedcmd")
                .requires(source -> source.hasPermissionLevel(4))
                .executes(ctx -> {
                    ctx.getSource().sendMessage(Text.literal("You are an operator"));
                    return 1;
                })));
    }
}
#

code

hushed spindle
#

%appdata%/.minecraft/logs

lament slate
#

use a launcher like multimc

#

and you can check logs easily

#

or just go to logs

#

either or

grim ice
#

ah dang thats what u meant

lament slate
#

Ya

#

If your on multimc tho it can pull up the logs for ya

#
  • Project build error: Non-parseable POM C:\Users\chris\Desktop\Plugins\Originswaper\pom.xml: start tag not allowed in epilog but got d (position: END_TAG seen ...</repositories>\r\n\r\n<d... @9:3) I am getting this error with my pom file anyone know why
chrome beacon
#

Send your pom

#

?paste

undone axleBOT
lament slate
#

<repositories>
<!-- This adds the Spigot Maven repository to the build -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>

<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>

quaint mantle
#

bruh

chrome beacon
#

Send the entire thing in a paste

grim ice
#

nothing

lament slate
#

that is the entire thing for me

grim ice
#

nothing in logs

chrome beacon
#

That would explain the error

grim ice
#

why

chrome beacon
grim ice
#

oh

#

"[22:49:22] [Render thread/INFO]: [System] [CHAT] An unexpected error occurred trying to execute that command"

lament slate
#

@grim ice do you have multimc it flags all server and client side errors when on minecraft

grim ice
#

is all it says

lament slate
#

well thats where my knowledge reaches sadly so from there idk 2hex sorry

lament slate
#

for maven repository

chrome beacon
sterile sapphire
#

also how hard is a plugin that auto creates everyone there own island like a skyblock plugin and where when they do /Is it auto takes them to there island?? 😅

lament slate
#

OH crud

#

Ima have to redo my pom file now XD

#

WELL that sucks

chrome beacon
#

Eh it's not much you're just missing the project tag

wooden hearth
#

Hey, how would I make it so if I do /ignore <target> I won't get any messages from that target?

lament slate
#

Well Ima just make new project and yoink that pom files code

chrome beacon
#

And project information

lament slate
#

True but lazy way out XD

lament slate
#

I think also from running a server there would need to be multiple like worlds for each person

#

Thats all IK about that

chrome beacon
#

Normally you'd just put the islands far away from eachother

chrome beacon
sterile sapphire
#

Would it be easy?

chrome beacon
#

Depends on how experienced you are but probably not

tribal cypress
#

What is the ideal replacement for <systemPath> in pom.xml?

chrome beacon
#

Install the jar to your local maven repo

#

And then depend on it like usual

tribal cypress
#

what the hell is a local maven repo

#

im doing this api thing for the first time, sorry

tribal cypress
#

thank

lament slate
#

hey olivo Im getting the same error after fixing my pom file
Multiple markers at this line

  • Project build error: Non-parseable POM C:\Users\chris\Desktop\Plugins\originswapper\pom.xml: start tag not allowed in epilog but got r (position: END_TAG seen ...</description>\r\n</project>\r\n<r... @8:3)
  • The markup in the document following the root element must be well-formed.
#

is it becausse im using java 8 also?

chrome beacon
#

Could you send your new pom

lament slate
#

Ya sure

chrome beacon
#

?paste

undone axleBOT
lament slate
#

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>originswapper</groupId>
<artifactId>originswapper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Swaps your origins</description>
</project>
<repositories>
<!-- This adds the Spigot Maven repository to the build -->
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>

<dependencies>
<!--This adds the Spigot API artifact to the build -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.20.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>

#

I feel dumb why are the colors not showing

#

do I have to save it as a file?

remote swallow
#

the end project tag should be after the depdencies block

chrome beacon
#

^^

lament slate
#

I do not see end project anywhere unless that is </project>

young knoll
#

Yes

chrome beacon
#

It's that

lament slate
#

so It should be at the bottom because if so the errors seem to not go away

remote swallow
#

yeah

lament slate
#

ya instead this pops up with the last error Multiple markers at this line

  • Downloading external resources is disabled.
  • cvc-elt.1.a: Cannot find the declaration of element 'project'.
chrome beacon
#

If you're using Intellij you can install the Minecraft Development Plugin and let it create a project for you

lament slate
#

it says tho that its a 30 day free trail do you now have to pay for intellij

remote swallow
#

only ultimate

#

community edition is free

tribal cypress
lament slate
#

kk thanks

#

didn see community edition

chrome beacon
tribal cypress
#

well, yes, I've ran that and other project says it aint found

#

dunno if im doing it wrong

#

above screenshot is from pom.xml of another plugin

chrome beacon
#

Reload maven

grim hound
#

hlep

tribal cypress
grim hound
chrome beacon
tribal cypress
#

sure, moment

wooden hearth
#

Dose this make sense to ignore players java if(ignores.containsKey(player.getName())) { event.getRecipients().remove(ignores.get(player.getName())); }

remote swallow
remote swallow
#

this should be the dep info

wooden hearth
tribal cypress
#

now works as intended, thanks to both of ya

chrome beacon
wooden hearth
hazy parrot
#

Why do you have that much inventories?

#

Why not just create once and use it

#

You shouldn't remove its reference if its still used lol

#

Also why is that a map

remote swallow
#

to me thatinv api seems dumb

hazy parrot
#

It's basically index

#

According to this code

remote swallow
#

you should be able to self contain pages inside an inv, create an inv as needed and delete when finished

#

no it isnt

chrome beacon
#

Seems like you have a design issue

wet breach
#

this is where you learn about caching

remote swallow
#

each claim has an id, it should know its items you just call a remove method for the id and if it has it, it removes the item

#

grief prevention should probably have a map or some api to determin when the claim is deleted then

#

its not hard

#

as said

#

they have an id, you should keep track of ids shown, if id is shown remove it and repage the gui

#

do you not have a cache>

#

are you directly accessing the db for everything

#

wtf

#

you need a cache

grim hound
#
 [public net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket(java.util.EnumSet,java.util.Collection),
public net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket(net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket$a,
net.minecraft.server.level.EntityPlayer),
public net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket(net.minecraft.network.PacketDataSerializer)]
remote swallow
#

you shouldnt be doing it that soon

grim hound
#

they're not matching

remote swallow
#

if its sqlite you arent gonna have any changes

ivory sleet
#

lol noway u do that

remote swallow
#

if someone modifies sqlite at runtime thats a them issue, you dont give support

#

okay

#

you dont need to read the table again every 10 seconds

#

give no support if they touch the sqlite db at runtime, if you do want to give support for it, minimum reload should be 15 min or better 30 min

ember estuary
#

Given a java.awt.Color, what's the easiest way to send a title to a player with a text in that color?
player.sendTitle(...) only takes strings
And ChatColor.of(hexCode) seems to have been removed?

remote swallow
#

huge design issue

#

have a list of all items for the gui, it gets paged on the fly so you just get the next element to replace it or just update the item as needed

young knoll
#

It’s just only on the bungee ChatColor class

ember estuary
#

ahh

ivory sleet
#

both are index based

young knoll
#

They do

ivory sleet
#

and have order based of that

#

if size is known and barely has to change internally (that is the backing array in arraylist) then arr list

#

else linked list has constant add

young knoll
#

Or just an array :p

ivory sleet
#

yea or Arrays.asList

storm crystal
#

I dont see spigot here

#

is any of those spigot under another name?

kind hatch
#

Bukkit

storm crystal
#

is it some kind of very important error?

slender elbow
#

well it's not an error

#

you could try updating the plugins' versions in your build config ¯_(ツ)_/¯

storm crystal
#

how am I supposed to learn from Kody Simpson's videos? Like do I follow what he is doing or do I watch the whole thing and then try to recreate it?

#

Also is there any kind of documentation with explanations on spigot syntax?

placid moss
#

Spigot syntax is Java syntax

#

?learnjava

undone axleBOT
storm crystal
#

I mean like

placid moss
storm crystal
#

if I wanted to know how to make plugin use a command

#

and such

placid moss
#

?jd-s

undone axleBOT
storm crystal
#

yeah this

#

how do professionals call it?

placid moss
#

If you want to learn specific features you can check forums for tutorials

placid moss
#

Javadocs?

remote swallow
#

javadocs to be specific yeah

storm crystal
#

okay

#

Do I need to write implements X whenever I add package or can I just import it?

lost matrix
storm crystal
#

I have a question, when im doing event listener, lets say EXP bottle one, can I make if statement that checks if that bottle has been broken and if it did cancel exp drops?

livid dove
# storm crystal I have a question, when im doing event listener, lets say EXP bottle one, can I ...

I'm not sure if it has a speciifc event, but if it did I'd imagine so.

My humble advice would be to pause for a minute and learn a bit more of the basics before continuing.

I.e your implements question shows you are likely very new to java.

As such I think you might be doing yourself dirty.

There are so many basic tricks and practices that'd make coding a lot easier for you in the long term and they might be worth learning first ^_^

quaint mantle
#

omg kody simpson ❤️

#

he has my heart

glad prawn
#

who

ivory sleet
#

The minecraft yt code tutorialer

ivory sleet
#

I think lol

quaint mantle
#

yeah

glad prawn
#

oh

ivory sleet
#

He is a cutie

#

But content wise mid :>

quaint mantle
#

oop..

ivory sleet
#

Hehe

livid dove
#

Kody Simpson is a great start to spigot side stuff...

But jesus christ Is his videos filled with bad practices

ivory sleet
#

Yea

quaint mantle
#

hes good for new players though

ivory sleet
#

I mean, its one thing to learn spigot api, another to learn java, a third to learn good practices

#

Definitely

livid dove
#

Love him for his commitment and he likely gets most into spigot / paper coding.

But christ on a bike it's a bad idea to watch his stuff in a vaccum

storm crystal
#

so who should I watch

ivory sleet
#

Kody is good

quaint mantle
#

javadocs

ivory sleet
#

But you need to learn java while watching as well

livid dove
#

Forget his name , the general java guy

ivory sleet
glad prawn
young knoll
#

It’s not static abuse, it’s consensual static BDSM

ivory sleet
#

Static is fast at least cat_nice_glasses

#

Invokestatic goes brr

livid dove
# storm crystal so who should I watch

https://youtu.be/drQK8ciCAjY?si=SP4m4MLVwBpZFAa8

Let this beautiful shiny head man take you on an adventure 🤣

Learn all the essential basics of Java in one video in just 15 minutes. No programming experience required.
Complete Java Course: https://codingwithjohn.thinkific.com/courses/java-for-beginners

Variables, loops, methods, classes, objects, and more!

This is a Java beginner's lesson for the ultimate Java beginner, or just someone curious to know...

▶ Play video
quaint mantle
#

so real

young knoll
#

Omg is that him

#

Is that John Java

livid dove
#

CodingWithJohn is the greatest and I will die on that hill

ivory sleet
#

Haha this guys face is so iconic to java tutorials

quaint mantle
#

no thats kody simpson

#

duh..

quaint mantle
storm crystal
#

for plugin writing

ivory sleet
#

🥚

#

🍳

quaint mantle
livid dove
quaint mantle
#

not many cideos

#

videos

#

but what you’re doing is writing a spanish essay in an english class

#

analogy queen 😍

livid dove
#

I watched John before I watched Kody, and now I'm the main guy working on MythicEnchants over at mythic craft so 😎

#

John makes u good java boi yes yes

quaint mantle
#

theres also that other guy

#

mosh or something

#

i forgot his name

ivory sleet
#

Yeaa, I mean I used to watch the source code, and now im almost committed towards doing my master at oracle :>

livid dove
quaint mantle
#

religion of johnism

livid dove
#

Johnovus Witness

#

I'm witnessing these dope ass videos

quaint mantle
#

@storm crystal what we were trying to tell you is to learn java before spigot

livid dove
#

The spigot starter guide:

  • CodingWithJohn
  • KodySimpson
  • Gang of Four
quaint mantle
#
  • Spigot Forums
livid dove
ivory sleet
#

That can be fine tho

livid dove
#

Only seldomly.
But we have had this tango before conclube 🤣😎

ivory sleet
#

Effective java actually encourages it if a component depends on external resources for instance

#

Yeah lol

livid dove
#

Aye my general rule of thumb is if its a many to one, then use a singleton.

#

Clue being in the name. Singleton

remote swallow
#

its like me then

#

or most of us

livid dove
#

Maybe that's why devs don't use em... they don't like being reminded they are lonely 😉

ivory sleet
#

I hate singletons because they absolutely yeet my loose coupleness, they fuck my unit tests and integration tests, my collaborators hate it, the code style hates it and its just not very nice

storm crystal
livid dove
#

Dependency inject the pain away

storm crystal
#

like from the first episode of Kody I already see that there is no main method bullshit that I encountered on actual java program

young knoll
#

Rome wasn’t built in a day

storm crystal
quaint mantle
#

so sigma

livid dove
quaint mantle
livid dove
#

Plus a singleton debug logging class is god tier

remote swallow
ivory sleet
#

the point of avoiding singleton is

  1. Avoid the singleton logic (that often needs to be tested)
  2. Define a clearer abstract class hierarchy
  3. Make it easier to mock in unit tests
  4. Avoid depending on instances but rather types
livid dove
livid dove
ivory sleet
storm crystal
#

but I like know simple syntax what else is gonna be needed

livid dove
#

Oh come on conclube ur splitting hairs with the lad.

ivory sleet
#

wrong reply

#

Meant the singleton

livid dove
livid dove
ivory sleet
#

Ma bad

remote swallow
#

Do you ever go to work on ur plugin then think meh cant be fucked im going to bed

livid dove
#

Ur good bro ur still ma homie

quaint mantle
ivory sleet
quaint mantle
#

nobody tell him

livid dove
remote swallow
#

Smh

quaint mantle
#

ok

#

why will it print 1

storm crystal
#

I know what final means

quaint mantle
#

ok

ivory sleet
#

||Err…||

livid dove
#

Lmao he spanked ur ass Stella

quaint mantle
#

erm. 😭

storm crystal
#

I dont like the way you described it

ivory sleet
#

Compilation error inc…,

livid dove
#

Yeah... 2 am raz needs better vocabilsrry

young knoll
#

Yeah wait you’re trying to mutate a final variable

#

Can’t do that chief

livid dove
#

Can we all appreciate frost messaged me but can't see my reply as he has me blocked 🤣

ivory sleet
#

Mhm stop that chief

ivory sleet
quaint mantle
# storm crystal 1
for (int i = 0 | i < 5 | i++) {
int j = 0;
j++;
System.out.println(“j: “ + j + “ i: “ + i);
#

what about this

livid dove
# ivory sleet How did y get frost to block u

He tried to say adhd meds work for autism as he tried em once and it worked.

And I implied "err... they can be comorbid... u considered that u , gosh I dunno, have adhd and that's why they helped? "

ivory sleet
#

I would’ve kicked u if I saw that happening live

quaint mantle
#

so vicious

ivory sleet
#

:>

livid dove
ivory sleet
#

Dw, ill let the sleeping dogs sleep

wet breach
#

like a final list

#

its ok to change the stuff inside of the list, but its not ok to change the list object itself

ivory sleet
#

Ah yes classic java mutability and immutability

quaint mantle
#

he started typing 2 times which makes me think he’s gpt-ing it or sticking it into his ide 😔

ivory sleet
#

Lmaoo

livid dove
# ivory sleet Dw, ill let the sleeping dogs sleep

Nah it came from a place of love. I was misdiagnosed as a child and it screwed me up bad.

And realising adhd meds work for u and going "adhd meds work for autism" and not coming tk a realsiation that might revolutionise ur life got to me bad 😅

ivory sleet
#

Sneaky copy pasta

quaint mantle
#

i love using | in for loops

#

such valid syntax

ivory sleet
#

Does java allow it?

storm crystal
ivory sleet
#

Wth

storm crystal
#

like where is } supposed to be

#

lol

wet breach
#

also depending how the class is setup for said list, it may not be ok because multiple things may want it, so then to make everything happy to not have values changing we could then add the static on top of final

quaint mantle
storm crystal
#

because there are like 3 ways to interpret it

wet breach
#

I always like the niche scenarios of java lmao

quaint mantle
young knoll
#

I didn’t want to say anything about the |

quaint mantle
#

so imagining that bracket was in place, what would it print

#

@storm crystal