#help-development

1 messages · Page 304 of 1

vast raven
#

about?

rotund ravine
#

Where is it saying the exception happens etc.

pastel fulcrum
rotund ravine
#

I know there is stacktrace, but i do not know it correlates to the screenshot.,

vast raven
chrome beacon
rotund ravine
vast raven
chrome beacon
#

Which line it is

rotund ravine
#

causegui line 44

vast raven
chrome beacon
#

bruh

#

I can read

rotund ravine
#

Like m8

#

highlight it for us

#

we can't go 44 down on your silyl screenshot

vast raven
#

The line 44 is the for each loop

magic raptor
#

It's possible to add multiple chat clickable buttons on one line?

Example:

[SUPPORT] [WEBSITE] [SHOP]

I can't do it, I'm getting kicked for "don't know how to turn clickevent into component"

vast raven
rotund ravine
vast raven
magic raptor
rotund ravine
#

We need more information about your plugin then.

chrome beacon
magic raptor
vast raven
pseudo hazel
#

what does the causetranslator do

vast raven
#

It's autopsy plugin

vast raven
pseudo hazel
#

well what does it do though

#

like if you comment it out does it still fail

vast raven
vast raven
#

using a causes translator (switch)

pseudo hazel
#

can you show that part?

vast raven
pseudo hazel
#

yeah

#

but actually it doesnt really matter

#

just comment out parts of the function until its fixed

#

and then you know what part causes the issue

vast raven
#

that's the code

#

of the entire class

tardy delta
#

static method where

vast raven
#

There is no static method

#

You have to instantiate a translator based on a case, and then you can translate it

buoyant viper
#

sounds... consuming

vast raven
#

getTranslated() gives you a ItemDescription object, that has the infos of the translation

vast raven
tardy delta
#

whats the point of that class if it only has one field thats used in one place?

pseudo hazel
#

I mean is that the only thing this class will have?

buoyant viper
#

could be made into a static method :p

tardy delta
#

just create an utiltity method somewhere

pseudo hazel
#

or do you still wanna add more stuff

hazy parrot
#

Imo there is no need for object if its just utility

#

It has no real state

vast raven
buoyant viper
#

in this case its fine

hazy parrot
#

This is example of not abusing static

vast raven
#

btw back on my problem

#

what's the list changed stuff

#

I mean sometimes it even works, sometimes not

fluid river
#

or how was it called

#

same as in Calendar

#

which has getInstance() based on things you give as parameter

vast raven
#

I'm actually confused

dense crow
#

hey, someone can help we with closing ironDoors by rightclick=?

vast raven
#

I don't get the sense of the exception

dense crow
vast raven
#

not the material

dense crow
#

im already doing

hazy parrot
dense crow
#

i can open it without any problems

vast raven
#

Maybe @dry yacht you could help me

rough drift
#

Chunk#getBlock#setType isn't setting types

vocal void
#

Hello i have an error with the koth plugin. Logs are normal but doesn’t works says in a bossbar when I start a koth koth percentage capped . Can you help me please?

rough drift
dense crow
# dense crow i can open it without any problems
Door iDoor = (Door) e.getClickedBlock().getState().getData();
                            Block door = e.getClickedBlock();
                            BlockData doorData = door.getBlockData();
                            if (!iDoor.isOpen()) {
                                ((Openable) doorData).setOpen(true);
                                door.setBlockData(doorData);
                                p.playSound(p.getLocation(), Sound.BLOCK_IRON_DOOR_OPEN, 10, 10);
                            } 

thats the way i open it, and that just works

chrome beacon
dense crow
#

ah mb

dense crow
tardy delta
#

setOpen(!isOpen()) ig

dense crow
#

oh god the formatation just gone bad

chrome beacon
tardy delta
#

still gotta apply sounds ig, so nvm

#

whats an iDoor tho

#

what has door done to you?

chrome beacon
chrome beacon
buoyant viper
dense crow
chrome beacon
#

Only 9999$

dense crow
tardy delta
#

hello iDoor are you open?

#

no pay me 999$ first

dense crow
#

apple door

dry yacht
#

Hard to tell without line-numbers in the code.

chrome beacon
#

?paste

undone axleBOT
chrome beacon
#

and where are you sending it

magic raptor
#

in another class that simply picks up the component using getter

#

player#sendmessage(ButtonUtil.getComponent());

chrome beacon
#

That method doesn't accept components

#

So I doubt that's your code

magic raptor
chrome beacon
#

And what's the player object

magic raptor
chrome beacon
#

That method doesn't exist in the spigot api

magic raptor
#

man wtf

chrome beacon
#

Are you sure you're using the Spigot api

magic raptor
#

obv

chrome beacon
#

Could you show your pom

magic raptor
#

Man that's spigot api

vast raven
#

read under that

chrome beacon
magic raptor
#

How am I not using spigot api then?

eternal oxide
#

nothing private in a pom

chrome beacon
magic raptor
#

wtf

chrome beacon
#

It only exists in Paper

magic raptor
#

see

chrome beacon
#

Not the event

#

...

magic raptor
#

"hub.spigotmc"

chrome beacon
#

The sendMessage

magic raptor
#

what doesn't exist

somber sequoia
#

hes trying to say that there is no sendMessage that takes a textcomponent

chrome beacon
#

^ it doesn't exist on the player object

magic raptor
#

ah yeah, switched to spigot api, let's see

#

probably still broken

dry yacht
# vast raven the 44 line is the for loop

Sorry, but I'm not in the mood for having to mentally crunch through many open possibilities due to insufficient information. If you want any serious help, you post the full stacktrace (which you already have), as well as the full containing class.

magic raptor
chrome beacon
#

Why are you using legacy colors in your component

#

Components use component colors

magic raptor
chrome beacon
#

Also make sure you're testing on Spigot and not Paper

magic raptor
#

i'm

#

i always test with normal spigot, never with forks

#

it simply kicks me

chrome beacon
#

If you were testing with normal spigot the method in your code would have thrown an error

magic raptor
#

(no errors in console)

chrome beacon
#

Since it doesn't exist

magic raptor
magic raptor
#

but i need to send all clickable messages, so string isn't the case

chrome beacon
#

Yeah I was talking about earlier

#

And your statement that you always test with normal spigot

magic raptor
#

i am still getting the error, using the addExtra method provides an exception when joining to the player (which is exoected because aparently a JsonParseException is happening)

#

which is returning this error as already stated

