#help-development

1 messages ยท Page 359 of 1

pseudo hazel
#

yes but paper uses it more

quaint mantle
#

redstone may break if you run it on spigot.

remote swallow
#

most of the stuff spigot does async is chat messages and pre login

eternal oxide
#

Never seen it happen

quaint mantle
#

what are the differences in the spigot plugin api, paper plugin api and purpur?

#

the spigot plugin api will run on all server softwares.

remote swallow
#

purpur is just papers api, spigot uses strings and naming conventions, paper use bullshit and adventure components

quaint mantle
#

but why would i use paper api and potentially give up some compatibility?

pseudo hazel
#

and everything thats forked from spigot will also run spigot plugins

quaint mantle
#

i am aware of that

#

but

remote swallow
#

if you need paper features but want spigot compat use paperlib

pseudo hazel
#

because paper api has more functions

quaint mantle
#

what exactly does the paper api provide that spigot does not?

eternal oxide
#

not really the place to ask

quaint mantle
#

sorry if i am asking too many questions but i am sort of curious and might even say eager to learn.

pseudo hazel
#

idk , but basically everything thats in the paper api is built on top of spigot

remote swallow
#

from peopel that have bstats enabled there are currently 126,742 paper servers and 176,652 spigot/bukkit servers

quaint mantle
#

speaking of spigot/bukkit?

#

what is with the different names?

pseudo hazel
#

if paper is a fork of spigot does that mean that out of 180k servers 120k are paper?

crimson relic
#

different thing, different name

remote swallow
#

spigot is the server software, bukkit is the api, craftbukkit is the impl

pseudo hazel
#

or are those stats separate

eternal oxide
#

seperate

pseudo hazel
#

i see

eternal oxide
#

each fork reports as it's own

quaint mantle
#

spigot is the name of the software that packages the bukkit api?

#

and craftbukkit is the implementation?

#

what does it mean when you call it an implementation?

#

can you elaborate more?

remote swallow
#

in bukkit a load of the classes are interfaces

eternal oxide
#

implementation is the code which runs

remote swallow
#

because it relieson version specific

#

relies on

quaint mantle
#

i see, so an abstract layer of sorts between minecraft native source code and bukkit?

eternal oxide
#

yes

quaint mantle
#

as minecraft source code changes, the craftbukkit implementation is adjusted.

#

providing an api for bukkit developers to use and maintain.

pseudo hazel
#

yes and the api stays mostly the same to achieve cross compat

quaint mantle
#

intriguing.

remote swallow
#

and stuff isnt generally removed

#

just deprecated

eternal night
#

๐Ÿ™ƒ sadly

remote swallow
#

you dont get to talk paper boy

eternal night
quaint mantle
#

i have recently been trying to learn modding with fabric and i recently got to learn that the minecraft source code tends to change a lot.

remote swallow
#

yeah

quaint mantle
#

i see the importance of craftbukkit.

pseudo hazel
#

yeah a lot of changing code has up and downsides but for modders and plugin devs its mostly downsides haha

quaint mantle
#

but if i were to ask, what server software would be best, i suppose there might not be an universal answer in this case.

pseudo hazel
#

thats why we need the apis to make it managable

#

no

quaint mantle
#

that might have been one of the reasons i decided to ask these questions.

remote swallow
#

no not really

quaint mantle
#

but which would you prefer?

pseudo hazel
#

like I said if there was one best version everyone would use it

eternal night
#

Well if you want pure vanilla experience, fabric

pseudo hazel
#

I personally have a paper server but I make plugins using pigot api

remote swallow
#

yeah

#

i normally always run paper for perf but refuse to touch the api

quaint mantle
#

i personally use paper servers as well with spigot plugins.

#

but what about purpur?

eternal night
#

has very specific stuff if you need it

remote swallow
#

havent really used it much, cant say

quaint mantle
#

the new server software that aims to be highly customizable?

#

what are your thoughts on that?

pseudo hazel
#

i never used it

eternal night
#

if you need the features, nice

#

if you don't, meh

remote swallow
#

theres so many forks of paper its hard to keep track of

crimson relic
#

not big enough to matter imo

eternal night
#

purpur is getting somewhat big

pseudo hazel
#

big how

eternal night
#

its a nice fork with a somewhat specific userbase target

remote swallow
quaint mantle
#

yeah i have seen people use purpur a lot recently.

pseudo hazel
#

as in terms of popularity?

eternal night
#

yea

crimson relic
eternal night
#

bstats puts them at ~7% or somewhere in that ballpark

#

yea

quaint mantle
#

by the way, might be kind of off-topic for the theme of this discord server?

remote swallow
#

this is on essx

quiet ice
#

purpur is one of the (if not THE) largest paper forks

quaint mantle
#

but since minecraft modding is pretty popular, is there an api that i could use to create minecraft mods, as sort of a well-maintained abstract layer perhaps?

eternal night
#

sponge I guess ?

quaint mantle
#

i tried to do modding with fabric and it is so much more difficult compared to making plugins for spigot.

#

sponge?

remote swallow
#

did tunity get merged into paper

eternal night
#

spongepowered

#

yea tunity got merged

quiet ice
crimson relic
#

i dont find fabric too hard tbh

quiet ice
#

Sponge is the bukkit of forge

pseudo hazel
#

well modding tends to be more complicated because of what you can do with it

quaint mantle
#

its just reverse engineering the source code that is difficult.

crimson relic
#

?

pseudo hazel
#

the way I see plugins can only really extend vanilla features while modding can actually create new ones

quaint mantle
#

and minecraft is pretty complicated in terms of its implementation of its gameplay.

quiet ice
#

I personally find Mixins and the lack of a proper event handling API to be the main painpoint of modding

quaint mantle
#

plugins mostly modify behavior, not state in a large sense, is how i perceive it.

pseudo hazel
#

yeah I like plugins because of their events

#

but I like modding in terms of possibilities

quaint mantle
#

yeah, the event based api is kind of easy to work with.

quiet ice
#

However as someone that is modding some other game written in java, I can fully understand not taking the time of adding hundreds of events. It simply takes far too much time

quaint mantle
#

i really prefer event based programming lately.

#

even in node js, i prefer libraries that have abstract event based programming.

regal scaffold
#

Hey, where is information regarding secure/not secure chat messages. Is it even worth making chat messages be secure?

pseudo hazel
#

yes but keep in mind that with everyhting being event based you can lose sight of the actual structure of what you are making

quaint mantle
#

if it is appropriate to ask?

quiet ice
regal scaffold
quaint mantle
pseudo hazel
#

well yeah but thats not really relevant to what I said

quiet ice
#

Well I personally am only working like 10% of the time of actually implementing api stuff

quaint mantle
pseudo hazel
#

I was talking about the structure of your own code

quiet ice
#