#

using the Player#spigot#sendMessage(BaseComponent) doesn't work. it produces that error

magic raptor
chrome beacon
#

Are you using any protocol plugins

#

Like ViaVersion for example

magic raptor
#

no i am not

chrome beacon
#

shrug Then update to a modern version

#

Should fix the issue

magic raptor
#

you have great problem solving skills i see

dry yacht
#

Is the client also at 1.8.8?

kind coral
chrome beacon
magic raptor
kind coral
#

everyone would be in latest if it wasn't for other servers running legacy

dry yacht
kind coral
#

not a developer issue, everyone can run any version of choice, if that wasn't the case, they shouldn't be downloadable

magic raptor
dry yacht
magic raptor
#

this is where i create the component

#

so @dry yacht anything wrong?

dry yacht
magic raptor
#

okay, go ahead

dry yacht
magic raptor
#

mh, i'm not using json as file in any case, but what do you mean?

dry yacht
#

Try doing new TextComponent(" ") instread of the empty constructor, with a space in the string. Just for testing purposes.

chrome beacon
magic raptor
#

seems working now

#

i'm debugging a little more

dry yacht
# magic raptor seems working now

I think that you're building your component in a way it's not supposed to. The first text has to always be the head, not an extra. What are you trying to do? Just send a clickable message?

dry yacht
# magic raptor seems working now

Yeah, because of what I previously said about the JSON layout. You fixed it by forcing the serializer to no longer omit the text property.

quaint mantle
dry yacht
magic raptor
#

fixed everything thank u

dry yacht
quaint mantle
chrome beacon
#

Also there's no real need for them. You can run a modern server with viabackwards and old combat mechanics

worldly ingot
#

< 6% or so

#

Almost 75% are 1.18 or higher

quaint mantle
dreamy hull
#

Yop, I use the ChatColor.of(hexValue) but in game the colours are not the right ones. Could this be a concatenation problem? Should I use TextCompenent?

chrome beacon
#

Depends on what you mean by not the right ones

#

What happens?

#

Worst case you'll need to convert that hex value to legacy colors. The format is §x§f§f§f§f§f§f for #ffffff

worldly ingot
#

and what hex value are you putting in? It's possible you're misrepresenting the value and it's slightly altering the colour as a result

worldly ingot
chrome beacon
#

Alr

dry yacht
somber sequoia
#

Hey, I'm trying to use NMS but for some reason org.spigotmc.spigot does not exist on the maven repository

chrome beacon
#

Yeah Mojangs code is copyrighted

#

You can't share it publicly

#

So run BuildTools to get it added to your local maven repo

#

?bt

undone axleBOT
somber sequoia
#

Ok

#

Thanks

covert yacht
#

Hello how can i know if a mob spawner is empty ? because by default it looks empty but on the code using the following code it returns me EntityType.PIG by default

BlockState blockState = block.getState();
            EntityType entityType = ((CreatureSpawner) blockState).getSpawnedType();```
rotund ravine
#

probably legacy

#

pig was always "empty" in the past

chrome beacon
#

^^

rotund ravine
#

?stash

undone axleBOT
rotund ravine
#

will be pig if empty

#

typename will not

#

@covert yacht

covert yacht
rotund ravine
#

use that

covert yacht
#

Alright thanks !

tender shard
#

i dont understand github code spaces

rotund ravine
worldly ingot
#

It's a little hard to understand but in principle they're rather simple

#

You know how the meme always goes "well it works on my computer"?

#

Codespaces is that computer that everyone has access to. It's an environment of predefined dependencies and whatnot

tender shard
#

yeah but how am I even supposed to install java on this codespace thing?

#

I mean I need java 8 and java 17 to run buildtools

worldly ingot
#

No clue 😄

tender shard
#

the included version is java 11

#

it has apt installed, but obviously I am not root

tender shard
rotund ravine
#

choose highest, build for lower.

tender shard
#

buildtools 1.16 doesnt run on java 17

quiet ice
#

But 1.8 bullshit !111!!!111

tender shard
#

buildtools will complain if you try to build 1.16.5 with java 17 so this won't work

quiet ice
#

Why is that even the case? Doesn't spigot use eclipse for that exact reason?

rotund ravine
tender shard
#

i dont know why, still i dont get the whole point of codespaces

quiet ice
#

Codespaces are just a gimmick

rotund ravine
tender shard
#

they are a pain. E.g. I could use debian as image, then install java 8 and java 17, but the container gets rebuilt, everything is gone again lol

rotund ravine
#

Why would you need something to run java 11, 13, 14, 15, 16, 17, 18 when it can just run 18

tender shard
tender shard
#

and as I already explained, buildtools needs different java versions for different spigot builds

rotund ravine
#

Yeah, the usecase is niche.

tender shard
#

I don't understand any use case. why would anything "work on my pc" but not on another, if all that codespaces can do for me is to install exactly one java version and nothing else?

rotund ravine
#

Why would you need more javas usually?

#

You code for one and deploy with one.

tender shard
#

I dont understand what codespaces are for in general

rotund ravine
# tender shard I dont understand what codespaces are for in general

"What is a codespace? A codespace is a development environment that's hosted in the cloud. You can customize your project for GitHub Codespaces by committing configuration files to your repository (often known as Configuration-as-Code), which creates a repeatable codespace configuration for all users of your project."

tender shard
#

yeah but all you can use is their prebuilt containers. I mean, one could rather setup one's own docker-compose file, then at least you can customize everything

#

it's like an "online docker container" without the usual custom configuration options

rotund ravine
#

Yeah, everyone tends to do that

#

"use mine over others"

tender shard
#

no idea what you mean

rotund ravine
# tender shard no idea what you mean

Here is what chatgpt says about it with your responses:
Yes, that's correct. With GitHub Codespaces, you are able to use pre-built containers that are provided by GitHub. These containers have a set of tools and runtimes already installed and configured, which can help developers to get started quickly without needing to set up their own development environment. However, you may have less flexibility in customizing the environment to your specific needs.

You can use a dev container configuration to set up custom tools and runtimes in the codespace, but the customization is limited to what the dev container configurations allows.

Alternatively, if you set up your own development environment using something like docker-compose, you would have more control over the specific tools and configurations that are used. This would give you greater flexibility in customizing the environment to your specific needs. But keep in mind that this would also require more setup work on your end and you would be responsible for the management of the environment.

GitHub Codespaces is a preconfigured environment for the user, for users who wants to have a quick start on their development this is an good option, but for those who wants to have more fine-grained control over the environment would prefer setting their own using something like Docker.

tender shard
#

well yeah that is exactly what I said. codespaces can't do more than provide a container with java and maven installed. that's it. One can also get it by just running docker-compose up and have a docker-compose file in the repo. oh and that'd even be free instead of only allowing one to use it for 2 hours per day

rotund ravine
#

GitHub Codespaces is a preconfigured environment for the user, for users who wants to have a quick start on their development this is an good option, but for those who wants to have more fine-grained control over the environment would prefer setting their own using something like Docker.

#

It's not made for your usecase.

tender shard
#

it seems to be very useless to me

#

jetbrains spaces are actually useful, you can just provide your custom dockerfile

#

weird that github doesn't allow it, but jetbrains does besides they are free / don't have any "only 2 hours per day" limit

onyx fjord
#

gitpod better

#

idk why github thinks my codespace used 20 gigs

#

when it was 100megs at best

tender shard
tender shard
rotund ravine
#

could always recommend some changes to them somehow

tender shard
#

whenever I message their support, they just tell me to post it again in the "community forums" where obv no staff ever answers, so basically they don't have any staff that you can reach at all

onyx fjord
#

takes 10 minutes to just add java

tender shard
onyx fjord
#

pro is like nitro but the poorest one

#

i only have it cuz its free for me

tender shard
#

"support via email" ...

#

only took them 7 days to reply to me that I shall ask the community. And that's what they call "support via email". Oh btw ofc I did ask the community, all I got was replies like "I have the same problem"

rotund ravine
#

Then hopefulyl they add it when they get around to it

tender shard
#

jetbrains also allows selfhosting the spaces for free for up to 10 users

naive bolt
hazy parrot
#

What is github packages?

remote swallow
#

you can host like a jar package on thei

#

like i could host my lib on their if i could be bothered

torn badge
#

Apparently there is a bug in pre-1.19 which doesn't send an inventory close packet when closing an inventory while having touchscreen mode enabled, is there a way to fix that?

remote swallow
#

unless they arent gonna do anything even looking somewhere or moving, you can listen to the move event and check if the inv close hasnt been called from your open

humble bane
#

Who coding in php, css, html, mysql write in pm thanks

terse pumice
#

What is the use of "sender" in the Player.sendMessage() function?

#

I know I don't have to use that parameter but am just interested as to the use case

round finch
#

i saw ij ide had real time debug for spigot?

rotund ravine
quaint mantle
#

Why doesn't these have any?

        config.getConfigurationSection("server-selector.items")?.getKeys(false)?.forEach {
            val section = config.getConfigurationSection(it)

            val slot = section?.getInt("slot")!!
            val material = section.getString("material")
            val name = section.getString("name")
            val texture = section.getString("texture")
            val lore = section.getStringList("lore")
            val commands = section.getStringList("commands")

            buttons[slot] = ServerSelectorButton(material!!, name!!, texture!!, lore, commands)
        }
server-selector:
  size: 27

  items:
    - slot: 11
      material: DIAMOND_SWORD
      name: "&e&lPvP"
      texture: ""
      lore:
        - "&7Click to join the PvP server."
      commands:
        - "server pvp"
    - slot: 13
      material: DIAMOND_PICKAXE
      name: "&e&lSkyblock"
      texture: ""
      lore:
        - "&7Click to join the Skyblock server."
      commands:
        - "server skyblock"
    - slot: 15
      material: DIAMOND_AXE
      name: "&e&lFactions"
      texture: ""
      lore:
        - "&7Click to join the Factions server."
      commands:
        - "server factions"
#

None of the items appear its like they arent there

remote swallow
#

items is a list of config sections

#

not a config section of config sections

round finch
#

if it is config yml

the selection paths is the same
that will cause issuess

remote swallow
#

yeah

#

you would need to loop over the list and create items from the sections in thelist

quaint mantle
#

val section = config.getMapList("server-selector.items.$it")
like that?

remote swallow
#

jsut getList

#

List<ConfiguratonSection> list = config.getList("server-selector.items")

round finch
#

the path needs to be unique

remote swallow
#

its a list

#

it doesnt

round finch
#

ahh

remote swallow
#

the - makes it a list of config sections so it doesnt care

round finch
#

yeah lists doesn't follow that rule

#

because it is just a list of objects

remote swallow
#

wait until you hear about yaml anchors

round finch
#

tell me boi

remote swallow
#
items:
  elytra: &elytraitem
    Enchants:
      MENDING: 1
      DURABILITY: 3
    Lore:
      - Lore Line 1
      - Lore Line 2
    # DO NOT PUT COST HERE!!!!!!!!!!
    Name: Epic Elytra name
    Material: elytra
    Cost: 150


vote-gui:
  1: *elytraitem
#

this is valid yaml

#

you can define something elsewhere and call on it

round finch
#

omg i hate it

remote swallow
#

i love it

quaint mantle
# remote swallow the - makes it a list of config sections so it doesnt care
        config.getConfigurationSection("server-selector.items")?.getKeys(false)?.forEach {
            val section = config.getList("server-selector.items.$it")

            val slot = section[0] as Int
            val material = section[1] as String
            val name = section[2] as String
            val texture = section[3] as String
            val lore = section[4] as List<String>
            val commands = section[5] as List<String>
            buttons[slot] = ServerSelectorButton(material!!, name!!, texture!!, lore, commands)
        }
``` ?
remote swallow
#

its so cool

quaint mantle
#

Assuming its not like this cause it didnt work

remote swallow
#

its kotlin

#

also that would loop over it as if its a config section

#

not as a list of config sections

round finch
#

try

remote swallow
#

kotlin guy is here

rotund ravine
#

Well whatever he is trying to do is wrong

remote swallow
#

yeah i thought so

rotund ravine
#
items:
    - slot: 11
      material: DIAMOND_SWORD
      name: "&e&lPvP"
      texture: ""
      lore:
        - "&7Click to join the PvP server."
      commands:
        - "server pvp"
    - slot: 13
      material: DIAMOND_PICKAXE
      name: "&e&lSkyblock"
      texture: ""
      lore:
        - "&7Click to join the Skyblock server."
      commands:
        - "server skyblock"
    - slot: 15
      material: DIAMOND_AXE
      name: "&e&lFactions"
      texture: ""
      lore:
        - "&7Click to join the Factions server."
      commands:
        - "server factions"