70% goes to the buildchain and the remaining 20% goes to fixing bugs and updating stuff

quaint mantle
#

yeah, event based programming might have its upsides and downsides, depending on what you are implementing, but it makes it so much easier, overall, is what i have found.

pseudo hazel
#

yeah

#

I agree

#

I use a combination of event based and just normal OOP and a sprinkle of functional programming in some classes

#

just depending on what part of the code needs to accomplish

quaint mantle
#

OOP is sometimes pretty complicated though, abstract classes and objects, templates or generics, that is probably why I find modding so difficult.

pseudo hazel
#

I usually write from the perspective of using the code which can make certain methods seem cluttered

#

yes so I try to minimize that stuff when writing my own code and only use those things you mentioned at the edges of where my code touches the api

quiet ice
pseudo hazel
#

but like generics and abstract classes are just something you need to know in general

quaint mantle
#

maybe you know more acquainted with reverse engineering other people's code i suppose.

#

i personally do sometimes find difficult to work with apis that are might be very subjective and abstract and don't provide much context for how things work.

#

i struggled with python django for that reason, back when i started out with web development, since i did not really know how the web really worked.

#

but it might be easier to work with since it may have a lot of abstractions and methods in place to make the code less repetitive perhaps and prevent NIH syndrome.

pseudo hazel
#

i get that

#

my whole plugin is NIH since I dont use any libs other than the default one under the guise of trying to learn how everything works for myself

#

and for fun ofc

#

but like ultimately it just takes me more time to debug implementations on systems that other people have already made that work perfectly fine but that I want to implement myself just for the sake of it

quiet ice
#

I myself am sometimes kindof forced to reimplement other libraries

#

Sponge's Mixin and the Eclipse's Aether (the maven resolver) are the two largest libraries that I am currently rewriting/reimplementing

#

And let me tell you: It's not a weekend project, it's a project of a lifetime

old totem
#

Hi, I do not set values for the armor stand. How can I solve this problem? Works only .setLocation(); (Version 1.16.5)

EntityArmorStand stand = new EntityArmorStand(EntityTypes.ARMOR_STAND, world);

stand.setLocation(location.getX(), location.getY(), location.getZ(), 0, 0);
stand.setSmall(true);

PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving(stand);
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);```
fathom idol
#

Hello
Does anyone know what I need to give in the constructor with the PacketPlayOutRespawn in 1.19.3?
Where can I find the ResourceKey<DimensionManager> and the ResourceKey<World>?
https://imgur.com/a/URbiqMN

final monolith
#

For non living entities you need to use PacketPlayOutSpawnEntity packet.

#

Whats your server version?

wet breach
#

there is an alternative to events, but that isn't really something you should incorporate into your application unless its strictly back end services stuff or provides a service

old totem
old totem
final monolith
final monolith
#

PacketPlayOutEntityMetadata

#

Note: after the spawning packet

quaint mantle
halcyon hemlock
#

Hi guys

quaint mantle
#

bukkit api is just an abstraction layer.

quiet ice
#

oh no - services...

wet breach
quiet ice
#

Don't touch services

quaint mantle
#

what is the term services supposed to mean?

#

when people say back-end services for servers?

#

servers for servers?

wet breach
quaint mantle
#

i have sort of just known and used that term but did not really exactly what that meant.

#

i am learning so many things just by talking in this server.

quiet ice
#

You shouldn't follow that paradigm - whereever it is used there is hell

quaint mantle
#

outside of the context minecraft plugins even.

quiet ice
#

Although sometimes you don't have much of a choice I guess

wet breach
#

listen to geol, he knows ๐Ÿ˜›

#

but yeah sometimes you don't have a choice though

#

usually you want to stick to Event Driven when possible, but once you start crossing the barrier of having multiple servers working together to provide a singular thing

#

it doesn't quite work anymore using event driven architecture

#

so you have to use a different design. SOA is just one of them

old totem
quaint mantle
#

would a database be an example of a component that is service oriented?

wet breach
#

Depends which database, SQLite for example is designed to be ran in an individual application and not shared across multiple applications or processes

regal scaffold
#

Hey, I have a question.

Can I make a spigot plugin which can listen to any stuff I send it from a proxy (bungeecord plugin) therefore I can technically code stuff once and it will apply to all servers which have the received plugin

wet breach
#

but something like MySQL you probably could

quaint mantle
#

aside from sqlite but you can technically have multiple applications interfacing with the same sqlite database though

wet breach
#

yes and no

quaint mantle
#

allocating one process to carry out the operations.

#

for all other processes.

quiet ice
quaint mantle
#

but then again, just use mysql for that.

#

but it is technically possible, is what i was trying to express.

regal scaffold
quiet ice
#

If it is what I think you want to do: It's possible, but you don't want to do it

wet breach
#

without using a custom driver, yes you would need an application to be the medium between the other applications and the SQLite DB

quaint mantle
pine forge
#

Why am i not receiving the RIGHT_CLICK_AIR action in my PlayerInteractEvent? Is that a know bug?

quaint mantle
#

but elaborate more.

wet breach
#

?paste

undone axleBOT
pine forge
quaint mantle
#

or maybe not.

pseudo hazel
#

show your code inside the event please

quaint mantle
#

i have a question.

#

what is the most advanced thing you guys know of?

pseudo hazel
#

what does that mean?

pine forge
#
@EventHandler
    public void onClick(PlayerInteractEvent event) {
        System.out.println(event.getAction());
}``` its literally this (i commented out my real code)
pseudo hazel
#

what do you consider advanced

quaint mantle
#

the most complicated thing you know about.

warm mica
pseudo hazel
#

my plugin ๐Ÿ˜‚

pine forge
#

it is logging all types except RIGHT_CLICK_AIR

regal scaffold
#

Ok I got it now.

I know this is possible but I'm wondering if it is how I think it is

Proxy plugin:

  • Has a bunch of commands made to be used on the entire proxy
  • If I want to add new commands just add the logic in the proxy plugin

Server plugin:

  • Just has the ability to receive the information from the proxy
  • Will automatically work without updating if I add/remove commands and stuff from proxy
pseudo hazel
#

right click air probably only work if you use an item that has an interaction like a map or a bow perhaps

regal scaffold
#

Is this how it works? Or do both parts of the plugin need more advanced logic and need to be updated parallel

pseudo hazel
#

but im not an expert on that event