#

this is a list

remote swallow
#

ye

rotund ravine
#

not whatever you are trying to get.

remote swallow
#

he started as looping over it as a config section of sections

rotund ravine
#

How are you saving this though.

river oracle
#

how are you supposed to override the hashCode method I've never understood this

remote swallow
#

funnily enough i made a better config items lib yesterday

#

it just doesnt have click features

rotund ravine
remote swallow
remote swallow
#

stil need to add pdc to it

rotund ravine
remote swallow
remote swallow
rotund ravine
#

I wouldn't write kotlin when i can't do it in java.

river oracle
round finch
#

i spend alot of time and felt the pain of gui and yml

#

only made me more aware

remote swallow
#

i had to do config items for one of my projects and i never want to do it again

#

so i made it a lib

river oracle
# rotund ravine ??

I don't use intellij I use vscode, but theres an equivalent feature so I'm just looking for the hotkey so I can map it to be easier

rotund ravine
#

IJ is just like "convert to kotlin" whenever u paste java code in a kotlin clas

river oracle
# rotund ravine Ah

lol it generated, but damn does sonar lint go off at me damn vscode coding convetions aren't quite it lol

remote swallow
#

what would you say the best form for writing pdc would be

remote swallow
#

like ```yaml
pdc:
pluginName:key:
type: STRING
value: value1

river oracle
remote swallow
#

like that in a condig

remote swallow
#

config

rotund ravine
remote swallow
rotund ravine
remote swallow
#

what if they need pdc to be assigned to a different plugin

rotund ravine
#

why would you need that

remote swallow
#

if its used in some custom crafting gui situation

rotund ravine
#

meh nah

river oracle
#

just provide an API for your plugin

#

and make other devs impl if their users request

remote swallow
#

its a lib

#

so i have no good way to get the plugin its in

river oracle
remote swallow
#

can i get a plugin from its main class?

rotund ravine
#
PDC:
  PluginName:
    Key1: value
    Key2: value
  PluginName2:
    Key1: Value
    Key2: Value
remote swallow
#

i call an init method so i could get the class from the call

remote swallow
#

that looks better

river oracle
# remote swallow can i get a plugin from its main class?

I just take the biggest easiest least complicated short cut and for my lib do this

    @Getter
    private static Plugin instance;

    private Megumi() {
    }

    public static void enable(final Plugin plugin) {
        instance = plugin;

        plugin.getServer().getPluginManager().registerEvents(new MenuListener(), plugin);
    }```
remote swallow
#

but without specifying type it might bet a bit weird

river oracle
#

yeah maybe its a tad scrappy

#

but who gives a fuck

rotund ravine
remote swallow
#

ah true

remote swallow
#

if i make them specify a plugin it might get a bit weird if they want to put this into another lib

buoyant viper
#

i cant get myself to make the switch to VSC for dev

#

besides webdev

river oracle
#

I use it for everything

remote swallow
#

but it appears i need to learn to make exceptions

#

so i can just throw a plugin not found exception if its wrong

river oracle
#

Why can't you just make the lib shaded

#

in provide the plugin instance through the static setter I showed

#

yeah it slightly inflates file sizes, but who cres

remote swallow
#

so people can specify other plugins as keys or this could be shaded into other libs

#

mainly just for compat

#

if this is used in aplugin that connects to other plugins

#

and it requires a different namespacekey

quaint mantle
#

Its for a server selector

twilit garden
#

is there a way to use translateAlternateColorCodes with the String.split() function?

remote swallow
#

like split at where it translates?

twilit garden
#

im trying to make this :
"&7this is some kind of test@i guess :/ im not@sure."
both use the colors and split

#

the @ is split and & is color code

remote swallow
#

translate it and split the result

twilit garden
#

ah

#

kk lemme try

rotund ravine
quaint mantle
twilit garden
#

this happens

#

only the first line get colored

remote swallow
#

ah

ancient plank
#

I've got some nasty code for fixing that

remote swallow
#

thats a minecraft thing i think

twilit garden
#

yea

ancient plank
#

Bc split makes it 2 lines, and lore is a list of strings

#

So you have
&7blah blah
New line stuff

twilit garden
#

hmmmmm

#

yeah

ancient plank
#

Basically you gotta get the last color and add it to the new line

twilit garden
#

yea

ancient plank
#

?jd-s

undone axleBOT
remote swallow
#

?jd-bc

ancient plank
remote swallow
#

yucky org.bukkit chat color

#

but that would work

twilit garden
#

hmmm ye

ancient plank
#

I've got some gross code for doing it, but it's for paper so it uses paper components

#

I could clean it up, but since it works I don't touch it

remote swallow
#

reasonable

twilit garden
#

ye

remote swallow
#

i ought to make my lib multi module or just impl paper lib and change methods

remote swallow
#

i wonder if i could use Objects instead of strings or components to do it

#

i already impl minimessages so its just the case of changing methods that return strings

remote swallow
#

that would probably just cause unnecessary casting

terse pumice
#

Idk if I am being dumb but what method do I use to send hex color messages to players?

#

I know about MineDown and MiniMessage etc. but what is the default method?

twilit garden
#

i tried doing tis

#

didnt work XD

remote swallow
terse pumice
#

no clue

#

let me have a look

remote swallow
#

you might need to convert the hex to Color and then add the format

terse pumice
#

that is smelly but alright haha, thank you

remote swallow
#

yeah

#

you could probably impl the adventure legacy serializer and use that to conver it

#

its what i use

terse pumice
#

how would i go about doing that?

terse pumice
#

let me give that a whirl :)

remote swallow
#

the Minimessage.minimessage.deserializer part isnt nessecary

terse pumice
#

does that method just mean that MiniMessage works on it too?

remote swallow
#

yeah

#

it just means i could use "<red>&l red and bold"

terse pumice
#

yeahh

#

i literally just spent ages making something like 10 times more complicated than that and it does the exact same thing :D

#

going insane

#

LOL

remote swallow
#

lol

terse pumice
#

I was making it work out if the user was using MineDown or MiniMessage

remote swallow
#

ah lol

terse pumice
#

Oh well you just solved all my problems so thanks ahaha

remote swallow
#

np

#

formatting to legacy is just the easier option

terse pumice
#

it yelled at me 😨

remote swallow
#

works on pretty much all clients, works on all forks and shouldnt have too many issues in some cases

remote swallow
terse pumice
#

mmm nice and small

#

thank you discord

remote swallow
#

ah

ancient plank
remote swallow
#

yea they dont like the funky & symbol

#

thats the one issue i found

terse pumice
remote swallow
#

i was accidentally formatting something that was getting formatted again

remote swallow
undone axleBOT
humble tulip
#

anyone here has experience writing a server?

#

not mc server

#

just a server in java

remote swallow
#

translateAlt codes with the string of minimessage

ancient plank
#

Shouldn't be using the funny symbol imo anyways

terse pumice
remote swallow
#

im so confused

#

idk how that adds up

#

check you arent formatting it again or passing in a already formatted string

terse pumice
#

ChatColor.translateAlternateColorCodes('&', SERIALIZER.serialize(MiniMessage.miniMessage().deserialize(ActivityRewarder.configManager.getReloadMessage())));

remote swallow
#

does the .getReloadMessage format it

terse pumice
#

🤡

remote swallow
#

thats the only way i can think of that happening

terse pumice
#

yeah it does

#

LOL

remote swallow
#

it happened to me like 3 days ago

#

i facepalmed so hard

terse pumice
#

idk why i did that in my config

#

that is bad practice

humble tulip
remote swallow
#

lol

#

im surprised you didnt get ?Ask'd

humble tulip
#

yh

#

i was expecting it tbh

#

but I can't expect to get non spigot help here as well

remote swallow
#

theres some things you can

#

that random people just know the answer to

terse pumice
#

well

#

more like it didn't work LOL

#

no errors this time though ahah

remote swallow
#

you might need to use the minimessage format for hex

#

havent had a chance to test it lol

terse pumice
#

&#fba4d1&l✿ this is the format i am attempting to use

ancient plank
#

Real chads use ChatColor.of()

remote swallow
terse pumice
#

yeahh i'm sure the minimessage version will work

remote swallow
#

theres probably a way better way to do that

#

i just didnt think of it

terse pumice
#

but my problem is that a friend wants to use https://rgb.birdflop.com/ this website to produce gradients and is against using MiniMessage so I am trying to use the &#rrggbb format

remote swallow
#

ah

ancient plank
#

ChatColor.of("#123456")

remote swallow
#

that would require you to find where the hexs are

#

but would work

#

could probably use regex or something

mighty aurora
#

Anyone know how a this.plugin in the "main" class of my plugin is null?

remote swallow
#

?paste the class and paste main class

undone axleBOT
mighty aurora
#

import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.logging.Logger;

public class TimeBoundItems extends JavaPlugin {
    private Plugin plugin;
    public static final Logger log = Logger.getLogger("Minecraft");

    public TimeBoundItems() { this.plugin = this.plugin; }

    @Override
    public void onLoad() {
    }
    @Override
    public void onEnable() {
        this.plugin.saveDefaultConfig();
        // Plugin startup logic
        this.getCommand("items").setExecutor(new CommandItem(this));
        getLogger().info("Plugin Enabled");
        getServer().getPluginManager().registerEvents(new darkMist(this), this);
    }
    @Override
    public void onDisable() {
        // Plugin shutdown logic
        getLogger().info("Plugin Disabled");
        super.onDisable();
    }
    public void msg(CommandSender sender, String msg) {
        if (msg.length() == 0) {
            return;
        }

        sender.sendMessage("§e§lTime§c§lBound:" + msg);
    }
}```
#
java.lang.NullPointerException: Cannot invoke "org.bukkit.plugin.Plugin.saveDefaultConfig()" because "this.plugin" is null
    at us.newrealms.timebounditems.TimeBoundItems.onEnable(TimeBoundItems.java:27) ~[TimeBoundItems-0.059Snapshot.jar:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:536) ~[paper-api-1.19-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:561) ~[paper-1.19.jar:git-Paper-31]
    at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:475) ~[paper-1.19.jar:git-Paper-31]
    at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:633) ~[paper-1.19.jar:git-Paper-31]
    at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:419) ~[paper-1.19.jar:git-Paper-31]
    at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.jar:git-Paper-31]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1121) ~[paper-1.19.jar:git-Paper-31]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:302) ~[paper-1.19.jar:git-Paper-31]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]```
delicate lynx
#

you never set it

remote swallow
#

why do you have a constructor that just sets the plugin instance to the plugin instance

#

you dont need that in your main class

#

and that constructor would never get called unless you call it

delicate lynx
#

also why are you using "Minecraft" logger, your plugin comes with one you should use instead

remote swallow
#

^^

mighty aurora
#

Anything else?

remote swallow
#

you dont really need to call super.onDisable

#

and instead of using this.plugin just type saveDefaultConfig()

#

you already in a pluing instance

mighty aurora
#

ok

humble tulip
#

int amount;

#

this.amount = this.amount;

round finch
#

that is literally the same?

humble tulip
#

Ik

#

It's to show what he did didn't make sense

shy fable
#

Do you know why the EntitiesLoadEvent event doesn't load the armor stands? in version 1.19.3?

mighty aurora
#

Anyone know anything about how to fix this? Connection failed: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

humble tulip
#

AAAAAA
i hate nms

green tapir
#

guys

#

is it possible to make a mob follow your orders when you type them in chat with mythic mobs?

#

cuz idk lol

remote swallow
#

if they have an api maybe

green tapir
#

?

#

like how?

#

cuz idrk how to code lol

crude parcel
remote swallow
#

?learnjava

undone axleBOT
green tapir
#

ok

#

sigh time to learn

remote swallow
crude parcel
#

Then I'll stick to what I'm doing now

#

thx man ^^

twin venture
#

hi , i tested this code , its working fine ..
is there a better way of doing it .

#

🤔🤔spigot

wet breach
remote swallow
#

anyone know if a potions effect, not custom, is on its nbt or its metadata

remote swallow
#

what would its key be

#

im just looking at the jds of how i would do it

wet breach
#

The key should be the name of the effect if i recall

remote swallow
#

so would i have to loop over the values and check if any matches the potion effect enum

wet breach
#

That is one way to do it if you wanted to check if any potion effects are there

#

But if you were just checking for a specific one you would just check if the metadata returns anything for it

remote swallow
#

sadly i have to check if its any effect so i can store that

wet breach
#

Yeah then you would just grab all the metadata use a loop to see if any enums matches

remote swallow
#

mk

#

i just thought of an issue

#

ah wait i just fixed it

#

arent all potion effects length reliant on their effect level