pine forge
#
@EventHandler
    public void onClick(PlayerInteractEvent event) {
        System.out.println(event.getAction());
}``` 

Why is this code not receiving the RIGHT_CLICK_AIR event?
Also note, that RIGHT_CLICK_BLOCK is always logged twice for some reason
wet breach
# quaint mantle the most complicated thing you know about.

this is probably going to be hard to really answer because this is really dependent on ones skills. For example, I have created back in the early 2000's my own mini super computer where I could run 30 WoW instances all at the same time with no problems. Required a custom bios and I soldered I think 10-12 Motherboards together using 128pin ribbons.

quaint mantle
#

speaking of proxies, i dont know a lot about those either.

quiet ice
wet breach
#

but, that is hardware more then programming aside from the custom bios

regal scaffold
quaint mantle
#

but interesting.

quiet ice
pseudo hazel
quiet ice
#

Alternatively you can just load anonymous classes through the sun Unsafe that then execute the code you want, but eh

pine forge
#

very active chat right here

quiet ice
#

Having proper APIs is the best approach, but won't be nearly as univerally applicable

pine forge
#

maybe there should be 2 help channels

regal scaffold
#

I see geol

quiet ice
pseudo hazel
#

when I say api it could literally just be a few interfaces

tardy delta
#

threads exist for a reason

regal scaffold
#

I've never done any bungee dev so I was just streching all I really know is messagingChannel

quiet ice
pseudo hazel
#

thats by far the easiest way to keep your implementation separate from how you use it

#

well yeah

pine forge
#

Not receiving RIGHT_CLICK_AIR event

pseudo hazel
#

but I dont know enough about they want

wet breach
quiet ice
#

They want a virtual machine on the server

regal scaffold
#

So wait, you're telling me the way people make bungeecord commands that can be ran from any server is by putting the command logic inside the server plugin not even the proxy

regal scaffold
quiet ice
#

Of course they don't say it by name, but they want a virtual machine

#

Or a proper REST-style API at the very least

quaint mantle
#

ok.

#

WAIT, you made your own computer?

wet breach
quaint mantle
#

that could run 30 World of Warcraft instances?

wet breach
#

Yes

regal scaffold
#

True but does that mean the logic can literally go in the proxy and then pass that information to the server plugin?

quaint mantle
#

i am not sure how complex of a game world of warcraft is in terms of how much of performance it demands, but that sounds really interesting.

wet breach
#

it had an overal 25-30Ghz of processing power and like 40Gb of ram I think

regal scaffold
#

Like what I'm wondering is if one can just make a receiver plugin that receives all information from the proxy but can also run locally or network wide

quiet ice
quaint mantle
#

WTF?

regal scaffold
#

Oh so then the logic also needs to go in the spigot plugin

quiet ice
#

And that interpreting thing is the complicated part

regal scaffold
#

So wtf is the point of the communication then

quiet ice
#

You CAN use a virtual machine to do that, but it is extremely overkill

quaint mantle
#

40 GB of ram is a lot these days, back in the early 2000's you say?

regal scaffold
#

I understand how bungee works and the proxy style just can't understand bungee dev

pseudo hazel
#

mans just copy pasting pcs into a big blob of processing power

quaint mantle
#

oh yeah, there are different speeds of ram, like ddr3, and ddr4, nvm.

quiet ice
wet breach
quaint mantle
#

ah, okay.

wet breach
#

so each mobo has a slot and ability to assign IRQ's for the ram

pseudo hazel
quaint mantle
#

you said around 40GHZ of processing power?

tardy delta
#

dang

quaint mantle
#

is that like chaining multiple cpus together or?

#

like one cpu

wet breach
#

each mobo had on average a single CPU, with a couple I think that had 2 slots for cpus

quaint mantle
#

going at 40 GHZ?

#

one cpu core, doing 40 GHZ?

olive lance
#

Yeah how do u solder 2 motherboards together wtf

pseudo hazel
#

divide and conquer

quaint mantle
#

i think the prior.

#

but then again, cpu frequency is not a measure of performance.

quiet ice
#

And a bunch of cables

olive lance
#

Velcro is I would use for that job tbh

wet breach
# quaint mantle one cpu core, doing 40 GHZ?

No, my setup is what you consider a Multi-CPU setup which is different then a multi-core setup. Multi-CPU mobos do exist and are still a thing because Multiple CPU's are better then multiple cores. But when you have a system that has multiple CPU's, you add up all the speeds of the CPU's and that is your overall processing power

wet breach
#

so that each mobo could see each other

olive lance
#

Is that like a thing people are supposed to be able to do and people know they can do

quaint mantle
olive lance
#

Or was that some evil genius job

lost matrix
quiet ice
#

It is just something that takes time

wet breach
#

I think I messed up like 5 mobos in the process

#

by not soldering in the right spots lmao

quaint mantle
#

i know about motherboards that allow more than one cpu.

#

but i did not know people did that.

#

so, comparing it to a modern cpu, lets say the i9 9900k, how would they fare against each other?

wet breach
#

Well, its no different if you went to school to learn computer engineering or learn how to program PCB's

#

etc

quaint mantle
#

i know computer science but not much about computer engineering.

#

i am learning new stuff here.

wet breach
#

where as multiple cores could

quaint mantle
#

you can learn more than just minecraft in this discord server, i recently discovered.

olive lance
#

What gave you the idea to do the combining of the motherboards and how did you learn to do it?

wet breach
#

the only thing that my setup from the past would probably excel at would be long running tasks that could be split between all the CPU's

#

in which case you could use all of the processing power more effectively

quaint mantle
#

why wont you be able to use a multicore cpu for that?

#

why would it be better?

#

is it because of thermal efficiency?

#

or power efficiency?

thin lantern
#

How i can make commands with autocomplete like most vanilla commands? I already done this on clientside as fabric mod but and i want to do something like this in spigot plugin

wet breach
# olive lance What gave you the idea to do the combining of the motherboards and how did you l...

trial and error and I had friends where we would make stuff like this. The hard part is just finding appropriate schematics to know the exact layout of a motherboard so you know where you could attach pins to do something. Attach pins in the wrong place and bad things happen usually, either from killing the mobo, killing other hardware like the cpu, or burning out quite a lot of the caps and resistors. Worst case scenario it lights on fire ๐Ÿ™‚

quiet ice
#

Or at least not in a capacity as they exist today

wet breach
#

but either system has its pros and cons

quiet ice
lost matrix
quiet ice
#

Only issue is that Brigardier integration in minecraft world is more finicky

orchid gazelle
#

Can anybody explain me how the hell minecraft sends huge block updates with for example structure blocks from server->client without lagging? My client is starting to lag with multiblock updates at around 100 blocks already

quaint mantle
wet breach
#

high performance computing I think is what they are referring to

quaint mantle
lost matrix
#

High performance computing
Its all about clustering nodes/compute units

quiet ice
quaint mantle
#

oh client

thin lantern
quaint mantle
#

that is because of your limited cpu power or gpu power.

#

limited hardware processing power.

lost matrix
quiet ice
quaint mantle
#

client has to do a lot more than a server.

#

like render stuff, for example.

#

on a screen.

quiet ice
#

At worst I could just ping mfnalex, he's sure to know - but I think you are sure to find a solution by googling it

quaint mantle
#

play sounds on your speakers and headphones.

orchid gazelle
quaint mantle
#

clients do a lot more than servers.

wet breach
#

well also have to keep in mind that with a single CPU and multiple cores, that resources are being shared, in a multi-cpu setup some resources are not being shared. For example in my mini super computer setup, I could if I wanted allowed each mobo to act independently while still being together because they each have their own hardware and resources etc

lost matrix
quaint mantle
#

clients dont process lighting updates?

#

they are processed server-side, pretty sure

olive lance
quaint mantle
#

because of mob spawning and all that

tall dragon
orchid gazelle
tall dragon
#

how else do they display light

quaint mantle
#

does the server not send over light maps?

#

precomputed light maps?

wet breach
lost matrix
quaint mantle
#

ok i think we might be talking about different things here nvm.

wet breach
#

but you could still have them all independent on a single OS, just not windows ๐Ÿ˜›

quaint mantle
#

yeah clients process lighting updates, as in render lighting.

#

not sure if they also process light maps though.

#

for mob spawning and stuff.

#

in the game.

tall dragon
#

not sure bout that either

orchid gazelle
pseudo hazel
#

no the server spawns mobs

quaint mantle
#

lighting updates are very expensive to compute

#

perhaps the most expensive computation that occurs when you break and place blocks.

pseudo hazel
#

the client just uses the light sources to calculate the light levels etc iirc

lost matrix
quaint mantle
quiet ice
#

They just were unable to resolve their issue

pseudo hazel
#

no, the server has enough stuff to do to not worry about some light maps that the client can also compute on its own

wet breach
orchid gazelle
pseudo hazel
#

the server likely has an easy way to determine if a mob can spawn at a block and such things

lost matrix
pseudo hazel
#

and the client has similar logoc to work out what lighting should go where depending on what the world looks like

quiet ice
#

the client executes those blocks?

orchid gazelle
quaint mantle
orchid gazelle
quaint mantle
#

lighting updates are very expensive, i do a lot of redstone, i know a bit about that first hand.

orchid gazelle
#

Player#sendBlockChanges has a flag to surpress them

tall dragon
#

u can get around lighting updates pretty easily tho

quaint mantle
#

you may have seen redstone contraptions using powered rails instead of redstone dust, we do that to prevent lighting updates from occuring as one of the reasons.

pseudo hazel
#

or observers right?

quaint mantle
#

yep.

quiet ice
#

Alternatively you could use Minecraft's debug renderer, but I am not sure whether the notchian client support it out-of-the-box

quaint mantle
#

rails might be better because they dont add much delay.

lost matrix
orchid gazelle
quaint mantle
#

if you are ever finding yourself working on something that requires a lot of blocks to be changed all the time, find a way to prevent lighting updates from occuring.

lost matrix
icy beacon
#

why??? i swear those libraries are in central

Caused by: org.eclipse.aether.resolution.DependencyResolutionException: The following artifacts could not be resolved: {name=com.mysql:mysql-connector-j:jar:8.0.32}, {name=org.mongodb:mongodb-driver-sync:jar:4.8.2}: Could not find artifact {name=com.mysql:mysql-connector-j:jar:8.0.32} in central (https://repo.maven.apache.org/maven2)
libraries:
  - name: com.mysql:mysql-connector-j:8.0.32
  - name: org.mongodb:mongodb-driver-sync:4.8.2
orchid gazelle
quaint mantle
#

oh ok.

#

nvm.

orchid gazelle
icy beacon
#

name of what

chrome beacon
#

You have name: in the libraries list

icy beacon
#

oh

lost matrix
icy beacon
#

i think i took this from some tutorial lol

#

didn't even notice

orchid gazelle
lost matrix
orchid gazelle
lost matrix
#

What type of schematics?

orchid gazelle
lost matrix
#

ok. What prevents you from using structure blocks?

pseudo hazel
#

well maybe that is the issue xD

icy beacon
orchid gazelle
regal scaffold
#
[WARNING] The POM for dev.simplix.cirrus:cirrus-api:jar:3.0.0-SNAPSHOT is missing, no dependency information available
#

I can't seem to get this to work. I have the repo added correctly and I browsed it to make sure.

#
[ERROR] Failed to execute goal on project ichest: Could not resolve dependencies for project me.tomisanhues2:ichest:jar:1.0-SNAPSHOT: dev.simplix.cirrus:cirrus-api:jar:3.0.0-SNAPSHOT was not found in https://hub.spigotmc.org/nexus/content/repositories/snapshots/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of spigotmc-repo has elapsed or updates are forced -> [Help 1]
[ERROR] 
quaint mantle
orchid gazelle
quaint mantle
#

uses static lighting of some sort?

lost matrix
quaint mantle
#

no lighting updates occur, regardless of you adding your own light sources.

pseudo hazel
#

pulse, the lighting is not the issue

wet breach
# quaint mantle if you are ever finding yourself working on something that requires a lot of blo...

if hardware modifications are something that really interests you highly recommend taking some courses to learn such things. It is actually really difficult to learn such things on your own especially if you lack a lot of hardware for trial and error because you will fail in doing this stuff lol. Back then, you used to be able to acquire a crap ton of computers easily because people would just throw them out, I mean probably could still do that but now there is rules and regulations that stops people from doing this freely in the US in some states lol. So I would advertise back then that I would take their old hardware off their hands for them so I had a lot of computer equipment back then and random stuff too lmao

orchid gazelle
#

Most important part tho is realtime changing blocks inside of the schematics

#

Like, for example, setting all stoneblocks to sponge

icy beacon
#

hey maybe it'd be better if you made a thread for this discussion? otherwise all the other messages will drown here

lost matrix
icy beacon
#

a discord thread*

pseudo hazel
#

what other messages

icy beacon
#

this channel is for a lot of people

lost matrix
orchid gazelle
icy beacon
#

and this discussion will surely be very long

pseudo hazel
#

yes

regal scaffold
pseudo hazel
#

well if you have any question you are free to ask

icy beacon
#

bruh

quiet ice
#

I personally prefer phoenix616's InventoryGUI heh

quaint mantle
regal scaffold
lost matrix
quiet ice
#

I tested a bunch of other GUI frameworks but they weren't great

lost matrix
#

How big are the structures?

quiet ice
#

No clue, I tested out like 4 GUIs I think

icy beacon
#

xd

pseudo hazel
#

just use mine that I will release in a few years

regal scaffold
#

idk which one to use man lol

icy beacon
#

try them until you find the one for you

orchid gazelle
wet breach
quiet ice
#

Since then I use the same one over and over again

regal scaffold
#

IF, ObliviateInvs, Inventory GUI

pseudo hazel
#

I made my own gui stuff, basically a single abstract class that I use to create all my other menus

lost matrix
regal scaffold
#

May I use that steaf lol

quaint mantle
pseudo hazel
#

well if you want to xD

quiet ice
#

I only really know of IF and InventoryGUI. Those are the two big guys out there

regal scaffold
#

Those are my options otherwise

pseudo hazel
#

but like right now its still part of my main plugin that im working on

quiet ice
#

oblivate-invs is obscure and I've heard about that cirrus thing, but it is still rather rare

regal scaffold
#

Nah you're fine steaf I'll just pick one of those

#

I guess IF then

orchid gazelle
regal scaffold
#

Man it looks so complex tho

quiet ice
#

For other things (like explosions), you'll be able to see the shortcomings

quaint mantle
#

perhaps more low level than assembly

#

or even machine code

pseudo hazel
quaint mantle
#

you are working with actual wires and transistors lol.

echo basalt
#

My util is quite similar to IF

quaint mantle
#

circuits even.

remote swallow
quaint mantle
#

maybe not that low level, but requires some understanding of it probably.

echo basalt
wet breach
#

however, what makes it easy to understand is if you know how analog stuff works or are familiar with mechanical stuff

#

while both work differently, the principles are relatively the same

orchid gazelle
lost matrix
remote swallow
quaint mantle
#

i know some discrete mathematics and that is where i learned about gates and stuff.

quiet ice
echo basalt
#

menu has layers, each layer has elements that are defined by making a selection and applying an element to it

#

A selection is just an interface with a List<Integer> getSlots

orchid gazelle
orchid gazelle
pseudo hazel
#

yeah just send updates in the form of structure blocks

echo basalt
#

A layer is just a Map<Integer, MenuElement> and each element has stuff like getDisplayItem and whatever

#

That's literally it

wet breach
icy beacon
pseudo hazel
quaint mantle
icy beacon
#

ty

quaint mantle
#

or maybe that is the gist, then i might have a baseline understanding of things, aside from electrical engineering.

#

which i dont really know much of besides the very basics of electrical circuits.

wet breach
#

which can be hard to wrap your head around

lost matrix
echo basalt
#

that's not enough magic

#

but yeah you can do funky stuff

quaint mantle
#

or some kind of texture pack?

lost matrix
pseudo hazel
#

how did you do those things?

#

server resourcepack?

orchid gazelle
pseudo hazel
#

packets presumably?

quaint mantle
#

that looks cool.

lost matrix
orchid gazelle
pseudo hazel
#

hmm I only know how to change textures, not how to change where inventory slots are and stuff

quaint mantle
#

looks not much is going on right now, i might ask my question now.

#

so, i was curious about proxies.

#

why would you use bungeecord?

#

not something NGINX or something else?

#

for routing?

#

and load balancing perhaps?

quaint mantle
#

i am not really super familiar with proxies and stuff or used them a whole bunch but was just curious.

remote swallow
quaint mantle
#

show what?

remote swallow
#

an motd

#

or a player count

quaint mantle
#

oh yeah, nvm.

remote swallow
#

or even tell the client that that ip is a server

remote swallow
lost matrix
quaint mantle
#

oh ok.

pseudo hazel
#

i use bungeecords chatcolor xD and chatcomponents

quaint mantle
#

so, on the topic of proxies for minecraft, what do you guys use?

wet breach
# quaint mantle not something NGINX or something else?

Nginx doesn't know random TCP stuff. It only knows the web protocols, not custom protocols built on TCP, in this case minecraft, and how to handle them appropriately. Also webservers are not designed for long running active connections either. So you need something like Bungee, you could use HAProxy if you wanted, but bungee also does something else. It is what allows you to teleport between servers because it hacks the world object for the client, and essentially to the client, all the servers are actually just worlds

echo basalt
remote swallow
#

okay so illusion

#

im gonna need you to close some apps

echo basalt
#

nah its fine

quaint mantle
#

the cross server switching!

#

yeah might difficult to implement that myself.

lost matrix
regal scaffold
#

Is that what redis does?

echo basalt
#

DNS round robin + a dedicated proxy that routes into bungee

quaint mantle
#

redis is a database? what do you mean?

echo basalt
#

pretty sure that's what tcpshield does

lost matrix
# echo basalt menu go brr

Yeah this is cool. Ive worked on a server which had pretty similar designs. It released and just died XD

echo basalt
#

made those menus in like an hour

#

best part is that it all synchronizes cross-server and all

quaint mantle
zealous osprey
wet breach
echo basalt
#

oh yeah that guy

quaint mantle
#

i have seen a few other proxies though, like waterfall, velocity and there is thing called floodgate too probably. What are they all about and how would they all differ if they do?

lost matrix
echo basalt
#

samsung

wet breach
echo basalt
#

it was also on that day where you sent me food money

pseudo hazel
#

how do you make those big buttons?

echo basalt
#

texture packs

#

annd fancy code

pseudo hazel
#

whats the code like

lost matrix
pseudo hazel
#

is there an open source project?

wet breach
# echo basalt I like internet arguments

so I remembered from that argument in what I was trying to remember in why dns load balancing is acceptable since they were talking about dead IP's. That is, that is what ip failovers are for, where you can literally re-assign where the IP routes.

echo basalt
#

man was like "nuuuu my fancy 10k$ switch does that"

wet breach
#

lmao

lost matrix
quaint mantle
#

oh, basically just listening to mouse pointer locations?

pseudo hazel
#

but also with like the hover and stuff

quaint mantle
#

but wait, how did you render that?

lost matrix
#

mc doesnt send exact mouse locations

quaint mantle
#

how did you render it like that in the first place?

echo basalt
#

assign a custom character to a png and put it on the gui title

#

then the slots and all are just lore

#

on invisible items

lost matrix
pseudo hazel
#

damn thats pretty clever

#

but how do you remove those slot outlines you get when hovering over an inventory

echo basalt
#

the outlines apply directly to the item texture and not the whole slot

#

if you make the items invisible, or like a 1x1 transparent pixel, you don't need to worry much

quaint mantle
#

you are basically assigning custom textures for each character in the inventory title and rendering that?

echo basalt
#

pretty much

#

most of the guis on my demo are just a single character

pseudo hazel
#

oh

echo basalt
#

anything dynamic like 7smile7's need multiple

quaint mantle
#

and how do you detect the location of mouse clicks?

echo basalt
#

well

#

you don't need to

remote swallow
#

math probably

echo basalt
#

buttons are matched to slots underneath

remote swallow
#

how would you handle people clicking that tiny gap between items

quaint mantle
orchid gazelle
#

What resolution can these get max?

echo basalt
#

yeah

quaint mantle
#

this is pretty elaborate.

wet breach
quaint mantle
#

i have probably never seen this before and it may even be the first time and might even be learning something about how about i could use it!

lost matrix
#

But you might need to define characters with negative size to properly shift the images to the left or up.
It has been quite the hustle to build a proper abstraction over all this gui stuff.

echo basalt
#

I just make a very good GUI system

#

and a very good shifting system

#

and then try mixing them together

#

and manually align stuff a bit

wet breach
#

like the concept, not necessarily code wise stuff lmao

pseudo hazel
#

yes I would love to read more into this too

wet breach
#

I think that is going to be my next website, just a collection of documentation on concepts

regal scaffold
#

Does anyone have a example of a GUI setup they made using IF XML format

echo basalt
#

ew XML

dusk flicker
#

why would you want to make GUIs in XML

quaint mantle
#

what is wrong with XML?

lost matrix
regal scaffold
#

Because IF offers it and it's shorter than in code?

echo basalt
#

I still wonder how people can render a player's skin in game

quaint mantle
wet breach
#

so if someone wants to use XML I don't see anything wrong with it

pseudo hazel
#

iirc the IF github has examples of uis and their xml code

lost matrix
regal scaffold
#

Yes it does

zealous osprey
quaint mantle
#

There isn't anything necessarily wrong with xml, it's just theres many better alternatives

regal scaffold
#

But it doesn't have examples with XML and then interacting with code

#

That's what I'm looking for

echo basalt
regal scaffold
#

Like I see the field parameter and all

echo basalt
#

I'll let the community enjoy it for a bit before I go out there and master it

#

armor stands and all

lost matrix
#

Ah

echo basalt
#

I guess it isn't angular

#

but still

wet breach
lost matrix
quaint mantle
#

i might prefer XML over json.

echo basalt
#

hmm

#

perhaps

wet breach
#

xml is supported natively in quite a lot of stuff as a specification too

quaint mantle
#

json might be more compact though, in terms of file size.

echo basalt
#

retextured slime ๐Ÿค”

regal scaffold
#

Does anyone have a example of a GUI setup they made using IF XML format.

Specifically how to interact with the gui elements added from the xml file in the code

echo basalt
#

people already use shulkers to offset blocks

lost matrix
#

<super-useless-info>I despise xml.</super-useless-info>

echo basalt
#

working on this now

pseudo hazel
#

so lastly if I understand this correctly, with buttons like you shown, the slots are actually laid out somewhat like this right?

#

but isnt there like a small gap between each slot?

echo basalt
quaint mantle
pseudo hazel
#

okay so its like not noticable

echo basalt
#

or yml

#

super-useless-info: "I despise you all"

pseudo hazel
#

yeah

#

you dont even have to quote the string

quaint mantle
#

i dont really like yml.

pseudo hazel
#

thats why yml is good for human input

#

and xml, json is better for pc to pc communication

quaint mantle
#

reminds me of python and i dont really like python a lot right now.

lost matrix
quaint mantle
#

i am not particularly a huge fan of python syntax.

hazy parrot
pseudo hazel
#

I mean thats already how we write books

echo basalt
#

well it's human friendly

pseudo hazel
#

well xml is designed for god knows what

echo basalt
#

yml is the python

#

json is the java / js

pseudo hazel
#

but I dont like to write xml by hand

echo basalt
#

it's more beginner friendly but has less potential

wet breach
#

but just note that yaml is a superset of json

echo basalt
#

xml is the html

quaint mantle
#

does anyone here prefer python programming?

echo basalt
#

no

hazy parrot
regal scaffold
#

Does anyone have an example usage in practice of IF please

quaint mantle
#

syntax-wise.

echo basalt
#

it's time for us to make config files in NBT format

regal scaffold
#

Not what I'm looking for smile

pseudo hazel
#

I have another question about the resourcepack GUI, if I have like a anvil menu I assume the name input field must always be in the same location right?

regal scaffold
#

But now I'm looking for non-xml too

quaint mantle
#

i prefer node js as my scripting language.

hazy parrot
#

main thing i hate about in js is that it doesn't have strict type system, hence autocomplete in ide doesn't work

lost matrix
regal scaffold
timid jetty
#

Okay this might be like the stupidest question however I get an unsupported API version which is a little weird considering that the API versions match. Let me know if im missing something thank you :)

[17:11:25 ERROR]: Could not load 'plugins\conquerorskills.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.19.3
    at org.bukkit.craftbukkit.v1_19_R2.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:318) ~[spigot-1.19.3-R0.1-SNAPSHOT.jar:3652-Spigot-19641c7-6aeb5e4]

regal scaffold
#

You giving me a task? lol

chrome beacon
#

Use 1.19

#

not 1.19.3 in your plugin.yml

echo basalt
#

me, making a website in java swagcircle

quaint mantle
echo basalt
#

everything

quaint mantle
#

how?

echo basalt
#

there's this framework called vaadin

echo basalt
#

beat you to it

#

thing is vaadin has some small limitations

lost matrix
#

Not on my screen

echo basalt
#

but you can overcome them

quaint mantle
#

can browsers run java on the frontend??

echo basalt
hazy parrot
echo basalt
quaint mantle
#

or does it compile to javascript?

hazy parrot
#

or js

quaint mantle
#

like typescript or something that.

echo basalt
#

for example vaadin doesn't have the audio tag built-in

#

but we can just make it ourselves

lost matrix
echo basalt
#

vaadin runs on top of spring

#

and compiles to typescript, yes

#

I'm using it for my school's final project

#

making like MCJukebox but allows people to talk to each other with directional audio

quaint mantle
#

i dont really know much about java web frameworks, not much about spring either.

regal scaffold
#

Appreciate it but I'm looking for something different. I want to see how someone with experience manages multiple menus across multiple classes with IF

echo basalt
#

neither do I

echo basalt
#

has nothing to do with IF

quaint mantle
#

i use node js and express.js for that stuff.

echo basalt
#

you just need to know how to pass data

echo basalt
#

so I do my best to abstract it away

lost matrix
echo basalt
#

the only thing I can't do that easily in java is css styling

#

but vaadin makes it easy by giving me a blank css file I can just edit

lost matrix
#

Yeah i was about to say

#

Vaadin apps often look like... Vaadin apps

quaint mantle
#

you cant get around dealing with html though, and xml at that, if you are doing DOM manipulation, probably.

echo basalt
#

and I just use tools online that generate css for me

#

so far I have a livestream audio source with a mute button and a volume slider

#

0 html code

#

also a dark theme button

quaint mantle
#

nice but you probably need to deal with actually html and xml for doing DOM manipulation.

#

or not really

#

depends on what you are doing.

#

you can just make nodes.

#

instead of adding innerHTML.

echo basalt
#

you mean this?

#

yeah that's easy

quaint mantle
#

yeah i meant innerHTML.

#

nvm.

echo basalt
#

pretty sure that's what setAttribute is for

daring lark
#
java.lang.NullPointerException: Cannot invoke "org.bukkit.command.PluginCommand.setExecutor(org.bukkit.command.CommandExecutor)" because the return value of "org.bukkit.plugin.java.JavaPlugin.getCommand(String)" is null```

what is wrong? I ahve this error for the first time and i don't know how to fix it.
echo basalt
#

you didn't register the command on plugin.yml

daring lark
#

i did

#

commands:
caketest:
description: test

pseudo hazel
#

no typos in when you set the executor?

quiet ice
daring lark
#

probably not

quiet ice
#

Yeah then you aren't

daring lark
#

but this is like lib and it works with other plugins perfect

quiet ice
#

Might want to double-check for typos, etc.

pseudo hazel
#

if I create an AnvilInventory using Bukkit.createInventory(InventoryType.AVIL, name) is there a way I can get the actual AnvilInventory to use getRenameText and the other methods it has?

#

or how else can I create such a menu an get that functionality

quiet ice
#

just cast it to AnvilInventory?

pseudo hazel
#

okay then I think something more is going wrong

quiet ice
#

Anvils are cursed

pseudo hazel
#
java.lang.ClassCastException: class org.bukkit.craftbukkit.v1_19_R1.inventory.CraftInventoryCustom cannot be cast to class org.bukkit.inventory.AnvilInventory (org.bukkit.craftbukkit.v1_19_R1.inventory.CraftInventoryCustom and org.bukkit.inventory.AnvilInventory are in unnamed module of loader java.net.URLClassLoader @504bae78)
        at io.github.steaf23.bingoreloaded.gui.KeyboardUI.<init>(KeyboardUI.java:86) ~[BingoReloaded-1.0-SNAPSHOT.jar:?]        at io.github.steaf23.bingoreloaded.gui.PaginatedPickerUI.delegateClick(PaginatedPickerUI.java:92) ~[BingoReloaded-1.0-SNAPSHOT.jar:?]```
quiet ice
#

ah I see

pseudo hazel
#

this.anvilMenu = (AnvilInventory)this.inventory;

quiet ice
#

Many people use a dedicated library for anvil inventories, that is likely why

#

?stash

undone axleBOT
pseudo hazel
#

what am I looking for in here?

quiet ice
#

Nah, i just wanted to look how the method is being implemented

pseudo hazel
#

I see

pseudo hazel
#

oof

#

amazing

#

so the AnvilInventory interface is useless? (in 1.19+)

quiet ice
#

It's just useless for self-created anvils

pseudo hazel
#

I see

quiet ice
#

However if you use a library that deals with that you probably can use it

pseudo hazel
#

what are those libraries you were talking about

#

like which ones

quiet ice
pseudo hazel
#

hmm

#

thats a tad annoying cuz I was hoping I could use my own inventory structure with this but I guess not

#

oh well, thanks for your help anyways

#

I guess I could just take the renamed item's name but im not sure how that gets created, I assume its just in the item meta at that point

twilit wharf
#

I am checking for if a player has a specific permission using Player#hasPermission but it keeps returning true even though the player doesn't have the permission. I checked with Luck perms and it does not have the permission. I tried multiple permissions, and they all came back as true. Am I using it wrong? Is there something I am missing?

quiet ice
#

Might want to use Vault as a fallback

#

Which is actually meant to support permission handling

twilit wharf
#

I thought LuckPerms could handle it just fine, is there something Vault can do that LuckPerms cant?

#

or is like a backup to verify that LuckPerms is working.

#

oh wait

#

if I am op, do I have every permission?

quiet ice
#

Yes

quiet ice
#

Alongside economy and more

twilit wharf
#

ok well, that fixed it

#

I forgot I was opped

quiet ice
#

happens to the best of us

warm mica
trail lintel
#

Hey guys, is there a place I can get a list of possible NMS version strings? I am getting the strings using this logic, but it seems the NMS versions don't exactly match up with the minecraft versions.

String versionString = Bukkit.getServer().getClass().getPackage().getName();
String nmsVersionString = versionString.substring(versionString.lastIndexOf('.') + 1);
remote swallow
#

yeah, nms doesnt always change per mc version

trail lintel
#

ah, I think I found a good resource for this

remote swallow
#

thats just buildtools im pretty sure

#

this has modules for all mc versions above 1.16

trail lintel
#

So if I understand correctly, 1.13.X does NOT mean that the same packets will be used across all 1.13 versions. I need to pay attention to the NMS RX version as well

#

I guess the minor in the version number only applies to api compatibility, not packets?

trail lintel
#

Excellent =] thanks a bunch

remote swallow
#

it just depends how mojang are feeling if they change between patch versions

trail lintel
#

It sure is a lot of effort to support multiple versions haha, but I think I'm getting the hang of it

remote swallow
#

yeah

#

module stuff is pain

trail lintel
#

Been super interesting to learn about though

#

But yeah setting up these modules was PAIN INCARNATE lol

remote swallow
#

maven module stuff is pain 200

#

gradle stuff is somewhat better

trail lintel
#

I actually haven't used gradle before. If I wasn't a maven guy at work I may have given it a shot

#

never had to use modules like this before though

remote swallow
#

i was bored and didnt get module stuff one day

#

so made that

trail lintel
#

ohhh nice, always good to have a resource to look at

remote swallow
#

gradle builds faster and is easier to get your head around

#

100%

trail lintel
#

yeah haha I'm a maven guy simply because ive used it at work for near 5 years now (and shockingly never had to use modules this way)

#

a creature of habit haha

quiet ice
#

The folk over at sponge certainly do not know how to use gradle

remote swallow
#

gradle files are more like code instead of millions of gradle

quiet ice
#

Fabric and Forge have similar issues. It is extremely hard to find very good gradle users

remote swallow
#

oh my ducking hell

#

what the fuck are sponge doing

quiet ice
#

Compiling module-infos with Java 16 and the rest with Java 8.
Depending on dependencies they shouldn't depend on.
And then they also have the issue of there being a general lack of people willing to work with gradle

lost matrix
#

But the community of maven is just about 10 times bigger so you get more support usually

remote swallow
#

gradle is great but docs are shit

#

maven is awful but docs are great

trail lintel
#

at least its not cmake ๐Ÿ˜‰

#

I have had some TIMES with cmake lmao

lost matrix
#

Oh yeah. I actually completely abandoned C++ because of cmake.
Rust has a much superior build system

remote swallow
#

we are all choosing to ignore sbt is a build system

twilit wharf
quaint oriole
#

Anyone know how I can round a double up to .5 or down to .5? For example 3.2 = 3.5, 4.9 = 4.5

#

All I figured out was how to round it to 1 decimal number

#

ohh

#

its so simple

#

damn, thanks

#

true

tardy delta
twilit wharf
#

Is there any way to detect when a permission is added to a player? I want to adjust something based on a permission and a runnable seems too inefficient. Is there an event or a better way to do it?

eternal oxide
#

I wrote a plugin for that., Look on spigot and the source is on Git

trail lintel
#

Guys, is there a way to do a mass build of multiple spigot versions with build tools? Because of the NMS differences I'm going to need to test not only on each major-minor version, but literally every single patch version as well.

#

and I REALLY dont wanna run build tools 37 times lmao

twilit wharf
remote swallow
eternal oxide
#

^

twilit wharf
#

thanks

kind hatch
trail lintel
#

that is a fair point, I think I have a solution though

#

although its still tedious

#

after that, unless I misunderstand

remote swallow
#

you can

#

one sec

kind hatch
#

Youโ€™d have to build for every version because NMS changes with every version.

trail lintel
#

just because the NMS version changes, doesn't mean the packet that I am targeting will necessarily change. So I may be able to use the same packet handler across multiple nms versions

remote swallow
#

run that file

#

correcting the java path(s)

trail lintel
#

lemme take a look here

remote swallow
#

you can change versions you want to build as well

trail lintel
#

oh wow, thats one hell of a bash script

remote swallow
#

theres probably a better thing for that that i dont know of

kind hatch
remote swallow
#

you can probably check screaming sandels

#

see what changed and where

pseudo hazel
#

I am unsure how this works exactly, I have shaded a dependency but now maven builds 2 files, the normal SNAPSHOT one and SNAPSHOT_shaded

#

what's the difference

wet breach
#

one is before shading, the other after

pseudo hazel
#

so I should always release the _shaded version then?

buoyant viper
spice shoal
#

guys i have a problem , i have tried to create a custom command for tutorial with some location , but when i use /tutorial , it teleport me only on first tplocation

pseudo hazel
#

as that is the one I was aiming to make by shading the lib

wet breach
pseudo hazel
#

oh okay

wet breach
#

unless you did something with the naming lol

pseudo hazel
#

which shades it to relocate it to your own package

wet breach
#

then it should be the other one, you can open it to verify everything looks correct if you want too

pseudo hazel
#

oh good point

#

well they seem pretty identical to me lol

#

the relocation is there on both versions

trail lintel
#

Ok guys, before I go down the route of crazy town and have the version of spigot for EACH version imported. Let me ask you this

#

say I am working on 1.16.X right. 1.16.1 uses nms 1_16_R1. 1.16.2 uses nms 1_16_R2. Do I need to import the exact version of spigot (not the api) to send objects via packets? Or is it safe to assume that the package structure is the same across all of 1.16.X, and its merely the PACKET structure that has changed?

wet breach
pseudo hazel
#

yeah

wet breach
#

interesting, could be from another plugin

pseudo hazel
#

hmm

#

well this is the only one I shaded

#

to my knowledge xD

trail lintel
#

I guess the safe bet is just to be as explicit as possible, even if nothing really changed between versions

pseudo hazel
#

yeah I think its safest if you assume each minor version is like a completely different version

rigid crystal
#

How can i code a config file?

tardy delta
#
BukkitWiki

The Configuration API is a set of tools to help developers quickly parse and emit configuration files that are human readable and editable. Despite the name, the API can easily be used to store plugin data in addition to plugin configuration. Presently only YAML configurations can be used. The API however was designed to be extensible and allow ...

wet breach
#

so like if you have maven jar plugin, it will use the shaded jar after it is done to produce another jar

#

for example

pseudo hazel
#

I see

wet breach
#

generally I always go with whatever was the final build name

pseudo hazel
#

well for now I will just use the one without _shaded

rigid crystal
tardy delta
#

dunno how if you arent sharing anything

#

?paste

undone axleBOT
rigid crystal
rigid crystal
pseudo hazel
#

how about the code you wrote?

#

like where the errors are

rigid crystal
tardy delta
#

ah is that bungee or smth?

rigid crystal
tardy delta
#

cant help you witth that then

#

google is your friend

scarlet moat
#

hmm, im creating custom enchants, and i have done 3 of them but i cant enchant them through anvil with books, please reply if you can help me.

trail lintel
#

bro these package names are driving me insane lmao, why would mojang include version number in your package name so I have to do an explicit import for every single minor version lmao

#

I notice that changes in 1.18 to a more generic package pattern

smoky oak
#

there are libraries that circumvent that

#

idk the name tho

sullen canyon
#

Is there any way I can change entity's direction it's looking at?
For example I have a ((CraftEntity) entity) but when I apply .setPitch it just doesn't work well actually it does but the entity doesn't change the direction of its head (even with bukkit runnable)

terse ore
#

being in survival?

sullen canyon
#

and I'm in survival mode

#

I apply my pitch to this entity

terse ore
#

set your gamemode to creative

#

and check if now the pitch is setting correctly

#

maybe you set the pitch but then it targets to you

rigid crystal
sullen canyon
#

Well it flies in the right direction

#

but its head

#

looks in a completely different direciton

eternal oxide
sullen canyon
#

it feels like I do setPitch(-myPitch)

eternal oxide
#

You are also trying to save a null config

#

Its also Waterfall so inappropriate to ask here.

sullen canyon
#

This is what I'm doing ((CraftEntity) dragon).getHandle().pitch = player.getLocation().getPitch();

#

and update it every tick

#

and it basically works but dragon's head direction is like -player.getLocation().getPitch();

#

for some reason

eternal oxide
#

player Location pitch is not the same as NMS pitch

sullen canyon
eternal oxide
#

you should use the method setPosRot, if it exists for your entity

#

to pass to nms pitch pitch = Location.normalizePitch(location.getPitch())

#

you should be settign yaw too

#
        float yaw = Location.normalizeYaw(location.getYaw());
        float pitch = Location.normalizePitch(location.getPitch());

        this.setYRot(yaw);
        this.setXRot(pitch);
        this.yRotO = yaw;
        this.xRotO = pitch;
        this.setYHeadRot(yaw);    // Sync head rotation```
sullen canyon
#

I'm coding for 1.8

#

probably this is the problem

eternal oxide
#

yes

#

?1.8

undone axleBOT
sullen canyon
eternal oxide
#

no idea, you could lookup the current normalize method

#

?stash

undone axleBOT
lost matrix
livid dove
#

Anyone got experience with multicraft saving and it causing ram issues?

#

seems we get this giant uptick in ram usage whenever the game saves via a mutlicraft save

lost matrix
#

Wait multicraft is a server host iirc

terse ore
#

wasn't it a panel?

remote swallow
#

multicraft is a panel

lost matrix
#

Which triggers saves?

quiet ice
#

Yeah, makes sense

#

Many panels do that

#

Or rather, can do that

eternal oxide
lost matrix
#

Not really the concern of a panel in my opinion but ok...
Well then its clear. It uses the ram to buffer parts of the data that is being saved.

small hawk
eternal oxide
#

unicode characters