#

like a poision 2 potion is a different legnth to poision 1

wet breach
#

Length as in time? No time is separate from their level

#

Well have no idea if a poison 2 is longer duration then 1

remote swallow
#

im just thinking how i could save this in the same area as custom effects but have a way to check what it is

wet breach
#

But you can always get the duration for a given effect using the api

remote swallow
#

yeah

#

i could probably check if theres only 1 effect, and if that effect level matches an existing potions level

#

does the api have some way to get existing potions

#

so i just found PotionData.getType and that method has a getMaxLevel

#

so ig i can just check if that max level equals the effect level

#

i wonder if minecraft would automatically know if it matches

#

or because im adding custom effect it wouldnt

#

guess we find out

#

would i just cast materialData ot potionData

#

oh wait im dumb

#

theres a getBasePotionData

#

frick

#

i dont think theres a way to get current level of a potion thats built in

robust zenith
#

At the moment there is just the event traps the player was hit by arrow entity, and everything is correct, I tested it and it's ok
But now i want to remove blocks placed when a player sneak so, I did when a player is hit by an arrow, this code places some webs around the player, now i want to remove it with a toggle sneak but i can't insert an event inside another event

I am trying to call the variables of the first method i did there in another method, if necessary in another class but maybe is better taking a player radius and do a check of the plocks are webs and not

quaint mantle
#

hey i have got the key stokes working for a chat bot but how do i make it stay smth or type it in. I am doing this in java

remote swallow
robust zenith
remote swallow
remote swallow
#

or better use a map

#

so it works for multiple players at once

robust zenith
#

Yeah, i don't know if you can see i have just little basics of java for the moment and i am studying other things but i am trying to practice stuff i studied for the moment, i think i have to google just to create a map and then let you know but i think i can't do it for the moment but thanks as same

#

I know there is no spigot without java lol

remote swallow
#

public class ClassName implements Listener {

    private Map<UUID, List<Block>> playerBlockMap = new HashMap<>();

    @EventHandler
    public void onProjectileDamage(EntityDamageByEntityEvent event) {
          if (!(event.getEntity() instanceof Player player)) return;
          Location playerLocation = event.getEntity().getLocation();
          Material web = Material.WEB;

          Block playerFront = playerLocation.add(1, 0 ,0).getBlock();
          Block playerBack = playerLocation.subtract(1, 0, 0).getBlock();

          Block playerHead = playerLocation.add(0, 1, 0).getBlock();

          Block playerLeft = playerLocation.add(0, 0, 1).getBlock();
          Block playerRight = playerLocation.subtract(0,0,1).getBlock();
          List<Block> blocks= new ArrayList<>();
          blocks.add(playerFront);
          blocks.add(playerBack);
          blocks.add(playerHead);
          blocks.add(playerLeft);
          blocks.add(playerRight);
          playerBlockMap.put(player.getUniqueId(), blocks);


          if (event.getDamager() instanceof Arrow) {

              for (Block playerTrap : playerLocations) {

                 if (playerLocations.equals(Material.AIR))
                  playerFront.setType(web);
                  playerLeft.setType(web);
                  playerRight.setType(web);
                  playerBack.setType(web);
                  playerHead.setType(web);

              } 
          }   
        }
    }

#

thats the concept for the damage

#

just create the sneak toggle listener and get the list for the players uuid then set the blocks to air

robust zenith
#

thank you soo much bro, you have hearth on the right way everytime you help me thank you!

#

How to write stuff like this without going on md5paste?

remote swallow
#

@vagrant stratus

jagged monolith
#

@worldly ingot @ancient plank

harsh totem
#

💀

remote swallow
#

all the staff are dead confirmed

robust zenith
remote swallow
#

you could probably write another for loop for it

#
for (Block block : blocks) block.setType(web);
robust zenith
#

thanks

#

How do you write like this?

remote swallow
#

?codeblock

undone axleBOT
#

You can use the discord code block format to display code or just text in a more pleasing way:
```java
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {

}

}```
Becomes:

public class MyPlugin extends JavaPlugin {
    @Override
    public void onEnable() {

    }
}```
robust zenith
#
thank you soo much <3
echo basalt
#

calling getBlock returns a new instance every time

warm light
#

I am trying to cancel CreatureSpawnEvent.
but seems like its not working

hybrid spoke
#

nice

#

?notworking

undone axleBOT
#

"Does not working" is a useless statement. Please describe what exactly is not working, what you expect it to do, and what actually happens. If you get any console errors, also ?paste the entire stacktrace.

warm light
#

There is no error in console. and I did added some test log. all that is working. but only event isn't canceling.
checked many bukkit, spigot threads. and found many people got same problem. but no solution

remote swallow
#

give us code

#

cant help without it

warm spire
#

Hey so how do I use getConfig() in different classes?

remote swallow
#

?di

undone axleBOT
remote swallow
#

JavaPlugin.getConfig

warm spire
#

but not in other classes

remote swallow
#

use di

stray nacelle
#

get plugin instance

#

inst.getConfig()

remote swallow
#

use di

warm spire
#

whats di

chrome beacon
#

?di

undone axleBOT
stray nacelle
#

oh

remote swallow
#

read

stray nacelle
#

i using singleton

remote swallow
#

just pass the instance in

#

its pretty much the same

warm spire
#

I have a PlayerKill event class

#

for lifesteal

#

so on player kill by another player

stray nacelle
#

create constructor with parametr as your plugin class

#

sry for my egglish

warm spire
#

i want them to lose a specific amount of hearts set in config.yml

remote swallow
#
public class YourClassName implements Listener { 
    private final MainClassName plugin;
    public YourClassName(MainClassName plugin) {
        this.plugin = plugin;
    }

    @EventHandler
    public void onEvent() {
    stuff
    }
}
warm spire
#

i would put that in the class i have where i want to getConfig() correct?

remote swallow
#

correct

#

changing MainClassName to the main class name

warm spire
#

ah ok

remote swallow
#

or YourClassName to your class name

warm spire
#

Ok

warm spire
#

I added the code at the top

remote swallow
#

that would be correct

#

make sure to add the constructor in main class

#

instead of new ClassName() it would be new ClassName(this)

hybrid spoke
#

dont just tell him the way

#

tell him why its the way

remote swallow
warm spire
remote swallow
#

change the constructor

#

i just told you

hybrid spoke
#

you have to pass in your main class since the default constructor now requires that

warm spire
#

please

remote swallow
#

?learnjava

undone axleBOT
hybrid spoke
#

and since you are in your mainclass (the statement), you can just pass in an this

remote swallow
warm spire
hybrid spoke
#

the this afterwards is also needed

#

which you just removed

warm spire
hybrid spoke
#

and once that works you can use the new plugin variable, which you just passed in, in your listener class to call getConfig() on it

warm spire
hybrid spoke
warm spire
#

XD

warm spire
#

I can make the command but what is the method

#

@remote swallow

chrome beacon
undone axleBOT
undone axleBOT
warm spire
hybrid spoke
#

you just did?

chrome beacon
#

I'm not sure how you're a developer on 3 servers

warm spire
#

I do configuration but I wanted to start plugin developmet

hybrid spoke
#

apparantely nothing in java too

warm spire
chrome beacon
#

It's not a plugin development specific thing

hybrid spoke
warm spire
chrome beacon
#

?di

undone axleBOT
hybrid spoke
chrome beacon
#

Guess you'll need to read this again

warm spire
chrome beacon
#

and?

hybrid spoke
#

its nothing different

#

its the same java thing

chrome beacon
#

Do you want me to spoon feed you code like Epic did?

hybrid spoke
#

doesnt matter if its a command or listener class

warm spire
#

but do i do it in the getCommand()?

chrome beacon
#

?di

undone axleBOT
warm spire
chrome beacon
#

Read it

warm spire
#

I dont have to listen to your bullshit

hybrid spoke
warm spire
hybrid spoke
#

no you are being stupid

#

we gave you everything

#

and still you complain

#

and are not listening to us

#

we were being nice, but respect requires respect

warm spire
#

I started yesterday

#

so like

#

no ned to be agressive

remote swallow
#

?learnjava first

undone axleBOT
chrome beacon
#

^^ You shouldn't be using the Spigot API on your second day of programming

hybrid spoke
#

?learnjava!

undone axleBOT
undone spindle
#

whats wrong with deepslate_copper_ore?

remote swallow
#

nothing?

undone spindle
#

with inventory click event i pick up deepslate_copper_ore but its always seen as nothing

#

every other item works

chrome beacon
#

Make server is up to date

undone spindle
#

both server and plugin are 1.19.2

chrome beacon
#

Is API version set to 1.19 in your plugin.yml

remote swallow
#

or 1.17/1.18

#

iirc that came back in 1.18

undone spindle
chrome beacon
#

Why the question mark

#

Yes or no

undone spindle
#

yes

chrome beacon
#

Hm

#

Show your code

#

?paste

undone axleBOT
undone spindle
#

tho pom.xml is 1.19.2

#

the one that souts the item? i click on?

remote swallow
#

check if it works for other deepslate stuff

undone spindle
#

it sais it sc

#

cs

#

but uh i think i messed something up on that part

chrome beacon
#

Ouch those names

undone spindle
#

sorry

remote swallow
#

oh god

undone spindle
#

lmao

#

XD

#

kinda rushed it

#

and uh bad at names

chrome beacon
#

Just camelCase methods and give variables a resonable name

#

For what they are

#

Like b??? What is b

#

I could probably figure it out but the name should tell me

undone spindle
remote swallow
#

did someone say obsfucated mojang code

chrome beacon
#

I'm talking about the name

fluid river
#

?DI

#

?di

undone axleBOT
fluid river
#

@warm spire

remote swallow
undone spindle
chrome beacon
fluid river
#

i answered

#

he already has it in his code

chrome beacon
twin venture
# twin venture

soo is it optimal ? is there a better way ? my plugin size increased 500kb bcz of the library ..

#

its working btw no bugs ..

remote swallow
#

couldnt you minimize it

twin venture
#

the picture is very clear to me

#

i can see it with one eye

#

:L

vivid cave
#

Okay so about server bound packets.
How to send them (to the server)?

#

Do they have to be sent FROM a player ?

#

Or can I send a fake one

chrome beacon
#

They have to be sent from a player

#

What are you trying to do

#

You can probably create a fake packet and send it for a player but why...

vivid cave
#

I dislike how plugin messaging works, I am trying to send my own plugin messages without requiring a player as sender AND/OR another player as receiver.

chrome beacon
#

Then you will need to use something else

acoustic widget
#

Hello
Do you guys know why I can't search using intelij in the remapped mojang lib ? I'm having an issue with search with external libraries.

chrome beacon
#

Like Redis

#

Redis works great if you want to send data

chrome beacon
#

I believe it's just Advancements

vivid cave
#

@chrome beacon do you know if I can retrieve the Netty channel or socket that is used my plugin messaging? (At least so I don't use another port)
Also I know about reddis but I find it overkill.

chrome beacon
#

You can use screamingsandals to look up old Spigot mappings to Mojamps

chrome beacon
#

Which is why it requires a player

#

If no player is online then there is no connection for you to send data with

acoustic widget
vivid cave
#

There must be a server socket though

chrome beacon
#

It's a lot more work to try and mess with that

#

Use Redis

vivid cave
#

No trust me I wanna mess with that.

chrome beacon
#

or setup your own socket you can send data to

vivid cave
#

@sterile token had the same project than me but I haven't heard about him for a long time 😄

vivid cave
#

😄

chrome beacon
#

Then start digging through NMS and Bungee source

#

and see how data is handled and try to figure it out

vivid cave
#

Aha, why bungee though?

chrome beacon
#

So you can see how it sends data

vivid cave
#

Okay do you know where I can find NMS source

chrome beacon
#

?bt

undone axleBOT
ivory sleet
vivid cave
#

I have to compile it on my computer due to the DMCA takedown correct

ivory sleet
#

ah alr

chrome beacon
vivid cave
chrome beacon
#

They don't

ivory sleet
#

what kind of data

chrome beacon
#

No data is synced between the servers

ivory sleet
vivid cave
#

A backhand server A listens to a channel named C
Plugin message is sent from server B on channel C thanks to Player
Backhand server A retrieves it.
How did server B sync that to server A.

ivory sleet
#

wdym sync?

compact haven
#

he's asking about bungee's plugin message channel

vivid cave
ivory sleet
compact haven
#

but yeah it just uses the player's socket

ivory sleet
#

^

compact haven
#

the server sends a special plugin message packet to the player's client

#

which naturally goes through bungeecord first

ivory sleet
#

like it just chops it in a packet and sends the message for a ride using the player

vivid cave
#

Ahaa

compact haven
#

bungeecord will then handle it from the player's connection, and then to the client or more info is send back through the socket as if it came from the client

vivid cave
#

Wait I'm a bit confused. The players socket is on players client right?

compact haven
#

client -> bungee proxy -> server

vivid cave
#

Ah okay

#

Fair

compact haven
#

the proxy hijacks the socket and uses it for other info, it doesn't require the client to actually send something to pretend it did

ivory sleet
#

a socket is bidirectional, it goes from client to server and server to client

#

well

vivid cave
#

Yeah

#

Websockets

ivory sleet
#

in this case they're

compact haven
#

its like how viaversion works at the proxy level, it'll just change the packet content before being received by the server

#

mate do you have any idea what you're talking about]

#

a websocket and socket !=

#

and this is not a websocket

#

a websocket is a socket, but it has extra information packed ontop (completely unrelated to Minecraft or anything Netty requires)

ivory sleet
#

ye

vivid cave
compact haven
#

correct

ivory sleet
#

yep

compact haven
#

that's why you use the player instance to invoke sendPluginMessage

vivid cave
#

Ok thx

ivory sleet
#

even when using Server::sendPluginMessage it just grabs a random player

compact haven
#

I mean I guess you're able to create a fake connection to the proxy, but that's just way too hacky

vivid cave
compact haven
#

not to mention it'll fuck with logging & everything

#

all sockets are bidirectional

vivid cave
#

HM okay

compact haven
#

websockets have TLS support, something you need to manually implement in regular bare sockets (not specifically TLS, but any alternative)

#

it's just a protocol for regular sockets, nothing special

ivory sleet
#

Alexis its just in some rare occasions sockets aren’t used in a bidirectional manner

vivid cave
#

Ha alright

compact haven
vivid cave
#

Okay so now my question is, can I hijack bungee's socket from a backhand server? (The proxy does have a socket which synchronises some data over the backhand servers, right)

chrome beacon
#

No

compact haven
#

the proxy and server never communicate

chrome beacon
#

^^

#

There is only the player connections

vivid cave
#

Okay

#

Interesting

compact haven
#

to hijack the bungee socket, you just insert into the Netty pipline for the player connection

#

(on both proxy and player), or use the built-in solution of plugin messaging

chrome beacon
#

The whole point of this was not to have a player online

#

So that won't work

compact haven
#

my recommendation is to just use a proper messaging service

vivid cave
#

NGL it's a bit a weird design.

compact haven
#

well proxy & server are not really meant to communicate in any situation

#

backend servers don't directly talk to the loadbalancer servicing it, it just doesn't make sense

vivid cave
#

Most ridiculous thing is how they designed Minecraft server to be single threaded for the most part

compact haven
#

well, regardless, I still don't agree with a proxy -> server communicate

#

the proxy is just meant to service any incoming connections and funnel them appropriately

chrome beacon
vivid cave
#

Yeah I won't do that

compact haven
#

don't know why your proxy is magically handling things unrelated to a player connection

#

(but highly situational and perhaps its a good reason)

vivid cave
#

Thanks for your explanation btw

#

I think I will use my own sockets
Redis is too much of bandwidth usage imo for what I'm trying to do

compact haven
#

can use rabbitmq or similar

#

or you can also add an extension to the proxy and make the socket conncetion to the backend servers yourself

#

to do that you'd need to go before basically anything else in the Netty pipeline for incoming connections

#

I'd add a special few bytes at the beginning to say "hey I'm a bungeecord proxy" and passthrough if it doesnt have those bytes

compact haven
#

^ but yeah redis messaging, I highly doubt that's any type of heavyweight

chrome beacon
#

Redis doesn't take much bandwidth

#

It won't be sending a whole lot of extra data

#

It's designed to be used as a messaging service, which is what you want

compact haven
#

well kekw

#

it's got that whole key value nonsense as well

#

but we'll ignore, because that doesn't affect the messaging bandwidth

chrome beacon
compact haven
#

(was talking about the "designed to be used as a message service")

#

anyways Alexis, you have plenty of solutions to this problem

vivid cave
compact haven
#

well if you're messaging the proxy then the proxy needs to have a plugin to handle the message

#

otherwise you're speaking to thin air

#

so I don't understand the logic here

vivid cave
#

Thank you guys for talking to me. It's clearer now for all this messaging madness

compact haven
#

am I wrong though? if you're messaging the proxy, then the backend server needs something to handle it anyways kekw

chrome beacon
#

^^

#

Data won't get sent from server A to Server B without a plugin on the proxy passing that data

vivid cave
#

Rn I use plugin messages, which work most of the time except when there is no receiver player ofc

compact haven
#

my god lol, if that's the attempt then just use a messaging service between the two servers, because the proxy shouldn't be handling that

vivid cave
#

That's what I will be looking into

compact haven
#

seems to me as if poor design, but I understand that hosting redis/rabbit requires a cloud instance and not MC hosting

#

alright mate, best of luck

vivid cave
#

Thank you!

compact haven
#

np, peeps always here to help

#

(and potentially heavily criticize 😏)

undone spindle
#

is there a intellij shortcut for finding words

#

in like the whole project

jagged monolith
#

There's a find in files button in the edit menu

chrome beacon
undone spindle
#

thx

vale ember
#

How do i get rid of this slight rotation to the left about the y-axis?

vocal void
#

Hello

misty current
#

how can I rotate a vector around a location?

radiant cedar
#

idk if its server question or development so ima ask it here too:
When I make a nether portal, it doesn't look for empty spaces to spawn it like it should. It just spawns it inside walls, and at overworld location / 8.

#

What have I done in the server that could be causing this

dry yacht
dry yacht
vale ember
#
armorStand.setRightArmPose(new EulerAngle(0, Math.toRadians(location.getPitch()), 1.5 * Math.PI));
dry yacht
vale ember
dry yacht
#

Btw, is that arm rotated at all, or is it parallel to the body?

vale ember
#

wdym?

dry yacht
#

Well, you apply all of your transforms to the arm of the armorstand, not to the item itself. So if it has this left-tendency, I'd guess that the arm cuboid (the vertical stick) itself has also got to be rotated. Looks like you have hidden these arms tho, right?

vale ember
#

i didn't enable them, right

#

but how do i know with what angle to rotate the arm to compensate for the item

#

when i look at the handheld model in minecraft's source code it doesn't seem to have any x-axis rotation